[
  {
    "path": ".chglog/CHANGELOG-full-history.tpl.md",
    "content": "{{- $repourl := $.Info.RepositoryURL -}}\n# CHANGELOG\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),\nand this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).\n\n<a name=\"unreleased\"></a>\n## [Unreleased]({{ .Info.RepositoryURL }}/compare/{{ $latest := index .Versions 0 }}{{ $latest.Tag.Name }}...HEAD)\n\n{{ if .Unreleased.NoteGroups }}\n{{ range .Unreleased.NoteGroups -}}\n### {{ .Title }}\n{{ range .Notes -}}\n{{ .Body }}\n{{ end -}}  <!-- end of Notes -->\n{{ end -}} <!-- end of NoteGroups -->\n{{ end -}}  <!-- end of if -->\n{{ range .Unreleased.CommitGroups }}\n{{ range .Commits -}}\n\n{{- /** Remove markdown urls when there's a pull request linked and replace it with a tag **/ -}}\n{{- $subject := (regexReplaceAll `URL` (regexReplaceAll `\\[#(\\d+)\\]\\(.*?\\)` .Subject \"<a href=\\\"URL/pull/${1}\\\">#${1}</a>\") $repourl) -}}\n{{- /** Filter out refs mentioned in the title **/ -}}\n{{- $list := (list) -}}\n{{- range $idx, $ref := .Refs -}}\n{{- if not (regexMatch $ref.Ref $subject) -}}\n{{ $list = append $list $ref }}\n{{- end -}}\n{{- end -}}\n{{- /** end custom variables **/ -}}\n\n{{ if .TrimmedBody -}}<dl><dd><details><summary>{{ else -}}- {{ end -}}\n<a href=\"{{$repourl}}/commit/{{.Hash.Long}}\"><tt>{{.Hash.Short}}</tt></a> {{ $subject }}\n{{- if $list -}}\n{{ printf \" %s \" \"(closes\"}}\n{{- range $idx, $ref := $list -}}{{ if $idx }}, {{ end -}}\n<a href=\"{{ $repourl }}/issues/{{ $ref.Ref}}\"> #{{ $ref.Ref}}</a>{{ end }})\n{{- end -}}\n{{ if .TrimmedBody -}}</summary>{{ printf \"\\n\\n%s\\n\\n\" .TrimmedBody }}</details></dd></dl>{{ end }}\n\n{{ end }} <!-- end of Commits -->\n{{ end -}} <!-- end of CommitGroups -->\n\n{{- if .Versions }}\n{{ range .Versions -}}\n<a name=\"{{ .Tag.Name }}\"></a>\n## {{ if .Tag.Previous }}[{{ .Tag.Name }}]({{ $.Info.RepositoryURL }}/compare/{{ .Tag.Previous.Name }}...{{ .Tag.Name }}){{ else }}[{{ .Tag.Name }}](https://github.com/99designs/gqlgen/releases/tag/{{ .Tag.Name }}){{ end }} - {{ datetime \"2006-01-02\" .Tag.Date }}\n{{- if .CommitGroups -}}\n{{ range .CommitGroups -}}\n\n### {{ .Title }}\n{{ range .Commits -}}\n{{- /** Remove markdown urls when there's a pull request linked and replace it with a tag **/ -}}\n{{- $subject := (regexReplaceAll `URL` (regexReplaceAll `\\[#(\\d+)\\]\\(.*?\\)` .Subject \"<a href=\\\"URL/pull/${1}\\\">#${1}</a>\") $repourl) -}}\n{{- /** Filter out refs mentioned in the title **/ -}}\n{{- $list := (list) -}}\n{{- range $idx, $ref := .Refs -}}\n{{- if not (regexMatch $ref.Ref $subject) -}}\n{{ $list = append $list $ref }}\n{{- end -}}\n{{- end -}}\n{{- /** end custom varaibles **/ -}}\n\n{{ if .TrimmedBody -}}<dl><dd><details><summary>{{ else -}}- {{ end -}}\n<a href=\"{{$repourl}}/commit/{{.Hash.Long}}\"><tt>{{.Hash.Short}}</tt></a> {{ $subject }}\n{{- if $list -}}\n{{ printf \" %s \" \"(closes\"}}\n{{- range $idx, $ref := $list -}}{{ if $idx }}, {{ end -}}\n<a href=\"{{ $repourl }}/issues/{{ $ref.Ref}}\"> #{{ $ref.Ref}}</a>{{ end }})\n{{- end -}}\n\n- {{ if .Type }}**{{ .Type }}:** {{ end }}{{ if .Subject }}{{ .Subject }}{{ else }}{{ .Header }}{{ end }}\n{{ end }} <!-- end of Commits -->\n{{ end -}} <!-- end of CommitGroups -->\n{{ else }}\n{{ range .Commits -}}\n\n{{- /** Remove markdown urls when there's a pull request linked and replace it with a tag **/ -}}\n{{- $subject := (regexReplaceAll `URL` (regexReplaceAll `\\[#(\\d+)\\]\\(.*?\\)` .Subject \"<a href=\\\"URL/pull/${1}\\\">#${1}</a>\") $repourl) -}}\n{{- /** Filter out refs mentioned in the title **/ -}}\n{{- $list := (list) -}}\n{{- range $idx, $ref := .Refs -}}\n{{- if not (regexMatch $ref.Ref $subject) -}}\n{{ $list = append $list $ref }}\n{{- end -}}\n{{- end -}}\n{{- /** end custom variables **/ -}}\n\n{{ if .TrimmedBody -}}<dl><dd><details><summary>{{ else -}}- {{ end -}}\n<a href=\"{{$repourl}}/commit/{{.Hash.Long}}\"><tt>{{.Hash.Short}}</tt></a> {{ $subject }}\n{{- if $list -}}\n{{ printf \" %s \" \"(closes\"}}\n{{- range $idx, $ref := $list -}}{{ if $idx }}, {{ end -}}\n<a href=\"{{ $repourl }}/issues/{{ $ref.Ref}}\"> #{{ $ref.Ref}}</a>{{ end }})\n{{- end -}}\n{{ if .TrimmedBody -}}</summary>{{ printf \"\\n\\n%s\\n\\n\" .TrimmedBody }}</details></dd></dl>{{ end }}\n\n{{ end }} <!-- end of Commits -->\n{{ end -}} <!-- end of Else -->\n\n{{ if .NoteGroups }}\n{{ range .NoteGroups -}}\n### {{ .Title }}\n{{ range .Notes -}}\n{{ .Body }}\n{{ end -}} <!-- end of Notes -->\n{{ end -}} <!-- end of NoteGroups -->\n{{ end -}} <!-- end of If NoteGroups -->\n{{ end -}} <!-- end of Versions -->\n{{ end -}} <!-- end of If Versions -->\n"
  },
  {
    "path": ".chglog/config.yml",
    "content": "style: github\ntemplate: CHANGELOG-full-history.tpl.md\ninfo:\n  title: CHANGELOG\n  repository_url: https://github.com/99designs/gqlgen\noptions:\n  commits:\n    # filters:\n    #   Type: []\n  commit_groups:\n    # title_maps: []\n  header:\n    pattern: \"^(.*)$\"\n    pattern_maps:\n      - Subject\n  notes:\n    keywords:\n      - BREAKING CHANGE"
  },
  {
    "path": ".dockerignore",
    "content": "/**/node_modules\n/codegen/tests/gen\n/vendor\n"
  },
  {
    "path": ".editorconfig",
    "content": "# top-most EditorConfig file\nroot = true\n\n[*]\nend_of_line = lf\ncharset = utf-8\ntrim_trailing_whitespace = true\ninsert_final_newline = true\nindent_style = space\nindent_size = 4\n\n[*.{go,gotpl}]\nindent_style = tab\n\n# Ignore yaml https://learn.microsoft.com/en-us/visualstudio/code-quality/use-roslyn-analyzers?view=vs-2022\n[*.{yaml,yml,yml.j2,yaml.j2}]\ngenerated_code = true\n# charset = unset\n# end_of_line = unset\n# insert_final_newline = unset\n# trim_trailing_whitespace = unset\n# indent_style = unset\n# indent_size = unset\n\n# These often end up with go code inside, so lets keep tabs\n[*.{html,md}]\nindent_size = 2\nindent_style = tab\n"
  },
  {
    "path": ".gitattributes",
    "content": "/codegen/templates/data.go linguist-generated\n/_examples/dataloader/*_gen.go linguist-generated\ngenerated.go linguist-generated\n"
  },
  {
    "path": ".github/CODEOWNERS",
    "content": "# SEE:\n# https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-code-owners#codeowners-syntax\n# These owners will be the default owners for these directories.\n# Unless a later match takes precedence,\n# @StevenACoffman will be requested for\n# review when someone opens a pull request.\n*                     @StevenACoffman"
  },
  {
    "path": ".github/ISSUE_TEMPLATE.md",
    "content": "### What happened?\n\n### What did you expect?\n\n### Minimal graphql.schema and models to reproduce\n\n### versions\n - `go tool gqlgen version`?\n - `go version`?\n"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE.md",
    "content": "Describe your PR and link to any relevant issues. \n\nI have:\n - [ ] Added tests covering the bug / feature (see [testing](https://github.com/99designs/gqlgen/blob/master/TESTING.md))\n - [ ] Updated any relevant documentation (see [docs](https://github.com/99designs/gqlgen/tree/master/docs/content))\n"
  },
  {
    "path": ".github/dependabot.yml",
    "content": "# To get started with Dependabot version updates, you'll need to specify which\n# package ecosystems to update and where the package manifests are located.\n# Please see the documentation for all configuration options:\n# https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file\nversion: 2\nupdates:\n# Maintain dependencies for GitHub Actions\n- package-ecosystem: \"github-actions\"\n  directory: \"/\"\n  schedule:\n    interval: \"weekly\"\n# Maintain dependencies for Go Modules\n- package-ecosystem: \"gomod\" # See documentation for possible values\n  directory: \"/\" # Location of package manifests\n  schedule:\n    interval: \"weekly\"\n  ignore:\n  - dependency-name: \"github.com/gorilla/websocket\"\n    # For websocket, v1.5.1 has serious bugs\n    versions: [\"v1.5.1\"]\n- package-ecosystem: \"gomod\" # See documentation for possible values\n  directory: \"/_examples\" # Location of package manifests\n  schedule:\n    interval: \"weekly\"\n  ignore:\n  - dependency-name: \"github.com/gorilla/websocket\"\n    # For websocket, v1.5.1 has serious bugs\n    versions: [\"v1.5.1\"]\n# Maintain dependencies for npm\n- package-ecosystem: \"npm\" # See documentation for possible values\n  directory: \"integration\" # Location of package manifests\n  schedule:\n    interval: \"weekly\"\n- package-ecosystem: \"npm\" # See documentation for possible values\n  directory: \"_examples/chat\" # Location of package manifests\n  schedule:\n    interval: \"weekly\"\n- package-ecosystem: \"npm\" # See documentation for possible values\n  directory: \"_examples/federation\" # Location of package manifests\n  schedule:\n    interval: \"weekly\"\n"
  },
  {
    "path": ".github/fmt-actions.sh",
    "content": "#!/bin/bash\n# fmt-actions - reformats github actions\n# intended to be invoked from this directory\n#\n# see https://til.simonwillison.net/yaml/yamlfmt\n\nfunction is_bin_in_path {\n  builtin type -P \"$1\" &> /dev/null\n}\n\nexport GOBIN=\"$HOME/go/bin\"\nmkdir -p \"$GOBIN\"\n# we installed go binaries to $GOBIN\n# so we ensure that is in the PATH and takes precedence\nexport PATH=\"$GOBIN:$PATH\"\n! is_bin_in_path yamlfmt && GOBIN=$HOME/go/bin go install -v github.com/google/yamlfmt/cmd/yamlfmt@latest\n\n# -formatter indentless_arrays=true,retain_line_breaks=true\nyamlfmt \\\n  -conf ./linters/.yamlfmt.yaml ./workflows/*.y*ml\n\n# -formatter indentless_arrays=true,retain_line_breaks=true\nyamlfmt \\\n  -conf ./linters/.yamlfmt.yaml ./linters/*.y*ml\n\n# -formatter indentless_arrays=true,retain_line_breaks=true\nyamlfmt \\\n  -conf ./linters/.yamlfmt.yaml ./*.y*ml\n\n\n"
  },
  {
    "path": ".github/fmt-md.sh",
    "content": "#!/bin/bash\n# fmt-md - Intended to be run from root directory of repository\n# to format markdown to pass linting rules.\n# Works on all machines, but will install missing requirements\n# using homebrew as those who use linux will have no need because:\n# 1. Linux users will manage their own requirement installation\n# 2. Linux users will not make markdown formatting mistakes :)\n\n# Requirements:\n# uv - to install python tools idempotently\n# go - any recent version\n# shfmt - mvdan.cc/sh/v3/cmd/shfmt\n# mdformat and extensions\n\nfunction is_bin_in_path {\n  builtin type -P \"$1\" &> /dev/null\n}\n\nexport GOBIN=\"$HOME/go/bin\"\nmkdir -p \"$GOBIN\"\n# uv installs things to $HOME/.local/bin\n# we installed go binaries to $GOBIN\n# so we ensure those both are in the PATH and take precedence\nexport PATH=\"$HOME/.local/bin:$GOBIN:$PATH\"\n! is_bin_in_path uv && brew install uv\n! is_bin_in_path shfmt && go install mvdan.cc/sh/v3/cmd/shfmt@latest\n! is_bin_in_path mdformat && uv tool install --with mdformat-gfm --with mdformat-shfmt --with mdformat-tables --with mdformat-toc --with mdformat-config --with mdformat-gofmt mdformat\n\n# clean all Script files (possibly makes mistakes?):\n# find .. -name '*.sh' -type f -print0 | xargs -0 -n1 -P4 shfmt -bn -ci -d -i 2 -ln bash -s -sr\n\n# ensure all files have trailing line endings\n# find -type f | while read f; do tail -n1 $f | read -r _ || echo >> $f; done\n# clean all markdown files \nfind . -type d -name node_modules -prune -o -name '*.md' -type f -print0 | xargs -0 -n1 -P4 mdformat --wrap keep --number\n"
  },
  {
    "path": ".github/lint-actions.sh",
    "content": "#!/bin/bash\n\nfunction is_bin_in_path {\n  builtin type -P \"$1\" &> /dev/null\n}\n\nexport GOBIN=\"$HOME/go/bin\"\n! is_bin_in_path yamllint && go install -v github.com/wasilibs/go-yamllint/cmd/yamllint@latest\n! is_bin_in_path actionlint && go install -v github.com/rhysd/actionlint/cmd/actionlint@latest\n! is_bin_in_path shellcheck && go install -v github.com/wasilibs/go-shellcheck/cmd/shellcheck@latest\n! is_bin_in_path ghalint && go install -v github.com/suzuki-shunsuke/ghalint/cmd/ghalint@latest\nexport PATH=\"$GOBIN:$PATH\"\n# Note that due to the sandboxing of the filesystem when using Wasm,\n# currently only files that descend from the current directory when executing the tool\n# are accessible to it, i.e., ../yaml/my.yaml or /separate/root/my.yaml will not be found.\nyamllint -c ./linters/.yamllint.yaml .\n\n# https://www.shellcheck.net/wiki/SC2086 https://www.shellcheck.net/wiki/SC2129\nexport SHELLCHECK_OPTS='-e SC2086 -e SC2129'\nactionlint -config-file=./linters/actionlint.yaml -shellcheck=\"$(which shellcheck)\"\ncd ..\nghalint run\n"
  },
  {
    "path": ".github/linters/.editorconfig-checker.json",
    "content": "{\n  \"Verbose\": false,\n  \"Debug\": false,\n  \"IgnoreDefaults\": false,\n  \"SpacesAfterTabs\": false,\n  \"NoColor\": false,\n  \"Exclude\": [],\n  \"AllowedContentTypes\": [],\n  \"PassedFiles\": [],\n  \"Disable\": {\n    \"EndOfLine\": false,\n    \"Indentation\": false,\n    \"IndentSize\": false,\n    \"InsertFinalNewline\": false,\n    \"TrimTrailingWhitespace\": false,\n    \"MaxLineLength\": false\n  }\n}\n"
  },
  {
    "path": ".github/linters/.hadolint.yaml",
    "content": "ignored:\n- DL3007 # use latest tag\n- DL3018 # apk should not pin all package versions\n- DL3041 # dnf should not pin all package versions\n- DL3008 # apt should not pin all package versions\n- DL3003 # don't use workdir, this is readable when workdir isn't created yet\n- SC2086 # double quote to prevent globbing and word splitting\ntrustedRegistries:\n- docker.io\n- quay.io\n- ghcr.io\n- registry.access.redhat.com\n- cgr.dev\n"
  },
  {
    "path": ".github/linters/.markdownlint.json",
    "content": "{\n  \"line-length\": false,\n  \"MD033\": { \"allowed_elements\": [\"br\", \"summary\", \"details\", \"div\"] }\n}\n"
  },
  {
    "path": ".github/linters/.markdownlint.yml",
    "content": "line-length: false\nMD033:\n  allowed_elements:\n  - br\n  - summary\n  - details\n  - div\n"
  },
  {
    "path": ".github/linters/.shellcheckrc",
    "content": "# Look for 'source'd files relative to the checked script\nsource-path=SCRIPTDIR\n# source-path=/mnt/chroot\n\n# Since 0.9.0, values can be quoted with '' or \"\" to allow spaces\n# source-path=\"My Documents/scripts\"\n\n# Allow opening any 'source'd file, even if not specified as input\nexternal-sources=true\n\n# Turn on warnings for unquoted variables with safe values\n# enable=quote-safe-variables\n\n# Turn on warnings for unassigned uppercase variables\n# enable=check-unassigned-uppercase\n\n# See https://www.shellcheck.net/wiki/SC2086 https://www.shellcheck.net/wiki/SC2129\ndisable=SC2086,SC2129\n"
  },
  {
    "path": ".github/linters/.yamlfmt.yaml",
    "content": "# yamlfmt is an extensible command line tool or library to format yaml files.\n#\n# Get it from: https://github.com/google/yamlfmt/releases\n# Config is here: https://github.com/google/yamlfmt/blob/main/docs/config-file.md\nformatter:\n  type: basic\n  indentless_arrays: true\nindent: 2\nline_ending: lf\n"
  },
  {
    "path": ".github/linters/.yamllint.yaml",
    "content": "extends: default\nrules:\n  braces: disable\n  brackets: disable\n  colons: enable\n  commas: disable\n  comments: disable\n  comments-indentation: disable\n  document-end: disable\n  document-start: disable\n  empty-lines: disable\n  empty-values: disable\n  hyphens: enable\n  indentation:\n    spaces: 2\n    check-multi-line-strings: false\n    indent-sequences: false\n  key-duplicates: enable\n  key-ordering: disable\n  line-length: disable\n  new-line-at-end-of-file: disable\n  new-lines: enable\n  octal-values: disable\n  quoted-strings: disable\n  trailing-spaces: disable\n  truthy:\n    allowed-values: ['true', 'false', 'on'] # 'on' for GH action trigger\n    check-keys: false\n"
  },
  {
    "path": ".github/linters/actionlint.yaml",
    "content": "self-hosted-runner:\n  # Labels of self-hosted runner in array of strings.\n  labels: []\n# Configuration variables in array of strings defined in your repository or\n# organization. `null` means disabling configuration variables check.\n# Empty array means no configuration variable is allowed.\nconfig-variables: null\n# Configuration for file paths. The keys are glob patterns to match to file\n# paths relative to the repository root. The values are the configurations for\n# the file paths. Note that the path separator is always '/'.\n# The following configurations are available.\n#\n# \"ignore\" is an array of regular expression patterns. Matched error messages\n# are ignored. This is similar to the \"-ignore\" command line option.\n# Path-specific configurations.\npaths:\n  # Glob pattern relative to the repository root for matching files. The path separator is always '/'.\n  # This example configures any YAML file under the '.github/workflows/' directory.\n  .github/workflows/**/*.{yml,yaml}:\n    # List of regular expressions to filter errors by the error messages. # Ignore the specific error from shellcheck '-e SC2086 -e SC2129 -e SC2164 -e SC2155 -e SC2103'\n    ignore:\n    - 'shellcheck reported issue in this script: SC2086:.+'\n    - 'shellcheck reported issue in this script: SC2129:.+'\n    - 'shellcheck reported issue in this script: SC2164:.+'\n    - 'shellcheck reported issue in this script: SC2155:.+'\n    - 'shellcheck reported issue in this script: SC2103:.+'\n"
  },
  {
    "path": ".github/pin-actions.sh",
    "content": "#!/bin/bash\n# pin-actions.sh - pins all actions to Git SHA1, run from repo root\n\nfunction is_bin_in_path {\n  builtin type -P \"$1\" &> /dev/null\n}\n\nexport GOBIN=\"$HOME/go/bin\"\nmkdir -p \"$GOBIN\"\n# we installed go binaries to $GOBIN\n# so we ensure that is in the PATH and takes precedence\nexport PATH=\"$GOBIN:$PATH\"\n! is_bin_in_path yamlfmt && GOBIN=$HOME/go/bin go install -v github.com/sethvargo/ratchet@latest\n\nexport SED_COMMAND=\"gsed\"\n! is_bin_in_path gsed && export SED_COMMAND=\"sed\"\n\nfind . -name '*.y*l' | sort -u | grep '.github/workflows' | xargs -I {} ratchet pin '{}'\ncd .github\nfind . -name '*.y*l' -exec ${SED_COMMAND} -i'' 's/ratchet:.*\\/.*\\@//g' {} \\;\n./fmt-actions.sh\ncd ..\n"
  },
  {
    "path": ".github/workflows/GOVERSION.txt",
    "content": "1.25.0\n"
  },
  {
    "path": ".github/workflows/actionlint.yaml",
    "content": "name: action-lint\non:\n  push:\n    branches:\n    - main\n    - master\n    paths:\n    - .github/**\n  pull_request:\n    branches:\n    - main\n    - master\n    paths:\n    - .github/**\n  workflow_dispatch:\n    inputs:\n      git-ref:\n        description: Git Ref (Optional)\n        required: false\n# only on merge to main/master unless debugging this workflow\n#  pull_request:\n#    branches:\n#      - main\n#      - master\n# we do NOT use pull_request_target because\n# workflow runs that are triggered by forks from events:\n#  - push,\n#  - pull_request,\n#  - pull_request_review\n#  - pull_request_review_comment\n# will be treated as if they were opened from a repository fork.\n# This means they will receive a read-only GITHUB_TOKEN\n# and will not have access to any secrets available in the repository.\n# This will cause any workflows that attempt to write to the repository to fail.\n#\n# When a new revision is pushed to a PR, cancel all in-progress CI runs for that\n# PR. See https://docs.github.com/en/actions/using-jobs/using-concurrency\nconcurrency:\n  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}\n  cancel-in-progress: true\njobs:\n  github-lint:\n    runs-on: ubuntu-latest\n    # runs-on: [self-hosted, linux, x64]\n    timeout-minutes: 30\n    permissions:\n      # needed for the checkout action\n      contents: read\n      # needed to annotate the files in a pull request with comments\n      pull-requests: write\n    steps:\n    - name: Clone Repository (Latest)\n      if: github.event.inputs.git-ref == ''\n      uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v5\n      with:\n        persist-credentials: \"false\"\n    - name: Clone Repository (Custom Ref)\n      if: github.event.inputs.git-ref != ''\n      uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v5\n      with:\n        persist-credentials: \"false\"\n        ref: ${{ github.event.inputs.git-ref }}\n    - name: Run actionlint\n      if: ${{ always() }}\n      uses: devops-actions/actionlint@469810fd82c015d3c43815cd2b0e4d02eecc4819 # v0.1.11\n      with: # https://www.shellcheck.net/wiki/SC2086 https://www.shellcheck.net/wiki/SC2129\n        shellcheck_opts: '-e SC2086 -e SC2129'\n    - name: Lint Any Shell scripts\n      if: ${{ always() }}\n      uses: ludeeus/action-shellcheck@00cae500b08a931fb5698e11e79bfbd38e612a38 # 2.0.0\n      env:\n        SHELLCHECK_OPTS: '-e SC2086 -e SC2129 -e SC2164 -e SC2155 -e SC2103'\n    - name: Install Go\n      uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6\n    - name: Install GHALINT\n      run: go install github.com/suzuki-shunsuke/ghalint/cmd/ghalint@v1.5.3 # v1.5.3\n    - run: cd ..; ghalint run\n      env:\n        GHALINT_LOG_COLOR: always\n"
  },
  {
    "path": ".github/workflows/check-coverage",
    "content": "#!/bin/bash\n\n# Script to check the coverage by running tests and merging profiles\nset -o errexit\nset -o nounset\nset -o xtrace\nset -o pipefail\n\n# set -euxo pipefail is short for:\n# set -e, -o errexit: stop the script when an error occurs\n# set -u, -o nounset: detects uninitialised variables in your script and exits with an error (including Env variables)\n# set -x, -o xtrace: prints every expression before executing it\n# set -o pipefail: If any command in a pipeline fails, use that return code for whole pipeline instead of final success\n\n\n#set -euo pipefail\n\nfunction is_bin_in_path {\n  builtin type -P \"$1\" &> /dev/null\n}\n\nexport SED_COMMAND=\"gsed\"\n! is_bin_in_path gsed && export SED_COMMAND=\"sed\"\n\njoin () {\n  local IFS=\"$1\"\n  shift\n  echo \"$*\"\n}\n\necho \"Installing goveralls latest\"\ngo install github.com/mattn/goveralls@latest\necho \"Collecting Test Package List\"\n# ${SED_COMMAND} 's/^\\|$/\"/g'|\npkgs=\"$(go list github.com/99designs/gqlgen/... 2> /dev/null | grep -v \"integration\" | grep -v \"_examples\" |grep -v \"plugin/resolvergen/testdata\" | grep -v \"plugin/federation/testdata\" | grep -v \"plugin/resolvergen/testdata\" | grep -v \"invalid-packagename\" | grep -v \"generated-default\")\"\n\ndeps=$(echo \"${pkgs}\" | tr ' ' \",\")\n# -covermode atomic\necho \"mode: atomic\" > /tmp/coverage.out.tmp\necho \"Attempting to create initial coverage profile\"\nfor pkg in $pkgs; do\n    go test -v -race -cover -coverpkg \"$deps\" -coverprofile=/tmp/profile.tmp \"${pkg}\"\n\n    if [ -f /tmp/profile.tmp ]; then\n        tail -n +2 /tmp/profile.tmp >> /tmp/coverage.out.tmp\n        rm /tmp/profile.tmp\n    fi\ndone;\n\n# this was the old way and it did not work very well:\n# go test -covermode atomic -coverprofile=/tmp/coverage.out.tmp -coverpkg=./...\n\n# ignore protobuf files\ngrep -v \".pb.go\" < /tmp/coverage.out.tmp > /tmp/coverage.out\n\nignore_list=(\n  '_examples/*/*'\n  '_examples/*/*/*'\n  'integration/*'\n  'integration/*/*'\n  'codegen/testserver/**/*generated*'\n  'codegen/testserver/**/*generated*/**'\n  'codegen/testserver/**/models-gen.go'\n  'codegen/testserver/**/resolver.go'\n  'plugin/resolvergen/testdata/*/*'\n  'plugin/modelgen/*/*'\n  'plugin/federation/testdata/*/*/*'\n  '*/generated.go'\n  '*/*/generated.go'\n  '*/*/*/generated.go'\n  'graphql/executable_schema_mock.go'\n)\nignore=$(join , \"${ignore_list[@]}\")\n\ngoveralls -coverprofile=/tmp/coverage.out -service=github \"-ignore=$ignore\"\n"
  },
  {
    "path": ".github/workflows/check-federation",
    "content": "#!/bin/bash\n\nset -euo pipefail\nexport GO111MODULE=on\ncd _examples/federation\n\n./start.sh &\n\nsleep 5\ncurl -s --connect-timeout 5 \\\n    --max-time 10 \\\n    --retry 5 \\\n    --retry-delay 5 \\\n    --retry-max-time 40 \\\n    --retry-connrefused \\\n    localhost:4003 > /dev/null\n\nsleep 1\n\necho \"### running jest integration spec\"\nnpx vitest --color --run\n\n"
  },
  {
    "path": ".github/workflows/check-fmt",
    "content": "#!/bin/bash\n\nset -exuo pipefail\nexport GO111MODULE=on\nexport GOTOOLCHAIN=local\ngo fmt ./...\ncd _examples && go fmt ./...\nif [[ $(git --no-pager diff) ]] ; then\n    echo \"you need to run \"go fmt\" and commit the changes\"\n    git --no-pager diff\n    exit 1\nfi\n"
  },
  {
    "path": ".github/workflows/check-generate",
    "content": "#!/bin/bash\nset -exuo pipefail\nexport GO111MODULE=on\necho Generating code\ngo generate ./...\nif [[ $(git --no-pager diff) ]] ; then\n    echo \"you need to run \"go generate ./...\" and commit the changes\"\n    git --no-pager diff\n    exit 1\nfi\n"
  },
  {
    "path": ".github/workflows/check-gomod.sh",
    "content": "#!/bin/bash\n\nset -euo pipefail\n\nexport GOVERSION=\"$(cat GOVERSION.txt)\"\nexport GOTOOLCHAIN=\"go${GOVERSION}\"\ngo get go@${GOVERSION} || true \ngo get toolchain@none || true\ngo mod tidy || true\n\nSTATUS=$( git status --porcelain go.mod go.sum )\nif [ ! -z \"$STATUS\" ]; then\n    echo \"Running go mod tidy modified go.mod and/or go.sum\"\n    echo \"Please run the following then make a git commit:\"\n    echo \"go get go@${GOVERSION}\"\n    echo \"go get toolchain@none\"\n    echo \"go mod tidy\"\n    echo \"export GOTOOLCHAIN=${GOTOOLCHAIN}\"\n    exit 1\nfi\nexit 0"
  },
  {
    "path": ".github/workflows/check-init",
    "content": "#!/bin/bash\n\nset -euo pipefail\nexport GO111MODULE=on\ngqlgen_dir=$(pwd)\ncd \"$(mktemp -d)\"\ngo mod init inittest\ngo get -tool github.com/99designs/gqlgen\ngo mod edit -replace=github.com/99designs/gqlgen=\"$gqlgen_dir\"\ngo mod tidy\n\nif ! go tool gqlgen init ; then\n    echo \"gqlgen init failed\"\n    exit 125\nfi\n\nif ! go tool gqlgen generate ; then\n    echo \"gqlgen generate failed\"\n    exit 125\nfi\n"
  },
  {
    "path": ".github/workflows/check-integration",
    "content": "#!/bin/bash\n\nset -euo pipefail\nexport GO111MODULE=on\ncd integration\n\ndate\ngo run ./server/cmd/integration/server.go &\n\nsleep 5\ncurl -s --connect-timeout 5 \\\n    --max-time 10 \\\n    --retry 5 \\\n    --retry-delay 5 \\\n    --retry-max-time 40 \\\n    --retry-connrefused \\\n    localhost:8080 > /dev/null\n\n\necho \"### validating introspected schema\"\nnpm run gen\n\nif ! diff <(tail -n +3 src/generated/schema-expected.graphql) <(tail -n +3 src/generated/schema-fetched.graphql) ; then\n    echo \"The expected schema has changed, you need to update schema-expected.graphql with any expected changes\"\n    exit 1\nfi\n\necho \"### running integration spec\"\nnpm run test\n"
  },
  {
    "path": ".github/workflows/coverage.yml",
    "content": "name: Coverage\non:\n  push:\n    branches:\n    - master\n  pull_request:\n    types: [opened, synchronize]\nenv:\n  GOTOOLCHAIN: local\n# When a new revision is pushed to a PR, cancel all in-progress CI runs for that\n# PR. See https://docs.github.com/en/actions/using-jobs/using-concurrency\nconcurrency:\n  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}\n  cancel-in-progress: true\njobs:\n  coverage:\n    timeout-minutes: 10\n    permissions:\n      contents: read\n      pull-requests: write\n    strategy:\n      matrix:\n        go: [\"1.26\"]\n    runs-on: ubuntu-latest\n    steps:\n    - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v5\n      with:\n        persist-credentials: \"false\"\n    - uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6\n      with:\n        go-version: ${{ matrix.go }}\n    - run: go mod download\n    - run: .github/workflows/check-coverage\n      env:\n        COVERALLS_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n"
  },
  {
    "path": ".github/workflows/fmt-and-generate.yml",
    "content": "name: Format and Generate\non:\n  push:\n    branches:\n    - master\n  pull_request:\n    types: [opened, synchronize]\nenv:\n  GOTOOLCHAIN: local\n# When a new revision is pushed to a PR, cancel all in-progress CI runs for that\n# PR. See https://docs.github.com/en/actions/using-jobs/using-concurrency\nconcurrency:\n  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}\n  cancel-in-progress: true\njobs:\n  fmt-and-lint:\n    runs-on: ubuntu-latest\n    timeout-minutes: 10\n    permissions:\n      contents: read\n      pull-requests: write\n    strategy:\n      matrix:\n        go: [\"1.26\", \"1.25\"]\n    steps:\n    - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v5\n      with:\n        persist-credentials: \"false\"\n    - uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6\n      with:\n        go-version: ${{ matrix.go }}\n    - run: go mod download\n    - run: .github/workflows/check-fmt\n    - run: .github/workflows/check-generate\n"
  },
  {
    "path": ".github/workflows/gomod-clean.yml",
    "content": "name: GoModVersion\non:\n  push:\n    branches:\n    - master\n  pull_request:\n    types: [opened, synchronize]\nenv:\n  GOTOOLCHAIN: local\n# When a new revision is pushed to a PR, cancel all in-progress CI runs for that\n# PR. See https://docs.github.com/en/actions/using-jobs/using-concurrency\nconcurrency:\n  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}\n  cancel-in-progress: true\njobs:\n  gomodclean:\n    runs-on: ubuntu-latest\n    timeout-minutes: 10\n    permissions:\n      contents: read\n      pull-requests: write\n    strategy:\n      matrix:\n        go: [\"1.26\"]\n    steps:\n    - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v5\n      with:\n        persist-credentials: \"false\"\n    - uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6\n      with:\n        go-version: ${{ matrix.go }}\n    - run: .github/workflows/check-fmt\n"
  },
  {
    "path": ".github/workflows/integration.yml",
    "content": "name: Integration\non:\n  push:\n    branches:\n    - master\n  pull_request:\n    types: [opened, synchronize]\nenv:\n  GOTOOLCHAIN: local\n# When a new revision is pushed to a PR, cancel all in-progress CI runs for that\n# PR. See https://docs.github.com/en/actions/using-jobs/using-concurrency\nconcurrency:\n  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}\n  cancel-in-progress: true\njobs:\n  integration:\n    runs-on: ubuntu-latest\n    timeout-minutes: 10\n    permissions:\n      contents: read\n      pull-requests: write\n    strategy:\n      matrix:\n        go: [\"1.26\", \"1.25\"]\n        node: [22]\n    steps:\n    - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v5\n      with:\n        persist-credentials: \"false\"\n    - uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6\n      with:\n        go-version: ${{ matrix.go }}\n    - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v5\n      with:\n        node-version: ${{ matrix.node }}\n    - run: go mod download\n    - run: cd integration ; npm ci\n    - run: .github/workflows/check-integration\n  federation:\n    runs-on: ubuntu-latest\n    timeout-minutes: 10\n    permissions:\n      contents: read\n      pull-requests: write\n    strategy:\n      matrix:\n        go: [\"1.26\", \"1.25\"]\n        node: [22]\n    steps:\n    - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v5\n      with:\n        persist-credentials: \"false\"\n    - uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6\n      with:\n        go-version: ${{ matrix.go }}\n    - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v5\n      with:\n        node-version: ${{ matrix.node }}\n    - run: go mod download\n    - run: cd _examples/federation ; npm install\n    - run: .github/workflows/check-federation\n  init:\n    runs-on: ubuntu-latest\n    timeout-minutes: 10\n    permissions:\n      contents: read\n      pull-requests: write\n    strategy:\n      matrix:\n        go: [\"1.26\", \"1.25\"]\n    steps:\n    - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v5\n      with:\n        persist-credentials: \"false\"\n    - uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6\n      with:\n        go-version: ${{ matrix.go }}\n    - run: .github/workflows/check-init\n"
  },
  {
    "path": ".github/workflows/lint.yml",
    "content": "name: Lint\non:\n  push:\n    branches:\n    - master\n  pull_request:\n    types: [opened, synchronize]\n# When a new revision is pushed to a PR, cancel all in-progress CI runs for that\n# PR. See https://docs.github.com/en/actions/using-jobs/using-concurrency\nconcurrency:\n  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}\n  cancel-in-progress: true\nenv:\n  GOTOOLCHAIN: local\n  GOFLAGS: \"-trimpath\"\njobs:\n  golangci-lint:\n    runs-on: ubuntu-latest\n    timeout-minutes: 10\n    permissions:\n      contents: read\n      pull-requests: write\n    env:\n      GOLANGCI_LINT_VERSION: latest\n    strategy:\n      matrix:\n        go: [\"1.26\", \"1.25\"]\n    steps:\n    - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v5\n      with:\n        persist-credentials: \"false\"\n    - uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6\n      with:\n        go-version: ${{ matrix.go }}\n    - name: golangci-lint\n      uses: golangci/golangci-lint-action@1e7e51e771db61008b38414a730f564565cf7c20 # v9.2.0\n      with:\n        version: ${{ env.GOLANGCI_LINT_VERSION }}\n        verify: false\n    - name: golangci-lint examples\n      uses: golangci/golangci-lint-action@1e7e51e771db61008b38414a730f564565cf7c20 # v9.2.0\n      with:\n        version: ${{ env.GOLANGCI_LINT_VERSION }}\n        working-directory: _examples\n"
  },
  {
    "path": ".github/workflows/report.yml",
    "content": "name: test report\non:\n  workflow_run:\n    workflows: [\"Test\"]\n    types:\n    - completed\npermissions:\n  checks: write\njobs:\n  checks:\n    runs-on: ubuntu-latest\n    timeout-minutes: 10\n    permissions:\n      contents: read\n      pull-requests: write\n    steps:\n    - name: Download Test Report\n      uses: dawidd6/action-download-artifact@2536c51d3d126276eb39f74d6bc9c72ac6ef30d3 # v16\n      with:\n        name: junit-test-results\n        workflow: ${{ github.event.workflow.id }}\n        run_id: ${{ github.event.workflow_run.id }}\n    - name: Publish Test Report\n      uses: mikepenz/action-junit-report@49b2ca06f62aa7ef83ae6769a2179271e160d8e4 # v5\n      with:\n        commit: ${{github.event.workflow_run.head_sha}}\n        report_paths: '**/*.xml'\n"
  },
  {
    "path": ".github/workflows/security.yml",
    "content": "name: Security\non:\n  push:\n    branches:\n    - master\n  pull_request:\n    types: [opened, synchronize]\nenv:\n  GOTOOLCHAIN: \"local\"\n# When a new revision is pushed to a PR, cancel all in-progress CI runs for that\n# PR. See https://docs.github.com/en/actions/using-jobs/using-concurrency\nconcurrency:\n  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}\n  cancel-in-progress: true\njobs:\n  check-secret:\n    runs-on: ubuntu-latest\n    timeout-minutes: 5\n    permissions:\n      contents: read\n      pull-requests: write\n    outputs:\n      my-secret-exists: ${{ steps.my-secret-check.outputs.defined }}\n    steps:\n    - name: Check for Secret availability\n      id: my-secret-check\n        # perform secret check and write boolean as output\n      shell: bash\n      run: |\n          if [ \"${{ secrets.OSSI_TOKEN }}\" != '' ]; then\n            echo \"defined=true\" >> $GITHUB_OUTPUT;\n          else\n            echo \"defined=false\" >> $GITHUB_OUTPUT;\n          fi\n\n  nancy: # only run when not in fork and secret is available\n    runs-on: ubuntu-latest\n    needs: [check-secret]\n    if: needs.check-secret.outputs.my-secret-exists == 'true'\n    timeout-minutes: 10\n    permissions:\n      contents: read\n      pull-requests: write\n    strategy:\n      matrix:\n        go: [\"1.25\"] # nancy is a little flaky running more than once\n    steps:\n    - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v5\n      with:\n        persist-credentials: \"false\"\n    - uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6\n      with:\n        go-version: ${{ matrix.go }}\n    - run: go mod download && go list -json -deps all > go.list\n    - uses: sonatype-nexus-community/nancy-github-action@395e2fb168f674f96502e5652103d112899ea369 # main\n      env:\n        OSSI_USERNAME: \"${{ secrets.OSSI_USERNAME }}\"\n        OSSI_TOKEN: \"${{ secrets.OSSI_TOKEN }}\"\n"
  },
  {
    "path": ".github/workflows/test.yml",
    "content": "name: Test\non:\n  push:\n    branches:\n    - master\n  pull_request:\n    types: [opened, synchronize]\nenv:\n  GOTOOLCHAIN: local\n# When a new revision is pushed to a PR, cancel all in-progress CI runs for that\n# PR. See https://docs.github.com/en/actions/using-jobs/using-concurrency\nconcurrency:\n  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}\n  cancel-in-progress: true\npermissions:\n  # Required: allow read access to the content for analysis.\n  contents: read\n  # Optional: allow read access to pull request. Use with `only-new-issues` option.\n  pull-requests: read\n  # Optional: allow write access to checks to allow the action to annotate code in the PR.\n  checks: write\njobs:\n  test:\n    timeout-minutes: 10\n    permissions:\n      contents: read\n      pull-requests: write\n    strategy:\n      matrix:\n        os: [ubuntu-latest, windows-latest]\n        go: [\"1.26\", \"1.25\"]\n    runs-on: ${{ matrix.os }}\n    continue-on-error: true\n    steps:\n    - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v5\n      with:\n        persist-credentials: \"false\"\n    - uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6\n      with:\n        go-version: ${{ matrix.go }}\n    # Install gotestsum on the VM running the action.\n    - name: Setup gotestsum\n      run: go install gotest.tools/gotestsum@latest\n    - name: Core tests\n      shell: bash\n      run: |\n        set -euo pipefail\n        go mod download\n        gotestsum --jsonfile go_test.json --junitfile report.xml --format-icons=hivis --format=pkgname-and-test-fails -- -race ./... -trimpath\n    - name: Example tests\n      shell: bash\n      if: success() || failure() # always run even if the previous step fails\n      run: |\n        cd _examples\n        go mod download\n        gotestsum --junitfile ../go_examples_report.xml --format-icons=hivis --format=pkgname-and-test-fails -- -race ./... -trimpath\n    - name: Upload Test Report\n      uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0\n      if: always() # always run even if the previous step fails\n      with:\n        name: test-junit-${{ matrix.os }}-${{ matrix.go }}\n        path: '*.xml'\n        retention-days: 1\n    - name: action-junit-report\n      shell: bash\n      if: success() || failure() # always run even if the previous step fails\n      run: |\n        echo \"### mikepenz/action-junit-report! :rocket:\" >> $GITHUB_STEP_SUMMARY\n    - name: Publish Test Report\n      uses: mikepenz/action-junit-report@49b2ca06f62aa7ef83ae6769a2179271e160d8e4 # v5\n      if: success() || failure() # always run even if the previous step fails\n      with:\n        report_paths: |\n          report.xml\n          go_examples_report.xml\n    - name: robherley/go-test-action announcement\n      shell: bash\n      if: success() || failure() # always run even if the previous step fails\n      run: |\n        echo \"### robherley/go-test-action! :rocket:\" >> $GITHUB_STEP_SUMMARY\n      #      - name: Annotate tests does not work on pull-requests for security\n      #        if: success() || failure() # always run even if the previous step fails\n      #        uses: guyarb/golang-test-annotations@v0.8.0\n      #        with:\n      #          test-results: go_test.json\n    - name: Publish go-test-action Report\n      if: success() || failure() # always run even if the previous step fails\n      uses: robherley/go-test-action@42a1975c97156330b5126c2f35ef0fb78c4c7154 # v0.7.1\n      with:\n        # Parse an exisiting [test2json](https://pkg.go.dev/cmd/test2json) file, instead of executing go test.\n        # Will always exit(0) on successful test file parse.\n        # Optional. No default\n        fromJSONFile: go_test.json\n        omit: |\n          untested\n          successful\n    - name: test-summary/action announcement\n      shell: bash\n      if: success() || failure() # always run even if the previous step fails\n      run: |\n        echo \"### test-summary/action! :rocket:\" >> $GITHUB_STEP_SUMMARY\n    - name: Publish Test Summary Report\n      uses: test-summary/action@31493c76ec9e7aa675f1585d3ed6f1da69269a86 # v2.4\n      if: success() || failure() # always run even if the previous step fails\n      with:\n        show: \"fail, skip\"\n        paths: |\n          report.xml\n          go_examples_report.xml\n"
  },
  {
    "path": ".gitignore",
    "content": "/vendor\n/docs/public\n/docs/.hugo_build.lock\n/_examples/chat/node_modules\n/integration/node_modules\n/integration/schema-fetched.graphql\n/_examples/chat/package-lock.json\n/_examples/federation/package-lock.json\n/_examples/federation/node_modules\n/codegen/gen\n/gen\n\n/.vscode\n.idea/\n*.test\n*.out\ngqlgen\n*.exe\n\nnode_modules\n\n# generated files\n/api/testdata/default/graph/generated.go\n/api/testdata/federation2/graph/federation.go\n/api/testdata/federation2/graph/generated.go"
  },
  {
    "path": ".golangci.yml",
    "content": "# All settings can be found here https://github.com/golangci/golangci-lint/blob/HEAD/.golangci.reference.yml\nversion: \"2\"\nrun:\n  concurrency: 8\n  modules-download-mode: readonly\n  issues-exit-code: 1\n  tests: true\n  allow-parallel-runners: false\nissues:\n  # Maximum count of issues with the same text.\n  # Set to 0 to disable.\n  # Default: 3\n  max-issues-per-linter: 0\n  max-same-issues: 0\n  new: false\nformatters:\n  exclusions:\n    paths:\n        - codegen/testserver/followschema/resolver.go\n        - codegen/testserver/singlefile/resolver.go\n        - codegen/testserver/usefunctionsyntaxforexecutioncontext/resolver.go\n        - generated\n  enable:\n    - golines\n    - gofumpt\n    - gci\n  settings:\n    gci:\n      sections:\n        - standard\n        - default\n        - prefix(github.com/99designs/gqlgen)\n    golines:\n      # Target maximum line length.\n      # Default: 100\n      max-len: 100\nlinters:\n  default: none\n  enable:\n    - asasalint\n    - asciicheck\n    - bidichk\n    - bodyclose\n    - copyloopvar\n    - dupl\n    - dupword\n    - durationcheck\n    - errcheck\n    - gocritic\n    - govet\n    - ineffassign\n    - misspell\n    - modernize\n    - nakedret\n    - nolintlint\n    - perfsprint\n    - reassign\n    - revive\n    - staticcheck\n    - testableexamples\n    - testifylint\n    - unconvert\n    - unparam\n    - unused\n    - usestdlibvars\n    - usetesting\n    - wastedassign\n#    - prealloc # disabled because it is a huge pain\n  settings:\n    errcheck:\n      exclude-functions:\n        - (io.Writer).Write\n        - (http.ResponseWriter).Write\n        - (*bytes.Buffer).WriteByte\n        - (*strings.Builder).WriteByte\n        - (*strings.Builder).WriteString\n        - io.Copy\n        - io.WriteString\n        - fmt.Fprintln\n    gocritic:\n      enabled-checks:\n        - emptyStringTest\n        - equalFold\n        - httpNoBody\n        - nilValReturn\n        - paramTypeCombine\n        - preferFprint\n        - yodaStyleExpr\n    govet:\n      disable:\n        - fieldalignment\n        - shadow\n        - unusedwrite\n      enable-all: true\n    modernize:\n      disable:\n        - any\n        - fmtappendf\n        - minmax\n        - rangeint\n        - reflecttypefor\n        - stditerators\n        - stringscut\n        - stringscutprefix\n        - stringsseq\n    perfsprint:\n      int-conversion: false\n      err-error: false\n      errorf: true\n      sprintf1: false\n      strconcat: false\n    revive:\n      enable-all-rules: false\n      rules:\n        - name: empty-lines\n        - name: use-any\n        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#struct-tag\n        - name: struct-tag\n          exclude: [\"**/*_go124_test.go\"]\n        - name: blank-imports\n        - name: context-as-argument\n        - name: context-keys-type\n        - name: error-return\n        - name: error-naming\n        - name: exported\n          disabled: true\n        - name: if-return\n        - name: increment-decrement\n        - name: var-declaration\n        - name: package-comments\n          disabled: true\n        - name: range\n        - name: receiver-naming\n        - name: time-naming\n        - name: unexported-return\n        - name: indent-error-flow\n        - name: errorf\n        - name: superfluous-else\n        - name: unused-parameter\n          disabled: true\n        - name: unreachable-code\n        - name: redefines-builtin-id\n    testifylint:\n      disable-all: true\n      enable:\n        - blank-import\n        - bool-compare\n        - compares\n        - empty\n        - encoded-compare\n        - error-is-as\n        - error-nil\n        - expected-actual\n        - float-compare\n        - go-require\n        - len\n        - negative-positive\n        - nil-compare\n        - require-error\n        - useless-assert\n  exclusions:\n    generated: lax\n    presets:\n      - comments\n      - common-false-positives\n      - legacy\n      - std-error-handling\n    rules:\n      - linters:\n          - dupl\n          - errcheck\n        path: _test\\.go\n      - linters:\n          - gocritic\n        path: codegen/testserver/.*/resolver\\.go\n      - linters:\n          - gocritic\n        path: _examples/federation/products/graph/entity.resolvers.go\n      # revive.use-any causes problems in some generated files\n      - path: graphql/map.go\n        text: 'use-any'\n      - path: codegen/testserver/followschema/resolver.go\n        text: 'use-any'\n      - path: codegen/testserver/singlefile/resolver.go\n        text: 'use-any'\n      - linters:\n          - staticcheck\n        path: codegen/testserver/generated_test.go\n        text: SA1019\n      - linters:\n          - staticcheck\n        path: plugin/modelgen/models_test.go\n        text: SA1019\n    paths:\n      - bin\n      - third_party$\n      - builtin$\n      - examples$\n      - generated$\n"
  },
  {
    "path": "CHANGELOG.md",
    "content": "# CHANGELOG\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),\nand this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).\n\n<a name=\"unreleased\"></a>\n## [Unreleased](https://github.com/99designs/gqlgen/compare/v0.17.50...HEAD)\n\n<!-- end of if -->\n<!-- end of CommitGroups -->\n<a name=\"v0.17.50\"></a>\n## [v0.17.50](https://github.com/99designs/gqlgen/compare/v0.17.49...v0.17.50) - 2024-09-13\n- <a href=\"https://github.com/99designs/gqlgen/commit/a6d5d84335a116e3d8b4a04fa34793ca342aef1d\"><tt>a6d5d843</tt></a> release v0.17.50\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f154d99d6dde67cc6f81cb03cb7746a2d6934926\"><tt>f154d99d</tt></a> Fix Nancy to use Go 1.22\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6b9e40e83e942611622f4fad4baa06af521780bd\"><tt>6b9e40e8</tt></a> make rewrite default for resolver layout single-file (<a href=\"https://github.com/99designs/gqlgen/pull/3243\">#3243</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1855758d8642404df9bbd80386cd9030ae96efa4\"><tt>1855758d</tt></a> chore(deps): bump dset in /integration in the npm_and_yarn group (<a href=\"https://github.com/99designs/gqlgen/pull/3268\">#3268</a>)</summary>\n\nBumps the npm_and_yarn group in /integration with 1 update: [dset](https://github.com/lukeed/dset).\n\n\nUpdates `dset` from 3.1.3 to 3.1.4\n- [Release notes](https://github.com/lukeed/dset/releases)\n- [Commits](https://github.com/lukeed/dset/compare/v3.1.3...v3.1.4)\n\n---\nupdated-dependencies:\n- dependency-name: dset\n  dependency-type: indirect\n  dependency-group: npm_and_yarn\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/fda0539e72ff64e4cbb1933b489ba263f3e274bf\"><tt>fda0539e</tt></a> Bump some more module versions (<a href=\"https://github.com/99designs/gqlgen/pull/3262\">#3262</a>)</summary>\n\n* Bump some more module versions\n\n\n* Update aurora\n\n\n* Avoid upgrade to go 1.23\n\n\n* downgrade goquery to support pre-Go 1.23 for now\n\n\n* Downgrade moq to support pre-Go 1.23 as well\n\n\n---------\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/59f0d04c4a2c86233d20c8b89eb790a16f4c0ed9\"><tt>59f0d04c</tt></a> Bump golang.org/x/net 0.29 (<a href=\"https://github.com/99designs/gqlgen/pull/3261\">#3261</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/cf42b2531c35eac85b1392f3cf8d8e7b4d8c3b48\"><tt>cf42b253</tt></a> chore(deps): bump golang.org/x/text from 0.17.0 to 0.18.0 (<a href=\"https://github.com/99designs/gqlgen/pull/3259\">#3259</a>)</summary>\n\nBumps [golang.org/x/text](https://github.com/golang/text) from 0.17.0 to 0.18.0.\n- [Release notes](https://github.com/golang/text/releases)\n- [Commits](https://github.com/golang/text/compare/v0.17.0...v0.18.0)\n\n---\nupdated-dependencies:\n- dependency-name: golang.org/x/text\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/b728c12f085033c3ea71a9634076f5e429e211bf\"><tt>b728c12f</tt></a> chore(deps): bump golang.org/x/text from 0.17.0 to 0.18.0 in /_examples (<a href=\"https://github.com/99designs/gqlgen/pull/3256\">#3256</a>)</summary>\n\nBumps [golang.org/x/text](https://github.com/golang/text) from 0.17.0 to 0.18.0.\n- [Release notes](https://github.com/golang/text/releases)\n- [Commits](https://github.com/golang/text/compare/v0.17.0...v0.18.0)\n\n---\nupdated-dependencies:\n- dependency-name: golang.org/x/text\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/cba40a382341797259b63fb474696e1b4f5bdc89\"><tt>cba40a38</tt></a> chore(deps-dev): bump vite from 5.4.2 to 5.4.3 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3257\">#3257</a>)</summary>\n\nBumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.4.2 to 5.4.3.\n- [Release notes](https://github.com/vitejs/vite/releases)\n- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)\n- [Commits](https://github.com/vitejs/vite/commits/v5.4.3/packages/vite)\n\n---\nupdated-dependencies:\n- dependency-name: vite\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f7bee06f845a0664693a5aa10b88f7c199ebd2b0\"><tt>f7bee06f</tt></a> chore(deps-dev): bump [@apollo](https://github.com/apollo)/client in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3258\">#3258</a>)</summary>\n\n- [Release notes](https://github.com/apollographql/apollo-client/releases)\n- [Changelog](https://github.com/apollographql/apollo-client/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/apollographql/apollo-client/compare/v3.11.5...v3.11.8)\n\n---\nupdated-dependencies:\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/81ac627d73f2055db168e7087c528e1ca6f848e3\"><tt>81ac627d</tt></a> chore(deps): bump robherley/go-test-action from 0.4.1 to 0.5.0 (<a href=\"https://github.com/99designs/gqlgen/pull/3255\">#3255</a>)</summary>\n\nBumps [robherley/go-test-action](https://github.com/robherley/go-test-action) from 0.4.1 to 0.5.0.\n- [Release notes](https://github.com/robherley/go-test-action/releases)\n- [Commits](https://github.com/robherley/go-test-action/compare/v0.4.1...v0.5.0)\n\n---\nupdated-dependencies:\n- dependency-name: robherley/go-test-action\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/86ac6b364ac7069c72248711e0c8240e38b3d177\"><tt>86ac6b36</tt></a> internal/code: `Unalias` element of pointer (<a href=\"https://github.com/99designs/gqlgen/pull/3250\">#3250</a>) (closes <a href=\"https://github.com/99designs/gqlgen/issues/3247\"> #3247</a>)</summary>\n\nThis reverts commit 4c4be0aeaaad758e703724fe4a6575768017ac53.\n\n* code: `Unalias` element of pointer\n\n* chore: added comment\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4c4be0aeaaad758e703724fe4a6575768017ac53\"><tt>4c4be0ae</tt></a> codegen: Unalias before lookup type (<a href=\"https://github.com/99designs/gqlgen/pull/3247\">#3247</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ab1781b12e6e9ec2fa4ad0c29f172f4fed86b67b\"><tt>ab1781b1</tt></a> codegen: Go 1.23 alias support (<a href=\"https://github.com/99designs/gqlgen/pull/3246\">#3246</a>)</summary>\n\n* code: added `Unalias` for Go 1.22\n\n* codegen: Go 1.23 alias support\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/814f7c71c128e4bafd0470a74f2f30510468374b\"><tt>814f7c71</tt></a> chore(deps): bump actions/upload-artifact from 4.3.6 to 4.4.0 (<a href=\"https://github.com/99designs/gqlgen/pull/3235\">#3235</a>)</summary>\n\nBumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.6 to 4.4.0.\n- [Release notes](https://github.com/actions/upload-artifact/releases)\n- [Commits](https://github.com/actions/upload-artifact/compare/v4.3.6...v4.4.0)\n\n---\nupdated-dependencies:\n- dependency-name: actions/upload-artifact\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1cbbc1201e75b497912ed6f0ef26be682d86df85\"><tt>1cbbc120</tt></a> chore(deps): bump github.com/rs/cors from 1.11.0 to 1.11.1 in /_examples (<a href=\"https://github.com/99designs/gqlgen/pull/3236\">#3236</a>)</summary>\n\nBumps [github.com/rs/cors](https://github.com/rs/cors) from 1.11.0 to 1.11.1.\n- [Commits](https://github.com/rs/cors/compare/v1.11.0...v1.11.1)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/rs/cors\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/2da2ac36422617ac540d0f3d1ee8fa3f3682f307\"><tt>2da2ac36</tt></a> chore(deps-dev): bump [@apollo](https://github.com/apollo)/client in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3237\">#3237</a>)</summary>\n\n- [Release notes](https://github.com/apollographql/apollo-client/releases)\n- [Changelog](https://github.com/apollographql/apollo-client/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/apollographql/apollo-client/compare/v3.11.4...v3.11.5)\n\n---\nupdated-dependencies:\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/0b9bd5ee5e459aabe4c745a09ed26147977f8045\"><tt>0b9bd5ee</tt></a> refactor: don't extract [@goField](https://github.com/goField) twice (<a href=\"https://github.com/99designs/gqlgen/pull/3234\">#3234</a>)</summary>\n\nWe already extract the values in config.Init(). Remove the duplicate logic in the modelgen plugin.\n\nWe leave the reference to GoFieldHook even though it's a noop since it's public. This makes this a non-breaking change. We will remove this during the next breaking release.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/18378f90cb1fd17ce8f2877cff5ccf0b06ab25c6\"><tt>18378f90</tt></a> feat: allow argument directives to be called even if the argument is null (<a href=\"https://github.com/99designs/gqlgen/pull/3233\">#3233</a>) (closes <a href=\"https://github.com/99designs/gqlgen/issues/3188\"> #3188</a>)</summary>\n\nThe existing implementation assumes that if an input argument is null, you don't want to call the directive. This is a very constraining assumption — directives may want to not just mutate an argument but to actually outright set it.\n\nThis is a breaking change as argument directives now need to handle null input values. Added a new config switch:\n\ncall_argument_directives_with_nulls: bool\n\nto control this new behavior.\n\n* Run go generate ./...\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3e76e7ee7cb8a8ba979e0fff88f11f0b6d2e8243\"><tt>3e76e7ee</tt></a> only close websocket once (<a href=\"https://github.com/99designs/gqlgen/pull/3231\">#3231</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/256794aafe9fb50cfd4d8dbadcf7116526cfe05d\"><tt>256794aa</tt></a> chore(deps-dev): bump vite from 5.4.0 to 5.4.2 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3229\">#3229</a>)</summary>\n\nBumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.4.0 to 5.4.2.\n- [Release notes](https://github.com/vitejs/vite/releases)\n- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)\n- [Commits](https://github.com/vitejs/vite/commits/v5.4.2/packages/vite)\n\n---\nupdated-dependencies:\n- dependency-name: vite\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/6acc182c6eab529d60a5c9575cdf18dc02ec0968\"><tt>6acc182c</tt></a> Go 1.23 support (<a href=\"https://github.com/99designs/gqlgen/pull/3226\">#3226</a>)</summary>\n\n* Added support for go 1.23\n\n* Added handling for *types.Alias\n\n* Updated golang ci lint to 1.60.2\n\n* Fixed lint issues and ignore SA1019 on generated test files\n\n* Update coverage.yml\n\n* Update fmt-and-generate.yml\n\n* Update integration.yml\n\n* Update lint.yml\n\n* Update test.yml\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f6a8220475b08d715bf26d38be2fb1c3eb0c626b\"><tt>f6a82204</tt></a> chore(deps): bump golang.org/x/tools from 0.23.0 to 0.24.0 (<a href=\"https://github.com/99designs/gqlgen/pull/3219\">#3219</a>)</summary>\n\n* chore(deps): bump golang.org/x/tools from 0.23.0 to 0.24.0\n\nBumps [golang.org/x/tools](https://github.com/golang/tools) from 0.23.0 to 0.24.0.\n- [Release notes](https://github.com/golang/tools/releases)\n- [Commits](https://github.com/golang/tools/compare/v0.23.0...v0.24.0)\n\n---\nupdated-dependencies:\n- dependency-name: golang.org/x/tools\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n\n* _examples fixup\n\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1849e124829ce7dbc8f62f991fc014b5d56493b0\"><tt>1849e124</tt></a> chore(deps): bump golang.org/x/text from 0.16.0 to 0.17.0 (<a href=\"https://github.com/99designs/gqlgen/pull/3218\">#3218</a>)</summary>\n\nBumps [golang.org/x/text](https://github.com/golang/text) from 0.16.0 to 0.17.0.\n- [Release notes](https://github.com/golang/text/releases)\n- [Commits](https://github.com/golang/text/compare/v0.16.0...v0.17.0)\n\n---\nupdated-dependencies:\n- dependency-name: golang.org/x/text\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/2f7772c9ff793c4feb8e42f28c590cb77c7ad975\"><tt>2f7772c9</tt></a> [proposal] Add [@concurrent](https://github.com/concurrent) directive for types (<a href=\"https://github.com/99designs/gqlgen/pull/3203\">#3203</a>)</summary>\n\n* Issue 3202\n\n* Issue 3202\n\n* Issue 3202\n\n* Make optional concurrent for fields of objects\n\n* Make optional concurrent for fields of objects\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/3556475adafe4b8b97a88fdc1dd7b4be21116522\"><tt>3556475a</tt></a> Fix marshaling interfaces and union types (<a href=\"https://github.com/99designs/gqlgen/pull/3211\">#3211</a>)</summary>\n\n* Fixed marshaling interfaces and union\n\n* Fixed marshaling interfaces and union\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/23abdc56c0e6a2e3f3697df12fd2564f818f4da4\"><tt>23abdc56</tt></a> chore(deps): bump github.com/urfave/cli/v2 from 2.27.3 to 2.27.4 (<a href=\"https://github.com/99designs/gqlgen/pull/3217\">#3217</a>)</summary>\n\nBumps [github.com/urfave/cli/v2](https://github.com/urfave/cli) from 2.27.3 to 2.27.4.\n- [Release notes](https://github.com/urfave/cli/releases)\n- [Changelog](https://github.com/urfave/cli/blob/main/docs/CHANGELOG.md)\n- [Commits](https://github.com/urfave/cli/compare/v2.27.3...v2.27.4)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/urfave/cli/v2\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bbc354c63ca3f737ec5e549e23eea59da1d61721\"><tt>bbc354c6</tt></a> Add local toolchain for matrix\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/3fe8329dc765c055e2f51b1b39cef7cf4377bd09\"><tt>3fe8329d</tt></a> chore(deps-dev): bump [@apollo](https://github.com/apollo)/client in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3215\">#3215</a>)</summary>\n\n- [Release notes](https://github.com/apollographql/apollo-client/releases)\n- [Changelog](https://github.com/apollographql/apollo-client/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/apollographql/apollo-client/compare/v3.11.2...v3.11.4)\n\n---\nupdated-dependencies:\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/edca7992beaf3821756b780fc8fa758f65cda705\"><tt>edca7992</tt></a> chore(deps-dev): bump vite from 5.3.5 to 5.4.0 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3216\">#3216</a>)</summary>\n\nBumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.3.5 to 5.4.0.\n- [Release notes](https://github.com/vitejs/vite/releases)\n- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)\n\n---\nupdated-dependencies:\n- dependency-name: vite\n  dependency-type: direct:development\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f0b7ee3f18c28ccda942fc1ff66441bbf4ace8b6\"><tt>f0b7ee3f</tt></a> chore(deps): bump actions/upload-artifact from 4.3.5 to 4.3.6 (<a href=\"https://github.com/99designs/gqlgen/pull/3220\">#3220</a>)</summary>\n\nBumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.5 to 4.3.6.\n- [Release notes](https://github.com/actions/upload-artifact/releases)\n- [Commits](https://github.com/actions/upload-artifact/compare/v4.3.5...v4.3.6)\n\n---\nupdated-dependencies:\n- dependency-name: actions/upload-artifact\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/719b7af38510e7d12e7b950473ae36e47e98602a\"><tt>719b7af3</tt></a> chore(deps): bump golang.org/x/text from 0.16.0 to 0.17.0 in /_examples (<a href=\"https://github.com/99designs/gqlgen/pull/3221\">#3221</a>)</summary>\n\nBumps [golang.org/x/text](https://github.com/golang/text) from 0.16.0 to 0.17.0.\n- [Release notes](https://github.com/golang/text/releases)\n- [Commits](https://github.com/golang/text/compare/v0.16.0...v0.17.0)\n\n---\nupdated-dependencies:\n- dependency-name: golang.org/x/text\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d14fd791ab7c64788b041c6ace143e355aa37879\"><tt>d14fd791</tt></a> chore(deps): bump actions/upload-artifact from 4.3.4 to 4.3.5 (<a href=\"https://github.com/99designs/gqlgen/pull/3208\">#3208</a>)</summary>\n\nBumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.4 to 4.3.5.\n- [Release notes](https://github.com/actions/upload-artifact/releases)\n- [Commits](https://github.com/actions/upload-artifact/compare/v4.3.4...v4.3.5)\n\n---\nupdated-dependencies:\n- dependency-name: actions/upload-artifact\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/564e2dc5e015acf707251801ebe31ab8651b9336\"><tt>564e2dc5</tt></a> chore(deps): bump golangci/golangci-lint-action from 6.0.1 to 6.1.0 (<a href=\"https://github.com/99designs/gqlgen/pull/3207\">#3207</a>)</summary>\n\nBumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 6.0.1 to 6.1.0.\n- [Release notes](https://github.com/golangci/golangci-lint-action/releases)\n- [Commits](https://github.com/golangci/golangci-lint-action/compare/v6.0.1...v6.1.0)\n\n---\nupdated-dependencies:\n- dependency-name: golangci/golangci-lint-action\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d3d147e6e16c3775e10f1caab3335606a25ffc15\"><tt>d3d147e6</tt></a> chore(deps): bump golang.org/x/tools from 0.22.0 to 0.23.0 (<a href=\"https://github.com/99designs/gqlgen/pull/3172\">#3172</a>)</summary>\n\n* chore(deps): bump golang.org/x/tools from 0.22.0 to 0.23.0\n\nBumps [golang.org/x/tools](https://github.com/golang/tools) from 0.22.0 to 0.23.0.\n- [Release notes](https://github.com/golang/tools/releases)\n- [Commits](https://github.com/golang/tools/compare/v0.22.0...v0.23.0)\n\n---\nupdated-dependencies:\n- dependency-name: golang.org/x/tools\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n\n\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/2d7e00b5d60d9dfb121e2a2c7338d82984f2fd8a\"><tt>2d7e00b5</tt></a> chore(deps-dev): bump typescript from 5.5.3 to 5.5.4 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3196\">#3196</a>)</summary>\n\nBumps [typescript](https://github.com/Microsoft/TypeScript) from 5.5.3 to 5.5.4.\n- [Release notes](https://github.com/Microsoft/TypeScript/releases)\n- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)\n- [Commits](https://github.com/Microsoft/TypeScript/compare/v5.5.3...v5.5.4)\n\n---\nupdated-dependencies:\n- dependency-name: typescript\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5f86c55ac1c3b3371a1366a0ee06cbe3ea45f575\"><tt>5f86c55a</tt></a> chore(deps-dev): bump [@graphql](https://github.com/graphql)-codegen/client-preset in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3197\">#3197</a>)</summary>\n\n- [Release notes](https://github.com/dotansimha/graphql-code-generator/releases)\n- [Changelog](https://github.com/dotansimha/graphql-code-generator/blob/master/packages/presets/client/CHANGELOG.md)\n\n---\nupdated-dependencies:\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/552bb4b9dd45e09924ac3a8ebadc2675c3c8ee3f\"><tt>552bb4b9</tt></a> chore(deps-dev): bump vite from 5.3.4 to 5.3.5 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3199\">#3199</a>)</summary>\n\nBumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.3.4 to 5.3.5.\n- [Release notes](https://github.com/vitejs/vite/releases)\n- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)\n- [Commits](https://github.com/vitejs/vite/commits/v5.3.5/packages/vite)\n\n---\nupdated-dependencies:\n- dependency-name: vite\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/45a29fe01baa1f00faefa423362b426e144bcab8\"><tt>45a29fe0</tt></a> chore(deps): bump github.com/urfave/cli/v2 from 2.27.2 to 2.27.3 (<a href=\"https://github.com/99designs/gqlgen/pull/3200\">#3200</a>)</summary>\n\nBumps [github.com/urfave/cli/v2](https://github.com/urfave/cli) from 2.27.2 to 2.27.3.\n- [Release notes](https://github.com/urfave/cli/releases)\n- [Changelog](https://github.com/urfave/cli/blob/main/docs/CHANGELOG.md)\n- [Commits](https://github.com/urfave/cli/compare/v2.27.2...v2.27.3)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/urfave/cli/v2\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/3c2443e495496109759da0b9cdb58bff2c5226d4\"><tt>3c2443e4</tt></a> chore(deps): bump golang.org/x/sync from 0.7.0 to 0.8.0 in /_examples (<a href=\"https://github.com/99designs/gqlgen/pull/3206\">#3206</a>)</summary>\n\nBumps [golang.org/x/sync](https://github.com/golang/sync) from 0.7.0 to 0.8.0.\n- [Commits](https://github.com/golang/sync/compare/v0.7.0...v0.8.0)\n\n---\nupdated-dependencies:\n- dependency-name: golang.org/x/sync\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/52f65d0fe9e0ba884b9200308474c8bf5c98ab43\"><tt>52f65d0f</tt></a> chore(deps-dev): bump vitest from 2.0.4 to 2.0.5 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3209\">#3209</a>)</summary>\n\nBumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 2.0.4 to 2.0.5.\n- [Release notes](https://github.com/vitest-dev/vitest/releases)\n- [Commits](https://github.com/vitest-dev/vitest/commits/v2.0.5/packages/vitest)\n\n---\nupdated-dependencies:\n- dependency-name: vitest\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1beac8b7d0ac01b67f0e928ad7f93d9a41184b0b\"><tt>1beac8b7</tt></a> chore(deps-dev): bump [@apollo](https://github.com/apollo)/client in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3210\">#3210</a>)</summary>\n\n- [Release notes](https://github.com/apollographql/apollo-client/releases)\n- [Changelog](https://github.com/apollographql/apollo-client/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/apollographql/apollo-client/compare/v3.10.8...v3.11.2)\n\n---\nupdated-dependencies:\n  dependency-type: direct:development\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9b031e4dfe861b3310e5e7e06650ab7a94c8ab3e\"><tt>9b031e4d</tt></a> chore: fix typos in comments, tests and unexported vars (<a href=\"https://github.com/99designs/gqlgen/pull/3193\">#3193</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/892c4842f9eae7b1392f48b9bec0e13cf76d9284\"><tt>892c4842</tt></a> refactor: decrease indentation in api.ReplacePlugin (<a href=\"https://github.com/99designs/gqlgen/pull/3194\">#3194</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d1682f7cb7253faf70ed8a6ab33f3a64db5fef91\"><tt>d1682f7c</tt></a> chore(deps-dev): bump vite from 5.3.3 to 5.3.4 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3190\">#3190</a>)</summary>\n\nBumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.3.3 to 5.3.4.\n- [Release notes](https://github.com/vitejs/vite/releases)\n- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)\n- [Commits](https://github.com/vitejs/vite/commits/v5.3.4/packages/vite)\n\n---\nupdated-dependencies:\n- dependency-name: vite\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/cfc9863a342789920002b1829518cc656d430052\"><tt>cfc9863a</tt></a> chore(deps-dev): bump vitest from 2.0.2 to 2.0.4 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3189\">#3189</a>)</summary>\n\nBumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 2.0.2 to 2.0.4.\n- [Release notes](https://github.com/vitest-dev/vitest/releases)\n- [Commits](https://github.com/vitest-dev/vitest/commits/v2.0.4/packages/vitest)\n\n---\nupdated-dependencies:\n- dependency-name: vitest\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1cc0a17b22d28062c949f57c5907b0ab10a4e740\"><tt>1cc0a17b</tt></a> Revert \"feat: allow argument directives to be called even if the argument is …\" (<a href=\"https://github.com/99designs/gqlgen/pull/3191\">#3191</a>)</summary>\n\nThis reverts commit 0fb31a3ed2a63552eddcf7c2a6c40aa0d59bd4cc.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/0fb31a3ed2a63552eddcf7c2a6c40aa0d59bd4cc\"><tt>0fb31a3e</tt></a> feat: allow argument directives to be called even if the argument is null (<a href=\"https://github.com/99designs/gqlgen/pull/3188\">#3188</a>)</summary>\n\nThe existing implementation assumes that if an input argument is null, you don't want to call the directive. This is a very constraining assumption — directives may want to not just mutate an argument but to actually outright set it.\n\nThis is a breaking change as argument directives now need to handle null input values. Added a new config switch:\n\ncall_argument_directives_with_nulls: bool\n\nto control this new behavior.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/cd82be01af7395eb6cf52fb5c05649af5d9f5b0a\"><tt>cd82be01</tt></a> refactor: significantly clean up the federation.gotpl template (<a href=\"https://github.com/99designs/gqlgen/pull/3187\">#3187</a>) (closes <a href=\"https://github.com/99designs/gqlgen/issues/2991\"> #2991</a>)</summary>\n\n* fix: fix Federation example\n\nSome configurations weren't working due to a missing resolver.\n\n* chore: Introduce mechanism for running all example Federation subgraphs\n\nThis enables engineers to more easily run the debugger on the Federation example. Updated README to show how to use it.\n\n* refactor: significantly clean up the federation.gotpl template\n\nThere were a number of inline structs and inline functions that made it extremely hard to reason about what the code is doing. Split these out into smaller functions with less closures and mutation.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a63f94bb1cc915aea3045f435963db07c9f52d20\"><tt>a63f94bb</tt></a> chore(deps-dev): bump vitest from 1.6.0 to 2.0.2 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3185\">#3185</a>)</summary>\n\nBumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 1.6.0 to 2.0.2.\n- [Release notes](https://github.com/vitest-dev/vitest/releases)\n- [Commits](https://github.com/vitest-dev/vitest/commits/v2.0.2/packages/vitest)\n\n---\nupdated-dependencies:\n- dependency-name: vitest\n  dependency-type: direct:development\n  update-type: version-update:semver-major\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/de315d3d244affa21fb6ed91a8039161e179d8cb\"><tt>de315d3d</tt></a> chore: Refactor federation.go to make it easier to read (<a href=\"https://github.com/99designs/gqlgen/pull/3183\">#3183</a>) (closes <a href=\"https://github.com/99designs/gqlgen/issues/2991\"> #2991</a>)</summary>\n\n* chore: Refactor federation.go\n\n- Cut functions into smaller functions\n- Remove mutation in several locations\n\n\n* Refactor InjectSourcesLate\n\nEasier to reason about and read this way.\n\n* Re-run go generate ./...\n\n* regenerate\n\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/4d8d93cddd9c4000b485331399dfae465627cb17\"><tt>4d8d93cd</tt></a> Make cache generic to avoid casting (<a href=\"https://github.com/99designs/gqlgen/pull/3179\">#3179</a>)</summary>\n\n* Make cache generic to avoid casting\n\n\n* Update handler/handler.go\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f2cf11e5f603210cb9cc1b237741617ef17a9812\"><tt>f2cf11e5</tt></a> chore(deps-dev): bump [@graphql](https://github.com/graphql)-codegen/client-preset in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3174\">#3174</a>)</summary>\n\n- [Release notes](https://github.com/dotansimha/graphql-code-generator/releases)\n- [Changelog](https://github.com/dotansimha/graphql-code-generator/blob/master/packages/presets/client/CHANGELOG.md)\n\n---\nupdated-dependencies:\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/fc150db06d1a37eddf6dc844100bfe2e806b6257\"><tt>fc150db0</tt></a> chore(deps-dev): bump typescript from 5.5.2 to 5.5.3 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3175\">#3175</a>)</summary>\n\nBumps [typescript](https://github.com/Microsoft/TypeScript) from 5.5.2 to 5.5.3.\n- [Release notes](https://github.com/Microsoft/TypeScript/releases)\n- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)\n- [Commits](https://github.com/Microsoft/TypeScript/compare/v5.5.2...v5.5.3)\n\n---\nupdated-dependencies:\n- dependency-name: typescript\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/60c9f671f88df4df2dd11481a88bc25f66d832f2\"><tt>60c9f671</tt></a> chore(deps): bump actions/upload-artifact from 4.3.3 to 4.3.4 (<a href=\"https://github.com/99designs/gqlgen/pull/3176\">#3176</a>)</summary>\n\nBumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.3 to 4.3.4.\n- [Release notes](https://github.com/actions/upload-artifact/releases)\n- [Commits](https://github.com/actions/upload-artifact/compare/v4.3.3...v4.3.4)\n\n---\nupdated-dependencies:\n- dependency-name: actions/upload-artifact\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/59bdde191c523691158f87ec9cddc5dd32fd41c4\"><tt>59bdde19</tt></a> chore(deps-dev): bump vite from 5.3.2 to 5.3.3 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3173\">#3173</a>)</summary>\n\nBumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.3.2 to 5.3.3.\n- [Release notes](https://github.com/vitejs/vite/releases)\n- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)\n- [Commits](https://github.com/vitejs/vite/commits/v5.3.3/packages/vite)\n\n---\nupdated-dependencies:\n- dependency-name: vite\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/0ca3b19e0e767553a92080ad5f7802dc6f510903\"><tt>0ca3b19e</tt></a> chore(deps): bump github.com/rs/cors (<a href=\"https://github.com/99designs/gqlgen/pull/3171\">#3171</a>)</summary>\n\nBumps the go_modules group with 1 update in the /_examples/websocket-initfunc/server directory: [github.com/rs/cors](https://github.com/rs/cors).\n\n\nUpdates `github.com/rs/cors` from 1.9.0 to 1.11.0\n- [Commits](https://github.com/rs/cors/compare/v1.9.0...v1.11.0)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/rs/cors\n  dependency-type: direct:production\n  dependency-group: go_modules\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d0e689285690078d0d8f7418422397b104abaeec\"><tt>d0e68928</tt></a> Nulls are now unmarshalled as zero values for primitive types (<a href=\"https://github.com/99designs/gqlgen/pull/3162\">#3162</a>)</summary>\n\n* Nulls are now unmarshalled as zero values for primitive types\n\n* Address uint and run gofumpt\n\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/dce2e3537e54d90769952f5985f5bfd2b55aa289\"><tt>dce2e353</tt></a> chore(deps): bump test-summary/action from 2.3 to 2.4 (<a href=\"https://github.com/99designs/gqlgen/pull/3163\">#3163</a>)</summary>\n\nBumps [test-summary/action](https://github.com/test-summary/action) from 2.3 to 2.4.\n- [Release notes](https://github.com/test-summary/action/releases)\n- [Commits](https://github.com/test-summary/action/compare/v2.3...v2.4)\n\n---\nupdated-dependencies:\n- dependency-name: test-summary/action\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/2afa0c22c297881647816815236670fb72fbd78a\"><tt>2afa0c22</tt></a> chore(deps-dev): bump [@apollo](https://github.com/apollo)/client in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3164\">#3164</a>)</summary>\n\n- [Release notes](https://github.com/apollographql/apollo-client/releases)\n- [Changelog](https://github.com/apollographql/apollo-client/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/apollographql/apollo-client/compare/v3.10.6...v3.10.8)\n\n---\nupdated-dependencies:\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/2aeb15188ed6c8f448f2c67765e5ba32ddfed029\"><tt>2aeb1518</tt></a> chore(deps-dev): bump [@graphql](https://github.com/graphql)-codegen/client-preset in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3165\">#3165</a>)</summary>\n\n- [Release notes](https://github.com/dotansimha/graphql-code-generator/releases)\n- [Changelog](https://github.com/dotansimha/graphql-code-generator/blob/master/packages/presets/client/CHANGELOG.md)\n\n---\nupdated-dependencies:\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/28b2f4942734a5c0984bc0e591516970cca624b6\"><tt>28b2f494</tt></a> chore(deps-dev): bump vite from 5.3.1 to 5.3.2 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3166\">#3166</a>)</summary>\n\nBumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.3.1 to 5.3.2.\n- [Release notes](https://github.com/vitejs/vite/releases)\n- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)\n- [Commits](https://github.com/vitejs/vite/commits/v5.3.2/packages/vite)\n\n---\nupdated-dependencies:\n- dependency-name: vite\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f82d604a3c424c14f3195916bb5eaa8796786b2e\"><tt>f82d604a</tt></a> chore(deps-dev): bump [@graphql](https://github.com/graphql)-codegen/schema-ast in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3167\">#3167</a>)</summary>\n\n- [Release notes](https://github.com/dotansimha/graphql-code-generator/releases)\n- [Changelog](https://github.com/dotansimha/graphql-code-generator/blob/master/packages/plugins/other/schema-ast/CHANGELOG.md)\n\n---\nupdated-dependencies:\n  dependency-type: direct:development\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/dd37ea00d89c1a4f9b0f276fd881862b49a4d3d3\"><tt>dd37ea00</tt></a> chore(deps-dev): bump typescript from 5.4.5 to 5.5.2 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3157\">#3157</a>)</summary>\n\nBumps [typescript](https://github.com/Microsoft/TypeScript) from 5.4.5 to 5.5.2.\n- [Release notes](https://github.com/Microsoft/TypeScript/releases)\n- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)\n- [Commits](https://github.com/Microsoft/TypeScript/compare/v5.4.5...v5.5.2)\n\n---\nupdated-dependencies:\n- dependency-name: typescript\n  dependency-type: direct:development\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/7b9c3223626c9c8e8a8990d7dd5342b44ddce59a\"><tt>7b9c3223</tt></a> chore(deps-dev): bump graphql from 16.8.2 to 16.9.0 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3158\">#3158</a>)</summary>\n\nBumps [graphql](https://github.com/graphql/graphql-js) from 16.8.2 to 16.9.0.\n- [Release notes](https://github.com/graphql/graphql-js/releases)\n- [Commits](https://github.com/graphql/graphql-js/compare/v16.8.2...v16.9.0)\n\n---\nupdated-dependencies:\n- dependency-name: graphql\n  dependency-type: direct:development\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/b822c2c071a74223b2c04a1fb16b303f29a3bf99\"><tt>b822c2c0</tt></a> chore(deps): bump mikepenz/action-junit-report from 4.3.0 to 4.3.1 (<a href=\"https://github.com/99designs/gqlgen/pull/3159\">#3159</a>)</summary>\n\nBumps [mikepenz/action-junit-report](https://github.com/mikepenz/action-junit-report) from 4.3.0 to 4.3.1.\n- [Release notes](https://github.com/mikepenz/action-junit-report/releases)\n- [Commits](https://github.com/mikepenz/action-junit-report/compare/v4.3.0...v4.3.1)\n\n---\nupdated-dependencies:\n- dependency-name: mikepenz/action-junit-report\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/c152583143145b014ec7d580d75407b3e3876dc2\"><tt>c1525831</tt></a> chore(deps-dev): bump [@apollo](https://github.com/apollo)/client in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3156\">#3156</a>)</summary>\n\n- [Release notes](https://github.com/apollographql/apollo-client/releases)\n- [Changelog](https://github.com/apollographql/apollo-client/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/apollographql/apollo-client/compare/v3.10.5...v3.10.6)\n\n---\nupdated-dependencies:\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/feab5f51475280ae275bf68046fe4585b79ab66d\"><tt>feab5f51</tt></a> fix bug: POST Insufficient rigorous judgment leads to invalid SSE (<a href=\"https://github.com/99designs/gqlgen/pull/3153\">#3153</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7c8bc50dfe6b46b840418276fb193b711066742c\"><tt>7c8bc50d</tt></a> Add failing test as example (<a href=\"https://github.com/99designs/gqlgen/pull/3151\">#3151</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d00ace38426ff35661eff4114f447bcd517e0e5c\"><tt>d00ace38</tt></a> Add prettier test results (<a href=\"https://github.com/99designs/gqlgen/pull/3148\">#3148</a>)</summary>\n\n* Add prettier test results\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/641377d746653342d06479171d24f9aeedcde790\"><tt>641377d7</tt></a> chore(deps-dev): bump ws in /integration in the npm_and_yarn group (<a href=\"https://github.com/99designs/gqlgen/pull/3147\">#3147</a>)</summary>\n\nBumps the npm_and_yarn group in /integration with 1 update: [ws](https://github.com/websockets/ws).\n\n\nUpdates `ws` from 8.16.0 to 8.17.1\n- [Release notes](https://github.com/websockets/ws/releases)\n- [Commits](https://github.com/websockets/ws/compare/8.16.0...8.17.1)\n\n---\nupdated-dependencies:\n- dependency-name: ws\n  dependency-type: indirect\n  dependency-group: npm_and_yarn\n...\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e724bde5a1b41c4b4b7b26661379d2f40f011642\"><tt>e724bde5</tt></a> docs: missing 'repeatable' in [@goExtraField](https://github.com/goExtraField) directive (<a href=\"https://github.com/99designs/gqlgen/pull/3150\">#3150</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/85459a326196e5354a4b4c9458ba41801217a59c\"><tt>85459a32</tt></a> Fix typo in config field names (<a href=\"https://github.com/99designs/gqlgen/pull/3149\">#3149</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1422ff258ab7d37531c3023fcdb6c545241bc7b6\"><tt>1422ff25</tt></a> feat: Change plugin signatures (<a href=\"https://github.com/99designs/gqlgen/pull/2011\">#2011</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/04b13fdbc90ed57fe47a30965158555c94ff2ccb\"><tt>04b13fdb</tt></a> chore(deps-dev): bump vite from 5.2.13 to 5.3.1 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3144\">#3144</a>)</summary>\n\nBumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.2.13 to 5.3.1.\n- [Release notes](https://github.com/vitejs/vite/releases)\n- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)\n- [Commits](https://github.com/vitejs/vite/commits/v5.3.1/packages/vite)\n\n---\nupdated-dependencies:\n- dependency-name: vite\n  dependency-type: direct:development\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a1ccf9713963557f39608267f31fee86b52023a8\"><tt>a1ccf971</tt></a> chore(deps-dev): bump [@apollo](https://github.com/apollo)/client in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3143\">#3143</a>)</summary>\n\n- [Release notes](https://github.com/apollographql/apollo-client/releases)\n- [Changelog](https://github.com/apollographql/apollo-client/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/apollographql/apollo-client/compare/v3.10.4...v3.10.5)\n\n---\nupdated-dependencies:\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8a59a2c46bdd3e5ec22102dd558a6359618d8d81\"><tt>8a59a2c4</tt></a> chore(deps-dev): bump graphql from 16.8.1 to 16.8.2 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3142\">#3142</a>)</summary>\n\nBumps [graphql](https://github.com/graphql/graphql-js) from 16.8.1 to 16.8.2.\n- [Release notes](https://github.com/graphql/graphql-js/releases)\n- [Commits](https://github.com/graphql/graphql-js/compare/v16.8.1...v16.8.2)\n\n---\nupdated-dependencies:\n- dependency-name: graphql\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/80098c67fe897172f4517605acc0e11e5972ed87\"><tt>80098c67</tt></a> chore(deps-dev): bump [@graphql](https://github.com/graphql)-codegen/client-preset in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3141\">#3141</a>)</summary>\n\n- [Release notes](https://github.com/dotansimha/graphql-code-generator/releases)\n- [Changelog](https://github.com/dotansimha/graphql-code-generator/blob/master/packages/presets/client/CHANGELOG.md)\n\n---\nupdated-dependencies:\n  dependency-type: direct:development\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/fc90169b6ead4ab5ea30938555ca097cce2eb420\"><tt>fc90169b</tt></a> chore(deps): bump google.golang.org/protobuf from 1.34.1 to 1.34.2 (<a href=\"https://github.com/99designs/gqlgen/pull/3140\">#3140</a>)</summary>\n\nBumps google.golang.org/protobuf from 1.34.1 to 1.34.2.\n\n---\nupdated-dependencies:\n- dependency-name: google.golang.org/protobuf\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fb67b709af4f0c5ba6eff8222c728b076a6eb09b\"><tt>fb67b709</tt></a> v0.17.49 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.49\"></a>\n## [v0.17.49](https://github.com/99designs/gqlgen/compare/v0.17.48...v0.17.49) - 2024-06-13\n- <a href=\"https://github.com/99designs/gqlgen/commit/d093c6e54db0419ac399302a06bb2a00ebcd9ca7\"><tt>d093c6e5</tt></a> release v0.17.49\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a4f997f867ad48ff0995099e4c08b951748b2335\"><tt>a4f997f8</tt></a> refactor: add missed file.Close() and use t.TempDir() (<a href=\"https://github.com/99designs/gqlgen/pull/3137\">#3137</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f813598b5e5bc075fe4d2e9fcf011ccd792a7a09\"><tt>f813598b</tt></a> <a href=\"https://github.com/99designs/gqlgen/pull/3118\">#3118</a> Add token limit option to fix CVE-2023-49559 (<a href=\"https://github.com/99designs/gqlgen/pull/3136\">#3136</a>)</summary>\n\n* Use ParseQueryWithLmit and add parserTokenLimit to executor\n\n* add parser token limit test\n\n* remove failing test\n\n* move default token limit to const\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ee1e18c7c4ad5accdaec55400c2395d793c0a406\"><tt>ee1e18c7</tt></a> chore(deps-dev): bump braces in /integration in the npm_and_yarn group (<a href=\"https://github.com/99designs/gqlgen/pull/3134\">#3134</a>)</summary>\n\nBumps the npm_and_yarn group in /integration with 1 update: [braces](https://github.com/micromatch/braces).\n\n\nUpdates `braces` from 3.0.2 to 3.0.3\n- [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/micromatch/braces/compare/3.0.2...3.0.3)\n\n---\nupdated-dependencies:\n- dependency-name: braces\n  dependency-type: indirect\n  dependency-group: npm_and_yarn\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d6226db6b2bba617edf9e9dbd660469dea26a13f\"><tt>d6226db6</tt></a> chore(deps): bump github.com/vektah/gqlparser/v2 from 2.5.12 to 2.5.14 in the go_modules group (<a href=\"https://github.com/99designs/gqlgen/pull/3133\">#3133</a>)</summary>\n\n* chore(deps): bump github.com/vektah/gqlparser/v2 in the go_modules group\n\nBumps the go_modules group with 1 update: [github.com/vektah/gqlparser/v2](https://github.com/vektah/gqlparser).\n\n\nUpdates `github.com/vektah/gqlparser/v2` from 2.5.12 to 2.5.14\n- [Release notes](https://github.com/vektah/gqlparser/releases)\n- [Commits](https://github.com/vektah/gqlparser/compare/v2.5.12...v2.5.14)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/vektah/gqlparser/v2\n  dependency-type: direct:production\n  dependency-group: go_modules\n...\n\n\n* Update to v2.5.16\n\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/6daceaf3d0fccb420bc6618d7e76b70f5c19ed65\"><tt>6daceaf3</tt></a> Linter update + add revive rules (<a href=\"https://github.com/99designs/gqlgen/pull/3127\">#3127</a>)</summary>\n\n* Linter update + add revive rules\n\n\n* More revive lints\n\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e6860c35b5fc89f42c9d27a64bd831aa54561590\"><tt>e6860c35</tt></a> chore(deps): bump golang.org/x/tools from 0.21.0 to 0.22.0 (<a href=\"https://github.com/99designs/gqlgen/pull/3125\">#3125</a>)</summary>\n\nBumps [golang.org/x/tools](https://github.com/golang/tools) from 0.21.0 to 0.22.0.\n- [Release notes](https://github.com/golang/tools/releases)\n- [Commits](https://github.com/golang/tools/compare/v0.21.0...v0.22.0)\n\n---\nupdated-dependencies:\n- dependency-name: golang.org/x/tools\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/3bad9617005ff95a0c83ed066036cb95596153cf\"><tt>3bad9617</tt></a> chore(deps): bump golang.org/x/text from 0.15.0 to 0.16.0 (<a href=\"https://github.com/99designs/gqlgen/pull/3124\">#3124</a>)</summary>\n\n* chore(deps): bump golang.org/x/text from 0.15.0 to 0.16.0\n\nBumps [golang.org/x/text](https://github.com/golang/text) from 0.15.0 to 0.16.0.\n- [Release notes](https://github.com/golang/text/releases)\n- [Commits](https://github.com/golang/text/compare/v0.15.0...v0.16.0)\n\n---\nupdated-dependencies:\n- dependency-name: golang.org/x/text\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n\n* Update examples go mod\n\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/4492b3c0536a927e0409d07d47f7a6f7e02fa38f\"><tt>4492b3c0</tt></a> chore(deps-dev): bump vite from 5.2.12 to 5.2.13 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3126\">#3126</a>)</summary>\n\nBumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.2.12 to 5.2.13.\n- [Release notes](https://github.com/vitejs/vite/releases)\n- [Changelog](https://github.com/vitejs/vite/blob/v5.2.13/packages/vite/CHANGELOG.md)\n- [Commits](https://github.com/vitejs/vite/commits/v5.2.13/packages/vite)\n\n---\nupdated-dependencies:\n- dependency-name: vite\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8ec8d795c24b62660527ade1d7a1ee33e8402ebf\"><tt>8ec8d795</tt></a> chore(deps): bump golang.org/x/text from 0.15.0 to 0.16.0 in /_examples (<a href=\"https://github.com/99designs/gqlgen/pull/3123\">#3123</a>)</summary>\n\nBumps [golang.org/x/text](https://github.com/golang/text) from 0.15.0 to 0.16.0.\n- [Release notes](https://github.com/golang/text/releases)\n- [Commits](https://github.com/golang/text/compare/v0.15.0...v0.16.0)\n\n---\nupdated-dependencies:\n- dependency-name: golang.org/x/text\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d9ba340552d1adb25e32584b2a4d3dfc9e254d24\"><tt>d9ba3405</tt></a> v0.17.48 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.48\"></a>\n## [v0.17.48](https://github.com/99designs/gqlgen/compare/v0.17.47...v0.17.48) - 2024-06-06\n- <a href=\"https://github.com/99designs/gqlgen/commit/621350a1aaddf80e8ef4344367dde0f83c2c6511\"><tt>621350a1</tt></a> release v0.17.48\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/fbf73ee1f0daecd78fc5f65634a4a9ae59d20255\"><tt>fbf73ee1</tt></a> chore(deps-dev): bump vite from 5.2.11 to 5.2.12 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3117\">#3117</a>)</summary>\n\nBumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.2.11 to 5.2.12.\n- [Release notes](https://github.com/vitejs/vite/releases)\n- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)\n- [Commits](https://github.com/vitejs/vite/commits/v5.2.12/packages/vite)\n\n---\nupdated-dependencies:\n- dependency-name: vite\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e07134ab3e187fd878711973ff7b2cd886450cdc\"><tt>e07134ab</tt></a> add option to omit panic handlers during development (<a href=\"https://github.com/99designs/gqlgen/pull/3114\">#3114</a>)</summary>\n\nsee docs for motivation\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1a7c6090e09cb16ba2469723d90278f537bd10a9\"><tt>1a7c6090</tt></a> refactor: fix gocritic lint issues (<a href=\"https://github.com/99designs/gqlgen/pull/3113\">#3113</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4114515fa0368c4afde831697e351820bb1ab039\"><tt>4114515f</tt></a> refactor: use errors.New instead of fmt.Errorf (<a href=\"https://github.com/99designs/gqlgen/pull/3112\">#3112</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/93f6366dc7090e11045bbee310218947975d11e6\"><tt>93f6366d</tt></a> Omit gqlgen version in config files used for tests (<a href=\"https://github.com/99designs/gqlgen/pull/3111\">#3111</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/dae915d2f8f3614c08f40ac8bc1544a163e98559\"><tt>dae915d2</tt></a> Correct dataloader example (<a href=\"https://github.com/99designs/gqlgen/pull/3110\">#3110</a>)</summary>\n\nDataloader requires the value and error slice to be of equal length, in order to correctly return the values.\n\nLink: https://github.com/vikstrous/dataloadgen/blob/7de6ebe3d882737607ce2ba646e8d6ec652b32e3/dataloadgen_test.go#L19-L20\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/bd9219ddac4d558aff036076a6b6959e920c491d\"><tt>bd9219dd</tt></a> Go template function to split string into array of strings. (<a href=\"https://github.com/99designs/gqlgen/pull/3108\">#3108</a>)</summary>\n\n* added new template function to split string\n\n* StrSplit func to upper\n\n---------\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6c83b9ea14bf09253abe95e4c932e064d2df6748\"><tt>6c83b9ea</tt></a> Remove duplicated return_pointers_in_unmarshalinput explanation (<a href=\"https://github.com/99designs/gqlgen/pull/3109\">#3109</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d2a6bd5fb544cba3445a69aa33b81d4d31b2a90e\"><tt>d2a6bd5f</tt></a> refactor: fix testifylint.go-require lint issues (<a href=\"https://github.com/99designs/gqlgen/pull/3107\">#3107</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/b18d02878e0e77ffb169cc9d7fc99afe25dc192b\"><tt>b18d0287</tt></a> testifylint v1.3.0 fixes (<a href=\"https://github.com/99designs/gqlgen/pull/3103\">#3103</a>)</summary>\n\n* Resolve Merge conflict\n\n\n* Autofixes\n\n\n* Lots more fixes and formatting\n\n\n* Add one more\n\n\n* Apply suggestions from code review\n\n\n---------\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bbb0c9590e8da828fe7192c9f5350ca7bda2418d\"><tt>bbb0c959</tt></a> chore: fix tests, pin golangci-lint version (<a href=\"https://github.com/99designs/gqlgen/pull/3105\">#3105</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/57e88b27b910d32ecb9bcbcb9edf60f8766bcc3b\"><tt>57e88b27</tt></a> Forgot the examples portion (<a href=\"https://github.com/99designs/gqlgen/pull/3101\">#3101</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ff77f8b2b6c69530cb4b029f7fa25f2a7158faaf\"><tt>ff77f8b2</tt></a> Some minor test lint (<a href=\"https://github.com/99designs/gqlgen/pull/3102\">#3102</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/90f2271e76999ab1a359db225e7fc7827753ff2a\"><tt>90f2271e</tt></a> refactor: use t.Log instead of fmt.Print (<a href=\"https://github.com/99designs/gqlgen/pull/3099\">#3099</a>)</summary>\n\n* refactor: use t.Log instead of fmt.Printf\n\n* Add back failure context as to what errors happened and where\n\n\n---------\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d7447c69147ead3fbf59e209e5419e86dce39cc1\"><tt>d7447c69</tt></a> refactor: rename local variables to match Go codestyle (<a href=\"https://github.com/99designs/gqlgen/pull/3100\">#3100</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/834d832c05dd4a023b9f0a2d98eacba43a718f6b\"><tt>834d832c</tt></a> refactor: avoid panic in tests (<a href=\"https://github.com/99designs/gqlgen/pull/3098\">#3098</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/71845858bdc47fa4cf8ff8abb36672e7af079206\"><tt>71845858</tt></a> Ignore gorilla/websocket 1.5.1 in dependabot (<a href=\"https://github.com/99designs/gqlgen/pull/3097\">#3097</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4ecfec907bffde2e50f4a96e7556bafaa6b5a241\"><tt>4ecfec90</tt></a> Fix go install gqlgen binary (<a href=\"https://github.com/99designs/gqlgen/pull/3095\">#3095</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/866075cd03250654561c15894f90628e50016e32\"><tt>866075cd</tt></a> refactor: simplify with strconv.FormatBool (<a href=\"https://github.com/99designs/gqlgen/pull/3094\">#3094</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ab19907d005e437f4d6365529363741f8b993afd\"><tt>ab19907d</tt></a> refactor: UnmarshalID implementation (<a href=\"https://github.com/99designs/gqlgen/pull/3093\">#3093</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a9965fbd85f0f5aff1aebf2652d40fcd1ce6eb4f\"><tt>a9965fbd</tt></a> refactor: use 'any' instead of 'interface{}' for consistency (<a href=\"https://github.com/99designs/gqlgen/pull/3090\">#3090</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d5c9f896419142f6378639b6eec93584fbf829ed\"><tt>d5c9f896</tt></a> Embed extra fields config (<a href=\"https://github.com/99designs/gqlgen/pull/3088\">#3088</a>)</summary>\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/0b9e6f9c394f189f759c75755fb24371a4c77e46\"><tt>0b9e6f9c</tt></a> chore(deps-dev): bump [@apollo](https://github.com/apollo)/client in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3085\">#3085</a>)</summary>\n\n- [Release notes](https://github.com/apollographql/apollo-client/releases)\n- [Changelog](https://github.com/apollographql/apollo-client/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/apollographql/apollo-client/compare/v3.10.3...v3.10.4)\n\n---\nupdated-dependencies:\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/33aad657bf72c7fe710576026338b664015c0a7e\"><tt>33aad657</tt></a> chore(deps-dev): bump [@graphql](https://github.com/graphql)-codegen/client-preset in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3084\">#3084</a>)</summary>\n\n- [Release notes](https://github.com/dotansimha/graphql-code-generator/releases)\n- [Changelog](https://github.com/dotansimha/graphql-code-generator/blob/master/packages/presets/client/CHANGELOG.md)\n\n---\nupdated-dependencies:\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/58d6978ed7872bbbddff4a87d04368d537d1d52e\"><tt>58d6978e</tt></a> v0.17.47 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.47\"></a>\n## [v0.17.47](https://github.com/99designs/gqlgen/compare/v0.17.46...v0.17.47) - 2024-05-18\n- <a href=\"https://github.com/99designs/gqlgen/commit/a9f2b50006e8c9099be055afeb7611c4d730d003\"><tt>a9f2b500</tt></a> release v0.17.47\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/611cbcecf7901ff8e6805194b03b07247d536eb1\"><tt>611cbcec</tt></a> Update gqlparser (<a href=\"https://github.com/99designs/gqlgen/pull/3080\">#3080</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/3a5827d430dab85ce0b9144ee9aaa3a4319c1884\"><tt>3a5827d4</tt></a> Fix <a href=\"https://github.com/99designs/gqlgen/pull/2856\">#2856</a>: resolver receive previous implementation on render (<a href=\"https://github.com/99designs/gqlgen/pull/2886\">#2886</a>)</summary>\n\n* pass previous impl to resolver\n\n* pass previous only and not default\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e0125301d9b22a15e4b62ee80c13d831c57c67ba\"><tt>e0125301</tt></a> bugfix for [@goField](https://github.com/goField) + [@goExtraField](https://github.com/goExtraField) combination (<a href=\"https://github.com/99designs/gqlgen/pull/3078\">#3078</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e61a7200580d6e2d13efdb1fa16af9dd9e9b2857\"><tt>e61a7200</tt></a> Federation: Update docs to use IntrospectAndCompose (<a href=\"https://github.com/99designs/gqlgen/pull/3077\">#3077</a>)</summary>\n\n`serviceList` now gets a deprecation warning to use IntrospectAndCompose\ninstead. We update our docs to avoid referring to deprecated services\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/de31828ab85b197a0f5170b55d0ffd51028685e6\"><tt>de31828a</tt></a> Ability to inline extraFields configuration. New [@goExtraField](https://github.com/goExtraField) directive. (<a href=\"https://github.com/99designs/gqlgen/pull/3076\">#3076</a>)</summary>\n\n---------\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8b4df63696070ff68f28d10db13b6e8c41cfa0c8\"><tt>8b4df636</tt></a> Go mod tidy (<a href=\"https://github.com/99designs/gqlgen/pull/3075\">#3075</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ae9787cbff780551a26b1090d416baa37fa64611\"><tt>ae9787cb</tt></a> chore(deps): bump github.com/sosodev/duration from 1.3.0 to 1.3.1 (<a href=\"https://github.com/99designs/gqlgen/pull/3070\">#3070</a>)</summary>\n\n* chore(deps): bump github.com/sosodev/duration from 1.3.0 to 1.3.1\n\nBumps [github.com/sosodev/duration](https://github.com/sosodev/duration) from 1.3.0 to 1.3.1.\n- [Release notes](https://github.com/sosodev/duration/releases)\n- [Commits](https://github.com/sosodev/duration/compare/v1.3.0...v1.3.1)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/sosodev/duration\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\n\n* go mod tidy examples\n\n\n* Pin gorilla to skip 1.5.1\n\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/32014fdba261660503f4fb06bdfb56175a607135\"><tt>32014fdb</tt></a> chore(deps): bump golang.org/x/tools from 0.20.0 to 0.21.0 (<a href=\"https://github.com/99designs/gqlgen/pull/3072\">#3072</a>)</summary>\n\nBumps [golang.org/x/tools](https://github.com/golang/tools) from 0.20.0 to 0.21.0.\n- [Release notes](https://github.com/golang/tools/releases)\n- [Commits](https://github.com/golang/tools/compare/v0.20.0...v0.21.0)\n\n---\nupdated-dependencies:\n- dependency-name: golang.org/x/tools\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1b5ed7c092179d72e4b537f85a902de2d4f85c3e\"><tt>1b5ed7c0</tt></a> chore(deps-dev): bump urql from 4.0.7 to 4.1.0 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3074\">#3074</a>)</summary>\n\nBumps [urql](https://github.com/urql-graphql/urql/tree/HEAD/packages/react-urql) from 4.0.7 to 4.1.0.\n- [Release notes](https://github.com/urql-graphql/urql/releases)\n- [Changelog](https://github.com/urql-graphql/urql/blob/main/packages/react-urql/CHANGELOG.md)\n\n---\nupdated-dependencies:\n- dependency-name: urql\n  dependency-type: direct:development\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/77ea79a89ac29fd2b449dc5a461b2e75df8c6300\"><tt>77ea79a8</tt></a> chore(deps-dev): bump [@apollo](https://github.com/apollo)/client in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3073\">#3073</a>)</summary>\n\n- [Release notes](https://github.com/apollographql/apollo-client/releases)\n- [Changelog](https://github.com/apollographql/apollo-client/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/apollographql/apollo-client/compare/v3.10.2...v3.10.3)\n\n---\nupdated-dependencies:\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/358c7a2b4194643c78c3903c36f726a37bedfc60\"><tt>358c7a2b</tt></a> chore(deps): bump google.golang.org/protobuf from 1.34.0 to 1.34.1 (<a href=\"https://github.com/99designs/gqlgen/pull/3071\">#3071</a>)</summary>\n\nBumps google.golang.org/protobuf from 1.34.0 to 1.34.1.\n\n---\nupdated-dependencies:\n- dependency-name: google.golang.org/protobuf\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5c951f4e3b38aa4511c2f74f4990f490e314b1b5\"><tt>5c951f4e</tt></a> chore(deps): bump golangci/golangci-lint-action from 5.3.0 to 6.0.1 (<a href=\"https://github.com/99designs/gqlgen/pull/3069\">#3069</a>)</summary>\n\nBumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 5.3.0 to 6.0.1.\n- [Release notes](https://github.com/golangci/golangci-lint-action/releases)\n- [Commits](https://github.com/golangci/golangci-lint-action/compare/v5.3.0...v6.0.1)\n\n---\nupdated-dependencies:\n- dependency-name: golangci/golangci-lint-action\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/42cae907d7fb7e88cf62754212fde40a83a579d1\"><tt>42cae907</tt></a> chore: remove deprecated errcheck.ignore lint option (<a href=\"https://github.com/99designs/gqlgen/pull/3062\">#3062</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1a59d58b52c2012d0a749253f4db36fb2b859390\"><tt>1a59d58b</tt></a> Fix typo in error message (<a href=\"https://github.com/99designs/gqlgen/pull/3065\">#3065</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/39d3d8d0d5b95228c316dfaa04f45afc77d24ea0\"><tt>39d3d8d0</tt></a> refactor: simplify test asserts (<a href=\"https://github.com/99designs/gqlgen/pull/3061\">#3061</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7421bdfbde3e96e356cd775d09f6289c8ebc3cb9\"><tt>7421bdfb</tt></a> refactor: compile regex only once (<a href=\"https://github.com/99designs/gqlgen/pull/3063\">#3063</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a4bf3a7e4cfd26fc364b887236421b495b81d5f6\"><tt>a4bf3a7e</tt></a> chore: simplify generating examples in release script (<a href=\"https://github.com/99designs/gqlgen/pull/3064\">#3064</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/45f6eb56bcd273538dbb9a7f9aef9ecce7d064fe\"><tt>45f6eb56</tt></a> v0.17.46 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.46\"></a>\n## [v0.17.46](https://github.com/99designs/gqlgen/compare/v0.17.45...v0.17.46) - 2024-05-07\n- <a href=\"https://github.com/99designs/gqlgen/commit/90af8bf5978f02e9485d3c429e5def7807a979e5\"><tt>90af8bf5</tt></a> release v0.17.46\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bf49e56acbf0b55b70710917cf47f9a4563e7c74\"><tt>bf49e56a</tt></a> fix: failed to build _examples/websocket-initfunc/server/server.go (<a href=\"https://github.com/99designs/gqlgen/pull/3055\">#3055</a>) (<a href=\"https://github.com/99designs/gqlgen/pull/3058\">#3058</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1ee0fa8088c5d8c5c5579c013df4c5c9e45c04a0\"><tt>1ee0fa80</tt></a> chore(deps-dev): bump vite from 5.2.10 to 5.2.11 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3047\">#3047</a>)</summary>\n\nBumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.2.10 to 5.2.11.\n- [Release notes](https://github.com/vitejs/vite/releases)\n- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)\n- [Commits](https://github.com/vitejs/vite/commits/v5.2.11/packages/vite)\n\n---\nupdated-dependencies:\n- dependency-name: vite\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ddd9a6ba878bdfadb9a6ac5cdf17aefac8a92e0b\"><tt>ddd9a6ba</tt></a> chore(deps): bump golang.org/x/text from 0.14.0 to 0.15.0 (<a href=\"https://github.com/99designs/gqlgen/pull/3052\">#3052</a>)</summary>\n\nBumps [golang.org/x/text](https://github.com/golang/text) from 0.14.0 to 0.15.0.\n- [Release notes](https://github.com/golang/text/releases)\n- [Commits](https://github.com/golang/text/compare/v0.14.0...v0.15.0)\n\n---\nupdated-dependencies:\n- dependency-name: golang.org/x/text\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/36b666076a915f8b1ae829130883c40955be00be\"><tt>36b66607</tt></a> chore(deps): bump github.com/PuerkitoBio/goquery from 1.9.1 to 1.9.2 (<a href=\"https://github.com/99designs/gqlgen/pull/3051\">#3051</a>)</summary>\n\n* chore(deps): bump github.com/PuerkitoBio/goquery from 1.9.1 to 1.9.2\n\nBumps [github.com/PuerkitoBio/goquery](https://github.com/PuerkitoBio/goquery) from 1.9.1 to 1.9.2.\n- [Release notes](https://github.com/PuerkitoBio/goquery/releases)\n- [Commits](https://github.com/PuerkitoBio/goquery/compare/v1.9.1...v1.9.2)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/PuerkitoBio/goquery\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\n\n* go mod tidy\n\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ad91bf6c7bde1c3a4acf3c013738c1a479d54771\"><tt>ad91bf6c</tt></a> chore(deps-dev): bump vitest from 1.5.2 to 1.6.0 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3048\">#3048</a>)</summary>\n\nBumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 1.5.2 to 1.6.0.\n- [Release notes](https://github.com/vitest-dev/vitest/releases)\n- [Commits](https://github.com/vitest-dev/vitest/commits/v1.6.0/packages/vitest)\n\n---\nupdated-dependencies:\n- dependency-name: vitest\n  dependency-type: direct:development\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a5cb576cf80ec164651a96558a4ac97f8e595b96\"><tt>a5cb576c</tt></a> chore(deps-dev): bump [@apollo](https://github.com/apollo)/client in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3049\">#3049</a>)</summary>\n\n- [Release notes](https://github.com/apollographql/apollo-client/releases)\n- [Changelog](https://github.com/apollographql/apollo-client/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/apollographql/apollo-client/compare/v3.10.1...v3.10.2)\n\n---\nupdated-dependencies:\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/6b423e514eb0beafdc1738b3042a15eb9a221317\"><tt>6b423e51</tt></a> chore(deps): bump google.golang.org/protobuf from 1.33.0 to 1.34.0 (<a href=\"https://github.com/99designs/gqlgen/pull/3050\">#3050</a>)</summary>\n\nBumps google.golang.org/protobuf from 1.33.0 to 1.34.0.\n\n---\nupdated-dependencies:\n- dependency-name: google.golang.org/protobuf\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/c34e246b1b96675162e06ec69aacf22441fa48fc\"><tt>c34e246b</tt></a> chore(deps): bump golang.org/x/text from 0.14.0 to 0.15.0 in /_examples (<a href=\"https://github.com/99designs/gqlgen/pull/3053\">#3053</a>)</summary>\n\nBumps [golang.org/x/text](https://github.com/golang/text) from 0.14.0 to 0.15.0.\n- [Release notes](https://github.com/golang/text/releases)\n- [Commits](https://github.com/golang/text/compare/v0.14.0...v0.15.0)\n\n---\nupdated-dependencies:\n- dependency-name: golang.org/x/text\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a3991df0f7cfe0460b3c24faa740c86fa11d9252\"><tt>a3991df0</tt></a> chore(deps): bump golangci/golangci-lint-action from 5.0.0 to 5.3.0 (<a href=\"https://github.com/99designs/gqlgen/pull/3054\">#3054</a>)</summary>\n\nBumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 5.0.0 to 5.3.0.\n- [Release notes](https://github.com/golangci/golangci-lint-action/releases)\n- [Commits](https://github.com/golangci/golangci-lint-action/compare/v5.0.0...v5.3.0)\n\n---\nupdated-dependencies:\n- dependency-name: golangci/golangci-lint-action\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/769632a1144d20396ec43520aad4a874dffb8246\"><tt>769632a1</tt></a> chore: simplify go generate in examples (<a href=\"https://github.com/99designs/gqlgen/pull/3033\">#3033</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f24ae88755d2b38d5a8b38b3df0141852ff39bf3\"><tt>f24ae887</tt></a> enum values binding v2 (<a href=\"https://github.com/99designs/gqlgen/pull/3014\">#3014</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/b3a105472099ce80c5c549a4be2b70709e4e87d2\"><tt>b3a10547</tt></a> Add initial cache tests for MapCache and NoCache (<a href=\"https://github.com/99designs/gqlgen/pull/3040\">#3040</a>)</summary>\n\n* Add initial cache tests for MapCache and NoCache\n\n* Add edge case testing to MapCache and NoCache\n\n* Reformat, regenerate\n\n\n---------\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/168546476186c8906a23bc7005684a0df39e4ac1\"><tt>16854647</tt></a> chore: lint _examples directory (<a href=\"https://github.com/99designs/gqlgen/pull/3042\">#3042</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2bb32fe72539d17bd67838f39433a15c5915223e\"><tt>2bb32fe7</tt></a> chore: remove deprecated build tag (<a href=\"https://github.com/99designs/gqlgen/pull/3041\">#3041</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4b559b3350146d65175b5106686cc741d4b9dd15\"><tt>4b559b33</tt></a> Fix codegen config tests: add file closing (<a href=\"https://github.com/99designs/gqlgen/pull/3037\">#3037</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/293991e994ea3fae48fb4a10ecccf0621535321b\"><tt>293991e9</tt></a> docs: fix links to the docs latest version (<a href=\"https://github.com/99designs/gqlgen/pull/3038\">#3038</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/79dc5e032d6eba117ada7399db68d1ff62e1910c\"><tt>79dc5e03</tt></a> refactor: change test asserts to be more idiomatic (<a href=\"https://github.com/99designs/gqlgen/pull/3036\">#3036</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a19895257171fd2355fc94c8d53eacff4f7d9a0b\"><tt>a1989525</tt></a> chore: remove unnecessary empty lines (<a href=\"https://github.com/99designs/gqlgen/pull/3035\">#3035</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6998f19f451735bf3640de346ca5b7d6f9feeee2\"><tt>6998f19f</tt></a> chore: `run.skip-dirs` is deprecated in golangci-lint v1.57 (<a href=\"https://github.com/99designs/gqlgen/pull/3034\">#3034</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/835c2d11b2beab4ebbfcdda63dd3d3e463474549\"><tt>835c2d11</tt></a> Improve federation resolver selection (<a href=\"https://github.com/99designs/gqlgen/pull/3029\">#3029</a>)</summary>\n\n* Improve federation resolver selection\n\nJust checking for existence of keys in the representations isn't enough.  If the values are null, we should skip the resolver.\n\n* Run go generate ./...\n\n* Add test cases\n\n* Fix linter\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/9e8e7eddeba5afff0c766e6d834c190b450c868d\"><tt>9e8e7edd</tt></a> refactor: simplify tests for `api.Generate` (<a href=\"https://github.com/99designs/gqlgen/pull/3031\">#3031</a>)</summary>\n\n* refactor: simplify tests for Generate\n\n* Add deleted files to git ignore\n\n\n---------\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/28405ac141ff7087b7d17796cdbce12d69fd0249\"><tt>28405ac1</tt></a> Fix test asserts: reverse expected and actual params (<a href=\"https://github.com/99designs/gqlgen/pull/3027\">#3027</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/75326bc75dbe4f82cc272e66645b4a9088b07400\"><tt>75326bc7</tt></a> Bump github.com/sosodev/duration from 1.2.0 to 1.3.0 (<a href=\"https://github.com/99designs/gqlgen/pull/3024\">#3024</a>)</summary>\n\n* Bump github.com/sosodev/duration from 1.2.0 to 1.3.0\n\nBumps [github.com/sosodev/duration](https://github.com/sosodev/duration) from 1.2.0 to 1.3.0.\n- [Release notes](https://github.com/sosodev/duration/releases)\n- [Commits](https://github.com/sosodev/duration/compare/v1.2.0...v1.3.0)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/sosodev/duration\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n\n* go mod tidy\n\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/bf4406a138d10f2797441130bc4d56f5ec07cdad\"><tt>bf4406a1</tt></a> Bump vitest from 1.5.0 to 1.5.2 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3021\">#3021</a>)</summary>\n\nBumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 1.5.0 to 1.5.2.\n- [Release notes](https://github.com/vitest-dev/vitest/releases)\n- [Commits](https://github.com/vitest-dev/vitest/commits/v1.5.2/packages/vitest)\n\n---\nupdated-dependencies:\n- dependency-name: vitest\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1a8ebe9b217d944c067ff8952cb38bf805d663d5\"><tt>1a8ebe9b</tt></a> Bump [@apollo](https://github.com/apollo)/client from 3.9.11 to 3.10.1 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3022\">#3022</a>)</summary>\n\n- [Release notes](https://github.com/apollographql/apollo-client/releases)\n- [Changelog](https://github.com/apollographql/apollo-client/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/apollographql/apollo-client/compare/v3.9.11...v3.10.1)\n\n---\nupdated-dependencies:\n  dependency-type: direct:development\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/bacaab8e8a9323a4f220cc11fc7bedf2041ce40c\"><tt>bacaab8e</tt></a> Bump github.com/urfave/cli/v2 from 2.27.1 to 2.27.2 (<a href=\"https://github.com/99designs/gqlgen/pull/3023\">#3023</a>)</summary>\n\nBumps [github.com/urfave/cli/v2](https://github.com/urfave/cli) from 2.27.1 to 2.27.2.\n- [Release notes](https://github.com/urfave/cli/releases)\n- [Changelog](https://github.com/urfave/cli/blob/main/docs/CHANGELOG.md)\n- [Commits](https://github.com/urfave/cli/compare/v2.27.1...v2.27.2)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/urfave/cli/v2\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/3f51554359d5f4c5d52e9b7c202f84d430064c54\"><tt>3f515543</tt></a> Bump github.com/rs/cors from 1.10.1 to 1.11.0 in /_examples (<a href=\"https://github.com/99designs/gqlgen/pull/3025\">#3025</a>)</summary>\n\nBumps [github.com/rs/cors](https://github.com/rs/cors) from 1.10.1 to 1.11.0.\n- [Commits](https://github.com/rs/cors/compare/v1.10.1...v1.11.0)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/rs/cors\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ced2189d969e1c2481451c1c4ee5c852a63fa97a\"><tt>ced2189d</tt></a> Bump golangci/golangci-lint-action from 4.0.0 to 5.0.0 (<a href=\"https://github.com/99designs/gqlgen/pull/3026\">#3026</a>)</summary>\n\nBumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 4.0.0 to 5.0.0.\n- [Release notes](https://github.com/golangci/golangci-lint-action/releases)\n- [Commits](https://github.com/golangci/golangci-lint-action/compare/v4.0.0...v5.0.0)\n\n---\nupdated-dependencies:\n- dependency-name: golangci/golangci-lint-action\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ada00f78214c217c6d04ba4d5a4822d90f905e09\"><tt>ada00f78</tt></a> chore: remove unused lint.txt (<a href=\"https://github.com/99designs/gqlgen/pull/3017\">#3017</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8bd354293d14c34ad8dff17a04ee2327eda190f4\"><tt>8bd35429</tt></a> chore: fix some typos in comments (<a href=\"https://github.com/99designs/gqlgen/pull/3020\">#3020</a>)</summary>\n\n* chore: fix some typos in comments\n\n\n* Apply suggestions from code review\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e1ef86e795e738654c98553b325a248c02c8c2f8\"><tt>e1ef86e7</tt></a> Bump vite from 5.2.8 to 5.2.10 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3015\">#3015</a>)</summary>\n\nBumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.2.8 to 5.2.10.\n- [Release notes](https://github.com/vitejs/vite/releases)\n- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)\n- [Commits](https://github.com/vitejs/vite/commits/v5.2.10/packages/vite)\n\n---\nupdated-dependencies:\n- dependency-name: vite\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ecc3f647d79aa318863da39287a4772c272ac067\"><tt>ecc3f647</tt></a> Bump [@apollo](https://github.com/apollo)/client from 3.9.10 to 3.9.11 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3011\">#3011</a>)</summary>\n\n- [Release notes](https://github.com/apollographql/apollo-client/releases)\n- [Changelog](https://github.com/apollographql/apollo-client/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/apollographql/apollo-client/compare/v3.9.10...v3.9.11)\n\n---\nupdated-dependencies:\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/c92b511cbb36726efcd806f80c2fe3392f8f466c\"><tt>c92b511c</tt></a> Bump typescript from 5.4.4 to 5.4.5 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3010\">#3010</a>)</summary>\n\nBumps [typescript](https://github.com/Microsoft/TypeScript) from 5.4.4 to 5.4.5.\n- [Release notes](https://github.com/Microsoft/TypeScript/releases)\n- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)\n- [Commits](https://github.com/Microsoft/TypeScript/compare/v5.4.4...v5.4.5)\n\n---\nupdated-dependencies:\n- dependency-name: typescript\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/cc2d95a2a47a701a8596ed9af7c76127ae8c7a14\"><tt>cc2d95a2</tt></a> Bump vitest from 1.4.0 to 1.5.0 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/3012\">#3012</a>)</summary>\n\nBumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 1.4.0 to 1.5.0.\n- [Release notes](https://github.com/vitest-dev/vitest/releases)\n- [Commits](https://github.com/vitest-dev/vitest/commits/v1.5.0/packages/vitest)\n\n---\nupdated-dependencies:\n- dependency-name: vitest\n  dependency-type: direct:development\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/c17a4b6fcebadc37ebc7f183135d175261b5717f\"><tt>c17a4b6f</tt></a> fix: codegen will _ the fieldset parameter if its not needed (<a href=\"https://github.com/99designs/gqlgen/pull/3006\">#3006</a>)</summary>\n\n* fix: codegen will _ the fieldset parameter if its not needed\n\n* update generated examples\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0b0f6592481e68a1e59c51b6d052f3a2f18cc9ad\"><tt>0b0f6592</tt></a> chore: update Automatic Persisted Queries Link (<a href=\"https://github.com/99designs/gqlgen/pull/3005\">#3005</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/79aa0ceb818dbc651fb86e2254c7688eb9a0c35b\"><tt>79aa0ceb</tt></a> Mark ctx as unused when no arguments for FieldContextFunc (<a href=\"https://github.com/99designs/gqlgen/pull/2999\">#2999</a>)</summary>\n\n* Mark ctx as unused when no arguments for FieldContextFunc\n\n* Regenerate\n\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f3b34683652077e3f7e55aa4142a86842e83e593\"><tt>f3b34683</tt></a> Bump urql from 4.0.6 to 4.0.7 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2995\">#2995</a>) (closes <a href=\"https://github.com/99designs/gqlgen/issues/2998\"> #2998</a>)</summary>\n\n* Bump urql from 4.0.6 to 4.0.7 in /integration\n\nBumps [urql](https://github.com/urql-graphql/urql/tree/HEAD/packages/react-urql) from 4.0.6 to 4.0.7.\n- [Release notes](https://github.com/urql-graphql/urql/releases)\n- [Changelog](https://github.com/urql-graphql/urql/blob/main/packages/react-urql/CHANGELOG.md)\n\n---\nupdated-dependencies:\n- dependency-name: urql\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n\n\nclient.\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8ab31646f6e2085a21c2171c322fc65e2ba54e65\"><tt>8ab31646</tt></a> Bump graphql-ws from 5.15.0 to 5.16.0 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2986\">#2986</a>)</summary>\n\nBumps [graphql-ws](https://github.com/enisdenjo/graphql-ws) from 5.15.0 to 5.16.0.\n- [Release notes](https://github.com/enisdenjo/graphql-ws/releases)\n- [Changelog](https://github.com/enisdenjo/graphql-ws/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/enisdenjo/graphql-ws/compare/v5.15.0...v5.16.0)\n\n---\nupdated-dependencies:\n- dependency-name: graphql-ws\n  dependency-type: direct:development\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/45fafedc590ce874d4d2c6d07bef7865fce1770e\"><tt>45fafedc</tt></a> Bump golang.org/x/tools from 0.19.0 to 0.20.0 (<a href=\"https://github.com/99designs/gqlgen/pull/2996\">#2996</a>)</summary>\n\n* Bump golang.org/x/tools from 0.19.0 to 0.20.0\n\nBumps [golang.org/x/tools](https://github.com/golang/tools) from 0.19.0 to 0.20.0.\n- [Release notes](https://github.com/golang/tools/releases)\n- [Commits](https://github.com/golang/tools/compare/v0.19.0...v0.20.0)\n\n---\nupdated-dependencies:\n- dependency-name: golang.org/x/tools\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n\n* Update examples to match root go.mod\n\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/4c45be214c9e92f9840d85f0d7152cca6c6e83d9\"><tt>4c45be21</tt></a> Bump vite from 5.2.7 to 5.2.8 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2992\">#2992</a>)</summary>\n\nBumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.2.7 to 5.2.8.\n- [Release notes](https://github.com/vitejs/vite/releases)\n- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)\n- [Commits](https://github.com/vitejs/vite/commits/v5.2.8/packages/vite)\n\n---\nupdated-dependencies:\n- dependency-name: vite\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6e5a7758b6b473bb5b8b6d408351a78e6b453769\"><tt>6e5a7758</tt></a> Update `tools.go` url (<a href=\"https://github.com/99designs/gqlgen/pull/2987\">#2987</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/6771a8041f7f254490bce7ec3cebad4a1c4686aa\"><tt>6771a804</tt></a> Bump [@apollo](https://github.com/apollo)/client from 3.9.9 to 3.9.10 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2994\">#2994</a>)</summary>\n\n- [Release notes](https://github.com/apollographql/apollo-client/releases)\n- [Changelog](https://github.com/apollographql/apollo-client/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/apollographql/apollo-client/compare/v3.9.9...v3.9.10)\n\n---\nupdated-dependencies:\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/2ce5fcd1ac444cac96314d440b030fac5665fe8d\"><tt>2ce5fcd1</tt></a> Bump typescript from 5.4.3 to 5.4.4 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2993\">#2993</a>)</summary>\n\nBumps [typescript](https://github.com/Microsoft/TypeScript) from 5.4.3 to 5.4.4.\n- [Release notes](https://github.com/Microsoft/TypeScript/releases)\n- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)\n- [Commits](https://github.com/Microsoft/TypeScript/compare/v5.4.3...v5.4.4)\n\n---\nupdated-dependencies:\n- dependency-name: typescript\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/99d7d887996b4297f7bff130ecf3d23cf87cc54c\"><tt>99d7d887</tt></a> fix: stop loading package dependencies (<a href=\"https://github.com/99designs/gqlgen/pull/2988\">#2988</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d0a1aec2afe4f739d88c3c76ae3f48032b46776e\"><tt>d0a1aec2</tt></a> enum values binding (<a href=\"https://github.com/99designs/gqlgen/pull/2982\">#2982</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/6352b800a190d3153f3e27642df394830c8553c9\"><tt>6352b800</tt></a> Bump vite from 5.2.6 to 5.2.7 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2984\">#2984</a>)</summary>\n\nBumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.2.6 to 5.2.7.\n- [Release notes](https://github.com/vitejs/vite/releases)\n- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)\n- [Commits](https://github.com/vitejs/vite/commits/v5.2.7/packages/vite)\n\n---\nupdated-dependencies:\n- dependency-name: vite\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/2286b0e85d4da8019ca5a88f4c943e0339bccec3\"><tt>2286b0e8</tt></a> Bump graphql-sse from 2.5.2 to 2.5.3 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2985\">#2985</a>)</summary>\n\nBumps [graphql-sse](https://github.com/enisdenjo/graphql-sse) from 2.5.2 to 2.5.3.\n- [Release notes](https://github.com/enisdenjo/graphql-sse/releases)\n- [Changelog](https://github.com/enisdenjo/graphql-sse/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/enisdenjo/graphql-sse/compare/v2.5.2...v2.5.3)\n\n---\nupdated-dependencies:\n- dependency-name: graphql-sse\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8ab2c27a6ef8f9d459d1789b306a7c95de2ed38a\"><tt>8ab2c27a</tt></a> Bump [@graphql](https://github.com/graphql)-codegen/client-preset from 4.2.4 to 4.2.5 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2983\">#2983</a>)</summary>\n\n- [Release notes](https://github.com/dotansimha/graphql-code-generator/releases)\n- [Changelog](https://github.com/dotansimha/graphql-code-generator/blob/master/packages/presets/client/CHANGELOG.md)\n\n---\nupdated-dependencies:\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/780bf27a01c4395d6519d73f6e3dbf25c4335bc0\"><tt>780bf27a</tt></a> Add UintID type binding (<a href=\"https://github.com/99designs/gqlgen/pull/2980\">#2980</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d192a5914621d92d27b05bd71d7de86e57fd3c36\"><tt>d192a591</tt></a> Bump [@apollo](https://github.com/apollo)/client from 3.9.7 to 3.9.9 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2977\">#2977</a>)</summary>\n\n- [Release notes](https://github.com/apollographql/apollo-client/releases)\n- [Changelog](https://github.com/apollographql/apollo-client/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/apollographql/apollo-client/compare/v3.9.7...v3.9.9)\n\n---\nupdated-dependencies:\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/62289425bb2e3e7fb9e84d20669c1afcc2ae345f\"><tt>62289425</tt></a> Bump vite from 5.1.6 to 5.2.6 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2978\">#2978</a>)</summary>\n\nBumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.1.6 to 5.2.6.\n- [Release notes](https://github.com/vitejs/vite/releases)\n- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)\n- [Commits](https://github.com/vitejs/vite/commits/v5.2.6/packages/vite)\n\n---\nupdated-dependencies:\n- dependency-name: vite\n  dependency-type: direct:development\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/105ec44bd261dc49ec7beca62774f90edf7d85d1\"><tt>105ec44b</tt></a> Bump typescript from 5.4.2 to 5.4.3 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2979\">#2979</a>)</summary>\n\nBumps [typescript](https://github.com/Microsoft/TypeScript) from 5.4.2 to 5.4.3.\n- [Release notes](https://github.com/Microsoft/TypeScript/releases)\n- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)\n- [Commits](https://github.com/Microsoft/TypeScript/compare/v5.4.2...v5.4.3)\n\n---\nupdated-dependencies:\n- dependency-name: typescript\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0afd63a5c384f0c8e0914a2568dec92e2dca9c00\"><tt>0afd63a5</tt></a> chore: remove repetitive words (<a href=\"https://github.com/99designs/gqlgen/pull/2976\">#2976</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ee526b05f28b0e7d5a8e7b1da28da3e03c826df9\"><tt>ee526b05</tt></a> Bump vite from 5.1.5 to 5.1.6 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2971\">#2971</a>)</summary>\n\nBumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.1.5 to 5.1.6.\n- [Release notes](https://github.com/vitejs/vite/releases)\n- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)\n- [Commits](https://github.com/vitejs/vite/commits/v5.1.6/packages/vite)\n\n---\nupdated-dependencies:\n- dependency-name: vite\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/00bf8ef38fa267e37ede2e77a9c502470c4d4471\"><tt>00bf8ef3</tt></a> Bump vitest from 1.3.1 to 1.4.0 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2972\">#2972</a>)</summary>\n\nBumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 1.3.1 to 1.4.0.\n- [Release notes](https://github.com/vitest-dev/vitest/releases)\n- [Commits](https://github.com/vitest-dev/vitest/commits/v1.4.0/packages/vitest)\n\n---\nupdated-dependencies:\n- dependency-name: vitest\n  dependency-type: direct:development\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/bdbdddf532a22f37271a79c4204be8e37a1f1aac\"><tt>bdbdddf5</tt></a> Bump [@apollo](https://github.com/apollo)/client from 3.9.6 to 3.9.7 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2970\">#2970</a>)</summary>\n\n- [Release notes](https://github.com/apollographql/apollo-client/releases)\n- [Changelog](https://github.com/apollographql/apollo-client/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/apollographql/apollo-client/compare/v3.9.6...v3.9.7)\n\n---\nupdated-dependencies:\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fa221f640f29e67e9220e769b5a36f4c96d20fc6\"><tt>fa221f64</tt></a> Update Changelog\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f897668bd755e1b1207dedb70d17b98b70330ebd\"><tt>f897668b</tt></a> v0.17.45 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.45\"></a>\n## [v0.17.45](https://github.com/99designs/gqlgen/compare/v0.17.44...v0.17.45) - 2024-03-11\n- <a href=\"https://github.com/99designs/gqlgen/commit/b6d1a8b986a3c14f2c945967ee087a19c6cdf4fc\"><tt>b6d1a8b9</tt></a> release v0.17.45\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a854eb650ecbb1a5a2ab4db65bd85eb8124d2cc8\"><tt>a854eb65</tt></a> Bump golang.org/x/tools from 0.18.0 to 0.19.0 (<a href=\"https://github.com/99designs/gqlgen/pull/2963\">#2963</a>)</summary>\n\n* Bump golang.org/x/tools from 0.18.0 to 0.19.0\n\nBumps [golang.org/x/tools](https://github.com/golang/tools) from 0.18.0 to 0.19.0.\n- [Release notes](https://github.com/golang/tools/releases)\n- [Commits](https://github.com/golang/tools/compare/v0.18.0...v0.19.0)\n\n---\nupdated-dependencies:\n- dependency-name: golang.org/x/tools\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n\n* Go mod tidy examples and websocket\n\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/908498e3b188a3d913bfcb2e6be331339260e893\"><tt>908498e3</tt></a> Bump typescript from 5.3.3 to 5.4.2 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2960\">#2960</a>)</summary>\n\nBumps [typescript](https://github.com/Microsoft/TypeScript) from 5.3.3 to 5.4.2.\n- [Release notes](https://github.com/Microsoft/TypeScript/releases)\n- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)\n- [Commits](https://github.com/Microsoft/TypeScript/compare/v5.3.3...v5.4.2)\n\n---\nupdated-dependencies:\n- dependency-name: typescript\n  dependency-type: direct:development\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/6e77359b9bec77c1a5082cb2731c039c18e3fa1a\"><tt>6e77359b</tt></a> Bump vite from 5.1.4 to 5.1.5 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2961\">#2961</a>)</summary>\n\nBumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.1.4 to 5.1.5.\n- [Release notes](https://github.com/vitejs/vite/releases)\n- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)\n- [Commits](https://github.com/vitejs/vite/commits/v5.1.5/packages/vite)\n\n---\nupdated-dependencies:\n- dependency-name: vite\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/361cb189f6a992d1c6fd1116cb236f5f440a1e4c\"><tt>361cb189</tt></a> Bump [@apollo](https://github.com/apollo)/client from 3.9.5 to 3.9.6 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2962\">#2962</a>)</summary>\n\n- [Release notes](https://github.com/apollographql/apollo-client/releases)\n- [Changelog](https://github.com/apollographql/apollo-client/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/apollographql/apollo-client/compare/v3.9.5...v3.9.6)\n\n---\nupdated-dependencies:\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d2271d8fb56a489728149a1ad5f51a9adc884a14\"><tt>d2271d8f</tt></a> Bump google.golang.org/protobuf from 1.32.0 to 1.33.0 (<a href=\"https://github.com/99designs/gqlgen/pull/2964\">#2964</a>)</summary>\n\nBumps google.golang.org/protobuf from 1.32.0 to 1.33.0.\n\n---\nupdated-dependencies:\n- dependency-name: google.golang.org/protobuf\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/caf1faa70345272a581f4d8d77d3d41cab8ec035\"><tt>caf1faa7</tt></a> Add case for resolvers_always_return_pointers:false (<a href=\"https://github.com/99designs/gqlgen/pull/2966\">#2966</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0d24aa9b8c4435f83de5c298440d533f6b13f36f\"><tt>0d24aa9b</tt></a> handle models in federation pkg (<a href=\"https://github.com/99designs/gqlgen/pull/2965\">#2965</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2aa9bbb4cd1b6f8c1a9e62afe4a191a5c086f878\"><tt>2aa9bbb4</tt></a> fix(docs): convert an unnecessarily capitalized word in the middle of sentences to lowercase (<a href=\"https://github.com/99designs/gqlgen/pull/2959\">#2959</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bc72cd8c6679838bd316313a371563d087ad103d\"><tt>bc72cd8c</tt></a> Add option to omit resolver fields from models (<a href=\"https://github.com/99designs/gqlgen/pull/2957\">#2957</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/95f9dc79ac69c88f44e42ab06f660914f9ba16a2\"><tt>95f9dc79</tt></a> Bump github.com/stretchr/testify from 1.8.4 to 1.9.0 (<a href=\"https://github.com/99designs/gqlgen/pull/2953\">#2953</a>)</summary>\n\nBumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.8.4 to 1.9.0.\n- [Release notes](https://github.com/stretchr/testify/releases)\n- [Commits](https://github.com/stretchr/testify/compare/v1.8.4...v1.9.0)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/stretchr/testify\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/fbcceec2451c85c64f81ca783c98b684089ed3f7\"><tt>fbcceec2</tt></a> Bump github.com/PuerkitoBio/goquery from 1.9.0 to 1.9.1 (<a href=\"https://github.com/99designs/gqlgen/pull/2954\">#2954</a>)</summary>\n\n* Bump github.com/PuerkitoBio/goquery from 1.9.0 to 1.9.1\n\nBumps [github.com/PuerkitoBio/goquery](https://github.com/PuerkitoBio/goquery) from 1.9.0 to 1.9.1.\n- [Release notes](https://github.com/PuerkitoBio/goquery/releases)\n- [Commits](https://github.com/PuerkitoBio/goquery/compare/v1.9.0...v1.9.1)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/PuerkitoBio/goquery\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\n\n* mod tidy examples\n\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/c15af8ce70e4dec85281d1f73fb68938beea8b83\"><tt>c15af8ce</tt></a> Bump github.com/stretchr/testify from 1.8.4 to 1.9.0 in /_examples (<a href=\"https://github.com/99designs/gqlgen/pull/2955\">#2955</a>)</summary>\n\nBumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.8.4 to 1.9.0.\n- [Release notes](https://github.com/stretchr/testify/releases)\n- [Commits](https://github.com/stretchr/testify/compare/v1.8.4...v1.9.0)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/stretchr/testify\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1993b3aa692ce7e6e0b912ac2124cb88b3fa0e05\"><tt>1993b3aa</tt></a> Bump vitest from 1.3.0 to 1.3.1 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2946\">#2946</a>)</summary>\n\nBumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 1.3.0 to 1.3.1.\n- [Release notes](https://github.com/vitest-dev/vitest/releases)\n- [Commits](https://github.com/vitest-dev/vitest/commits/v1.3.1/packages/vitest)\n\n---\nupdated-dependencies:\n- dependency-name: vitest\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d16c6adc295bec42ea6b020ed7a617e978484a98\"><tt>d16c6adc</tt></a> Bump github.com/PuerkitoBio/goquery from 1.8.1 to 1.9.0 (<a href=\"https://github.com/99designs/gqlgen/pull/2943\">#2943</a>)</summary>\n\n* Bump github.com/PuerkitoBio/goquery from 1.8.1 to 1.9.0\n\nBumps [github.com/PuerkitoBio/goquery](https://github.com/PuerkitoBio/goquery) from 1.8.1 to 1.9.0.\n- [Release notes](https://github.com/PuerkitoBio/goquery/releases)\n- [Commits](https://github.com/PuerkitoBio/goquery/compare/v1.8.1...v1.9.0)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/PuerkitoBio/goquery\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n\n* Tidy examples\n\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/be74b6a06d534d4d1ea6f4640c628312731c8816\"><tt>be74b6a0</tt></a> Bump [@graphql](https://github.com/graphql)-codegen/client-preset from 4.2.2 to 4.2.4 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2945\">#2945</a>)</summary>\n\n- [Release notes](https://github.com/dotansimha/graphql-code-generator/releases)\n- [Changelog](https://github.com/dotansimha/graphql-code-generator/blob/master/packages/presets/client/CHANGELOG.md)\n\n---\nupdated-dependencies:\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/90aa9243119b6be85cfb040479738ed38d9af74e\"><tt>90aa9243</tt></a> Bump [@graphql](https://github.com/graphql)-codegen/introspection from 4.0.2 to 4.0.3 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2944\">#2944</a>)</summary>\n\n- [Release notes](https://github.com/dotansimha/graphql-code-generator/releases)\n- [Changelog](https://github.com/dotansimha/graphql-code-generator/blob/master/packages/plugins/other/introspection/CHANGELOG.md)\n\n---\nupdated-dependencies:\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/137ddbd30a078cfaefa118c8c796bc6c1149abf6\"><tt>137ddbd3</tt></a> Bump vite from 5.1.3 to 5.1.4 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2947\">#2947</a>)</summary>\n\nBumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.1.3 to 5.1.4.\n- [Release notes](https://github.com/vitejs/vite/releases)\n- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)\n- [Commits](https://github.com/vitejs/vite/commits/v5.1.4/packages/vite)\n\n---\nupdated-dependencies:\n- dependency-name: vite\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/15cef76f18afec4c5352911360e33f4042500697\"><tt>15cef76f</tt></a> Optionally render entity requires populator function for advanced [@requires](https://github.com/requires) use cases (<a href=\"https://github.com/99designs/gqlgen/pull/2884\">#2884</a>) (closes <a href=\"https://github.com/99designs/gqlgen/issues/1\"> #1</a>)</summary>\n\n* Adding generation of new functions to populate requires representations. WIP.\n\n* Something.\n\n* Adding config option for Package to allow for enabling flags.  Added flag to render explicit requires function.\n\n\n* Adding explicit requires testsing and make requires follow federation package.\n\n* Fix test failure.\n\n* Using embeded template like federation gotpl.  Fix rewriter not using correct dir.\n\n* Update generated code.\n\n\n* Adding initial docs for explicit requires\n\n* Add example docs for explicit requires\n\n* Adding ordering fix.\n\n* Regenerate.\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e186813e8852a1904d7778d2efd6cd745fced355\"><tt>e186813e</tt></a> Bump golang.org/x/tools from 0.17.0 to 0.18.0 (<a href=\"https://github.com/99designs/gqlgen/pull/2940\">#2940</a>)</summary>\n\n* Bump golang.org/x/tools from 0.17.0 to 0.18.0\n\nBumps [golang.org/x/tools](https://github.com/golang/tools) from 0.17.0 to 0.18.0.\n- [Release notes](https://github.com/golang/tools/releases)\n- [Commits](https://github.com/golang/tools/compare/v0.17.0...v0.18.0)\n\n---\nupdated-dependencies:\n- dependency-name: golang.org/x/tools\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n\n* Update example module\n\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e1fb6c03037ae6d0f9177abc643e52b92beeb1f7\"><tt>e1fb6c03</tt></a> Bump vite from 5.1.1 to 5.1.3 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2936\">#2936</a>)</summary>\n\nBumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.1.1 to 5.1.3.\n- [Release notes](https://github.com/vitejs/vite/releases)\n- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)\n- [Commits](https://github.com/vitejs/vite/commits/v5.1.3/packages/vite)\n\n---\nupdated-dependencies:\n- dependency-name: vite\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1ff1107ed5766afa1b0328b4b55dbb9580aa25ba\"><tt>1ff1107e</tt></a> Bump graphql-ws from 5.14.3 to 5.15.0 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2935\">#2935</a>)</summary>\n\nBumps [graphql-ws](https://github.com/enisdenjo/graphql-ws) from 5.14.3 to 5.15.0.\n- [Release notes](https://github.com/enisdenjo/graphql-ws/releases)\n- [Changelog](https://github.com/enisdenjo/graphql-ws/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/enisdenjo/graphql-ws/compare/v5.14.3...v5.15.0)\n\n---\nupdated-dependencies:\n- dependency-name: graphql-ws\n  dependency-type: direct:development\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d4696f8868cae9db66b9a4f066b441ff5d5dc2ca\"><tt>d4696f88</tt></a> Bump vitest from 1.2.2 to 1.3.0 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2937\">#2937</a>)</summary>\n\nBumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 1.2.2 to 1.3.0.\n- [Release notes](https://github.com/vitest-dev/vitest/releases)\n- [Commits](https://github.com/vitest-dev/vitest/commits/v1.3.0/packages/vitest)\n\n---\nupdated-dependencies:\n- dependency-name: vitest\n  dependency-type: direct:development\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/4808f0dba4dc5dbeb84f8e4b93b61c4465674c9e\"><tt>4808f0db</tt></a> Bump [@apollo](https://github.com/apollo)/client from 3.9.4 to 3.9.5 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2938\">#2938</a>)</summary>\n\n- [Release notes](https://github.com/apollographql/apollo-client/releases)\n- [Changelog](https://github.com/apollographql/apollo-client/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/apollographql/apollo-client/compare/v3.9.4...v3.9.5)\n\n---\nupdated-dependencies:\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a96e33959847486ffda1fea0c6776cd5d0787e8d\"><tt>a96e3395</tt></a> Bump github.com/matryer/moq from 0.3.3 to 0.3.4 (<a href=\"https://github.com/99designs/gqlgen/pull/2939\">#2939</a>)</summary>\n\nBumps [github.com/matryer/moq](https://github.com/matryer/moq) from 0.3.3 to 0.3.4.\n- [Release notes](https://github.com/matryer/moq/releases)\n- [Changelog](https://github.com/matryer/moq/blob/main/.goreleaser.yml)\n- [Commits](https://github.com/matryer/moq/compare/v0.3.3...v0.3.4)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/matryer/moq\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7ca35b117c0667f388a0fa2ec9c4dce379c8fb5f\"><tt>7ca35b11</tt></a> v0.17.44 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.44\"></a>\n## [v0.17.44](https://github.com/99designs/gqlgen/compare/v0.17.43...v0.17.44) - 2024-02-15\n- <a href=\"https://github.com/99designs/gqlgen/commit/296b3c49071be2dbb5303b46f3f4a4861e19a5a8\"><tt>296b3c49</tt></a> release v0.17.44\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e85ce95b9630b0ae6ef4ab77f38a1ba9d9b76d2a\"><tt>e85ce95b</tt></a> Bump react-dom from 16.14.0 to 18.2.0 in /_examples/chat (<a href=\"https://github.com/99designs/gqlgen/pull/2930\">#2930</a>)</summary>\n\nBumps [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) from 16.14.0 to 18.2.0.\n- [Release notes](https://github.com/facebook/react/releases)\n- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/facebook/react/commits/v18.2.0/packages/react-dom)\n\n---\nupdated-dependencies:\n- dependency-name: react-dom\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/c88cf024e0117fa2ee36709ba0a64d6077825b48\"><tt>c88cf024</tt></a> Bump github.com/sosodev/duration from 1.1.0 to 1.2.0 (<a href=\"https://github.com/99designs/gqlgen/pull/2927\">#2927</a>)</summary>\n\n* Bump github.com/sosodev/duration from 1.1.0 to 1.2.0\n\nBumps [github.com/sosodev/duration](https://github.com/sosodev/duration) from 1.1.0 to 1.2.0.\n- [Release notes](https://github.com/sosodev/duration/releases)\n- [Commits](https://github.com/sosodev/duration/compare/v1.1.0...v1.2.0)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/sosodev/duration\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n\n* Tidy example go mod\n\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/848fd8352a2d3f6900c6d8e8f47bcc67027883d0\"><tt>848fd835</tt></a> Bump [@graphql](https://github.com/graphql)-codegen/cli from 4.0.1 to 5.0.2 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2932\">#2932</a>)</summary>\n\n- [Release notes](https://github.com/dotansimha/graphql-code-generator/releases)\n- [Changelog](https://github.com/dotansimha/graphql-code-generator/blob/master/packages/graphql-codegen-cli/CHANGELOG.md)\n\n---\nupdated-dependencies:\n  dependency-type: direct:development\n  update-type: version-update:semver-major\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/900040c4f1e21f4ec823e5f869e2a12dfe9b3e6c\"><tt>900040c4</tt></a> Bump vite from 4.5.2 to 5.1.1 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2931\">#2931</a>)</summary>\n\nBumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.5.2 to 5.1.1.\n- [Release notes](https://github.com/vitejs/vite/releases)\n- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)\n- [Commits](https://github.com/vitejs/vite/commits/v5.1.1/packages/vite)\n\n---\nupdated-dependencies:\n- dependency-name: vite\n  dependency-type: direct:development\n  update-type: version-update:semver-major\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e329cf83e1a3a768b06f463266bdcbc493a4adc2\"><tt>e329cf83</tt></a> Bump react from 16.14.0 to 18.2.0 in /_examples/chat (<a href=\"https://github.com/99designs/gqlgen/pull/2929\">#2929</a>)</summary>\n\nBumps [react](https://github.com/facebook/react/tree/HEAD/packages/react) from 16.14.0 to 18.2.0.\n- [Release notes](https://github.com/facebook/react/releases)\n- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/facebook/react/commits/v18.2.0/packages/react)\n\n---\nupdated-dependencies:\n- dependency-name: react\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/9faad5884f879212ba44ca6a5e73b998c46426c2\"><tt>9faad588</tt></a> Bump google.golang.org/protobuf from 1.30.0 to 1.32.0 (<a href=\"https://github.com/99designs/gqlgen/pull/2926\">#2926</a>)</summary>\n\nBumps google.golang.org/protobuf from 1.30.0 to 1.32.0.\n\n---\nupdated-dependencies:\n- dependency-name: google.golang.org/protobuf\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/92b3871bac51f8285bd81e4257ad6298b22e840f\"><tt>92b3871b</tt></a> Bump github.com/stretchr/testify from 1.8.2 to 1.8.4 (<a href=\"https://github.com/99designs/gqlgen/pull/2925\">#2925</a>)</summary>\n\nBumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.8.2 to 1.8.4.\n- [Release notes](https://github.com/stretchr/testify/releases)\n- [Commits](https://github.com/stretchr/testify/compare/v1.8.2...v1.8.4)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/stretchr/testify\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/3f5e1f2813573b659efdc1a054464f4381368d71\"><tt>3f5e1f28</tt></a> Bump github.com/google/uuid from 1.3.0 to 1.6.0 (<a href=\"https://github.com/99designs/gqlgen/pull/2924\">#2924</a>)</summary>\n\nBumps [github.com/google/uuid](https://github.com/google/uuid) from 1.3.0 to 1.6.0.\n- [Release notes](https://github.com/google/uuid/releases)\n- [Changelog](https://github.com/google/uuid/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/google/uuid/compare/v1.3.0...v1.6.0)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/google/uuid\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/fd97abcda9fbdf74028098a57cac57e4a98c9bcb\"><tt>fd97abcd</tt></a> Bump golangci/golangci-lint-action from 3.7.0 to 4.0.0 (<a href=\"https://github.com/99designs/gqlgen/pull/2928\">#2928</a>)</summary>\n\nBumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 3.7.0 to 4.0.0.\n- [Release notes](https://github.com/golangci/golangci-lint-action/releases)\n- [Commits](https://github.com/golangci/golangci-lint-action/compare/v3.7.0...v4.0.0)\n\n---\nupdated-dependencies:\n- dependency-name: golangci/golangci-lint-action\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/64d0f07c27896af3f621bd2ed5bee60913da65ef\"><tt>64d0f07c</tt></a> graphql/uint: Fix unmarshalling of negative numbers (<a href=\"https://github.com/99designs/gqlgen/pull/2922\">#2922</a>)</summary>\n\nConverting a negative number to uint directly returns a really big number. For\nexample,\n\n\tv := -5\n\tfmt.Println(uint(v)) // 18446744073709551611\n\nSo we should handle this cases explicitly and return an error.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e223f1d2927545cb6f8722ac6cf77ff3fb4e1d3c\"><tt>e223f1d2</tt></a> Bump node-fetch from 2.7.0 to 3.3.2 in /_examples/federation (<a href=\"https://github.com/99designs/gqlgen/pull/2916\">#2916</a>)</summary>\n\n* Bump node-fetch from 2.7.0 to 3.3.2 in /_examples/federation\n\nBumps [node-fetch](https://github.com/node-fetch/node-fetch) from 2.7.0 to 3.3.2.\n- [Release notes](https://github.com/node-fetch/node-fetch/releases)\n- [Commits](https://github.com/node-fetch/node-fetch/compare/v2.7.0...v3.3.2)\n\n---\nupdated-dependencies:\n- dependency-name: node-fetch\n  dependency-type: direct:development\n  update-type: version-update:semver-major\n...\n\n\n* Try updating require to import\n\n\n* Try updating Apollo server and gateway\n\n\n\n\n* Change versions of everything in npm\n\n\n* Rever to node 16\n\n\n* Switch to apollo Link\n\n\n* Use more better newer thingy\n\n\n* Change federation node version back to 16\n\n\n* Apollo Link uses uri now instead of link\n\n\n* Change inmemory cache import\n\n\n* Remove node fetch from integration test\n\n\n* Add cross fetch\n\n\n* Adjust cross fetch to dev dependency\n\n\n* Fixup package-lock\n\n\n* Try again\n\n\n* Switch to node 18 to get fetch\n\n\n* Add type module to package.json\n\n\n* export default\n\n\n* Re-order?\n\n\n* Add external\n\n\n* add experimental vm modules to jest\n\n\n* Update git ignore for node_modules\n\n\n* Add some more jest stuff\n\n\n* refmt and regenerate\n\n\n* Add rehackt to dev dependencies\n\n\n* Change to core import\n\n\n* Aaaand do it over here too\n\n\n* Some of each\n\n\n* Move to different HTTP Link\n\n\n* Try again\n\n\n* add gql from apollo core\n\n\n* Change link to uri\n\n\n* Try just passing a string\n\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/9a3694e5af9b360c6271a1eb6002ea58f3f55ec8\"><tt>9a3694e5</tt></a> Bump github.com/hashicorp/golang-lru/v2 from 2.0.3 to 2.0.7 (<a href=\"https://github.com/99designs/gqlgen/pull/2915\">#2915</a>)</summary>\n\n* Bump github.com/hashicorp/golang-lru/v2 from 2.0.3 to 2.0.7\n\nBumps [github.com/hashicorp/golang-lru/v2](https://github.com/hashicorp/golang-lru) from 2.0.3 to 2.0.7.\n- [Release notes](https://github.com/hashicorp/golang-lru/releases)\n- [Commits](https://github.com/hashicorp/golang-lru/compare/v2.0.3...v2.0.7)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/hashicorp/golang-lru/v2\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\n\n* mod tidy for examples\n\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/4b7eec411c1e3361671e7996fa2298c9afe6166a\"><tt>4b7eec41</tt></a> Bump urql from 4.0.4 to 4.0.6 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2906\">#2906</a>)</summary>\n\nBumps [urql](https://github.com/urql-graphql/urql/tree/HEAD/packages/react-urql) from 4.0.4 to 4.0.6.\n- [Release notes](https://github.com/urql-graphql/urql/releases)\n- [Changelog](https://github.com/urql-graphql/urql/blob/main/packages/react-urql/CHANGELOG.md)\n\n---\nupdated-dependencies:\n- dependency-name: urql\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8874254ada6ef4bfffa463f161584c36cb247d8c\"><tt>8874254a</tt></a> Bump github.com/mattn/go-isatty from 0.0.19 to 0.0.20 (<a href=\"https://github.com/99designs/gqlgen/pull/2908\">#2908</a>)</summary>\n\n* Bump github.com/mattn/go-isatty from 0.0.19 to 0.0.20\n\nBumps [github.com/mattn/go-isatty](https://github.com/mattn/go-isatty) from 0.0.19 to 0.0.20.\n- [Commits](https://github.com/mattn/go-isatty/compare/v0.0.19...v0.0.20)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/mattn/go-isatty\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\n\n* Go mod tidy\n\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/9a6b5655690d97399c7c4c61e714c8525c14c926\"><tt>9a6b5655</tt></a> Bump [@graphql](https://github.com/graphql)-codegen/schema-ast from 4.0.0 to 4.0.2 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2918\">#2918</a>)</summary>\n\n- [Release notes](https://github.com/dotansimha/graphql-code-generator/releases)\n- [Changelog](https://github.com/dotansimha/graphql-code-generator/blob/master/packages/plugins/other/schema-ast/CHANGELOG.md)\n\n---\nupdated-dependencies:\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/76c02143471b8e46b40b23a96ca81ac10e054acf\"><tt>76c02143</tt></a> Bump typescript from 5.1.3 to 5.3.3 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2921\">#2921</a>)</summary>\n\nBumps [typescript](https://github.com/Microsoft/TypeScript) from 5.1.3 to 5.3.3.\n- [Release notes](https://github.com/Microsoft/TypeScript/releases)\n- [Commits](https://github.com/Microsoft/TypeScript/compare/v5.1.3...v5.3.3)\n\n---\nupdated-dependencies:\n- dependency-name: typescript\n  dependency-type: direct:development\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/dca5109c0c11612a8cbfd82c3d3928b35f96e7b2\"><tt>dca5109c</tt></a> Bump jest from 25.5.4 to 29.7.0 in /_examples/federation (<a href=\"https://github.com/99designs/gqlgen/pull/2920\">#2920</a>)</summary>\n\nBumps [jest](https://github.com/jestjs/jest/tree/HEAD/packages/jest) from 25.5.4 to 29.7.0.\n- [Release notes](https://github.com/jestjs/jest/releases)\n- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/jestjs/jest/commits/v29.7.0/packages/jest)\n\n---\nupdated-dependencies:\n- dependency-name: jest\n  dependency-type: direct:development\n  update-type: version-update:semver-major\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/4d77a4f0396c68fa3ea271013633acb0a30b305d\"><tt>4d77a4f0</tt></a> Bump graphql from 14.7.0 to 16.8.1 in /_examples/chat (<a href=\"https://github.com/99designs/gqlgen/pull/2899\">#2899</a>)</summary>\n\nBumps [graphql](https://github.com/graphql/graphql-js) from 14.7.0 to 16.8.1.\n- [Release notes](https://github.com/graphql/graphql-js/releases)\n- [Commits](https://github.com/graphql/graphql-js/compare/v14.7.0...v16.8.1)\n\n---\nupdated-dependencies:\n- dependency-name: graphql\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/76f1a55b9cd78cb4f60d97a695fd217253c53db7\"><tt>76f1a55b</tt></a> Bump github.com/rs/cors from 1.9.0 to 1.10.1 in /_examples (<a href=\"https://github.com/99designs/gqlgen/pull/2904\">#2904</a>)</summary>\n\nBumps [github.com/rs/cors](https://github.com/rs/cors) from 1.9.0 to 1.10.1.\n- [Release notes](https://github.com/rs/cors/releases)\n- [Commits](https://github.com/rs/cors/compare/v1.9.0...v1.10.1)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/rs/cors\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/bfa9ed8b83282f6a310663645035913bae7621db\"><tt>bfa9ed8b</tt></a> Bump github.com/google/uuid from 1.3.0 to 1.6.0 in /_examples (<a href=\"https://github.com/99designs/gqlgen/pull/2909\">#2909</a>)</summary>\n\nBumps [github.com/google/uuid](https://github.com/google/uuid) from 1.3.0 to 1.6.0.\n- [Release notes](https://github.com/google/uuid/releases)\n- [Changelog](https://github.com/google/uuid/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/google/uuid/compare/v1.3.0...v1.6.0)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/google/uuid\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/524fdf78810bc38c44d68aac6d7ded0d0d62f40d\"><tt>524fdf78</tt></a> Bump subscriptions-transport-ws from 0.9.19 to 0.11.0 in /_examples/chat (<a href=\"https://github.com/99designs/gqlgen/pull/2911\">#2911</a>)</summary>\n\nBumps [subscriptions-transport-ws](https://github.com/apollostack/subscriptions-transport-ws) from 0.9.19 to 0.11.0.\n- [Release notes](https://github.com/apollostack/subscriptions-transport-ws/releases)\n- [Changelog](https://github.com/apollographql/subscriptions-transport-ws/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/apollostack/subscriptions-transport-ws/compare/v0.9.19...v0.11.0)\n\n---\nupdated-dependencies:\n- dependency-name: subscriptions-transport-ws\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ed5f0bc2690d7da498e78147f834348ab17fbc1a\"><tt>ed5f0bc2</tt></a> Bump github.com/urfave/cli/v2 from 2.25.5 to 2.27.1 (<a href=\"https://github.com/99designs/gqlgen/pull/2912\">#2912</a>)</summary>\n\nBumps [github.com/urfave/cli/v2](https://github.com/urfave/cli) from 2.25.5 to 2.27.1.\n- [Release notes](https://github.com/urfave/cli/releases)\n- [Changelog](https://github.com/urfave/cli/blob/main/docs/CHANGELOG.md)\n- [Commits](https://github.com/urfave/cli/compare/v2.25.5...v2.27.1)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/urfave/cli/v2\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5346a37cbaa33919ba7874e49325f585b10cd85d\"><tt>5346a37c</tt></a> Bump react-scripts from 2.1.8 to 5.0.1 in /_examples/chat (<a href=\"https://github.com/99designs/gqlgen/pull/2914\">#2914</a>)</summary>\n\nBumps [react-scripts](https://github.com/facebook/create-react-app/tree/HEAD/packages/react-scripts) from 2.1.8 to 5.0.1.\n- [Release notes](https://github.com/facebook/create-react-app/releases)\n- [Changelog](https://github.com/facebook/create-react-app/blob/main/CHANGELOG-2.x.md)\n\n---\nupdated-dependencies:\n- dependency-name: react-scripts\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8f8c38db9cfe66fda6ee6e85e6e5c7ad2dd99f23\"><tt>8f8c38db</tt></a> Bump typescript from 4.9.5 to 5.3.3 in /_examples/chat (<a href=\"https://github.com/99designs/gqlgen/pull/2917\">#2917</a>)</summary>\n\nBumps [typescript](https://github.com/Microsoft/TypeScript) from 4.9.5 to 5.3.3.\n- [Release notes](https://github.com/Microsoft/TypeScript/releases)\n- [Commits](https://github.com/Microsoft/TypeScript/compare/v4.9.5...v5.3.3)\n\n---\nupdated-dependencies:\n- dependency-name: typescript\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/6d8479693fcee6e534477d017b3bc740fde38d74\"><tt>6d847969</tt></a> Bump graphql-sse from 2.1.4 to 2.5.2 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2913\">#2913</a>)</summary>\n\nBumps [graphql-sse](https://github.com/enisdenjo/graphql-sse) from 2.1.4 to 2.5.2.\n- [Release notes](https://github.com/enisdenjo/graphql-sse/releases)\n- [Changelog](https://github.com/enisdenjo/graphql-sse/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/enisdenjo/graphql-sse/compare/v2.1.4...v2.5.2)\n\n---\nupdated-dependencies:\n- dependency-name: graphql-sse\n  dependency-type: direct:development\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/14e321ad636aa6f873ba507a6d500a692dea6f6d\"><tt>14e321ad</tt></a> Bump styled-components from 5.3.11 to 6.1.8 in /_examples/chat (<a href=\"https://github.com/99designs/gqlgen/pull/2905\">#2905</a>)</summary>\n\nBumps [styled-components](https://github.com/styled-components/styled-components) from 5.3.11 to 6.1.8.\n- [Release notes](https://github.com/styled-components/styled-components/releases)\n- [Commits](https://github.com/styled-components/styled-components/compare/v5.3.11...v6.1.8)\n\n---\nupdated-dependencies:\n- dependency-name: styled-components\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/76312bc6deeb744f0c6719e9375bcc6be86663d8\"><tt>76312bc6</tt></a> Bump vitest from 0.32.0 to 1.2.2 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2919\">#2919</a>)</summary>\n\nBumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 0.32.0 to 1.2.2.\n- [Release notes](https://github.com/vitest-dev/vitest/releases)\n- [Commits](https://github.com/vitest-dev/vitest/commits/v1.2.2/packages/vitest)\n\n---\nupdated-dependencies:\n- dependency-name: vitest\n  dependency-type: direct:development\n  update-type: version-update:semver-major\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/7b67b2e4413349f729c1dc0ea4c5a5cdf7428b88\"><tt>7b67b2e4</tt></a> Bump github.com/matryer/moq from 0.2.7 to 0.3.3 (<a href=\"https://github.com/99designs/gqlgen/pull/2902\">#2902</a>)</summary>\n\nBumps [github.com/matryer/moq](https://github.com/matryer/moq) from 0.2.7 to 0.3.3.\n- [Release notes](https://github.com/matryer/moq/releases)\n- [Changelog](https://github.com/matryer/moq/blob/main/.goreleaser.yml)\n- [Commits](https://github.com/matryer/moq/compare/v0.2.7...v0.3.3)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/matryer/moq\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/96c064c46d4e998563835cf9ea40a81d348a86cf\"><tt>96c064c4</tt></a> Bump github.com/gorilla/websocket from 1.5.0 to 1.5.1 in /_examples (<a href=\"https://github.com/99designs/gqlgen/pull/2901\">#2901</a>)</summary>\n\nBumps [github.com/gorilla/websocket](https://github.com/gorilla/websocket) from 1.5.0 to 1.5.1.\n- [Release notes](https://github.com/gorilla/websocket/releases)\n- [Commits](https://github.com/gorilla/websocket/compare/v1.5.0...v1.5.1)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/gorilla/websocket\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8719860b16ca73fd97d46f0c9a62ef63a0582466\"><tt>8719860b</tt></a> Bump github.com/stretchr/testify from 1.8.2 to 1.8.4 in /_examples (<a href=\"https://github.com/99designs/gqlgen/pull/2897\">#2897</a>)</summary>\n\nBumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.8.2 to 1.8.4.\n- [Release notes](https://github.com/stretchr/testify/releases)\n- [Commits](https://github.com/stretchr/testify/compare/v1.8.2...v1.8.4)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/stretchr/testify\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/6d3c5a82626ce91e373068ae0a07fff589f02aba\"><tt>6d3c5a82</tt></a> Bump golangci/golangci-lint-action from 3.5.0 to 3.7.0 (<a href=\"https://github.com/99designs/gqlgen/pull/2896\">#2896</a>)</summary>\n\nBumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 3.5.0 to 3.7.0.\n- [Release notes](https://github.com/golangci/golangci-lint-action/releases)\n- [Commits](https://github.com/golangci/golangci-lint-action/compare/v3.5.0...v3.7.0)\n\n---\nupdated-dependencies:\n- dependency-name: golangci/golangci-lint-action\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ad4d7f259118e21463e19bd73d816774d6708f6f\"><tt>ad4d7f25</tt></a> Bump nick-fields/retry from 2 to 3 (<a href=\"https://github.com/99designs/gqlgen/pull/2907\">#2907</a>)</summary>\n\nBumps [nick-fields/retry](https://github.com/nick-fields/retry) from 2 to 3.\n- [Release notes](https://github.com/nick-fields/retry/releases)\n- [Changelog](https://github.com/nick-fields/retry/blob/master/.releaserc.js)\n- [Commits](https://github.com/nick-fields/retry/compare/v2...v3)\n\n---\nupdated-dependencies:\n- dependency-name: nick-fields/retry\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/912cc8da9b185f4a51d5c4b25530fc3d1dcefc14\"><tt>912cc8da</tt></a> Bump actions/setup-node from 3 to 4 (<a href=\"https://github.com/99designs/gqlgen/pull/2910\">#2910</a>)</summary>\n\nBumps [actions/setup-node](https://github.com/actions/setup-node) from 3 to 4.\n- [Release notes](https://github.com/actions/setup-node/releases)\n- [Commits](https://github.com/actions/setup-node/compare/v3...v4)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-node\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/2f3d96abd2f0539cdad3b14ab21b5766ebe945a0\"><tt>2f3d96ab</tt></a> Bump actions/checkout from 3 to 4 (<a href=\"https://github.com/99designs/gqlgen/pull/2903\">#2903</a>)</summary>\n\nBumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/v3...v4)\n\n---\nupdated-dependencies:\n- dependency-name: actions/checkout\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/34f8d084d25640d49abb5b3c7fcd5cc2bd2bfaae\"><tt>34f8d084</tt></a> Bump actions/setup-go from 3 to 5 (<a href=\"https://github.com/99designs/gqlgen/pull/2900\">#2900</a>)</summary>\n\nBumps [actions/setup-go](https://github.com/actions/setup-go) from 3 to 5.\n- [Release notes](https://github.com/actions/setup-go/releases)\n- [Commits](https://github.com/actions/setup-go/compare/v3...v5)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-go\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/143edebe57af9834c56d7ae6c484eb0fb4005bf2\"><tt>143edebe</tt></a> Update x/tools and add go v1.21,v1.22 in CI workflows (<a href=\"https://github.com/99designs/gqlgen/pull/2894\">#2894</a>)</summary>\n\n* Update golang.org/x/tools\n\n* Update Go versions to 1.21 and 1.22 in CI workflows\n\n* Run go mod tidy on submodule _examples\n\n\n* Update to Go 1.20\n\n\n* go modules on for all checks\n\n\n* reduce redundant invocations\n\n\n* add echo to non-sensitive checks\n\n\n* More comments\n\n\n* Make submodule go generate chain differently\n\n\n* Add which cd\n\n\n* Try to figure out why cd is not in path\n\n\n* set CWD to examples in go generate instead\n\n\n* Try export\n\n\n* Use env in go generate comment\n\n\n* make go generate comment always successful\n\n\n* Try shelling out\n\n\n* Update our github actions, npm, and go modules via dependabot\n\n\n---------\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e174d59ed2da4e94557ba477b3f1fe8a9d268700\"><tt>e174d59e</tt></a> Work with https://specs.apollo.dev/federation/v2.x (<a href=\"https://github.com/99designs/gqlgen/pull/2891\">#2891</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/4d8b6edb6d2a8d61c981dd22f045af5c39d1499c\"><tt>4d8b6edb</tt></a> Update federation plugin (<a href=\"https://github.com/99designs/gqlgen/pull/2876\">#2876</a>)</summary>\n\n* update 2.7 impl, add missing 2.6 support\n\n* address feedback\n\n* go fmt\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5524a399d35ce6429e3aa6938ea8c64125f093e8\"><tt>5524a399</tt></a> Bump vite from 4.3.9 to 4.5.2 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2885\">#2885</a>)</summary>\n\nBumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.3.9 to 4.5.2.\n- [Release notes](https://github.com/vitejs/vite/releases)\n- [Changelog](https://github.com/vitejs/vite/blob/v4.5.2/packages/vite/CHANGELOG.md)\n- [Commits](https://github.com/vitejs/vite/commits/v4.5.2/packages/vite)\n\n---\nupdated-dependencies:\n- dependency-name: vite\n  dependency-type: direct:development\n...\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/41b14fcf9a7d84b814cf86ed3fb6b2ff3dd2fab8\"><tt>41b14fcf</tt></a> v0.17.43 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.43\"></a>\n## [v0.17.43](https://github.com/99designs/gqlgen/compare/v0.17.42...v0.17.43) - 2024-01-18\n- <a href=\"https://github.com/99designs/gqlgen/commit/0d5519cfe07019dc29090735f477cf6bc5329c9b\"><tt>0d5519cf</tt></a> release v0.17.43\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5779ac2148185a7b9268715a01bcc5ca763f524d\"><tt>5779ac21</tt></a> Update gqlparser to v2.5.11 (<a href=\"https://github.com/99designs/gqlgen/pull/2882\">#2882</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f06f58b03ed04044ae2e85a4966267623011302a\"><tt>f06f58b0</tt></a> add omitempty config to example gqlgen.yml (<a href=\"https://github.com/99designs/gqlgen/pull/2880\">#2880</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/32bdbdd18c1afb496158525490bce0cb1629d5e2\"><tt>32bdbdd1</tt></a> Add config option to omit root objects from models (<a href=\"https://github.com/99designs/gqlgen/pull/2878\">#2878</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5b65689140e4a688f4b49827785bc94044ac6693\"><tt>5b656891</tt></a> Fix code generation for federated multi-key, multi-entity types (<a href=\"https://github.com/99designs/gqlgen/pull/2877\">#2877</a>)</summary>\n\n* fix codegen for multi-key, multi-entity type\n\n* adding tests\n\n* updated generated code\n\n---------\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/15c05a78f8590f5bc8ca193e4a82e410c6f4b8d5\"><tt>15c05a78</tt></a> Update changelog\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/87a7517aa2300a4e6608686eb5b0bd49210b6f11\"><tt>87a7517a</tt></a> v0.17.42 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.42\"></a>\n## [v0.17.42](https://github.com/99designs/gqlgen/compare/v0.17.41...v0.17.42) - 2023-12-29\n- <a href=\"https://github.com/99designs/gqlgen/commit/7bf0c223aec642d086793698bc2a0d1a6fdb09b4\"><tt>7bf0c223</tt></a> release v0.17.42\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/c811d47ec498bdd50591f163e7d23a7524e98280\"><tt>c811d47e</tt></a> fix: avoid panic from tracing on bad request (<a href=\"https://github.com/99designs/gqlgen/pull/2871\">#2871</a>)</summary>\n\nThis fixes a panic which arises from the tracing components when a request has some defect which results in an error when creating the operation context. The transports consistently handle this by calling `DispatchError(graphql.WithOperationContext(ctx, rc), err)` where `rc` is the OperationContext which was not correctly constructed. This seems dangerous, because middleware may assume that if there in an `OperationContext` in the `context.Context` than they are being invoked on a normal codepath and can assume their other interceptors have been invoked in the normal order. Also, using a value returned by a function which also returned a non-nil error is very unusual. However, I have no idea what the impact of changing that dangerous behavior in the transports would be, so I opted to make the tracing component more resilient instead.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/13bb415268dda837690835e65e331746c8df892b\"><tt>13bb4152</tt></a> fix for entity interfce code gen with related test (<a href=\"https://github.com/99designs/gqlgen/pull/2868\">#2868</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0354649c0309af6acfe089d12d103060d55a5805\"><tt>0354649c</tt></a> Remove archived dependency appdash (<a href=\"https://github.com/99designs/gqlgen/pull/2866\">#2866</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0d43599cdab22912d4ddd061c3b3ffd5d8da3845\"><tt>0d43599c</tt></a> Update examples go.mod with appdash replacements (<a href=\"https://github.com/99designs/gqlgen/pull/2863\">#2863</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7dd971c871c0b0159ad26c9bf3095a8ba3780402\"><tt>7dd971c8</tt></a> Use defer wg.Done() in FieldSet Dispatch (<a href=\"https://github.com/99designs/gqlgen/pull/2861\">#2861</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/24ea195cebea095035caf4d23af7f3d75fd0a041\"><tt>24ea195c</tt></a> vikstrous/dataloadgen replaces recommended dataloader package in example docs (<a href=\"https://github.com/99designs/gqlgen/pull/2770\">#2770</a>)</summary>\n\n* update example for dataloadgen\n\n* improved example with link to example repo\n\n* undo unnecessary changes\n\n* fix wrong signature\n\n* fix creation of loader\n\n* Update docs/content/reference/dataloaders.md\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/42f6e39d48e3a301bf39cd4e8fd180250bc25f2c\"><tt>42f6e39d</tt></a> Allow fields that return root level definitions (<a href=\"https://github.com/99designs/gqlgen/pull/2858\">#2858</a>)</summary>\n\n* generate structs for root level definitions to support fields that return Query, Mutation or Subscription\n\n* removed unnecessary comment\n\n* re-ran go generate\n\n---------\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/682a58dd6af5fda53509fbf4cfa45d23b5bb1c86\"><tt>682a58dd</tt></a> Add go generate for examples so contributors never forget (<a href=\"https://github.com/99designs/gqlgen/pull/2859\">#2859</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e080a96de178520fcfaf5a8d68836981ec4df9a9\"><tt>e080a96d</tt></a> Modify to prevent unreachable code from occurring (<a href=\"https://github.com/99designs/gqlgen/pull/2846\">#2846</a>)</summary>\n\n* fix: 型の数でソートする処理を追加\n\n* 戻し\n\n* fix: case文の最初にスーパークラスが来ないようにする\n\n* testdata追加\n\n* fix: Added sorting by number of types.\n* fix: Prevent superclass from appearing at the beginning of case statement\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/68744ad2a1e9d5869ab6a00b49814c6ae9583186\"><tt>68744ad2</tt></a> Bump changelog\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e4cf21d24518deb99af6d4c0ea86de11d6889349\"><tt>e4cf21d2</tt></a> v0.17.41 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.41\"></a>\n## [v0.17.41](https://github.com/99designs/gqlgen/compare/v0.17.40...v0.17.41) - 2023-12-03\n- <a href=\"https://github.com/99designs/gqlgen/commit/fe60938c55308b1cd5562556cdb976771cfcc6cc\"><tt>fe60938c</tt></a> release v0.17.41\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5e98a16a3a5a5678f1b6481275d81f52f9462f90\"><tt>5e98a16a</tt></a> fix fieldset.New bug when prefix slice has len < cap (<a href=\"https://github.com/99designs/gqlgen/pull/2851\">#2851</a>)</summary>\n\n* fix fieldset.New bug when prefix slice has len < cap\n\n* ignore gocritic warning\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/bd9657f3e50b7b9642c05039a5364ce2262faaf4\"><tt>bd9657f3</tt></a> Improve ResolverImplementer.Implment  (<a href=\"https://github.com/99designs/gqlgen/pull/2850\">#2850</a>)</summary>\n\n* improve resolver implement render\n\n* add error when multiple implementors\n\n* add initial test\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/cb3c1c890e5a255776df9577c80b0c15218cf254\"><tt>cb3c1c89</tt></a> Updated apollo sandbox (<a href=\"https://github.com/99designs/gqlgen/pull/2849\">#2849</a>)</summary>\n\nAdded all supported options to new window.EmbeddedSandbox object\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/eb5cea7206767bda3582040fd9e4c98174aaa6b1\"><tt>eb5cea72</tt></a> Small template fix to save space in the generated file (<a href=\"https://github.com/99designs/gqlgen/pull/2841\">#2841</a>)</summary>\n\n* Small template fix to save space in the generated file\n\n* Re-generate\n\n\n---------\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c0ca5091a10417c34192da4d3c064a0fed2a7fdb\"><tt>c0ca5091</tt></a> Omittable can now be serialized as json (<a href=\"https://github.com/99designs/gqlgen/pull/2839\">#2839</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/dcb7619111642cc82a21b8e80ce1300213af1368\"><tt>dcb76191</tt></a> fix: sample program indentation (<a href=\"https://github.com/99designs/gqlgen/pull/2840\">#2840</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/132ec1ce579e9ce3dc772afebf9703c1403d588e\"><tt>132ec1ce</tt></a> Updated GraphiQL 3.0.1 => 3.0.6 (<a href=\"https://github.com/99designs/gqlgen/pull/2837\">#2837</a>)</summary>\n\n* Updated GraphiQL 3.0.1 => 3.0.6\n\n* Added unit tests to cover integrity of playgrounds\n\n* Updated vulnerable dependency\n\n* Close response body\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/917407005eb4198aa43875984fb77caeaa7fca36\"><tt>91740700</tt></a> v0.17.40 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.40\"></a>\n## [v0.17.40](https://github.com/99designs/gqlgen/compare/v0.17.39...v0.17.40) - 2023-10-24\n- <a href=\"https://github.com/99designs/gqlgen/commit/c5ad14bf6c4203cefee7888e35e1f07e3a46e77a\"><tt>c5ad14bf</tt></a> release v0.17.40\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/74e918f9271dbd045a0425e1f6ddb4804e30404b\"><tt>74e918f9</tt></a> Map based input types fields are now coerced to the right type (<a href=\"https://github.com/99designs/gqlgen/pull/2830\">#2830</a>)</summary>\n\n* Input maps now unmarshals and checks nested fields\n\n* Added unit tests\n\n* Tested required fields in input maps\n\n* Docs updated with disclaimer\n\n* Added test for nested inputs\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1e5fa72a260d2313cf2d2f3315c5f885aa209acd\"><tt>1e5fa72a</tt></a> Bump [@babel](https://github.com/babel)/traverse from 7.22.5 to 7.23.2 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2831\">#2831</a>)</summary>\n\n- [Release notes](https://github.com/babel/babel/releases)\n- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse)\n\n---\nupdated-dependencies:\n  dependency-type: indirect\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e5c17d63948dd20879e4a9db68863689842ab49a\"><tt>e5c17d63</tt></a> resolver: fix case-insensitive file name collision (<a href=\"https://github.com/99designs/gqlgen/pull/2829\">#2829</a>)</summary>\n\nfor compatibility with Windows/Mac OS X, Go does not allow files with\nidentical case-insensitive names.\nthis commit changes the key of the 'files' map to use the lower case\nfile name, keeping the original file name as a property on the File\nobject.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9c5fc3024574d0b954962d2e6453fa7489ba6327\"><tt>9c5fc302</tt></a> v0.17.39 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.39\"></a>\n## [v0.17.39](https://github.com/99designs/gqlgen/compare/v0.17.38...v0.17.39) - 2023-10-05\n- <a href=\"https://github.com/99designs/gqlgen/commit/eed94e8caddb251cc6c180062b26708b8b06dd35\"><tt>eed94e8c</tt></a> release v0.17.39\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a863d6451eb1bb54673a86de79004f2182501ac1\"><tt>a863d645</tt></a> Add [@interfaceObject](https://github.com/interfaceObject) and [@composeDirective](https://github.com/composeDirective) at Federation 2 directive lists. (<a href=\"https://github.com/99designs/gqlgen/pull/2821\">#2821</a>)</summary>\n\nThis commit just adding those directives into the list.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/3ff523ba5f4564432f7c8c0631ccc3d25754a407\"><tt>3ff523ba</tt></a> Bump postcss from 8.4.24 to 8.4.31 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2819\">#2819</a>)</summary>\n\nBumps [postcss](https://github.com/postcss/postcss) from 8.4.24 to 8.4.31.\n- [Release notes](https://github.com/postcss/postcss/releases)\n- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/postcss/postcss/compare/8.4.24...8.4.31)\n\n---\nupdated-dependencies:\n- dependency-name: postcss\n  dependency-type: indirect\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5925864212bb286e22a3027c3900aa99874cc7ad\"><tt>59258642</tt></a> Adding duration scalar conforming to ISO8601 standard (<a href=\"https://github.com/99designs/gqlgen/pull/2800\">#2800</a>)</summary>\n\n* Adding duration scalar\n\n* simple Duration scalar docs\n\n* using MarshalString, to add proper double quotes\n\n* adding deps and running go mod tidy on _examples\n\n* Re-organize imports\n\n\n* Fix test now that imports are sorted\n\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/37f8e4ebb45d5a7edac5e8f6a241d842b4b9cfb1\"><tt>37f8e4eb</tt></a> Add ability to not fail when pong is not received. (<a href=\"https://github.com/99designs/gqlgen/pull/2815\">#2815</a>)</summary>\n\nI also changed how the read deadline set works a little, the reason for\nthis is that the protocol allows for pong to be sent without a ping.\n\nSo setting a read deadline on receiving pong isn't great. Instead we\nshould always set the read deadline on sending ping. Though to do this\nwe need to know whether we have received a pong or not. Because if we\nset the read deadline when the previous ping still hasn't received the\npong. Then it will never hit the deadline.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/89ac736ffe346e9ee95b12b4db467d1a802fe0ac\"><tt>89ac736f</tt></a> Store parsed Schema on ExecutableSchema rather than use global variable (<a href=\"https://github.com/99designs/gqlgen/pull/2811\">#2811</a>)</summary>\n\n* codegen: executableSchema schema configurable\n\n* feat\n\n* feat\n\n* codegen: add schema property on Config and executableSchema\n\n* fix: fmt\n\n* regenerate\n\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/919aded6be6cd722c202214e7a8183ed56762501\"><tt>919aded6</tt></a> Add a pong only keep alive for the new protcol (<a href=\"https://github.com/99designs/gqlgen/pull/2814\">#2814</a>)</summary>\n\nThe protocol allows for this and this eliminates the potential for\nover-agressive triggers of the read deadline set for using the ping/pong\nflow.\n\nhttps://github.com/enisdenjo/graphql-ws/blob/50d5a512d0d7252d41c079e6716b884a191b1ddc/PROTOCOL.md#pong\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/001c296a39ee981d415f5079ce0a8827e5d65874\"><tt>001c296a</tt></a> Update auto-generated files with latest results. (<a href=\"https://github.com/99designs/gqlgen/pull/2813\">#2813</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f6fa3aae778926668b0787605c0eab125a800c1e\"><tt>f6fa3aae</tt></a> Consider go type name when autobinding (<a href=\"https://github.com/99designs/gqlgen/pull/2812\">#2812</a>)</summary>\n\nCurrently, generated schema type names are normalized, for instance - SomeTYPE in the schema will be generated as SomeType in the model.\n\nWhen autobinding, however, we only consider the schema type name when searching for it in the relevant package(s),\nthus type names that differ post normalizations aren't auto-bound properly and are instead re-generated.\n\nThis commit suggests a fix where we'd try to autobind for both the schema type name (first, to maintain back compat), or the go type name if the former isn't found.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/4e8d8c70ce216824e506ad3d77b005f56c3ed144\"><tt>4e8d8c70</tt></a> Feature: Support Apollo Federation Auth Directives (<a href=\"https://github.com/99designs/gqlgen/pull/2809\">#2809</a>)</summary>\n\n* local version working\n\n* gofmt\n\n* tabs\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/66709d89f0fd45eca823382d3a95020ef5c7485c\"><tt>66709d89</tt></a> feat: update getting-started CreateTodo mutationResolver (<a href=\"https://github.com/99designs/gqlgen/pull/2810\">#2810</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/2c9f9c5f828bdda8aa03c4be7adf1d0c9abaa8f6\"><tt>2c9f9c5f</tt></a> fix: CodeGen for omit_slice_element_pointers and GetMany Entity Resolvers (<a href=\"https://github.com/99designs/gqlgen/pull/2802\">#2802</a>)</summary>\n\n* remove ! from reps definition\n\n* adding tests\n\n* fixing tests\n\n* adding documentation\n\n* addressing lint\n\n* commit after go gonerate\n\n* gofmt\n\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/3e2393f3afe1f3f530c34f4dbbece47bde6e736b\"><tt>3e2393f3</tt></a> add close flag into wsConnection to avoid duplicate calls of CloseFunc (<a href=\"https://github.com/99designs/gqlgen/pull/2803\">#2803</a>)</summary>\n\n* add close flag into wsConnection to avoid duplicate calls of CloseFunc\n\n* add test\n\n* Fix linter error\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/af4d3943308b7a84464771e5ed6b578ba40ee0c3\"><tt>af4d3943</tt></a> Allow WebsocketInitFunc to add payload to Ack (<a href=\"https://github.com/99designs/gqlgen/pull/4\">#4</a>) (<a href=\"https://github.com/99designs/gqlgen/pull/2791\">#2791</a>)</summary>\n\n* Allow WebsocketInitFunc to add payload to Ack\n\nThe connection ACK message in the protocol for both\ngraphql-ws and graphql-transport-ws allows for a payload in the\nconnection ack message.\n\nWe really wanted to use this to establish better telemetry in our use of\nwebsockets in graphql.\n\n* Fix lint error in test\n\n* Switch argument ordering.\n\n---------\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f3b860336bfcc7307713420e703ee5badec029a4\"><tt>f3b86033</tt></a> v0.17.38 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.38\"></a>\n## [v0.17.38](https://github.com/99designs/gqlgen/compare/v0.17.37...v0.17.38) - 2023-09-19\n- <a href=\"https://github.com/99designs/gqlgen/commit/d9077fac9c2320b28744fb43ab1d00c4d50f0af8\"><tt>d9077fac</tt></a> release v0.17.38\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5f452ce2dbfc4171fc021c10de11b435a60c8955\"><tt>5f452ce2</tt></a> Update gqlparser to 2.5.10 (<a href=\"https://github.com/99designs/gqlgen/pull/2798\">#2798</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c89860bdd01827ad0f7a3f2020935e2ae115ecb7\"><tt>c89860bd</tt></a> refactor: return `null` instead of zero value uuid (<a href=\"https://github.com/99designs/gqlgen/pull/2794\">#2794</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/625ca2e58aba47cd540f0fb47e048a743a896906\"><tt>625ca2e5</tt></a> Make it possible to pass UI headers (<a href=\"https://github.com/99designs/gqlgen/pull/2793\">#2793</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fceb33111bef2bbbf14468d78888098ac8968351\"><tt>fceb3311</tt></a> Fix rand int docs link in Getting Started (<a href=\"https://github.com/99designs/gqlgen/pull/2789\">#2789</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f01d580501ddca4cf20b6fbf7f937be8509466bf\"><tt>f01d5805</tt></a> Add new changelog (<a href=\"https://github.com/99designs/gqlgen/pull/2787\">#2787</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/9930e5740e0670a69bfd4397d87222b49cf7f0e6\"><tt>9930e574</tt></a> Ability to use forceGenerate and extraFields together (<a href=\"https://github.com/99designs/gqlgen/pull/2788\">#2788</a>)</summary>\n\n* Ability to user forceGenerate and extraFields together\n\n* Some docs for forceGenerate added\n\n---------\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f90ac05e42fcc97addda2d32e3cc16565f55ed98\"><tt>f90ac05e</tt></a> v0.17.37 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.37\"></a>\n## [v0.17.37](https://github.com/99designs/gqlgen/compare/v0.17.36...v0.17.37) - 2023-09-08\n- <a href=\"https://github.com/99designs/gqlgen/commit/ccae370e96cbca6ce5deaabf28a6d57e3b181b3b\"><tt>ccae370e</tt></a> release v0.17.37\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6505f8be0d99593376d6c9a0dea00af5e3c018ea\"><tt>6505f8be</tt></a> Update gqlparser (<a href=\"https://github.com/99designs/gqlgen/pull/2785\">#2785</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/153ec470d993a39c1656fc45432740f1d3dd10ea\"><tt>153ec470</tt></a> add uuid type (<a href=\"https://github.com/99designs/gqlgen/pull/2751\">#2751</a>) (closes <a href=\"https://github.com/99designs/gqlgen/issues/2749\"> #2749</a>)</summary>\n\n* add uuid type\n\n* add uuid example\n\n* add uuid scalar doc\n\n* strconv.Quote\n\n* Apply suggestions from code review\n\n* fix\n\n\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/fa4711801c59d27db887a50e1f8393006268194e\"><tt>fa471180</tt></a> ForceGenerate parameter to [@goModel](https://github.com/goModel) added. (<a href=\"https://github.com/99designs/gqlgen/pull/2780\">#2780</a>)</summary>\n\n* forceGenerate to docs added\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/11bb9b1890fd9e5909f06feba7b2985bf09785c9\"><tt>11bb9b18</tt></a> codegen: add support for `go_build_tags` option in gqlgen.yaml (<a href=\"https://github.com/99designs/gqlgen/pull/2784\">#2784</a>)</summary>\n\n* codegen: support go_build_tags option in gqlgen.yaml\n\n* chore: added test\n\n* docs/content: update config example\n\n* chore: more comment\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/bee47dcf1f3edb95e7a77e612ea27d85a417b12c\"><tt>bee47dcf</tt></a> fix flaky test TestSubscriptions (<a href=\"https://github.com/99designs/gqlgen/pull/2779\">#2779</a>)</summary>\n\n* fix flaky test TestSubscriptions\n\n* update other copy of the test\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a41f4daad66cb0c102bfa09d7bff5a057d378197\"><tt>a41f4daa</tt></a> docs: short-lived loader (<a href=\"https://github.com/99designs/gqlgen/pull/2778\">#2778</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cc4e0ba28375e0ec39c586485fa138c28e5bfcba\"><tt>cc4e0ba2</tt></a> ensure HasOperationContext checks for nil (<a href=\"https://github.com/99designs/gqlgen/pull/2776\">#2776</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a1ca220477092398efc8e587dd653f5cb967d0e9\"><tt>a1ca2204</tt></a> fix typo in TESTING.md server path (<a href=\"https://github.com/99designs/gqlgen/pull/2774\">#2774</a>)</summary>\n\nfollowing TESTING.md instructions, I got an error:\n\"stat ./server/server.go: no such file or directory\"\n\nserver.go path is: integration/server/cmd/integration/server.go\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1cde8c3fab65847a6e8d7f423215b786b47c19df\"><tt>1cde8c3f</tt></a> return internal types in schema introspection (<a href=\"https://github.com/99designs/gqlgen/pull/2773\">#2773</a>)</summary>\n\naccording to graphql spec:\n```\ntypes: return the set of all named types contained within this schema.\nAny named type which can be found through a field of any introspection type must be included in this set.\n```\nsource: https://github.com/graphql/graphql-spec/blob/main/spec/Section%204%20--%20Introspection.md#the-__schema-type\n\nsome clients libs (like HotChocolate for C#) depends on this behavior.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/065aea3efa27f0662eb2f62ef2dd131e153009ba\"><tt>065aea3e</tt></a> Fix gqlgen truncates tag value with colon (<a href=\"https://github.com/99designs/gqlgen/pull/2759\">#2759</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d6270e4f4fd951c71ee2a2b997d7098b04e07976\"><tt>d6270e4f</tt></a> Update subsciptions documentation to correctly close channel (<a href=\"https://github.com/99designs/gqlgen/pull/2753\">#2753</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2d8673a691deffe6ddd1f4d5f013a52dc91aef91\"><tt>2d8673a6</tt></a> Add Model references to Interface (<a href=\"https://github.com/99designs/gqlgen/pull/2738\">#2738</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/790d7a7571865b8b8324557e1a565f40c23217c8\"><tt>790d7a75</tt></a> Allow GraphiQL headers to be set when creating the playground handler (<a href=\"https://github.com/99designs/gqlgen/pull/2740\">#2740</a>) (closes <a href=\"https://github.com/99designs/gqlgen/issues/2739\"> #2739</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0eb95dc4315fc5f74431df03e008283cf9ec0c35\"><tt>0eb95dc4</tt></a> v0.17.36 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.36\"></a>\n## [v0.17.36](https://github.com/99designs/gqlgen/compare/v0.17.35...v0.17.36) - 2023-07-27\n- <a href=\"https://github.com/99designs/gqlgen/commit/bd6cfd3108818cd060a06491052c36fb6f5e4be3\"><tt>bd6cfd31</tt></a> release v0.17.36\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/60ec0d86847c97cd45c6e431d49b7ccf50efeeb9\"><tt>60ec0d86</tt></a> Fix plugin template resolution (<a href=\"https://github.com/99designs/gqlgen/pull/2733\">#2733</a>) (closes <a href=\"https://github.com/99designs/gqlgen/issues/2262\"> #2262</a>)</summary>\n\n- According to the documentation comment for [templates.Options], if the\n  `Template` and `TemplateFS` fields are empty, it `Render` should find\n  the `.gotpl` files from the calling plugin. However, it looks like\n  helper function. This results in broken behavior in consumers such as\n  [infiotinc/gqlgenc](https://github.com/infiotinc/gqlgenc) when they\n  use the latest version of `gqlgen` as instead of finding the template\n  from the plugin, the test template from this package is used which\n  outputs only: `this is my test package`.\n- The cause for this is that `runtime.Caller` was still only skipping\n  one stack level which means that it was finding the `Render` function\n  instead of its caller.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/76d444c15fc1d98538648a229f41ed7b4573bad7\"><tt>76d444c1</tt></a> Make models configurable via template (<a href=\"https://github.com/99designs/gqlgen/pull/2730\">#2730</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/abe3ffde59d6a0d942a9ac2d1b657287f75efa67\"><tt>abe3ffde</tt></a> Don't set the package variable for the new Resolver Template (<a href=\"https://github.com/99designs/gqlgen/pull/2725\">#2725</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/febf9566224b3e3ad0e32903fd46d9005d6a7748\"><tt>febf9566</tt></a> Make the resolver implementation configurable via a new template resolver.gotpl (<a href=\"https://github.com/99designs/gqlgen/pull/2720\">#2720</a>)</summary>\n\n* Make an optional resolver.gotpl ResolverTemplate to implement a custom resolver\n\n* Add test\n\n* Add documetation for the new resolver option\n\n* Change the tab to spaces\n\n* remove unecessary test assertion :/\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/bda3026043f187bf00f039d1c3648d5b1a8e4998\"><tt>bda30260</tt></a> Fixed Data Loader docs (<a href=\"https://github.com/99designs/gqlgen/pull/2723\">#2723</a>)</summary>\n\nAlso updated to v7\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/16c9eb64ed04218e927a74199a57f951bfb452b1\"><tt>16c9eb64</tt></a> Fix docs (<a href=\"https://github.com/99designs/gqlgen/pull/2722\">#2722</a>)</summary>\n\n* docs: fix variable names in dataloader sample\n\n* fix: request-scoped middleware\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/b233a01bf7eeb9f9ddc590a7dd72058da28d88df\"><tt>b233a01b</tt></a> docs: update dataloader docs (<a href=\"https://github.com/99designs/gqlgen/pull/2719\">#2719</a>)</summary>\n\n* docs: update example\n\n* docs: update example\n\n* fix: import\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cccc7389c10cdd4ef4eb7b9541dedb0f9cf74a97\"><tt>cccc7389</tt></a> Added go mod tidy to quick start guide (<a href=\"https://github.com/99designs/gqlgen/pull/2718\">#2718</a>) (closes <a href=\"https://github.com/99designs/gqlgen/issues/2717\"> #2717</a>, <a href=\"https://github.com/99designs/gqlgen/issues/2651\"> #2651</a>, <a href=\"https://github.com/99designs/gqlgen/issues/2641\"> #2641</a>, <a href=\"https://github.com/99designs/gqlgen/issues/2614\"> #2614</a>, <a href=\"https://github.com/99designs/gqlgen/issues/2576\"> #2576</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9adc7b81ac27c157e597d369e4499353f0f6b0b0\"><tt>9adc7b81</tt></a> Update gqlparser to v2.5.8 (<a href=\"https://github.com/99designs/gqlgen/pull/2716\">#2716</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b442fbf457498c8ad318578b570c5a6b64cab452\"><tt>b442fbf4</tt></a> Post v0.17.35 changelog update\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/57c121994b1f843f62f99ada71a707e4f263a9df\"><tt>57c12199</tt></a> v0.17.35 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.35\"></a>\n## [v0.17.35](https://github.com/99designs/gqlgen/compare/v0.17.34...v0.17.35) - 2023-07-15\n- <a href=\"https://github.com/99designs/gqlgen/commit/05006bf1dcb9451b0960d07fd68370145c2697b4\"><tt>05006bf1</tt></a> release v0.17.35\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d95d614f8fc2c5983390adf0507027a1efdd778a\"><tt>d95d614f</tt></a> Update gqlparser to v2.5.7 (<a href=\"https://github.com/99designs/gqlgen/pull/2714\">#2714</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8c378e6bdd1962822216053ae2c01e89ef35034a\"><tt>8c378e6b</tt></a> Updated GraphiQL playground 2.0.7 -> 3.0.1 and react 17 -> 18 (<a href=\"https://github.com/99designs/gqlgen/pull/2713\">#2713</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/7880739d48a9aa2d6f4be87129cb361d2c2c0345\"><tt>7880739d</tt></a> Add op ctx safety for apollo tracing (<a href=\"https://github.com/99designs/gqlgen/pull/2709\">#2709</a>)</summary>\n\n* Add automated tests for both tracing and tracer to simulate a client disconnect\n* Check for existence of operation context before proceeding to avoid panic\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6ed9337bce0daf05c1c3bda29fd86368768cdb68\"><tt>6ed9337b</tt></a> fix function name in comment (<a href=\"https://github.com/99designs/gqlgen/pull/2707\">#2707</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2cfb9f98c4c2b090a6a65816ed28a67501303768\"><tt>2cfb9f98</tt></a> Fix apollo integrity hash (<a href=\"https://github.com/99designs/gqlgen/pull/2706\">#2706</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/470fca87d3002399fb02e14cf014c3c26755d87b\"><tt>470fca87</tt></a> Update gqlparser again (<a href=\"https://github.com/99designs/gqlgen/pull/2697\">#2697</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/280441b1a0c46652f3b16692839fbdbd024aa06d\"><tt>280441b1</tt></a> Update changelog\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5bc36e142dfffceb96ac8b23bb9c13b492504474\"><tt>5bc36e14</tt></a> v0.17.34 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.34\"></a>\n## [v0.17.34](https://github.com/99designs/gqlgen/compare/v0.17.33...v0.17.34) - 2023-06-23\n- <a href=\"https://github.com/99designs/gqlgen/commit/5a70585758275a186b3e76e729644cb0c3e4bd37\"><tt>5a705857</tt></a> release v0.17.34\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1a9dbadd3e1a803e89ff9c6103ba4d9bbcf38029\"><tt>1a9dbadd</tt></a> Use  \"No longer supported\" as the default deprecationReason for deprecations without a reason specified (<a href=\"https://github.com/99designs/gqlgen/pull/2692\">#2692</a>)</summary>\n\n* fix: use \"No longer supported\" as the default deprecationReason for deprecated fields with no reason specified\n\n* test: add integration tests to ensure deprecated fields with no reason set get the default reason defined in the spec `No longer supported`\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/640f383651dee93b64a5cd72a70af4c5dce0831d\"><tt>640f3836</tt></a> Update gqlparser dependency (<a href=\"https://github.com/99designs/gqlgen/pull/2694\">#2694</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5ac9fe5945a59cf7ce6370da4dd5dbc6a8d098ff\"><tt>5ac9fe59</tt></a> Added flag to omit interface checks (<a href=\"https://github.com/99designs/gqlgen/pull/2689\">#2689</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/abc3c627d6dfc9f70e22f40f2457b002310a84c7\"><tt>abc3c627</tt></a> feat: always use latest apollo sandbox (<a href=\"https://github.com/99designs/gqlgen/pull/2686\">#2686</a>)</summary>\n\n* feat: removeDuplicateTags() validates tags and panic with meaningful error message\n\n* Instead of pinning on _latest without subresource integrity check, update both url and integrity to latest\n\n* Update graphql/playground/apollo_sandbox_playground.go\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/3b295bb4a70486a16e82877422a7b7c55d21f4f9\"><tt>3b295bb4</tt></a> added GoInitialismsConfig which overrides the initialisms to be regarded (<a href=\"https://github.com/99designs/gqlgen/pull/2683\">#2683</a>)</summary>\n\n* added GoInitialismsConfig which overrides the initialisms to be regarded\n\n* typo\n\n* adjusted examples and documentation\n\n* removed test with side-effects, adjustend yaml indentations, changed example entry \"ID\" to \"CC\" (again? I though I already did that)\n\n* comply with linter\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ee6add4bddd7ee05e31a37815f281c320eb44e26\"><tt>ee6add4b</tt></a> Refactor TypeIdentifier to avoid circular imports (<a href=\"https://github.com/99designs/gqlgen/pull/2682\">#2682</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/44376e52e7857a6b7e16d40088d57234c8eeaf64\"><tt>44376e52</tt></a> fix subscription example in documentation (<a href=\"https://github.com/99designs/gqlgen/pull/2677\">#2677</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d508082896d5ab6de6ea40b42478e54dc2feb74c\"><tt>d5080828</tt></a> Reworked integration testing using vitest (<a href=\"https://github.com/99designs/gqlgen/pull/2675\">#2675</a>)</summary>\n\n* Reworked integration using vitest\nAdded SSE client testing\nFixed SSE Transport parse errors not being sent as event-stream\n\n* Added defer testing using urql\n\n* Cleanup unnecessary dependencies\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d16f498f5b3659bfe23749ee78993b816df04322\"><tt>d16f498f</tt></a> fix: issue with extraFields being thrown away (<a href=\"https://github.com/99designs/gqlgen/pull/2674\">#2674</a>)</summary>\n\n* fix: issue with extraFields being thrown away\n\n* Go fumpt on file\n\n\n---------\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/71d16aa052167358d95a4dd2ae89806b636b9a1d\"><tt>71d16aa0</tt></a> v0.17.33 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.33\"></a>\n## [v0.17.33](https://github.com/99designs/gqlgen/compare/v0.17.32...v0.17.33) - 2023-06-13\n- <a href=\"https://github.com/99designs/gqlgen/commit/a1e34ca0f6c1f4fdbb113485187eeef77fb8cc1f\"><tt>a1e34ca0</tt></a> release v0.17.33\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/790a72c1642200c6530da34ae2c094a088ae1dfe\"><tt>790a72c1</tt></a> issue-1372: add custom decode func (<a href=\"https://github.com/99designs/gqlgen/pull/2666\">#2666</a>)</summary>\n\n* issue-1372: add custom decode func\n\n* issue-1372: add custom decode method\n\n* issue-1372: fix lint\n\n* issue-1372: add custom decode func\n\n* issue-1372: add custom decode method\n\n* issue-1372: fix lint\n\n* issue-1372: extend functionality by setting up the whole decode config instead of one nested field\n\n* issue-1372: rollback generated.go file\n\n* issue-1372: fix lint\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/c63c60eb910b532c10677caac42b78c02735f4e2\"><tt>c63c60eb</tt></a> Update all modules (<a href=\"https://github.com/99designs/gqlgen/pull/2667\">#2667</a>)</summary>\n\n* Update all modules\n\n\n* Add gqlparser v2.5.3\n\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/4a78eb0c9be84793df821616b4ebfa4bfb42a49c\"><tt>4a78eb0c</tt></a> minor cleaning: fix some stricter lint rule warnings (<a href=\"https://github.com/99designs/gqlgen/pull/2665\">#2665</a>)</summary>\n\n* Add Changelog notes\n\n\n* Some spring cleaning\n\n\n* Update golangci-lint to latest\n\n\n---------\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1e925f7e5b13566c9f7cdd115e59d39f0df0e4f3\"><tt>1e925f7e</tt></a> v0.17.32 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.32\"></a>\n## [v0.17.32](https://github.com/99designs/gqlgen/compare/v0.17.31...v0.17.32) - 2023-06-06\n- <a href=\"https://github.com/99designs/gqlgen/commit/3a81a78bb7370f067c6bf4f3ce79de0e77f885a1\"><tt>3a81a78b</tt></a> release v0.17.32\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/dbb61174f81ef5e30cb33e772f650abdc41da90a\"><tt>dbb61174</tt></a> Added unit tests for defer (<a href=\"https://github.com/99designs/gqlgen/pull/2657\">#2657</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5c19c84141c643fa8e3ef59a63d9788ebc966c43\"><tt>5c19c841</tt></a> Addressing few issues in defer feature (<a href=\"https://github.com/99designs/gqlgen/pull/2656\">#2656</a>)</summary>\n\nAnd fixed hasNext to only appear in the payload when there is deferred usage\n\n* Regenerate\n\n* Use go 1.18 compatible atomic operations\n\n* Regenerate\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8e295024ada297c219aa2e79754a9e4f601d0b56\"><tt>8e295024</tt></a> Update extra fields type definition and plus docs about the feature (<a href=\"https://github.com/99designs/gqlgen/pull/2655\">#2655</a>)</summary>\n\n* Update extra fields type definition and plus docs about the feature\n\n* Update docs\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/adf5da27cd1bec2ce81b9a3e8e705ed80714f47a\"><tt>adf5da27</tt></a> Make usage of omitempty tag optional (<a href=\"https://github.com/99designs/gqlgen/pull/2649\">#2649</a>)</summary>\n\n* Make usage of omitempty tag optional\n\n* adding probably good enough test\n\n* some kinda docs\n\n* lintersssssssssssssssssssssssssssss\n\n* removing unnecessary fields from config\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7ab3317689c9ee85bcebb454a123ba8f70307058\"><tt>7ab33176</tt></a> Extra fields (<a href=\"https://github.com/99designs/gqlgen/pull/2638\">#2638</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/22deb8bd6c7662bb8eacc29c9a08df0b85444721\"><tt>22deb8bd</tt></a> allow binding a GraphQL `Any` field to a struct method returning `*any` (<a href=\"https://github.com/99designs/gqlgen/pull/2644\">#2644</a>)</summary>\n\n* allow binding GQL `Any` field to struct method returning `*any`\n\n* add singlefile tests for binding to `*any` case\n\n* add followschema tests for binding to `*any` case\n\n* make ptr_to_any binding tests follow binding conventions better\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/c313bf3d289985768fdca4e26162d3c429431711\"><tt>c313bf3d</tt></a> `[@defer](https://github.com/defer)` initial support (<a href=\"https://github.com/99designs/gqlgen/pull/2642\">#2642</a>)</summary>\n\n* support returning errors with deferred fragments.\n\n\n* update integration tests.\n\n* fix gotpl indent and pass the correct context to deferred .Dispatch().\n\n* Added hasNext in the tests\n\n* Added back root_.gotpl\n\n* Regenerate\n\n* Regenerate recursively\n\n* Updated schema-expected.graphql\n\n\n* Fixed starwars_test.go\n\n* Cleanup\n\n* Add graphql response hasnext omitempty and update tests to match\n\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/4d945da283950a9cd66fb6df58abe2bb5f0cf836\"><tt>4d945da2</tt></a> feat(federation): update Apollo Federation v2 definitions (<a href=\"https://github.com/99designs/gqlgen/pull/2635\">#2635</a>)</summary>\n\n* feat(federation): update Apollo Federation v2 definitions\n\nFix Apollo Federation v2 directive definitions:\n* `_FieldSet` was renamed `FieldSet`\n\n\n* regenerate examples\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9796f91dba461051d70a9101c9113b99f7ee82df\"><tt>9796f91d</tt></a> Generate entity resolvers for interfaces with [@key](https://github.com/key) defined (<a href=\"https://github.com/99designs/gqlgen/pull/2634\">#2634</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/33fdd1b5c0b4784c3aece793f1e5e315773dfb0d\"><tt>33fdd1b5</tt></a> fix enum capitalization (<a href=\"https://github.com/99designs/gqlgen/pull/2630\">#2630</a>)</summary>\n\n* fix enum capitalization\n\n* apply suggestion: adding comment\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/82a110ce861ebf6a208d98c6b1514c6e845f2b98\"><tt>82a110ce</tt></a> Fix uint32 unmarshal (<a href=\"https://github.com/99designs/gqlgen/pull/2631\">#2631</a>)</summary>\n\nThe string unmarshal for uint32 used ParseInt instead of ParseUint,\nwhich would parse the wrong range of valid numbers.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e62a02772ec7cf3c6f526c68e5689a2bad2e8f3b\"><tt>e62a0277</tt></a> Add Changelog entries for v0.17.31\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f707aa8d88c494f23ed981add5b43944c27a88f2\"><tt>f707aa8d</tt></a> v0.17.31 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.31\"></a>\n## [v0.17.31](https://github.com/99designs/gqlgen/compare/v0.17.30...v0.17.31) - 2023-05-05\n- <a href=\"https://github.com/99designs/gqlgen/commit/37b262075d385c49505ba76e09aec520f23f70f0\"><tt>37b26207</tt></a> release v0.17.31\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4016b2bde056a9c83b21e1e84cde1319bd8461a8\"><tt>4016b2bd</tt></a> fix (<a href=\"https://github.com/99designs/gqlgen/pull/2628\">#2628</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5a81c3e37ae8caab333476e5917613f6d580083b\"><tt>5a81c3e3</tt></a> Remove other &&\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fde269c0b7130e89104c37b2ee5bc6f8704d788f\"><tt>fde269c0</tt></a> Remove extraneous run\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/47a5b33360aec66c59c0af55fe152bfac8170434\"><tt>47a5b333</tt></a> Avoid && in command for retry\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4d8f850b51dade590a8672a2b938b486339c74fe\"><tt>4d8f850b</tt></a> Add timeout minutes\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c839b6c1d846b4bfac7f7e80c4ef9f9293d40413\"><tt>c839b6c1</tt></a> Bandaid for flaky websocket tests\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/395c362b50f2e97207e8c5c37b8413748dc4b05f\"><tt>395c362b</tt></a> New option to make comments on resolver optional (<a href=\"https://github.com/99designs/gqlgen/pull/2627\">#2627</a>)</summary>\n\n* remove 'foo' above resolver\n\n* regenerate after 6a3869707da1ffff7c196fcbcac44c92\n\n* omit resolver template comment\n\n* re-generate\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/239b97ee7578dc59d3d35421d8c4fd65f2506193\"><tt>239b97ee</tt></a> Omittable input fields (<a href=\"https://github.com/99designs/gqlgen/pull/2585\">#2585</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/2ad08ffffe7b2b3269b04a71808b15abb4dda7c1\"><tt>2ad08fff</tt></a> Bugfix: add missing return statements in GRAPHQL and UrlEncodedForm transports. (<a href=\"https://github.com/99designs/gqlgen/pull/2625\">#2625</a>)</summary>\n\nTwo transports (GRAPHQL and UrlEncodedForm) did not have return\nstatement at the end of `if err` block. Instead of returning\na 'could not cleanup body' error, we continued processing.\n\nUser still got an error. But instead of early 'could not cleanup'\nerror, user gor 'Internal system error' which happened a few\nlines after the if block.\n\nTests are added.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a13eca12117720d9d6cccba8549c7e6934d09fbd\"><tt>a13eca12</tt></a> update autogenerated gqlgen.yml with new options. (<a href=\"https://github.com/99designs/gqlgen/pull/2622\">#2622</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f1f63b52e33acbe10f389bc48d3132cb819f9f41\"><tt>f1f63b52</tt></a> Post Release Changelog entry\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/81f3469f32baddab2ec29f51cd09308409e25577\"><tt>81f3469f</tt></a> v0.17.30 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.30\"></a>\n## [v0.17.30](https://github.com/99designs/gqlgen/compare/v0.17.29...v0.17.30) - 2023-04-20\n- <a href=\"https://github.com/99designs/gqlgen/commit/4754e2b3c11870300277831e8f7183bc2d4c213e\"><tt>4754e2b3</tt></a> release v0.17.30\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/acd4b07fc3c8417cdbd807cc43a454a2a727a121\"><tt>acd4b07f</tt></a> feat: gqlgen ver in generated file notice and entire file notice optional (<a href=\"https://github.com/99designs/gqlgen/pull/2617\">#2617</a>)</summary>\n\n* feat: gqlgen ver in filenotice optional\n\nThis commit allows the user of gqlgen to configure whether or not the\nversion of gqlgen used to generate the files is included in the\nfilenotice/comment header for generated files.\n\n* feat: filenotice in generated files optional\n\n* chore: rename config var for omit gqlgen ver in file notice\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/498ce3f36ff9f5dc507c072d9fe0d5f9c793bcf8\"><tt>498ce3f3</tt></a> Add Changelog entry\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/024430a1bdc7b029fa38d82e0ec99de1625af15e\"><tt>024430a1</tt></a> v0.17.29 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.29\"></a>\n## [v0.17.29](https://github.com/99designs/gqlgen/compare/v0.17.28...v0.17.29) - 2023-04-11\n- <a href=\"https://github.com/99designs/gqlgen/commit/325405ba3959d11886e64a7eca486c0714cb61ac\"><tt>325405ba</tt></a> release v0.17.29\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/7bc1f626a1dc738a524473dc7c587acc91a41c18\"><tt>7bc1f626</tt></a> Read gqlgen.yml from io.Reader. (<a href=\"https://github.com/99designs/gqlgen/pull/2607\">#2607</a>)</summary>\n\n* Update config.go\n\nAdd ReadConfig\n\n* Add tests\n\n* Update config_test.go\n\nremove extra space to fix lint checks\n\n* Update config.go\n\nNeed to return the config\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/50c2829c367bc8cdc6dfc6e00688ad4de69238c5\"><tt>50c2829c</tt></a> Transport for application/x-www-form-urlencoded content type (<a href=\"https://github.com/99designs/gqlgen/pull/2611\">#2611</a>)</summary>\n\n* Renamed 'form' transport to 'form_multipart'.\n\nThere are multiple ways form data can be encoded. 'multipart' is\njust one of them - there are also 'application/x-www-form-urlencoded'\n(which will be added in next commit) and 'text/plain' encodings.\n\nLet each encoding have it's own form_xxxx file and tests.\n\n* Adds transport for application/x-www-form-urlencoded content type.\n\nThis commit adds transport that handles form POST with content\ntype set to 'application/x-www-form-urlencoded'.\n\nForm body can be json, urlencoded parameters or plain text.\n\nExample:\n\n```\n curl -X POST 'http://server/query' -d '{name}' -H \"Content-Type: application/x-www-form-urlencoded\"\n```\n\nEnable it in your GQL server with:\n\n```\nsrv.AddTransport(transport.UrlEncodedForm{})\n```\n\n* golangci-lint: change ifElseChain to switch.\n\nNo other changes but this rewrite to switch.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8b38c0e9effae523d65d6d631349936c6977228f\"><tt>8b38c0e9</tt></a> Add on-close handler for websockets. (<a href=\"https://github.com/99designs/gqlgen/pull/2612\">#2612</a>)</summary>\n\n* working without test\n\n* test\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/4548815789eee960ec6ce876ea02a8cb3b0953eb\"><tt>45488157</tt></a> Transport for application/graphql contentType (<a href=\"https://github.com/99designs/gqlgen/pull/2592\">#2592</a>)</summary>\n\n* Adds application/graphql transport layer\n\nThis commit adds 'application/graphql' transport. It is based\non POST metod and has only the 'query' part in it's body.\n\nSee: https://graphql.org/learn/serving-over-http/#post-request and\nit's comment about this content-type.\n\nAn example of correct application/graphql query is:\n\n```\ncurl 'http://host/graphql' -d '{time{now}}' -H \"Content-Type: application/graphql\"\n```\n\nSome clients prefix body with 'query=':\n\n```\n-d 'query={time{now}}'\n```\n\nSome clients html encode body payload:\n\n```\n-d 'query=%7Btime%7Bnow%7D%7D'\n```\n\nWe cleanup both in cleanupBody() method.\n\nTests are in http_graphql_test.go file.\n\n* Adds tests for GRAPHQL transport response headers.\n\nGRAPHQL transport (like GET, POST and MULTIPART transports) can\nhave specific response headers added.\n\nThis commit adds tests for it and changes doRequest() method\nso that we can set inbound Content-Type. Graphql transport\nuses 'application/graphql' content-type and not 'application/json'.\n\n* Adds GRAPHQL transfer to the documentation.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/21054ebab22290f6484d20a25370e10a39ae7531\"><tt>21054eba</tt></a> Cleanup only non-gqlgen packages when reloading all packages (<a href=\"https://github.com/99designs/gqlgen/pull/2598\">#2598</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1c6bf9bd7426ab68c73e4955d0896833cad0e415\"><tt>1c6bf9bd</tt></a> v0.17.28 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.28\"></a>\n## [v0.17.28](https://github.com/99designs/gqlgen/compare/v0.17.27...v0.17.28) - 2023-04-03\n- <a href=\"https://github.com/99designs/gqlgen/commit/f2b346553aa79e49fe978a3779fe31acc573fe18\"><tt>f2b34655</tt></a> release v0.17.28\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a1a6f231d8756567e4346897733b123ceb905edf\"><tt>a1a6f231</tt></a> Re-generate after <a href=\"https://github.com/99designs/gqlgen/pull/2599\">#2599</a> (<a href=\"https://github.com/99designs/gqlgen/pull/2601\">#2601</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9a644c5415585cb3be6c4f5cb51610b8e23d1b89\"><tt>9a644c54</tt></a> Fix 2546: Relax external for object (<a href=\"https://github.com/99designs/gqlgen/pull/2599\">#2599</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/db534792898e0870e15cb0788bfaf775e7c0da70\"><tt>db534792</tt></a> EntityResolver input type fix (<a href=\"https://github.com/99designs/gqlgen/pull/2594\">#2594</a>) (closes <a href=\"https://github.com/99designs/gqlgen/issues/2326\"> #2326</a>)</summary>\n\n* EntityResolver input type fix\n\nthe entity resolver may be in a different package (usually `model`).\nThe fix is to pull the types.Type of the resolver input, and use\ntemplates.CurrentImports.LookupType in order to render it correctly\n(possibly adding another import)\n\n* entityResolver input type fix: update tests\n\nchange testdata/entityresolver/gqlgen.yml to use a dedicated package for\nthe model (as in the default sample yml), and run go generate.\n\nbefore the input type fix, generation fails with errors like -\nplugin/federation/testdata/entityresolver/generated/federation.go:338:17:\n  undeclared name: MultiHelloByNamesInput\nplugin/federation/testdata/entityresolver/generated/federation.go:354:21:\n  undeclared name: MultiHelloMultipleRequiresByNamesInput\nplugin/federation/testdata/entityresolver/generated/federation.go:362:17:\n  undeclared name: MultiHelloMultipleRequiresByNamesInput\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6da735ce5cc9690caf610a72f8e4976aa9c7c60e\"><tt>6da735ce</tt></a> feat: removeDuplicateTags() validates tags and panic with meaningful error message (<a href=\"https://github.com/99designs/gqlgen/pull/2597\">#2597</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/677d854a37861e73cda6bf98fecaa94bb6638e79\"><tt>677d854a</tt></a> Allow setting headers in HTTP transports (<a href=\"https://github.com/99designs/gqlgen/pull/2590\">#2590</a>)</summary>\n\nCurrently gqlgen sets Content-Type header to 'application/json'. There's\nno easy way to change it or add additional headers.\n\nThis commit adds struct variable ResponseHeaders that can hold any\nheaders you want to be returned with response. It is standard\n`map[string][]string` variable.\n\nIf user does not set this map, we default to the Content-Type\nheader with 'application/json' value - nothing will be changed\nfor existing users.\n\nUsage:\n\nas simple as:\n\n```\nheaders := map[string][]string{\n    \"Content-Type\": {\"application/json; charset: utf8\"},\n    \"Other-Header\": {\"dummy-post-header\",\"another-value\"},\n}\n\nh.AddTransport(transport.POST{ResponseHeaders: headers})\n```\n\nAdded tests in transport/headers_test.go.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/65ec8b5a0774970ff7f7d74cbe4de7407a946b4a\"><tt>65ec8b5a</tt></a> Add Changelog entry for v0.17.27\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a3400ff4e7d7434616f4dfecacf4eab871cc0063\"><tt>a3400ff4</tt></a> v0.17.27 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.27\"></a>\n## [v0.17.27](https://github.com/99designs/gqlgen/compare/v0.17.26...v0.17.27) - 2023-03-20\n- <a href=\"https://github.com/99designs/gqlgen/commit/5bfcdd63e32837969f611922458451460411a79d\"><tt>5bfcdd63</tt></a> release v0.17.27\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/aab9b96839f4e3252e67dd81396c2288e545a7d2\"><tt>aab9b968</tt></a> Revert mstephano <a href=\"https://github.com/99designs/gqlgen/pull/2486\">#2486</a> <a href=\"https://github.com/99designs/gqlgen/pull/2508\">#2508</a> <a href=\"https://github.com/99designs/gqlgen/pull/2528\">#2528</a> (<a href=\"https://github.com/99designs/gqlgen/pull/2587\">#2587</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/05500c9d18a95af909ab07712bd470ec6783d047\"><tt>05500c9d</tt></a> POST transport: missing return and unnecessary logs (<a href=\"https://github.com/99designs/gqlgen/pull/2584\">#2584</a>)</summary>\n\n* Add missing return in HTTP POST transport\n\n* Remove HTTP POST transport logs\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/622039cb5042631cda3195a4838359e156775e2d\"><tt>622039cb</tt></a> feat: support ApolloSandbox playground (<a href=\"https://github.com/99designs/gqlgen/pull/2581\">#2581</a>)</summary>\n\n* feat: support ApolloSandbox playground\n\n* add initialState to be same behavior as others\n\n* add docs link of configuration values\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0bbc7f8ca2b460a9c7e4c17326a84b607546ee52\"><tt>0bbc7f8c</tt></a> Add omitempty to struct tags for nullable types (<a href=\"https://github.com/99designs/gqlgen/pull/2436\">#2436</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/acbae6f0867e6fc31992afd55ebf9c28ad0c59a7\"><tt>acbae6f0</tt></a> Update Changelog for v0.17.26\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fbfa16ea9c7423db854b25e8d51f570d48d05c08\"><tt>fbfa16ea</tt></a> v0.17.26 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.26\"></a>\n## [v0.17.26](https://github.com/99designs/gqlgen/compare/v0.17.25...v0.17.26) - 2023-03-07\n- <a href=\"https://github.com/99designs/gqlgen/commit/8ad59302f9f772a72b875acb6797c863e30ee3d1\"><tt>8ad59302</tt></a> release v0.17.26\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/dcd755593ca890e9497c0e7bc6f70ffcd6d20648\"><tt>dcd75559</tt></a> Revert issue 2470 (<a href=\"https://github.com/99designs/gqlgen/pull/2577\">#2577</a>) (closes <a href=\"https://github.com/99designs/gqlgen/issues/2471\"> #2471</a>, <a href=\"https://github.com/99designs/gqlgen/issues/2523\"> #2523</a>, <a href=\"https://github.com/99designs/gqlgen/issues/2541\"> #2541</a>)</summary>\n\nThis reverts commit 5cb6e3ecb07a292daa37f5ce8e5bcf364e1190af.\n\n\n* misspell lint fix\n\n---------\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cac5f0f4e146a05f8dc4e8947600896a8cf03038\"><tt>cac5f0f4</tt></a> Post release version bump for examples\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9e9af41aad9ea998dff458150b89baeeb1ed936b\"><tt>9e9af41a</tt></a> Update Changelog\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a8f647cb4e948cb0c952a86a16d325e66230bfa2\"><tt>a8f647cb</tt></a> v0.17.25 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.25\"></a>\n## [v0.17.25](https://github.com/99designs/gqlgen/compare/v0.17.24...v0.17.25) - 2023-02-28\n- <a href=\"https://github.com/99designs/gqlgen/commit/ea6a4e65f4f07222d723fa13cb786540ea07af72\"><tt>ea6a4e65</tt></a> release v0.17.25\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7e013e1d0412f9b33ab82f1ab17eec8b611c5cd9\"><tt>7e013e1d</tt></a> Freshen dependencies (<a href=\"https://github.com/99designs/gqlgen/pull/2571\">#2571</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/c5dfc26bd860b1e04dd4db4996e5a5e487230ebc\"><tt>c5dfc26b</tt></a> Update lru package (<a href=\"https://github.com/99designs/gqlgen/pull/2570\">#2570</a>)</summary>\n\n* update\n\n* Adjust example go mod and go sum\n\n\n---------\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ff19a5a553b7f2b5d259d4e69eaa83085fecb098\"><tt>ff19a5a5</tt></a> fix typo in dataloaders docs example (<a href=\"https://github.com/99designs/gqlgen/pull/2562\">#2562</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a9e42e168ed0de0f0e003abde38fcb62793d2d42\"><tt>a9e42e16</tt></a> Move minimum supported version to Go 1.18 (<a href=\"https://github.com/99designs/gqlgen/pull/2556\">#2556</a>)</summary>\n\n* Move minimum supported version to Go 1.18\n\n\n* Update matrix to use strings instead of floats\n\n\n* Change test to match Go order\n\n\n* lint on Go 1.19 and Go 1.20\n\n\n* Attempt to limit github action concurrency\n\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/01d46b85a2d7432c4d6cf1e700f26ae01d58c79e\"><tt>01d46b85</tt></a> Bump undici from 5.14.0 to 5.19.1 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2557\">#2557</a>)</summary>\n\nBumps [undici](https://github.com/nodejs/undici) from 5.14.0 to 5.19.1.\n- [Release notes](https://github.com/nodejs/undici/releases)\n- [Commits](https://github.com/nodejs/undici/compare/v5.14.0...v5.19.1)\n\n---\nupdated-dependencies:\n- dependency-name: undici\n  dependency-type: indirect\n...\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e36095f54b4d6e5037127de11bb12792d5adffce\"><tt>e36095f5</tt></a> Updated the documentation on using the plugins (<a href=\"https://github.com/99designs/gqlgen/pull/2553\">#2553</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/cf1607ad8fe83ccc8322a0a77dc82b0fa3ff8489\"><tt>cf1607ad</tt></a> Add ability to customize resolvergen behavior using additional plugins (<a href=\"https://github.com/99designs/gqlgen/pull/2516\">#2516</a>)</summary>\n\n* Add ability to customize resolvergen behavior using additional plugins\n\n* Add field.GoResultName()\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/356f4f909624f787060cea14deb905b643246085\"><tt>356f4f90</tt></a> prepend goTag directive on struct tags and omit overridden duplicate struct tags per  <a href=\"https://github.com/99designs/gqlgen/pull/2514\">#2514</a> (<a href=\"https://github.com/99designs/gqlgen/pull/2533\">#2533</a>)</summary>\n\n* Change to prepend goTag directive\n\n\n* Fix test for field_hooks_are_applied to prepend\n\n\n---------\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5b85e93e79d7698a749d69a00d60e283a699dcbb\"><tt>5b85e93e</tt></a> fix <a href=\"https://github.com/99designs/gqlgen/pull/2524\">#2524</a> basic alias Byte was not binded properly (<a href=\"https://github.com/99designs/gqlgen/pull/2528\">#2528</a>)</summary>\n\n* add tests for defined types as []byte and []rune\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/49ac94faf27baefd7efeca3c3ca2924ee16761ff\"><tt>49ac94fa</tt></a> fix introspection doc typo (<a href=\"https://github.com/99designs/gqlgen/pull/2529\">#2529</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e6114a2c6af22bcdc92180660a58e6125e7946ad\"><tt>e6114a2c</tt></a> remove extra call to packages.Load fix <a href=\"https://github.com/99designs/gqlgen/pull/2505\">#2505</a> (<a href=\"https://github.com/99designs/gqlgen/pull/2519\">#2519</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9d22d98c792ba7214dc1aad4366e3f7eba0299f7\"><tt>9d22d98c</tt></a> Changelog for v0.17.24\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2d048b382b642fb1767116916c42dd9118b6f709\"><tt>2d048b38</tt></a> v0.17.24 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.24\"></a>\n## [v0.17.24](https://github.com/99designs/gqlgen/compare/v0.17.23...v0.17.24) - 2023-01-23\n- <a href=\"https://github.com/99designs/gqlgen/commit/77c63865f2df7ee6d4475861b3f57d37a7ef1787\"><tt>77c63865</tt></a> release v0.17.24\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.23\"></a>\n## [v0.17.23](https://github.com/99designs/gqlgen/compare/v0.17.22...v0.17.23) - 2023-01-23\n- <a href=\"https://github.com/99designs/gqlgen/commit/9573b5955a5aa18c180ec6f4a213a1472e36b112\"><tt>9573b595</tt></a> release v0.17.23\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/866187fd2510121d1b5f0d0636c8d37d80191c91\"><tt>866187fd</tt></a> missed a closing parenthesis (<a href=\"https://github.com/99designs/gqlgen/pull/2513\">#2513</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ec3b4711662704e7231ed8dc9ba008b5ceaaa75c\"><tt>ec3b4711</tt></a> fix <a href=\"https://github.com/99designs/gqlgen/pull/2485\">#2485</a> for some types requiring a scalar (<a href=\"https://github.com/99designs/gqlgen/pull/2508\">#2508</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/11c3a4da9d995c39bee01a4009530564148b42a5\"><tt>11c3a4da</tt></a> Enable Subscription Resolver to return websocket error message (<a href=\"https://github.com/99designs/gqlgen/pull/2506\">#2506</a>)</summary>\n\n* Enanble Subscription Resolver to return websocket error message\n\n* add PR link\n\n* lint\n\n* fmt and regenerate\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/2bd7cfefc603159b9188a0a76a0336123edc7783\"><tt>2bd7cfef</tt></a> Add omit_complexity config option for issue <a href=\"https://github.com/99designs/gqlgen/pull/2502\">#2502</a> (<a href=\"https://github.com/99designs/gqlgen/pull/2504\">#2504</a>)</summary>\n\n* Add omit_complexity config option to skip generation of ComplexityRoot struct content and Complexity function\n\n* fix lint error\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/867b61a5c6b5efa083b0aa384732be343be5bef8\"><tt>867b61a5</tt></a> fix <a href=\"https://github.com/99designs/gqlgen/pull/2485\">#2485</a> Defined type from a basic type should not need scalar (<a href=\"https://github.com/99designs/gqlgen/pull/2486\">#2486</a>)</summary>\n\n* following review\n\n* better way to compare basic type\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/43c9a1d217309b1bfe2ad408ada4e131e267432c\"><tt>43c9a1d2</tt></a> fix: gin sample code error in v0.17.22 (<a href=\"https://github.com/99designs/gqlgen/pull/2503\">#2503</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f5764a83d54d1f645c942f7a3cf74f1eade34d82\"><tt>f5764a83</tt></a> Bump json5 from 2.2.1 to 2.2.3 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2500\">#2500</a>)</summary>\n\nBumps [json5](https://github.com/json5/json5) from 2.2.1 to 2.2.3.\n- [Release notes](https://github.com/json5/json5/releases)\n- [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/json5/json5/compare/v2.2.1...v2.2.3)\n\n---\nupdated-dependencies:\n- dependency-name: json5\n  dependency-type: indirect\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/32bfdfb7d32839ac0298c2e34cf8da290083f0c7\"><tt>32bfdfb7</tt></a> Bump jsonwebtoken and [@graphql](https://github.com/graphql)-tools/prisma-loader in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2501\">#2501</a>)</summary>\n\nUpdates `jsonwebtoken` from 8.5.1 to 9.0.0\n- [Release notes](https://github.com/auth0/node-jsonwebtoken/releases)\n- [Changelog](https://github.com/auth0/node-jsonwebtoken/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/auth0/node-jsonwebtoken/compare/v8.5.1...v9.0.0)\n\n- [Release notes](https://github.com/ardatan/graphql-tools/releases)\n- [Changelog](https://github.com/ardatan/graphql-tools/blob/master/packages/loaders/prisma/CHANGELOG.md)\n\n---\nupdated-dependencies:\n- dependency-name: jsonwebtoken\n  dependency-type: indirect\n  dependency-type: indirect\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f0a090d0c282105e67e41c9ca45f8904f65920da\"><tt>f0a090d0</tt></a> Add Server-Sent Events transport (<a href=\"https://github.com/99designs/gqlgen/pull/2498\">#2498</a>)</summary>\n\n* Add new transport via server-sent events\n\n* Add graphql-sse option to chat example\n\n* Add SSE transport to documentation\n\n* Reorder imports and handle test err to fix golangci-lint remarks\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/b09608d2f4c74f068e8925ce2d5a1643c9cc106e\"><tt>b09608d2</tt></a> fix misspelling and format code (<a href=\"https://github.com/99designs/gqlgen/pull/2497\">#2497</a>)</summary>\n\n* fix: misspelling dont\n\n* fix: sort import order\n\n* fix example indent\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e8d61150d7b222f7e1212c727ed7159ccd857919\"><tt>e8d61150</tt></a> plugin/resolvergen: respect named return values (<a href=\"https://github.com/99designs/gqlgen/pull/2488\">#2488</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/c2b8eabb4e863ffc1c81a49e711c7eb4689b6bea\"><tt>c2b8eabb</tt></a> feat: support Altair playground (<a href=\"https://github.com/99designs/gqlgen/pull/2437\">#2437</a>)</summary>\n\n* feat: support Altair playground\n\n* fix method params\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5cb6e3ecb07a292daa37f5ce8e5bcf364e1190af\"><tt>5cb6e3ec</tt></a> Fix issue <a href=\"https://github.com/99designs/gqlgen/pull/2470\">#2470</a>: Incorrect response when errors occurred (<a href=\"https://github.com/99designs/gqlgen/pull/2471\">#2471</a>)</summary>\n\n* go generate ./...\n\n* regenerate examples\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3008f4e292741cb9d083c182caaa21b030af6c81\"><tt>3008f4e2</tt></a> fix <a href=\"https://github.com/99designs/gqlgen/pull/2465\">#2465</a> remote model with omitempty (<a href=\"https://github.com/99designs/gqlgen/pull/2468\">#2468</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/da43147fcafd0bab9759fbdd5810ed9483df2d9d\"><tt>da43147f</tt></a> Export default modelgen hooks (<a href=\"https://github.com/99designs/gqlgen/pull/2467\">#2467</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6b8c6ee7b136a54738a40f19bc25b56ecec8d91d\"><tt>6b8c6ee7</tt></a> Fix <a href=\"https://github.com/99designs/gqlgen/pull/2457\">#2457</a> update websocket example (<a href=\"https://github.com/99designs/gqlgen/pull/2461\">#2461</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/aaf1638b861b1fcf44f5d4da8bc764105a00d334\"><tt>aaf1638b</tt></a> Update Release script to generate after version bumps\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/95437035bb160aca25e89e7fb000a3579cd58215\"><tt>95437035</tt></a> Increment version, regenerate, and make changelog\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/99e036bedfba79c52b6cd788953d8824c0d4f871\"><tt>99e036be</tt></a> v0.17.22 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.22\"></a>\n## [v0.17.22](https://github.com/99designs/gqlgen/compare/v0.17.21...v0.17.22) - 2022-12-08\n- <a href=\"https://github.com/99designs/gqlgen/commit/d6579466a12896270f8b96543f8b9490ce3626e1\"><tt>d6579466</tt></a> release v0.17.22\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9a2922997512939cd116983d267720505d45584b\"><tt>9a292299</tt></a> graphql.Error is not deprecated anymore (<a href=\"https://github.com/99designs/gqlgen/pull/2455\">#2455</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a44685b258710d56e1ce9f2374ca7ee577d37295\"><tt>a44685b2</tt></a> Ability to return multiple errors from resolvers raise than add it to stack. (<a href=\"https://github.com/99designs/gqlgen/pull/2454\">#2454</a>)</summary>\n\n* Remove DO NOT EDIT\n\nSometimes vscode warn about this while editing resolvers code.\nFinally the resolver's code is editable and generated at the same time.\n\n* Ability to return multiple errors from resolver.\n\n* Multiple errors return example\n\n* Fix missing import\n\n* reformat\n\n* gofmt\n\n* go generate ./...\n\n* go generate ./...\n\n* Regenerate\n\n\n* remove trailing period\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/db1e3b81e71adcbad5143cf4b91fb402bb7ceba6\"><tt>db1e3b81</tt></a> Implicit external check (<a href=\"https://github.com/99designs/gqlgen/pull/2449\">#2449</a>)</summary>\n\n* Prevent entity resolver generation for stub types.\nIn Federation 2 key fields are implicitly external\n\n* Add more comments to \"isResolvable\"\n\n* Check that no resolvers are set for stub \"Hello\"\n\n* Run generate with go 1.16\n\n* Simplify implicit external check\n\n* Add stricter federation version check.\nUpdate comment on expected behavior of the resolvable argument.\nAdd comment to documentation about external directive.\n\n* Preallocate keyFields slice\n\n* Add non stub type to federation v2 test\n\n* Do not append to preallocated slice\n\n* Add test coverage for multiple fields in key\n\n* Fix typo in comment\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5065163c99cda23ae9d789da5cdd5896107540a3\"><tt>5065163c</tt></a> Re-generate and update release checklist to regenerate for new version\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5cfc22de31bbcb17ca15d090d9c2565f825950bd\"><tt>5cfc22de</tt></a> Add v0.17.21 Release notes\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5d39046df9cea9cb83e3fca08e2f60e972adbb96\"><tt>5d39046d</tt></a> v0.17.21 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.21\"></a>\n## [v0.17.21](https://github.com/99designs/gqlgen/compare/v0.17.20...v0.17.21) - 2022-12-03\n- <a href=\"https://github.com/99designs/gqlgen/commit/9deb8381725196dc2a7f2234457d8f6b0e145aab\"><tt>9deb8381</tt></a> release v0.17.21\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5c083c792afa0b0ab9fd61221df7681922b6c723\"><tt>5c083c79</tt></a> use goField directive for getters generation (<a href=\"https://github.com/99designs/gqlgen/pull/2447\">#2447</a>)</summary>\n\n* consider goField directive for getters generation\n\n* Re-generate to pass linting\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/463d213465bb561fbceb1374cf1ea89bd8e54705\"><tt>463d2134</tt></a> fix: safe http error response  (<a href=\"https://github.com/99designs/gqlgen/pull/2438\">#2438</a>)</summary>\n\n* safe http error when parsing body\n\n* fix tests\n\n* fix linting\n\n* fix linting\n\n* Dispatch decoding errors so hook can present them\n\n\n* Revert test expectation to original\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/86c144fc7cd2772ae9bf5137cc9c521a7fc8b242\"><tt>86c144fc</tt></a> Bump decode-uri-component from 0.2.0 to 0.2.2 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2445\">#2445</a>)</summary>\n\nBumps [decode-uri-component](https://github.com/SamVerschueren/decode-uri-component) from 0.2.0 to 0.2.2.\n- [Release notes](https://github.com/SamVerschueren/decode-uri-component/releases)\n- [Commits](https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.2)\n\n---\nupdated-dependencies:\n- dependency-name: decode-uri-component\n  dependency-type: indirect\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f28ffccd265e7f9eeb3c921459d7162decf94645\"><tt>f28ffccd</tt></a> Bump minimatch from 3.0.4 to 3.1.2 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2435\">#2435</a>)</summary>\n\nBumps [minimatch](https://github.com/isaacs/minimatch) from 3.0.4 to 3.1.2.\n- [Release notes](https://github.com/isaacs/minimatch/releases)\n- [Commits](https://github.com/isaacs/minimatch/compare/v3.0.4...v3.1.2)\n\n---\nupdated-dependencies:\n- dependency-name: minimatch\n  dependency-type: indirect\n...\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e3af4459021800e71f5c48246ada4fc43f43ba3d\"><tt>e3af4459</tt></a> docs : embedding schema in generated code (<a href=\"https://github.com/99designs/gqlgen/pull/2351\">#2351</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/efb31b54320f1311aec963fd751cfee874c353cf\"><tt>efb31b54</tt></a> Check if go.mod exists while init (<a href=\"https://github.com/99designs/gqlgen/pull/2432\">#2432</a>)</summary>\n\n* Add check go.mod first to prevent cascade errors in \"init\" directive\n\n* Fix formatting\n\n* Fix formatting with gofmt\n\n\n\nThis reverts commit c23d183d9da4e33993e600beefcccd1fc4ec6264.\n\n\n* Adjust go.mod file to look in parent directories as well\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/89e91da1b724073d1c723ba1d90d8ad0cb610499\"><tt>89e91da1</tt></a> Add resolver commit (<a href=\"https://github.com/99designs/gqlgen/pull/2434\">#2434</a>)</summary>\n\n* Add resolver commit\n\n* Add version to comment and re-generate\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3087cf3a9830f80d01f508cf49d55e2370f60a19\"><tt>3087cf3a</tt></a> Fix for <a href=\"https://github.com/99designs/gqlgen/pull/1274\">#1274</a>. (<a href=\"https://github.com/99designs/gqlgen/pull/2411\">#2411</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/906c0dee5abe3e173f0cac7b7c9e207f9471755e\"><tt>906c0dee</tt></a> optional return pointers in unmarshalInput (<a href=\"https://github.com/99designs/gqlgen/pull/2397\">#2397</a>)</summary>\n\n* optional return pointers in unmarshalInput\n\n* add docs for return_pointers_in_unmarshalinput\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a9d06036ff999ce6245f4b730c38cf69422e6937\"><tt>a9d06036</tt></a> Add json.Number support to UnmarshalString (<a href=\"https://github.com/99designs/gqlgen/pull/2396\">#2396</a>)</summary>\n\n* Add json.Number support to UnmarshalString\n\n* Add UnmarshalString tests\n\n* Remove trailing zeros when calling UnmarshalString with float64\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/daa440791ff2377bb5f3b0f5c61bb4d7ab5ce119\"><tt>daa44079</tt></a> Update README.md (<a href=\"https://github.com/99designs/gqlgen/pull/2391\">#2391</a>)</summary>\n\nfix: execute gqlgen generate command error.  eg: systems failed: unable to build object definition: unable to find type: github.com/99designs/gqlgen/graphql/introspection.InputValue. need import  github.com/99designs/gqlgen/graphql/introspection .\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/419dd96c96975be33ae35d016ad272ac72392135\"><tt>419dd96c</tt></a> Bump got and [@graphql](https://github.com/graphql)-codegen/cli in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2389\">#2389</a>)</summary>\n\nRemoves `got`\n\n- [Release notes](https://github.com/dotansimha/graphql-code-generator/releases)\n- [Changelog](https://github.com/dotansimha/graphql-code-generator/blob/master/packages/graphql-codegen-cli/CHANGELOG.md)\n\n---\nupdated-dependencies:\n- dependency-name: got\n  dependency-type: indirect\n  dependency-type: direct:development\n...\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b1ca215aa7f9dcbd167e1354c7a40925ee59c909\"><tt>b1ca215a</tt></a> Add global typescript (<a href=\"https://github.com/99designs/gqlgen/pull/2390\">#2390</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/265888c6812c6f0784a020b5082c142a387d4776\"><tt>265888c6</tt></a> Bump jsdom and jest in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2388\">#2388</a>)</summary>\n\nBumps [jsdom](https://github.com/jsdom/jsdom) and [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest). These dependencies needed to be updated together.\n\nRemoves `jsdom`\n\nUpdates `jest` from 24.9.0 to 29.0.3\n- [Release notes](https://github.com/facebook/jest/releases)\n- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/facebook/jest/commits/v29.0.3/packages/jest)\n\n---\nupdated-dependencies:\n- dependency-name: jsdom\n  dependency-type: indirect\n- dependency-name: jest\n  dependency-type: direct:development\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/56f6db04b9d90b4a8de5f0177c787b99d9386e52\"><tt>56f6db04</tt></a> Update module mitchellh/mapstructure to 1.5.0 (<a href=\"https://github.com/99designs/gqlgen/pull/2111\">#2111</a>)</summary>\n\n* Update mitchellh/mapstructure\n\n\n* Avoid double pointer\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ea9590a44419b9d56ea8c2afcdfa6a7fc7a55699\"><tt>ea9590a4</tt></a> update changelog for v0.17.20\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4c06e6c6287fef6ad619abd3ca86f96c62afa67f\"><tt>4c06e6c6</tt></a> v0.17.20 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.20\"></a>\n## [v0.17.20](https://github.com/99designs/gqlgen/compare/v0.17.19...v0.17.20) - 2022-09-19\n- <a href=\"https://github.com/99designs/gqlgen/commit/0e4cbd109c7bed3966b13546d8b9cc87feebf4a1\"><tt>0e4cbd10</tt></a> release v0.17.20\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/12ae8ffaaa2f2ce0ecc82c003b941b91c9633c5f\"><tt>12ae8ffa</tt></a> Update go-colorable and x/tools. (<a href=\"https://github.com/99designs/gqlgen/pull/2382\">#2382</a>)</summary>\n\nThis picks up a new 2022 version of golang.org/x/sys which is caused by\nhttps://github.com/golang/go/issues/49219 and is needed to fix building\nusing Go 1.18 on aarch64-darwin.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/68136ffb237eb7b51bab59a08f51f8a08e8035a5\"><tt>68136ffb</tt></a> Update diagram in documentation (<a href=\"https://github.com/99designs/gqlgen/pull/2381\">#2381</a>)</summary>\n\nThe diagram wasn't rendering properly in Go docs, which was a shame because it's a great diagram. This PR fixes that by indenting it another space.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d29d098fdf508b2e36cbc1c8c1415b2ca995ff8a\"><tt>d29d098f</tt></a> fix field merging behavior for fragments on interfaces (<a href=\"https://github.com/99designs/gqlgen/pull/2380\">#2380</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6bb31862f05d37e7381a84704a8db5e0b849b7eb\"><tt>6bb31862</tt></a> Update changelog for v0.17.19\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bb7fbc0f2cb6320c015efce80c0ff0764f2a3884\"><tt>bb7fbc0f</tt></a> v0.17.19 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.19\"></a>\n## [v0.17.19](https://github.com/99designs/gqlgen/compare/v0.17.18...v0.17.19) - 2022-09-15\n- <a href=\"https://github.com/99designs/gqlgen/commit/588c6ac137b8ed7aea1bc7c009ea23cb9dec5caa\"><tt>588c6ac1</tt></a> release v0.17.19\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c671317056298db8073498c8db02120b6f737032\"><tt>c6713170</tt></a> v0.17.18 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.18\"></a>\n## [v0.17.18](https://github.com/99designs/gqlgen/compare/v0.17.17...v0.17.18) - 2022-09-15\n- <a href=\"https://github.com/99designs/gqlgen/commit/1d41c808a93446fca8ff867e957ef552e56f6ae3\"><tt>1d41c808</tt></a> release v0.17.18\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4dbe2e475f15ce77a498c841ea6c9149ef5ceaba\"><tt>4dbe2e47</tt></a> update graphiql to 2.0.7 (<a href=\"https://github.com/99designs/gqlgen/pull/2375\">#2375</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/b7cc094a49e3d348cfc457aa76f1640c86cdcae9\"><tt>b7cc094a</tt></a> testfix: make apollo federated tracer test more consistent (<a href=\"https://github.com/99designs/gqlgen/pull/2374\">#2374</a>)</summary>\n\n* Update tracing_test.go\n\n* add missing imports\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d096fb9b08531b0dc389a786b6f44add045ea75e\"><tt>d096fb9b</tt></a> Update directives (<a href=\"https://github.com/99designs/gqlgen/pull/2371\">#2371</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1acfea2fbdf3564df16f8023f4e736e90a05b909\"><tt>1acfea2f</tt></a> Add v0.17.17 changelog\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c273adc8ad45e15940bbb6fe211603670d9f3220\"><tt>c273adc8</tt></a> v0.17.17 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.17\"></a>\n## [v0.17.17](https://github.com/99designs/gqlgen/compare/v0.17.16...v0.17.17) - 2022-09-13\n- <a href=\"https://github.com/99designs/gqlgen/commit/d50bc5aca10c5a5dd6a1680b2288c35a61327ade\"><tt>d50bc5ac</tt></a> release v0.17.17\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/462025b400e9b792a5afbe320cde4cc952f6b547\"><tt>462025b4</tt></a> nil check error before type assertion follow-up from <a href=\"https://github.com/99designs/gqlgen/pull/2341\">#2341</a> (<a href=\"https://github.com/99designs/gqlgen/pull/2368\">#2368</a>)</summary>\n\n* Improve errcode.Set safety\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/59493aff86020d170e58900654d334f5ebc2ceee\"><tt>59493aff</tt></a> fix: apollo federation tracer was race prone (<a href=\"https://github.com/99designs/gqlgen/pull/2366\">#2366</a>)</summary>\n\nThe tracer was using a global state across different goroutines\nAdded req headers to operation context to allow it to be fetched in InterceptOperation\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fc0185567f2dfc37b38f11283efb9cc1db69e96d\"><tt>fc018556</tt></a> Update gqlparser to v2.5.1 (<a href=\"https://github.com/99designs/gqlgen/pull/2363\">#2363</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/56574a146bd16a13c9055128ec3c80e96a7c4b29\"><tt>56574a14</tt></a> feat: make Playground HTML content compatible with UTF-8 charset (<a href=\"https://github.com/99designs/gqlgen/pull/2355\">#2355</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/182b039d34cb730f432c486ebe763f246937dea4\"><tt>182b039d</tt></a> Add `subscriptions.md` recipe to docs (<a href=\"https://github.com/99designs/gqlgen/pull/2346\">#2346</a>)</summary>\n\n* Add `subscriptions.md` recipe to docs\n\n* Fix wrong request type\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b66fff16de0b16edc317398a5574fcff2cb39e66\"><tt>b66fff16</tt></a> Add omit_getters config option (<a href=\"https://github.com/99designs/gqlgen/pull/2348\">#2348</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2ba8040f20e32d06dc6d5bfacaadc5619a6e66ee\"><tt>2ba8040f</tt></a> Update changelog for v0.17.16\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8bef8c8061222071e6c814e45bbc33fcabcb3980\"><tt>8bef8c80</tt></a> v0.17.16 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.16\"></a>\n## [v0.17.16](https://github.com/99designs/gqlgen/compare/v0.17.15...v0.17.16) - 2022-08-26\n- <a href=\"https://github.com/99designs/gqlgen/commit/9593ceadd6e07c6fd0f0b0e0c55b9f1bf8ade762\"><tt>9593cead</tt></a> release v0.17.16\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2390af2db920dc632fe47bc778a24c30495b9efd\"><tt>2390af2d</tt></a> Update gqlparser to v2.5.0 (<a href=\"https://github.com/99designs/gqlgen/pull/2341\">#2341</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2a87fe0645fd271e4e71d2b7bde34ecf31bf844c\"><tt>2a87fe06</tt></a> feat: update Graphiql to version 2 (<a href=\"https://github.com/99designs/gqlgen/pull/2340\">#2340</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/32e2ccd30e82fc566ca022a65dcc4a67c4b6125a\"><tt>32e2ccd3</tt></a> Update yaml to v3 (<a href=\"https://github.com/99designs/gqlgen/pull/2339\">#2339</a>)</summary>\n\n* update yaml to v3\n\n* add missing go entry for yaml on _example\n\n* add missing sum file\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7949117a524be7f8882a61e2d4ade1bedf105107\"><tt>7949117a</tt></a> v0.17.15 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.15\"></a>\n## [v0.17.15](https://github.com/99designs/gqlgen/compare/v0.17.14...v0.17.15) - 2022-08-23\n- <a href=\"https://github.com/99designs/gqlgen/commit/23cc749256b4e2edc4b11ce9e84c643a7bb3194f\"><tt>23cc7492</tt></a> release v0.17.15\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/577a570cdb6b1b9185f24940690a14cdced37a36\"><tt>577a570c</tt></a> Markdown formatting fixes (<a href=\"https://github.com/99designs/gqlgen/pull/2335\">#2335</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/2b584011fc64a55cbda67f46637a280bf94d9cc1\"><tt>2b584011</tt></a> Fix Interface Slice Getter Generation (<a href=\"https://github.com/99designs/gqlgen/pull/2332\">#2332</a>)</summary>\n\n* Make modelgen test fail if generated doesn't build\nAdded returning list of interface to modelgen test schema\n\n* Implement slice copying when returning interface slices\n\n* Re-generate to satisfy the linter\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/aee57b4c521e527ebc0538b8edfbe610973abf21\"><tt>aee57b4c</tt></a> Correct boolean logic (<a href=\"https://github.com/99designs/gqlgen/pull/2330\">#2330</a>)</summary>\n\nCorrecting boolean logic issue\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/da0610e11accf3afd34903f03bfc0abd045d07ed\"><tt>da0610e1</tt></a> Update changelog for v0.17.14\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ddcb524e3321d849505f6937307ef3dcbd3acace\"><tt>ddcb524e</tt></a> v0.17.14 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.14\"></a>\n## [v0.17.14](https://github.com/99designs/gqlgen/compare/v0.17.13...v0.17.14) - 2022-08-18\n- <a href=\"https://github.com/99designs/gqlgen/commit/581bf6eb063a0d6a3cec3b6bc7a16ca10e310a97\"><tt>581bf6eb</tt></a> release v0.17.14\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d3384377aefb4b7d34ba52f8def6c0a6a3dec27f\"><tt>d3384377</tt></a> Update gqlparser\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c2d02d352f8d531fa0bd9b246fc152eeb6dbf10a\"><tt>c2d02d35</tt></a> More descriptive `not implemented` stubs (<a href=\"https://github.com/99designs/gqlgen/pull/2328\">#2328</a>) (closes <a href=\"https://github.com/99designs/gqlgen/issues/2327\"> #2327</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/9f919d2cee464acdaf4a490aeb42d63369dbd572\"><tt>9f919d2c</tt></a> Avoid GraphQL to Go Naming Collision with \"ToGoModelName\" func (<a href=\"https://github.com/99designs/gqlgen/pull/2322\">#2322</a>) (closes <a href=\"https://github.com/99designs/gqlgen/issues/2321\"> #2321</a>)</summary>\n\n* using ReplaceAllStringLiteral\n\n* fixing wordInfo template test\n\n* bumping linter timeout to 5m\n\n* comment cleanup\n\n* some cleanup, adding \"ToGoPrivateModelName\" func\n\n* adding \"ToGoPrivateModelName\" func\n\n* refactoring word walker impl and tests\n\n* hopefully making linter happy\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2304c104fc8d26487f50e80e9c5eaee113005a30\"><tt>2304c104</tt></a> Include docstrings on interface getters (<a href=\"https://github.com/99designs/gqlgen/pull/2317\">#2317</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f5d603269502b50e19d0ed966e2dfe3ecd74049f\"><tt>f5d60326</tt></a> Leverage (*Imports).LookupType when generating interface field getters (<a href=\"https://github.com/99designs/gqlgen/pull/2315\">#2315</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/242c3ba217ee740e37445ce4b14e0808554263f5\"><tt>242c3ba2</tt></a> Generate getters for interface fields (<a href=\"https://github.com/99designs/gqlgen/pull/2314\">#2314</a>)</summary>\n\n* Generate getters for interface fields\n\n* Changes to make models_test.go pass\n\n* Use text/template, not html/template\n\n* Re-run go generate ./...\n\n* gofmt a few files that were failing lint checks\n\n* Another gofmt straggler\n\n* Try making the \"generated\" match the exact whitespace github is disliking\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0d91c893e285cc14330c80643b663cd2bebeb911\"><tt>0d91c893</tt></a> Add hackernews graphql api tutorial to other resources (<a href=\"https://github.com/99designs/gqlgen/pull/2305\">#2305</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c2526ba50ff3a69b5eca88a62a571c47f3c245ed\"><tt>c2526ba5</tt></a> Update gqlparser to v2.4.7 (<a href=\"https://github.com/99designs/gqlgen/pull/2300\">#2300</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f283124d1cea309e054afb197d16012364b88097\"><tt>f283124d</tt></a> <a href=\"https://github.com/99designs/gqlgen/pull/2298\">#2298</a>: fix gqlgen extracting module name from comment line (<a href=\"https://github.com/99designs/gqlgen/pull/2299\">#2299</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/779d7cdd4991e3cf4bf1ecbdea1f02664a56ac8d\"><tt>779d7cdd</tt></a> Add support for KeepAlive message in websocket client (<a href=\"https://github.com/99designs/gqlgen/pull/2293\">#2293</a>)</summary>\n\n* Add support for KeepAlive message in websocket client\n\n* rewrite if-else to switch statement\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5a37d1dc079f5212b6e043b0f6889cae7b08dea9\"><tt>5a37d1dc</tt></a> v0.17.13 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.13\"></a>\n## [v0.17.13](https://github.com/99designs/gqlgen/compare/v0.17.12...v0.17.13) - 2022-07-15\n- <a href=\"https://github.com/99designs/gqlgen/commit/e82b6bf1cf311d6af2e280127f47b15ae35ca6ac\"><tt>e82b6bf1</tt></a> release v0.17.13\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f0e9047df5f86efbfbceea9c04593bb1f52e06de\"><tt>f0e9047d</tt></a> Hide dependencies in `tools.go` from importers (<a href=\"https://github.com/99designs/gqlgen/pull/2287\">#2287</a>)</summary>\n\nProjects that use `go mod vendor` will vendor `github.com/matryer/moq`\ndespite it not being required at runtime.\n\nMoving `tools.go` to `internal` hides this import from downstream\nusers and avoids `github.com/matryer/moq` being vendored.\n\n`go generate` of the mocks still works as expected.\n\nThe assumption behind the import test broke, so I've pointed it at a\ndifferent path that has no Go code. This seems to match the intent\nbehind the original test for the `internal/code/..` path.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6310e6a736ccbf3bb8caea981553ee7549aea748\"><tt>6310e6a7</tt></a> support named interface to Field.CallArgs (<a href=\"https://github.com/99designs/gqlgen/pull/2289\">#2289</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/30493696aacf79090bb5e144a304a5a7df488c67\"><tt>30493696</tt></a> fix: return the original error (<a href=\"https://github.com/99designs/gqlgen/pull/2288\">#2288</a>)</summary>\n\n* fix: return the original error\n\nclose https://github.com/99designs/gqlgen/issues/2286\n\n* Update error.go\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fb13091df76b47b936224336fe19b15fe310b41d\"><tt>fb13091d</tt></a> updated WebSocker InitFunc recipe (<a href=\"https://github.com/99designs/gqlgen/pull/2275\">#2275</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/770c09fb9db0485943590b9986afe36818c2a70e\"><tt>770c09fb</tt></a> Update changelog for v0.17.12\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b4c186a7142c0a151b6a21b40914fe317e13819d\"><tt>b4c186a7</tt></a> v0.17.12 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.12\"></a>\n## [v0.17.12](https://github.com/99designs/gqlgen/compare/v0.17.11...v0.17.12) - 2022-07-04\n- <a href=\"https://github.com/99designs/gqlgen/commit/94c02b0de6d483d87453fc18a7f7625ae4adaa6c\"><tt>94c02b0d</tt></a> release v0.17.12\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7eb8ba93daacef77ca7266fdfb9e5abc8a720eb7\"><tt>7eb8ba93</tt></a> Fix CreateTodo (<a href=\"https://github.com/99designs/gqlgen/pull/2256\">#2256</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/0b0e5ce4afc5b503217304f89914b2e903c05fa5\"><tt>0b0e5ce4</tt></a> Replace use of strings.Title with cases.Title (<a href=\"https://github.com/99designs/gqlgen/pull/2268\">#2268</a>)</summary>\n\n* github: Test more go versions\n\n* github: Fix ci tests\n\n* github: Increase verbosity, sleep\n\n* github: Drop bash\n\n* github: Test go 1.18 and newer node verisons\n\n* github: Pull out node 16 for now\n\n* github: Only lint 1.16 for now\n\n* cases: Use cases.Title over strings.Title which is deprecated\n\n* gqlgen: Remove use of deprecated strings.Title\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0c11e5fdd8ec4fd7612b857c4c554e1ef463d194\"><tt>0c11e5fd</tt></a> parse at beginning of do function (<a href=\"https://github.com/99designs/gqlgen/pull/2269\">#2269</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/edb1c585c1c49102dc962e0ac3bd271688e51ecf\"><tt>edb1c585</tt></a> Update Changelog for v0.17.11\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5e6b52fddab835611513e3572f23716666ebae58\"><tt>5e6b52fd</tt></a> v0.17.11 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.11\"></a>\n## [v0.17.11](https://github.com/99designs/gqlgen/compare/v0.17.10...v0.17.11) - 2022-07-03\n- <a href=\"https://github.com/99designs/gqlgen/commit/ea294c4ea344186c3b41b82d5f1c60138f6ce05e\"><tt>ea294c4e</tt></a> release v0.17.11\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8ebf75c19d775ddbd12b3d94461b605ef4c5f711\"><tt>8ebf75c1</tt></a> Update gqlparser (<a href=\"https://github.com/99designs/gqlgen/pull/2270\">#2270</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/b8497f52fde0803277d981405cd2e42ce0455a70\"><tt>b8497f52</tt></a> github: Fix CI pipelines (<a href=\"https://github.com/99designs/gqlgen/pull/2266\">#2266</a>)</summary>\n\n* github: Test more go versions\n\n* github: Fix ci tests\n\n* github: Increase verbosity, sleep\n\n* github: Drop bash\n\n* github: Test go 1.18 and newer node verisons\n\n* github: Pull out node 16 for now\n\n* github: Only lint 1.16 for now\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/c287a7b0b40cdd8c94077ed54fff257fe383e796\"><tt>c287a7b0</tt></a> codegen: fix resolvers execution order (<a href=\"https://github.com/99designs/gqlgen/pull/2267\">#2267</a>)</summary>\n\n* codegen: fix run order of resolver\n\n\n* fix: update code generate\n\n* fix: update stub, root to generate resolver for input\n\n* fix: added unit-test for input field order\n\n* fix: added test for singlefile\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8481457f2fd6ae711f688fc4726d724df5992b8c\"><tt>8481457f</tt></a> gqlgen: Add resolver comment generation and preservation (<a href=\"https://github.com/99designs/gqlgen/pull/2263\">#2263</a>)</summary>\n\n* gqlgen: Add resolver comment generation and preservation\n\n* gqlgen: Regenerate\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/532d46af5b2b97f5b69ebd1ce261a191e2690fa3\"><tt>532d46af</tt></a> Make uploads content seekable (<a href=\"https://github.com/99designs/gqlgen/pull/2247\">#2247</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/34bbc450c502919cd46c5eefcc66341ef697c0e8\"><tt>34bbc450</tt></a> Use the go:embed API to lookup templates (<a href=\"https://github.com/99designs/gqlgen/pull/2262\">#2262</a>)</summary>\n\n* Switch the templates package internally to read from TemplateFS\n\nUsers are expected to pass in the FS by using the embed API.\n\n* Update all usages of templates.Render to use the TemplateFS option\n\n* Fix unit tests\n\n* Fix linter error\n\n* Commit generated changes\n\nDoesn't look like anything has changed though. Maybe just a different\nwhitespace character.\n\n* Fix test\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/53ca207a4c53c78e4dec1e4d34d3b9251dd00b0b\"><tt>53ca207a</tt></a> Fix PR links in CHANGELOG.md (<a href=\"https://github.com/99designs/gqlgen/pull/2257\">#2257</a>)</summary>\n\n* fix \"PR\" regex in CHANGELOG-full-history.tpl.md\n\n* regenerate CHANGELOG.md\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/53ada82edb7e8bb91059cbf3f344270a668934c5\"><tt>53ada82e</tt></a> Replace deprecated ioutil pkg with os & io (<a href=\"https://github.com/99designs/gqlgen/pull/2254\">#2254</a>)</summary>\n\nAs of Go 1.16, the same functionality is now provided by package io or\npackage os, and those implementations should be preferred in new code.\n\nSo replacing all usage of ioutil pkg with io & os.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a8f112e0c5b3466de2f550e68cbe872233f052ac\"><tt>a8f112e0</tt></a> update changelog\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/82fbbe4163459cbb8d862c99931fcd015ed756e6\"><tt>82fbbe41</tt></a> v0.17.10 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.10\"></a>\n## [v0.17.10](https://github.com/99designs/gqlgen/compare/v0.17.9...v0.17.10) - 2022-06-13\n- <a href=\"https://github.com/99designs/gqlgen/commit/4ff9ea92b0d90f7fdc7c22bec592fbec1aca60a6\"><tt>4ff9ea92</tt></a> release v0.17.10\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cac4f40486edd280654412485979ff619238a877\"><tt>cac4f404</tt></a> update gqlparser (<a href=\"https://github.com/99designs/gqlgen/pull/2239\">#2239</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d07ec12d69d3db0e5b502be7528884fdb5fb7593\"><tt>d07ec12d</tt></a> Use exact capitalization from field names overridden in config (<a href=\"https://github.com/99designs/gqlgen/pull/2237\">#2237</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3a64078299f0417fca48c652620015937cb19c5a\"><tt>3a640782</tt></a> fix: <a href=\"https://github.com/99designs/gqlgen/pull/2234\">#2234</a> (<a href=\"https://github.com/99designs/gqlgen/pull/2235\">#2235</a>) Response.Errors in DispatchError function is not PresentedError\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/c355df9efc910053e888922edc14170271968671\"><tt>c355df9e</tt></a> fix <a href=\"https://github.com/99designs/gqlgen/pull/1876\">#1876</a>: Optional Any type should allow nil values (<a href=\"https://github.com/99designs/gqlgen/pull/2231\">#2231</a>)</summary>\n\n* Anonymous func that checks value of arg type interface for nil\n\n* Added unit test for `CallArgs()`\n\n* Fixed type of argument in unit test\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/65e68108d926faf635285144d7b6670f7f6d9ce4\"><tt>65e68108</tt></a> Add config boolean for whether resolvers return pointers (<a href=\"https://github.com/99designs/gqlgen/pull/2175\">#2175</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ddd825ef62f1fa7cbc0824c1696f72a3c67d78e0\"><tt>ddd825ef</tt></a> Only make cyclical struct fields pointers (<a href=\"https://github.com/99designs/gqlgen/pull/2174\">#2174</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5a87fe29353e3fee987a39431df0322d12b575f9\"><tt>5a87fe29</tt></a> Update websocket.go (<a href=\"https://github.com/99designs/gqlgen/pull/2223\">#2223</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e2edda5d5d02a1496dcf9eb48ab95ecd8f07f018\"><tt>e2edda5d</tt></a> Update dataloaders.MD (<a href=\"https://github.com/99designs/gqlgen/pull/2221\">#2221</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3de7d2cf730cc060a27f6d1c815742d1a9f479cd\"><tt>3de7d2cf</tt></a> fix: chat example frontend race condition (<a href=\"https://github.com/99designs/gqlgen/pull/2219\">#2219</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/11f405724f19fa4b93120746fdf74c1d97f4575b\"><tt>11f40572</tt></a> Update Changelog\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/caca01fb6c64ad078ff195cddf52dd6966e7995e\"><tt>caca01fb</tt></a> v0.17.9 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.9\"></a>\n## [v0.17.9](https://github.com/99designs/gqlgen/compare/v0.17.8...v0.17.9) - 2022-05-26\n- <a href=\"https://github.com/99designs/gqlgen/commit/7f0611b2d19833a740afcfaf5708febff942da2d\"><tt>7f0611b2</tt></a> release v0.17.9\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/738209b26337bc1116be7b0afacc83eae6bb93b0\"><tt>738209b2</tt></a> Update gqlparser (<a href=\"https://github.com/99designs/gqlgen/pull/2216\">#2216</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/6855b7290cab62a1fc6a26a2b633e0b5bbf248da\"><tt>6855b729</tt></a> fix: prevent goroutine leak and CPU spinning at websocket transport (<a href=\"https://github.com/99designs/gqlgen/pull/2209\">#2209</a>) (closes <a href=\"https://github.com/99designs/gqlgen/issues/2168\"> #2168</a>)</summary>\n\n* Added goroutine leak test for chat example\n\n* Improved chat example with proper concurrency\n\n\nThis reverts commit eef7bfaad1b524f9e2fc0c1150fdb321c276069e.\n\n* Improved subscription channel usage\n\n* Regenerated examples and codegen\n\n* Add support for subscription keepalives in websocket client\n\n* Update chat example test\n\n* if else chain to switch\n\n\n* Revert \"Add support for subscription keepalives in websocket client\"\n\nThis reverts commits 64b882c3c9901f25edc0684ce2a1f9b63443416b and 670cf22272b490005d46dc2bee1634de1cd06d68.\n\n* Fixed chat example race condition\n\n* Fixed chatroom#Messages type\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5f5bfcb97fdb01026cf35a5dc46f1246a30f9b26\"><tt>5f5bfcb9</tt></a> fix <a href=\"https://github.com/99designs/gqlgen/pull/2204\">#2204</a> - don't try to embed builtin sources (<a href=\"https://github.com/99designs/gqlgen/pull/2214\">#2214</a>)</summary>\n\n* dont't try to embed builtins\n\n* add test\n\n* generated code\n\n* fix error message string\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8d9d3f125f13dcd19f59072d3c38366dc520758b\"><tt>8d9d3f12</tt></a> Check only direct dependencies (<a href=\"https://github.com/99designs/gqlgen/pull/2205\">#2205</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b262e40a485f67d2659e239a156418938d0fe2e9\"><tt>b262e40a</tt></a> v0.17.8 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.8\"></a>\n## [v0.17.8](https://github.com/99designs/gqlgen/compare/v0.17.7...v0.17.8) - 2022-05-25\n- <a href=\"https://github.com/99designs/gqlgen/commit/25367e0a24998aea40f09218f60d1d0e6d1cce4a\"><tt>25367e0a</tt></a> release v0.17.8\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5a56b69d89c7414e21b2f01e0e5042a26b69c5cb\"><tt>5a56b69d</tt></a> Add security workflow with nancy (<a href=\"https://github.com/99designs/gqlgen/pull/2202\">#2202</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/482f4ce08e65458cec2dbfaf7d184f1c8fccb129\"><tt>482f4ce0</tt></a> Run CI tests on windows (<a href=\"https://github.com/99designs/gqlgen/pull/2199\">#2199</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/656045d3fa643b898932c3f5332544b0baed1af4\"><tt>656045d3</tt></a> This works on Windows too! (<a href=\"https://github.com/99designs/gqlgen/pull/2197\">#2197</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f6aeed60a508dae102b2b821d3a947e24e5e0826\"><tt>f6aeed60</tt></a> Merge branch 'master' of github.com:99designs/gqlgen\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d91080be396af96266941499d369d0f8279761b0\"><tt>d91080be</tt></a> Update changelog\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/752d2d7e9fff08c82a6d3ffc1c8c7ffe2a2e9fe2\"><tt>752d2d7e</tt></a> v0.17.7 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.7\"></a>\n## [v0.17.7](https://github.com/99designs/gqlgen/compare/v0.17.6...v0.17.7) - 2022-05-24\n- <a href=\"https://github.com/99designs/gqlgen/commit/2b1dff1b71f89c95e946bbe5948b7061f9c47aa8\"><tt>2b1dff1b</tt></a> release v0.17.7\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b2087f944d9b9af6e776a9d97662c9e8b86a8c3b\"><tt>b2087f94</tt></a> Update module dependencies (<a href=\"https://github.com/99designs/gqlgen/pull/2192\">#2192</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8825ac460b047e22724ed7728c7d7ffbf1b523a9\"><tt>8825ac46</tt></a> Fix misprint (<a href=\"https://github.com/99designs/gqlgen/pull/2187\">#2187</a>)</summary>\n\n* Fix misprint\n\n* Fix misprint\n\n* Re-generate\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/41daa5d8dc1e35bdbfe68e95b37c10599b224456\"><tt>41daa5d8</tt></a> fix <a href=\"https://github.com/99designs/gqlgen/pull/2190\">#2190</a> - don't use backslash for \"embed\" paths on windows (<a href=\"https://github.com/99designs/gqlgen/pull/2191\">#2191</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0cce5544f06fd84831ef2ca0f60e16f7f554814d\"><tt>0cce5544</tt></a> Update Changelog\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/26644541aafbcdb46f10a6ff0f5894637227c331\"><tt>26644541</tt></a> v0.17.6 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.6\"></a>\n## [v0.17.6](https://github.com/99designs/gqlgen/compare/v0.17.5...v0.17.6) - 2022-05-23\n- <a href=\"https://github.com/99designs/gqlgen/commit/358d45dcfc2b022fdda9476a37f44c0622607ae9\"><tt>358d45dc</tt></a> release v0.17.6\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7c95938c5f1278fa14a13a92eb88d117102e0330\"><tt>7c95938c</tt></a> Improve operation error handling (<a href=\"https://github.com/99designs/gqlgen/pull/2184\">#2184</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2526f6871166377b4f444ad8d22577a632b0abf4\"><tt>2526f687</tt></a> Correct identation (<a href=\"https://github.com/99designs/gqlgen/pull/2182\">#2182</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f7bf453c79d82b01ed4baed894043aaff645bf2f\"><tt>f7bf453c</tt></a> Bump dset from 3.1.1 to 3.1.2 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2176\">#2176</a>)</summary>\n\nBumps [dset](https://github.com/lukeed/dset) from 3.1.1 to 3.1.2.\n- [Release notes](https://github.com/lukeed/dset/releases)\n- [Commits](https://github.com/lukeed/dset/compare/v3.1.1...v3.1.2)\n\n---\nupdated-dependencies:\n- dependency-name: dset\n  dependency-type: indirect\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/4cdf70261a9dc8af589399f09b56d0f90606a9fa\"><tt>4cdf7026</tt></a> Update getting-started.md (<a href=\"https://github.com/99designs/gqlgen/pull/2157\">#2157</a>)</summary>\n\nFix getting-started missing fields resolver config\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/eef7bfaad1b524f9e2fc0c1150fdb321c276069e\"><tt>eef7bfaa</tt></a> fix: prevents goroutine leak at websocket transport (<a href=\"https://github.com/99designs/gqlgen/pull/2168\">#2168</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b8ec51d8629a24288353b4ee4be70fff3645b03e\"><tt>b8ec51d8</tt></a> go: update gqlparser to latest (<a href=\"https://github.com/99designs/gqlgen/pull/2149\">#2149</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ec3e597e7b45e17464cd8c7faaa51e75755ce3cf\"><tt>ec3e597e</tt></a> Fix docs bug in field collection (<a href=\"https://github.com/99designs/gqlgen/pull/2141\">#2141</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f6b352316fae4b4fdc6317e24ea94ba48ac29e85\"><tt>f6b35231</tt></a> Add argument to WebsocketErrorFunc (<a href=\"https://github.com/99designs/gqlgen/pull/2124\">#2124</a>)</summary>\n\n* Add argument to WebsocketErrorFunc\n\nto determine whether the error ocured on read or write to the websocket.\n\n* Wrap websocket error\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0f016df3ae7ee4898358dc67a491689164297df6\"><tt>0f016df3</tt></a> Fix invalid query parameter for playground subscription endpoint (<a href=\"https://github.com/99designs/gqlgen/pull/2148\">#2148</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/fb5751ab478603a864977f9fbe70655776d7fb55\"><tt>fb5751ab</tt></a> use \"embed\" in generated code (<a href=\"https://github.com/99designs/gqlgen/pull/2119\">#2119</a>)</summary>\n\n* use \"embed\" in generated code\n\n* don't use embed for builtins\n\n* working poc\n\n* handle no embeddable sources\n\n* fix dir\n\n* comment\n\n* add test for embedding\n\n* improve error handling\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d38911f1a9d7f0ec39a74a95994d95291f1922c3\"><tt>d38911f1</tt></a> Allow absolute https://github.com/99designs/gqlgens to the GraphQL playground (<a href=\"https://github.com/99designs/gqlgen/pull/2142\">#2142</a>)</summary>\n\n* Allow absolute URLs to the GraphQL playground\n\n* Add test for playground URLs\n\n* Close res.Body in playground test\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/3228f36fec50930483801b27b92658592fab5e87\"><tt>3228f36f</tt></a> Update getting-started.md (<a href=\"https://github.com/99designs/gqlgen/pull/2140\">#2140</a>)</summary>\n\n* Update getting-started.md\n\nfunction rand.Int requires two parameters and returns two value in golang version 1.18.1.\n\n* Highlight the package used so people don't pick crypto/rand\n\n* Revert to original\n\n* Remove extra space\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/33fe0b9b824ec86699059f410505c02659fc6c81\"><tt>33fe0b9b</tt></a> Update package.json (<a href=\"https://github.com/99designs/gqlgen/pull/2138\">#2138</a>)</summary>\n\nI added `graphql-ws` because there is no graphql-ws in package.json\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f8e837b824ef4903a60f3cb974ef72fb4718a858\"><tt>f8e837b8</tt></a> Use MultipartReader to parse file uploads (<a href=\"https://github.com/99designs/gqlgen/pull/2135\">#2135</a>)</summary>\n\nUse a streaming MultipartReader to parse requests with file\nuploads. The GraphQL multipart request specification guarantees\nthat the operations and map form fields will come first.\n\nThere are two reasons motivating this change:\n\n- This allows for file uploads without specifying a specific\n  filename.\n- This avoids unnecessary copies for requests with more than one\n  file. Go's ParseForm already copies the request's body into\n  memory or on disk. We were also doing this manually as a second\n  step.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/05bfc1fb12f73648833e1055e775e074a6df7eed\"><tt>05bfc1fb</tt></a> Upddate Changelog\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/62f694f0a8cf24f52dffca5823bb44fa1c32f97b\"><tt>62f694f0</tt></a> v0.17.5 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.5\"></a>\n## [v0.17.5](https://github.com/99designs/gqlgen/compare/v0.17.4...v0.17.5) - 2022-04-29\n- <a href=\"https://github.com/99designs/gqlgen/commit/fd97e74eafc898278fd4b74477cb053393672232\"><tt>fd97e74e</tt></a> release v0.17.5\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/9250f9ac1f90b27da0bd8583ef8dcf0894d70686\"><tt>9250f9ac</tt></a> Feature: Add FTV1 Support via Handler (<a href=\"https://github.com/99designs/gqlgen/pull/2132\">#2132</a>)</summary>\n\n* initial support for ftv1 traces via handler\n\n* remove testing json extension\n\n* remove binary from commit and add to .gitignore\n\n* updating go.mod\n\n* updating examples go.sum\n\n* rerunning generate within the examples folder\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/fce3a11a9f570ffed3e9035d32deddfb3076c2cf\"><tt>fce3a11a</tt></a> feat: added graphql.UnmarshalInputFromContext (<a href=\"https://github.com/99designs/gqlgen/pull/2131\">#2131</a>)</summary>\n\n* feat: added graphql.UnmarshalInputFromContext\n\n* chore: run go generate for _examples\n\n* fix: apply suggestions from code review\n\n\n* fix: update error cases\n\n* fix: fixed unit-test by update root_.gotpl\n\n* fix: apply suggestions from code review\n\n* fix: update graphql/input.go\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/6a24e88147fb2523af0163d7fa84d296b5e32e4d\"><tt>6a24e881</tt></a> update instructions to specify package of Role (<a href=\"https://github.com/99designs/gqlgen/pull/2130\">#2130</a>)</summary>\n\nCan't compile with the example unless I also include `model.` for Role.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ccfa245b1eb2657e588bf73f4df0e99f96869cbd\"><tt>ccfa245b</tt></a> Ignore protobuf files in coverage (<a href=\"https://github.com/99designs/gqlgen/pull/2133\">#2133</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0465dcb1e8e4177945c2670f15316ac96e4b992a\"><tt>0465dcb1</tt></a> Update federation.md (<a href=\"https://github.com/99designs/gqlgen/pull/2129\">#2129</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8f0631dcd3ca6fcfcd3dc6e69f4a92fec54e6dc7\"><tt>8f0631dc</tt></a> Update Changelog\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/41611560d45f1226b860e795bcb35b5ecf09c5b3\"><tt>41611560</tt></a> v0.17.4 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.4\"></a>\n## [v0.17.4](https://github.com/99designs/gqlgen/compare/v0.17.3...v0.17.4) - 2022-04-25\n- <a href=\"https://github.com/99designs/gqlgen/commit/d6de831a28a0f1d8834c5dba4216dcd763814d3f\"><tt>d6de831a</tt></a> release v0.17.4\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/2a2a3dcb67c7d713e41476eac47e20ab0e21fba7\"><tt>2a2a3dcb</tt></a> Feature: Adds Federation 2 Support (<a href=\"https://github.com/99designs/gqlgen/pull/2115\">#2115</a>)</summary>\n\n* fed2 rough support\n\n* autodetection of fed2\n\n* adding basic tests for changes\n\n* fixing docs\n\n* Update plugin/federation/federation.go\n\n* removing custom scalar since it was causing issues\n\n* fixing lint test\n\n* should fix for real this time\n\n* fixing test failures\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/77260e88c853a047e4e61a5357ceda4a5ea26405\"><tt>77260e88</tt></a> shorten some generated code (<a href=\"https://github.com/99designs/gqlgen/pull/2120\">#2120</a>)</summary>\n\n* shorten some generated code\n\n* generate examples\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/4da17e1c7a59149eb6c2f5d60fcf11a2374b2488\"><tt>4da17e1c</tt></a> update modules except mapstructure (<a href=\"https://github.com/99designs/gqlgen/pull/2118\">#2118</a>)</summary>\n\n* Update modules\n\n\n* Update modules except for mapstructure\n\n\n* Try to update to v1.3.1\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cddbf02d494e3aeaac3f60d1708b25facc5b767d\"><tt>cddbf02d</tt></a> Update Changelog file\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8f80f4efe8947b55919ce37291f4e908f57fd8dc\"><tt>8f80f4ef</tt></a> v0.17.3 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.3\"></a>\n## [v0.17.3](https://github.com/99designs/gqlgen/compare/v0.17.2...v0.17.3) - 2022-04-20\n- <a href=\"https://github.com/99designs/gqlgen/commit/0bb262d1a0143f60640f60ebbb516e0f4cd79042\"><tt>0bb262d1</tt></a> release v0.17.3\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8d0bd22aff1cdb6ad2e36190e11871b169f8da0a\"><tt>8d0bd22a</tt></a> Update gqlparser (<a href=\"https://github.com/99designs/gqlgen/pull/2109\">#2109</a>)</summary>\n\n* Update gqlparser\n\n\n* Update tests to be NoError\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ec0dea883a2c967d533e5f1530791ad72a08198b\"><tt>ec0dea88</tt></a> Fix the ability of websockets to get errors (<a href=\"https://github.com/99designs/gqlgen/pull/2097\">#2097</a>)</summary>\n\nBecause DispatchOperation creates tempResponseContext,\nwhich is passed into Exec, which is then used in _Subscription to\ngenerate the next function. Inside the various subscription functions\nwhen generating next the context was captured there.\n\nWhich means later when the returned function from DispatchOperation is\ncalled. The responseContext which accumulates the errors is the\ntempResponseContext which we no longer have access to to read the errors\nout of it.\n\nInstead add a context to next() so that it can be passed through and\naccumulated the errors as expected.\n\nAdded a unit test for this as well.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e3f04b42f1fc5d4b13dc0579b2ec713f770a4fd0\"><tt>e3f04b42</tt></a> Change the error message to be consumer targeted (<a href=\"https://github.com/99designs/gqlgen/pull/2096\">#2096</a>)</summary>\n\n* Change the error message to be slightly more clear\n\n* Rebase on updated origin/master.\n\nFix the test to not be sensitive to array ordering.\nRe-generate on master as there was a schema change.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5a49764956ffb674df2c9bee19455bb1fd3407db\"><tt>5a497649</tt></a> Fix websocket subscriptions to not double close. (<a href=\"https://github.com/99designs/gqlgen/pull/2095\">#2095</a>)</summary>\n\nWe were closing at the end of the loop and also in the defer.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a15a9bfdbad30b2f5ce7a966ec1190c108c4df3e\"><tt>a15a9bfd</tt></a> Update test.yml to be valid\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a1538928a569a09834579db941863ccce28113e3\"><tt>a1538928</tt></a> Use Github API to update the docs (<a href=\"https://github.com/99designs/gqlgen/pull/2101\">#2101</a>)</summary>\n\n* Use Github API to update the docs\n\nInstead of a hard-coded version of the docs we want to realease, this\nuses the Github API to get the last 20 versions and publish those. This\nwill allow any script invoking this to make sure to always have the\nlatest version of the docs\n\n* Reinstate set -e\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3bf437c232f8be30a473cf94495a1014c0583af2\"><tt>3bf437c2</tt></a> Update golangci-lint (<a href=\"https://github.com/99designs/gqlgen/pull/2103\">#2103</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/12c6d0bf15431f666d08c4c82581957e1b727898\"><tt>12c6d0bf</tt></a> Fix misprint (<a href=\"https://github.com/99designs/gqlgen/pull/2102\">#2102</a>)</summary>\n\n* Fix misprint\n\n* Update websocket_graphql_transport_ws.go\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/9f5fad13fa6275139e051788cc5fe8c2b2630428\"><tt>9f5fad13</tt></a> Bump minimist from 1.2.5 to 1.2.6 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2085\">#2085</a>)</summary>\n\nBumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.\n- [Release notes](https://github.com/substack/minimist/releases)\n- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)\n\n---\nupdated-dependencies:\n- dependency-name: minimist\n  dependency-type: indirect\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/035e1d6eeb81179ddec3d36d8776212d8fe35cd6\"><tt>035e1d6e</tt></a> Add AllowedMethods field to transport.Options (<a href=\"https://github.com/99designs/gqlgen/pull/2080\">#2080</a>)</summary>\n\n* Add AllowedMethods field to transport.Options\n\nto enable users to specify allowed HTTP methods.\n\n* Update graphql/handler/transport/options.go\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f0fdb116f45350aabf698c20bf6410283f96bb11\"><tt>f0fdb116</tt></a> Add instructions for enabling autobinding (<a href=\"https://github.com/99designs/gqlgen/pull/2079\">#2079</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/12b0b38583e2c7b2174585bf1243a98cbbc2eba6\"><tt>12b0b385</tt></a> Bump Playground version (<a href=\"https://github.com/99designs/gqlgen/pull/2078\">#2078</a>)</summary>\n\n* update playground\n\n* enables tabs\n\n* update shas\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1324c3ffb9ff0afef6e9cc41d99b5b4b9bc928b6\"><tt>1324c3ff</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/2062\">#2062</a> from a8m/childfield</summary>\n\ngraphql: add FieldContext.Child field function and enable it in codegen\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bf9caeaee091e32178fe2906894a7c7e72fdd66d\"><tt>bf9caeae</tt></a> graphql: add FieldContext.ChildArgs field and enable it in codegen\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/36fb3dc6733601f96162bc80fccda42e34b3b7ff\"><tt>36fb3dc6</tt></a> codegen: allow binding methods with optional variadic arguments (<a href=\"https://github.com/99designs/gqlgen/pull/2066\">#2066</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fba5edd4fa1176ef0f2840f3bb90fe10b9f4b695\"><tt>fba5edd4</tt></a> Update Changelog\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/48b2b7e1521c50d03cabf524bbb78805e3fb023f\"><tt>48b2b7e1</tt></a> v0.17.2 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.2\"></a>\n## [v0.17.2](https://github.com/99designs/gqlgen/compare/v0.17.1...v0.17.2) - 2022-03-21\n- <a href=\"https://github.com/99designs/gqlgen/commit/1f04d38a4441c5de6171400218b9dd25cebb3639\"><tt>1f04d38a</tt></a> release v0.17.2\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/87fc5f22e8fbfa28a180cbf0e7008af9f830273e\"><tt>87fc5f22</tt></a> Fix <a href=\"https://github.com/99designs/gqlgen/pull/1961\">#1961</a> for Go 1.18 (<a href=\"https://github.com/99designs/gqlgen/pull/2052\">#2052</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f85d59d30ae055fd89b79aa3d7e3ca1c7fcaedfa\"><tt>f85d59d3</tt></a> fixed modelgen test schema (<a href=\"https://github.com/99designs/gqlgen/pull/2032\">#2032</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d873ff8bb9927b302752bd48d7836f2597db558e\"><tt>d873ff8b</tt></a> v0.17.1 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.1\"></a>\n## [v0.17.1](https://github.com/99designs/gqlgen/compare/v0.17.0...v0.17.1) - 2022-03-02\n- <a href=\"https://github.com/99designs/gqlgen/commit/5ea50aee16088ed414be73ca9a59a90f622c9483\"><tt>5ea50aee</tt></a> release v0.17.1\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a493a4239673c5922281628fc8b94c727398283e\"><tt>a493a423</tt></a> Prepare for new release\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/9f520a2897cf42750e7290cbd83de6fdf13f2e75\"><tt>9f520a28</tt></a> Update golangci-lint and fix resource leak (<a href=\"https://github.com/99designs/gqlgen/pull/2024\">#2024</a>)</summary>\n\n* Fix golangci-lint in CI\n\n* Fix resource leak\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/74baaa14c924871d100b56e8103ec27d678c33d0\"><tt>74baaa14</tt></a> fixed model gen for multiple implemented type (<a href=\"https://github.com/99designs/gqlgen/pull/2021\">#2021</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d31cf6bed5712e4015c286498ede649894e48d01\"><tt>d31cf6be</tt></a> v0.17.0 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.17.0\"></a>\n## [v0.17.0](https://github.com/99designs/gqlgen/compare/v0.16.0...v0.17.0) - 2022-03-01\n- <a href=\"https://github.com/99designs/gqlgen/commit/e4be56513300286729b1276de2741ce6a93f3afa\"><tt>e4be5651</tt></a> release v0.17.0\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/082bbff65eaf9931d4637001635d72014033523f\"><tt>082bbff6</tt></a> Revert \"Update quickstart (<a href=\"https://github.com/99designs/gqlgen/pull/1850\">#1850</a>)\" (<a href=\"https://github.com/99designs/gqlgen/pull/2014\">#2014</a>)</summary>\n\nThis reverts commit 0ab636144bfc875f86e4d9fd7a2686bc57d5050c.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a58411b804f848aa7e2e4547a1ba768f5dfdc8d3\"><tt>a58411b8</tt></a> Embed templates instead of inlining them (<a href=\"https://github.com/99designs/gqlgen/pull/2019\">#2019</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/839b50df1c068e6b17adb27a68a26984ea363bcc\"><tt>839b50df</tt></a> Test gqlgen generate in CI (<a href=\"https://github.com/99designs/gqlgen/pull/2017\">#2017</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/00dc14ad817806840ca4df4a04d7a658f6f38105\"><tt>00dc14ad</tt></a> Remove ambient imports (<a href=\"https://github.com/99designs/gqlgen/pull/2016\">#2016</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/45e192ea9fa2af6ed3b16e1a8b5c67276f13d34f\"><tt>45e192ea</tt></a> Clean up docs to clarify how to use a particular version (<a href=\"https://github.com/99designs/gqlgen/pull/2015\">#2015</a>) (closes <a href=\"https://github.com/99designs/gqlgen/issues/1851\"> #1851</a>)</summary>\n\nThis reverts commit 57a148f6d12572fe585ecfcafafbb7441dbf9cab.\n\n* Update getting-started.md\n\n* Update getting-started.md\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3a9413f718b217866c89cb88e268e8f2c461fb95\"><tt>3a9413f7</tt></a> Fix issue template\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5236fb096802dc66ba9d11d096b2c6fa1ad24b14\"><tt>5236fb09</tt></a> fix introspection for description to be nullable (<a href=\"https://github.com/99designs/gqlgen/pull/2008\">#2008</a>)</summary>\n\n* fixed introspection for description to be nullable\n\n* regenerated for integration\n\n* regenerated\n\n* fixed introspection package\n\n* regenerated\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/82fefdb51046ca80506292f25dcb2d636301f865\"><tt>82fefdb5</tt></a> support to generate model for intermediate interface (<a href=\"https://github.com/99designs/gqlgen/pull/1982\">#1982</a>)</summary>\n\n* support to generate model for intermediate interface\n\n* go generate ./... in example\n\n* fixed filepath generation\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/3ec8363554ff17e3ffb3e86c58f1ee2d5689e798\"><tt>3ec83635</tt></a> Bump ajv from 6.10.2 to 6.12.6 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/2007\">#2007</a>)</summary>\n\nBumps [ajv](https://github.com/ajv-validator/ajv) from 6.10.2 to 6.12.6.\n- [Release notes](https://github.com/ajv-validator/ajv/releases)\n- [Commits](https://github.com/ajv-validator/ajv/compare/v6.10.2...v6.12.6)\n\n---\nupdated-dependencies:\n- dependency-name: ajv\n  dependency-type: indirect\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/9546de2c825c92318230d21d525791dfa3f0f184\"><tt>9546de2c</tt></a> Web Socket initialization message timeout (<a href=\"https://github.com/99designs/gqlgen/pull/2006\">#2006</a>)</summary>\n\n* Added an optional timeout to the web socket initialization message read operation.\n\n* Added a fail message to a web socket init read timeout test.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f6ea623003fe8b8f40beb1b545a6dc91a2af0f12\"><tt>f6ea6230</tt></a> fixed introspection for schema description and specifiedByhttps://github.com/99designs/gqlgen (<a href=\"https://github.com/99designs/gqlgen/pull/1986\">#1986</a>)</summary>\n\n* fixed introspection for schema description and specifiedByURL\n\n* updated to the master latest\n\n* fixed Description resolver\n\n* updated integration go file\n\n* fixed codegen tests for the latest gqlparser\n\n* updated go mod in example\n\n* go generate\n\n* skip specifiedBy\n\n* regenerate\n\n* fixed schema-expected.graphql for the latest\n\n* fixed integration test to use latest tools\n\n* fixed integration workflow\n\n* use v2.4.0\n\n* fixed sum\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f17ca15e1fab4837ebcca99958e1651034e48852\"><tt>f17ca15e</tt></a> Fix broken links in docs (<a href=\"https://github.com/99designs/gqlgen/pull/1983\">#1983</a>) (closes <a href=\"https://github.com/99designs/gqlgen/issues/1734\"> #1734</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a0c856b72e1e001633388644310a388342d7d0ff\"><tt>a0c856b7</tt></a> Added a callback error handling function to the websocket and added tests for it. (<a href=\"https://github.com/99designs/gqlgen/pull/1975\">#1975</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cfea9f07627143fd184e8f36448cb501006bc63a\"><tt>cfea9f07</tt></a> generate resolvers for input types (<a href=\"https://github.com/99designs/gqlgen/pull/1950\">#1950</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ffa857ef346e87215bd985b5e84330b0f31afe96\"><tt>ffa857ef</tt></a> Websocket i/o timeout fix (<a href=\"https://github.com/99designs/gqlgen/pull/1973\">#1973</a>)</summary>\n\n* Renamed \"pingMesageType\" to \"pingMessageType\" and refactored websocket_graphqlws.go to look more like websocket_graphql_transport_ws.go for the sake of consistency.\n\n* Made the keep-alive messages graphql-ws only, and the ping-pong messages graphql-transport-ws only (and added tests for it).\n\n* gofmt\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d7da5b0d3b3cffa0cdb30fa7dcf16c87d8434e7e\"><tt>d7da5b0d</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1958\">#1958</a> from 99designs/cleanup-main</summary>\n\nCleanup main\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/42f32432b068b381d4666a56da50ebf73520831f\"><tt>42f32432</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1957\">#1957</a> from 99designs/move-init-ci</summary>\n\nUpate init CI step\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/be1647480a2c89bac80c094e0fa7f5ffda7fe602\"><tt>be164748</tt></a> Cleanup main\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8ea290c0854579f7cb6746fb7e51485fda01a6b6\"><tt>8ea290c0</tt></a> Upate init CI step\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/56bfb1880603486189025f043d8155beaa9f53d2\"><tt>56bfb188</tt></a> Fix 1955: only print message on [@key](https://github.com/key) found on interfaces (<a href=\"https://github.com/99designs/gqlgen/pull/1956\">#1956</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/213a085b954945eeaa1fc87f0fedef2c07fe14c1\"><tt>213a085b</tt></a> rename \"example\" dir to \"_examples\" (<a href=\"https://github.com/99designs/gqlgen/pull/1734\">#1734</a>)</summary>\n\n* rename \"example\" dir to \"_examples\"\n\n* fix lint\n\n* Adjust permissions\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/9262b35865e4a8c62749a0bdf4cce075877a8b4f\"><tt>9262b358</tt></a> fix: typo in dataloader code sample (<a href=\"https://github.com/99designs/gqlgen/pull/1954\">#1954</a>)</summary>\n\n* fix: typo in dataloader code sample\n\n* rename k to key for sample to compile\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a05437332754fab8bebce18ae8371dcdbe05460b\"><tt>a0543733</tt></a> remove autobind example (<a href=\"https://github.com/99designs/gqlgen/pull/1949\">#1949</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/06bbca37286edb32db2480db6d200b709ae071a9\"><tt>06bbca37</tt></a> docs: migrate dataloaders sample to graph-gophers/dataloader (<a href=\"https://github.com/99designs/gqlgen/pull/1871\">#1871</a>)</summary>\n\n* docs: add dataloader sample\n\n* finish example\n\n* add example\n\n* simplify method\n\n* replace old example\n\n* styling\n\n* Update docs/content/reference/dataloaders.md\n\n* Update docs/content/reference/dataloaders.md\n\n* Update docs/content/reference/dataloaders.md\n\n* Update docs/content/reference/dataloaders.md\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f9fcfa16a13c64ecfb298ad6cf97b3548b7ee0ff\"><tt>f9fcfa16</tt></a> Comment out autobind in the sample config file (<a href=\"https://github.com/99designs/gqlgen/pull/1872\">#1872</a>)</summary>\n\nThe reason is that many people using it for the first time copy exactly that configuration example and then open the issues to say it doesn't work.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a30b68de58cbd5fa19e88bd5a198e7ca67147f3b\"><tt>a30b68de</tt></a> fix: whitelist VERSION and CURRENT_VERSION env vars (<a href=\"https://github.com/99designs/gqlgen/pull/1870\">#1870</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/76a533b8161ad3ee56b721404650697cce808221\"><tt>76a533b8</tt></a> Bump gopkg.in/yaml.v2 from 2.2.4 to 2.2.8 (<a href=\"https://github.com/99designs/gqlgen/pull/1858\">#1858</a>)</summary>\n\n* Bump gopkg.in/yaml.v2 from 2.2.4 to 2.2.8\n\nBumps [gopkg.in/yaml.v2](https://github.com/go-yaml/yaml) from 2.2.4 to 2.2.8.\n- [Release notes](https://github.com/go-yaml/yaml/releases)\n- [Commits](https://github.com/go-yaml/yaml/compare/v2.2.4...v2.2.8)\n\n---\nupdated-dependencies:\n- dependency-name: gopkg.in/yaml.v2\n  dependency-type: direct:production\n...\n\n\n* Update go sum for example\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/eed4301c7123e329e067600fe25aa1c876c99b8d\"><tt>eed4301c</tt></a> Bump node-fetch from 2.6.1 to 2.6.7 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/1859\">#1859</a>)</summary>\n\nBumps [node-fetch](https://github.com/node-fetch/node-fetch) from 2.6.1 to 2.6.7.\n- [Release notes](https://github.com/node-fetch/node-fetch/releases)\n- [Commits](https://github.com/node-fetch/node-fetch/compare/v2.6.1...v2.6.7)\n\n---\nupdated-dependencies:\n- dependency-name: node-fetch\n  dependency-type: direct:development\n...\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7f5dce6d9eebe829edf20ba67e5c5019921fa1ee\"><tt>7f5dce6d</tt></a> Fix <a href=\"https://github.com/99designs/gqlgen/pull/1776\">#1776</a> : Edit and persist headers in GraphiQL (<a href=\"https://github.com/99designs/gqlgen/pull/1856\">#1856</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e0b42f9981825814e9ec7c216d9c393b2486831c\"><tt>e0b42f99</tt></a> fix requires directive with nested field when entityResolver directive is used (<a href=\"https://github.com/99designs/gqlgen/pull/1863\">#1863</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/25c2cdcb12d574e597e8902ab9e2d94b1e5ef974\"><tt>25c2cdcb</tt></a> Fix <a href=\"https://github.com/99designs/gqlgen/pull/1636\">#1636</a> by updating gqlparser (<a href=\"https://github.com/99designs/gqlgen/pull/1857\">#1857</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c161ab382547948feb9a54e7bf9ff17458b8c3c9\"><tt>c161ab38</tt></a> fix <a href=\"https://github.com/99designs/gqlgen/pull/1770\">#1770</a> minor error in getting-started.md (<a href=\"https://github.com/99designs/gqlgen/pull/1771\">#1771</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/57a148f6d12572fe585ecfcafafbb7441dbf9cab\"><tt>57a148f6</tt></a> Remove outdated version reference so example is always for latest (<a href=\"https://github.com/99designs/gqlgen/pull/1851\">#1851</a>)</summary>\n\n* Also update version reference to next\n\n* Update getting-started.md\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0ab636144bfc875f86e4d9fd7a2686bc57d5050c\"><tt>0ab63614</tt></a> Update quickstart (<a href=\"https://github.com/99designs/gqlgen/pull/1850\">#1850</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a8eba26dec863c5d34905ab6408f970b4d2abdb5\"><tt>a8eba26d</tt></a> Fix <a href=\"https://github.com/99designs/gqlgen/pull/1777\">#1777</a> by updating version constant and adding release checklist (<a href=\"https://github.com/99designs/gqlgen/pull/1848\">#1848</a>)</summary>\n\n* Revise to use script 🤦\n\n</details></dd></dl>\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.16.0\"></a>\n## [v0.16.0](https://github.com/99designs/gqlgen/compare/v0.15.1...v0.16.0) - 2022-01-24\n- <a href=\"https://github.com/99designs/gqlgen/commit/b90f9750f40583823a3e875d6bbe1538ce50f527\"><tt>b90f9750</tt></a> Merge branch 'master' of github.com:99designs/gqlgen\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/99523e44ae67633ecfa714794a209191d3519017\"><tt>99523e44</tt></a> Prepare for v0.16.0 release (<a href=\"https://github.com/99designs/gqlgen/pull/1842\">#1842</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0563146c6bd7188b2ae187040c5a7f3d17cc9f89\"><tt>0563146c</tt></a> Prepare for v0.16.0 release\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/7cefef26f7b714eb9d5be117ba2159d4e40168f3\"><tt>7cefef26</tt></a> add PrependPlugin (<a href=\"https://github.com/99designs/gqlgen/pull/1839\">#1839</a>)</summary>\n\n* add PrependPlugin\n\nrelated: https://github.com/99designs/gqlgen/pull/1838\n\n* added test for PrependPlugin\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/972878a04fc8e9065df212b7cdbe934f141d069b\"><tt>972878a0</tt></a> Revert \"Fix plugin addition (<a href=\"https://github.com/99designs/gqlgen/pull/1717\">#1717</a>)\" (<a href=\"https://github.com/99designs/gqlgen/pull/1838\">#1838</a>)</summary>\n\nThis reverts commit f591c8f797e35635fb5eb0e4465c77b6a073896b.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1ed7e050a1f736b7395dd3e61f771d3ddcf80a8d\"><tt>1ed7e050</tt></a> Fix <a href=\"https://github.com/99designs/gqlgen/pull/1832\">#1832</a> [@requires](https://github.com/requires) directive when [@entityResolver](https://github.com/entityResolver) is used (<a href=\"https://github.com/99designs/gqlgen/pull/1833\">#1833</a>)</summary>\n\n* fix requires directive for multipleEntity directive\n\n\n* fix lint\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/fcee4c404f52c2debcb8b8acaa31421804f625ea\"><tt>fcee4c40</tt></a> Update README.md (<a href=\"https://github.com/99designs/gqlgen/pull/1836\">#1836</a>)</summary>\n\nCorrected a simple grammar typo.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/3fb5fd9916896d2c084c646093b3cbd634f61121\"><tt>3fb5fd99</tt></a> Fix <a href=\"https://github.com/99designs/gqlgen/pull/1834\">#1834</a>: Implement federation correctly (<a href=\"https://github.com/99designs/gqlgen/pull/1835\">#1835</a>)</summary>\n\n* Fix federation implementation which does not conform to Apollo Federation subgraph specification\n\n* Optimize generated line breaks\n\n* Run go generate\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/986650718267770018139713df874a70e1e79e16\"><tt>98665071</tt></a> Imporve gqlgen test cases (<a href=\"https://github.com/99designs/gqlgen/pull/1773\">#1773</a>) (closes <a href=\"https://github.com/99designs/gqlgen/issues/1765\"> #1765</a>)</summary>\n\n* Imporve test cases for init and generate\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5d904d8782833d85ca6fedb47420237b3258eb66\"><tt>5d904d87</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1778\">#1778</a> from ipfans/gh-pages-patch</summary>\n\nBump gqlgen.com version list\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/196ee13bc364a4dea800edc0a9e60c6e7e2bd03b\"><tt>196ee13b</tt></a> Bump gqlgen.com version\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.15.1\"></a>\n## [v0.15.1](https://github.com/99designs/gqlgen/compare/v0.15.0...v0.15.1) - 2022-01-16\n- <a href=\"https://github.com/99designs/gqlgen/commit/7102a36bbde485fbbb671499fdde8697232c0725\"><tt>7102a36b</tt></a> Prepare for 0.15.1 release\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/2b8f50b3b38b129f56e06c3dadccd0cb8667a741\"><tt>2b8f50b3</tt></a> Fix <a href=\"https://github.com/99designs/gqlgen/pull/1765\">#1765</a>: Sometimes module info not exists or not loaded. (<a href=\"https://github.com/99designs/gqlgen/pull/1767\">#1767</a>)</summary>\n\n* Remove failing test\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/46502e5e5af713208143f089fa2db5b266aa5fc7\"><tt>46502e5e</tt></a> fixed broken link (<a href=\"https://github.com/99designs/gqlgen/pull/1768\">#1768</a>)\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.15.0\"></a>\n## [v0.15.0](https://github.com/99designs/gqlgen/compare/v0.14.0...v0.15.0) - 2022-01-14\n- <a href=\"https://github.com/99designs/gqlgen/commit/99be19512eb2f7c5f3db3d699eecc8cdd2020d25\"><tt>99be1951</tt></a> Prepare for release\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/931271a2f3af4cf50de702855d396cde02a3d99f\"><tt>931271a2</tt></a> Fix <a href=\"https://github.com/99designs/gqlgen/pull/1762\">#1762</a>: Reload packages before merging type systems (<a href=\"https://github.com/99designs/gqlgen/pull/1763\">#1763</a>)</summary>\n\n* run gofmt on file\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e5b5e832e5c5ab388af3ebbae8a899f2b362eab1\"><tt>e5b5e832</tt></a> Improve performance of MarshalBoolean (<a href=\"https://github.com/99designs/gqlgen/pull/1757\">#1757</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/57664bf0369a843e56f74f4f1951a1808656fe99\"><tt>57664bf0</tt></a> Migrate playgrounds to GraphiQL (<a href=\"https://github.com/99designs/gqlgen/pull/1751\">#1751</a>)</summary>\n\n* migrate to GraphiQL playground\n\n* fix lint\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/b2a832d51d5d67463d35fc1397b7d6133e1d6b43\"><tt>b2a832d5</tt></a> Avoid problems with `val` being undefined in the federation template. (<a href=\"https://github.com/99designs/gqlgen/pull/1760\">#1760</a>)</summary>\n\n* Avoid problems with `val` being undefined in the federation template.\n\nWhen running gqlgen over our schema, we were seeing errors like:\n```\nassignments/generated/graphql/service.go:300:4: val declared but not used\n```\n\nThe generated code looks like this:\n```\nfunc entityResolverNameForMobileNavigation(ctx context.Context, rep map[string]interface{}) (string, error) {\n        for {\n                var (\n                        m   map[string]interface{}\n                        val interface{}\n                        ok  bool\n                )\n                m = rep\n                if _, ok = m[\"kaid\"]; !ok {\n                        break\n                }\n                m = rep\n                if _, ok = m[\"language\"]; !ok {\n                        break\n                }\n                return \"findMobileNavigationByKaidAndLanguage\", nil\n        }\n        return \"\", fmt.Errorf(\"%w for MobileNavigation\", ErrTypeNotFound)\n}\n```\n\nLooking at the code, it's pretty clear that this happens when there\nare multiple key-fields, but each of them has only one keyField.Field\nentry.  This is because the old code looked at `len(keyFields)` to\ndecide whether to declare the `val` variable, but looks at\n`len(keyField.Field)` for each keyField to decide whether to use the\n`val` variable.\n\nThe easiest solution, and the one I do in this PR, is to just declare\n`val` all the time, and use a null-assignment to quiet the compiler\nwhen it's not used.\n\n* run go generate to update generated files\n\n* run go generate to update moar generated files\n\n* Adding a test for verify that this fixes the issue.\n\nFrom `plugins/federation`, run the following command and verify that no errors are produced\n\n```\ngo run github.com/99designs/gqlgen --config testdata/entityresolver/gqlgen.yml\n```\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/47015f12e3aa26af251fec67eab50d3388c17efe\"><tt>47015f12</tt></a> Added pointer to a solution for `no Go files` err (<a href=\"https://github.com/99designs/gqlgen/pull/1747\">#1747</a>)</summary>\n\nWhile following the instructions in this getting started guide I run into this error `package github.com/99designs/gqlgen: no Go files` which was pretty annoying to fix. Its a golang issue but for people who are unfamiliar with how the `go generate` command works in vendored projects its a blocker trying to follow the rest of this guide. It will be really nice to at least have a pointer in the guide for people to find a possible solution to the issue while going through the guide. I'm sure many folks have run into this issue given vendoring is now very popular with the latest go releases.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/27a2b210d9137e2f1d341a103542b47dcc783182\"><tt>27a2b210</tt></a> Downgrade to Go 1.16 (<a href=\"https://github.com/99designs/gqlgen/pull/1743\">#1743</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/14cfee7002fb07f3f247b13582fe45959f7133de\"><tt>14cfee70</tt></a> Support for multiple [@key](https://github.com/key) directives in federation (reworked) (<a href=\"https://github.com/99designs/gqlgen/pull/1723\">#1723</a>)</summary>\n\n* address review comments\n\n- reworked code generation for federation.go\n- better checking for missing/incorrect parameters to entity resolver functions\n- better tests for generated entity resolvers\n\nStill missing: \n- suggested test for autobind vs non-autobind generation\n- could probably clean up generated code spacing, etc\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2747bd5f3c69db7d55db5f10592ecd0accf3499f\"><tt>2747bd5f</tt></a> Add CSV and PDF to common initialisms (<a href=\"https://github.com/99designs/gqlgen/pull/1741\">#1741</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/44beadc1d037a0d46c799c85d88dc71a57f3938b\"><tt>44beadc1</tt></a> Fix list coercion when using graphql variables (<a href=\"https://github.com/99designs/gqlgen/pull/1740\">#1740</a>)</summary>\n\n* fix(codegen): support coercion of lists in graphql variables\n\nThis was broken by an upstream dependency `gqlparser` coercing variables during validation. this has broken the existing coercion process withing `gqlgen`\n\n* test: add list coercion integration tests\n\n* chore: regenerate generated code\n\n* test: update expected schema for integration tests\n\n* chore: run goimports\n\n* chore: regenerate examples\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/bd8938d853e0aade3eab106e35f28d586e355124\"><tt>bd8938d8</tt></a> fix: automatically register built-in directive goTag (<a href=\"https://github.com/99designs/gqlgen/pull/1737\">#1737</a>)</summary>\n\n* fix: automatically register built-in tag goTag\n\n* doc: add directive config documentation\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/497227faf4e43266bf1a8f9ef756b98ef85cfee7\"><tt>497227fa</tt></a> Close Websocket Connection on Context close/cancel (<a href=\"https://github.com/99designs/gqlgen/pull/1728\">#1728</a>)</summary>\n\n* Added code to the web socket so it closes when the context is cancelled (with an optional close reason).\n\n* Added a test.\n\n* go fmt\n\n\n* Fix linter issues about the cancel function being thrown away.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4581fccdb67e05937ba862bf601a18393731bccc\"><tt>4581fccd</tt></a> Don't loose field arguments when none match (<a href=\"https://github.com/99designs/gqlgen/pull/1725\">#1725</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/213ecd93c2593a535efc291b065966573d798a5d\"><tt>213ecd93</tt></a> Add support for graphql-transport-ws with duplex ping-pong (<a href=\"https://github.com/99designs/gqlgen/pull/1578\">#1578</a>)</summary>\n\n* Add support for graphql-transport-ws with duplex ping-pong\n\n* Add tests for the duplex ping-pong\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ae92c83d7f7d14ab3a29016eb71d577e1c66721e\"><tt>ae92c83d</tt></a> add federation tests (<a href=\"https://github.com/99designs/gqlgen/pull/1719\">#1719</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f591c8f797e35635fb5eb0e4465c77b6a073896b\"><tt>f591c8f7</tt></a> Fix plugin addition (<a href=\"https://github.com/99designs/gqlgen/pull/1717\">#1717</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8fa6470f9e0eb8d85e90f211a90b0ea38a228f35\"><tt>8fa6470f</tt></a> Fix <a href=\"https://github.com/99designs/gqlgen/pull/1704\">#1704</a>: handle [@required](https://github.com/required) nested fields as in [@key](https://github.com/key) (<a href=\"https://github.com/99designs/gqlgen/pull/1706\">#1706</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/af33b7cd2486d52363ba1ed90e1963ce12c22250\"><tt>af33b7cd</tt></a> Cleaning up extra return in federation generated code (<a href=\"https://github.com/99designs/gqlgen/pull/1713\">#1713</a>)</summary>\n\nIn PR 1709, I introduced GetMany semantics for resolving federated entities.  But I left a couple of extra return statements in the generated code that are not necessary. So Im just cleaning those up here.\n\nAlso added `go:generate` in federation entity resolver tests to make it simpler to test.\n\nTo test:\n```\ngo generate ./... && cd example/ && go generate ./... && cd ..\ngo test -race ./... && cd example && go test -race ./... && cd ..\n```\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/402a22593f6fe71ff33d805a057de0f331eded5a\"><tt>402a2259</tt></a> Optimize performance for binder, imports and packages (Rebased from sbalabanov/master) (<a href=\"https://github.com/99designs/gqlgen/pull/1711\">#1711</a>)</summary>\n\n* Cache go.mod resolution for module name search\n\n* Optimize binder.FindObject() for performance by eliminating repeatitive constructs\n\n* Optimize allocations in packages.Load() function\n\n* Optimize binder.FindObject() by indexing object definitions for each loaded package\n\n* goimports to fix linting\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/237a7e6a7bb1abdd71e957adeb119691bbae5671\"><tt>237a7e6a</tt></a> Separate golangci-lint from other jobs (<a href=\"https://github.com/99designs/gqlgen/pull/1712\">#1712</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/50292e99d5cd0021f9fbec6118e406e4da86505b\"><tt>50292e99</tt></a> Resolve multiple federated entities in a single entityResolve call (<a href=\"https://github.com/99designs/gqlgen/pull/1709\">#1709</a>)</summary>\n\n* Resolve multiple federated entities in a single entityResolve call\n\nEntity resolver functions can only process one entity at a time. But often we want to resolve all the entities at once so that we can optimize things like database calls. And to do that you need to add you'd need to add batching with abstractions like dataloadgen or batchloader. The drawback here is that the resolver code (the domain logic) gets more complex to implement, test, and debug.\n\nAn alternative is to have entity resolvers that can process all the representations in a single call so that domain logic can have access to all the representations up front, which is what Im adding in this PR.\n\nThere are a few moving pieces here:\n3. When that's configured, the federation plugin will create an entity resolver that will take a list of representations.\n\nPlease note that this is very specific to federation and entity resolvers. This does not add support for resolving fields in an entity.\n\nSome of the implementation details worth noting. In order to efficiently process batches of entities, I group them by type so that we can process groups of entities at the same time. The resolution of groups of entities run concurrently in Go routines.  If there is _only_ one type, then that's just processed without concurrency. Entities that don't have multiget enabled will still continue to resolve concurrently with Go routines, and entities that have multiget enabled just get the entire list of representations.\n\nThe list of representations that are passed to entity resolvers are strongly types, and the type is generated for you.\n\nThere are lots of new tests to ensure that there are no regressions and that the new functionality still functions as expected. To test:\n1. Go to `plugin/federation`\n2. Generate files with `go run github.com/99designs/gqlgen --config testdata/entityresolver/gqlgen.yml`\n3. And run `go test ./...`. Verify they all pass.\n\nYou can look at the federated code in `plugin/federation/testdata/entityresolver/gederated/federation.go`\n\n* Added `InputType` in entity to centralize logic for generating types for multiget resolvers.\n\n* reformat and regenerate\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/80713b84cf937b203cbd745603809e0d72f1dd84\"><tt>80713b84</tt></a> Adding entity resolver tests for errors, entities with different type… (<a href=\"https://github.com/99designs/gqlgen/pull/1708\">#1708</a>)</summary>\n\n* Adding entity resolver tests for errors, entities with different types, and requires\n\nThe tests in this PR are for ensuring we get the expected errors from entity resolvers, that we also handle resolving entities where the representations are for different types, and that requires directive works correctly.\n\nTo run tests:\n1. Go to `plugin/federation`\n2. Generate files with `go run github.com/99designs/gqlgen --config testdata/entityresolver/gqlgen.yml`\n3. And run `go test ./...`.  Verify they all pass.\n\n* Fixed test for errors\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ed2d699804c09875c678900937923fcbc4f6e00a\"><tt>ed2d6998</tt></a> Replace ! with _ in root.generated file to avoid build conflicts (<a href=\"https://github.com/99designs/gqlgen/pull/1701\">#1701</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/828820afa95e4e66857839cbcbf6584665cef10c\"><tt>828820af</tt></a> transport: implement `graphql-transport-ws` ws sub-protocol   (<a href=\"https://github.com/99designs/gqlgen/pull/1507\">#1507</a>)</summary>\n\n* websocket: create `messageExchanger` to handle subprotocol messages\n\n* remove unused type\n\n* typo in comments\n\n* change `graphqlwsMessageType` type to string\n\n* add support for `graphql-transport-ws` subprotocol\n\n* fix chat app example\n\n* update example chat app dependencies\n\n* improve chat app exmaple to use the recommended ws library\n\n* add tests\n\n* removed unused const in tests\n\n* Update example/chat/readme.md\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/28caa6ce504b4ed206407dcaea8f8418feb91888\"><tt>28caa6ce</tt></a> Ignore generated files from test coverage (<a href=\"https://github.com/99designs/gqlgen/pull/1699\">#1699</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7ac988dee1187a27bb1290fe25f7b179f6102e42\"><tt>7ac988de</tt></a> Fix linting issue\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/01d3c4f8c0b732ee85b919415322fdb190127fac\"><tt>01d3c4f8</tt></a> Entity resolver tests (<a href=\"https://github.com/99designs/gqlgen/pull/1697\">#1697</a>)</summary>\n\n* Moving federation tests to their own folders\n\nReorganizing the tests in the federation plugin a little bit so make it simpler to add more safely without testdata colliding. This is in anticipation for a follow up PR for adding entity resolver tests.\n\nRun the tests with `go test ./plugin/federation/...` and verify they all pass. Also verify that the testdata/allthething directory has a `generated` directory specific to that test.\n\nNOTE: There is a catch all type of test that I moved to the directory `allthething`.  Open to suggestions for a better name! One potential thing to considere here is to split up the tests that use that testdata and break them down into more specific tests. E.g. Add a multikey test in the testdata/entity.  For now, Im leaving that as a TODO.\n\n* Adding entity resolver tests in the federation plugin\n\nThe tests work by sending `_entities` queries with `representation` variables directly to the mocked server, which will allow us to test generated federation code end to end.  For context, the format of the entity query is something like:\n\n```\nquery($representations:[_Any!]!){_entities(representations:$representations){ ...on Hello{secondary} }}\n```\n\nAnd `representations` are the list of federated keys for the entities being resovled, and they look like\n\n```\nrepresentations: [{\n   \"__typename\": \"Hello\",\n   \"name\":       \"federated key value 1\",\n}, {\n   \"__typename\": \"Hello\",\n   \"name\":       \"federated key value 2\",\n}]\n```\n\nThe entity resolver tests are in `plugin/federation/federation_entityresolver_test.go` and they rely on `plugin/federation/testdata/entityresolver`.\n\nTo run the tests:\n1. Build the entityresolver testdata\n  - From plugin/federation, run `go run github.com/99designs/gqlgen --config testdata/entityresolver/gqlgen.yml`\n2. Run the tests with `go test ./...` or similar\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/b7db36d368c260d90fb5fa6084c295d92c1a001d\"><tt>b7db36d3</tt></a> Revert \"Support for multiple [@key](https://github.com/key) directives in federation (<a href=\"https://github.com/99designs/gqlgen/pull/1684\">#1684</a>)\" (<a href=\"https://github.com/99designs/gqlgen/pull/1698\">#1698</a>)</summary>\n\nThis reverts commit 47de912f56cd4bd6da9b74929cd67b8881617026.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4a4b5601a661259cc33d22c8a254803025e8a1f7\"><tt>4a4b5601</tt></a> DOC: Fixed indention in example code. (<a href=\"https://github.com/99designs/gqlgen/pull/1693\">#1693</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/47de912f56cd4bd6da9b74929cd67b8881617026\"><tt>47de912f</tt></a> Support for multiple [@key](https://github.com/key) directives in federation (<a href=\"https://github.com/99designs/gqlgen/pull/1684\">#1684</a>)</summary>\n\n* add more unit test coverage to plugin/federation\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/59a30919a8d8a9b67972cc7e4dd1e425901f15c2\"><tt>59a30919</tt></a> Reimplement goTag using FieldMutateHook (<a href=\"https://github.com/99designs/gqlgen/pull/1682\">#1682</a>)</summary>\n\n* Reimplement goTag using a FieldMutateHook\n\nThis change does not change the logic of goTag, merely reimplements it using a FieldMutateHook and sets it as the default FieldMutateHook for the modelgen plugin.\n\n* Add repeated tag test\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/37a4e7eefa241dd7e5eeab7bbca56b1677d37daf\"><tt>37a4e7ee</tt></a> Rename `[@extraTag](https://github.com/extraTag)` directive to `[@goTag](https://github.com/goTag)` and make repeatable (<a href=\"https://github.com/99designs/gqlgen/pull/1680\">#1680</a>)</summary>\n\n* Allow Repeatable `goTag` Directive\n\n* Default to field name if none provided\n\n* Update Docs\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/87f9e436e922a977b6002bb3070f087641001782\"><tt>87f9e436</tt></a> Fix nil pointer dereference when an invalid import is bound to a model (<a href=\"https://github.com/99designs/gqlgen/pull/1676\">#1676</a>)</summary>\n\n* Fixes remaining Name field in singlefile test\n\n* Fixes nill pointer dereference when an invalid import is bound to a model\n\n* Only return error if we failed to find type\n\n* Revert \"Fixes remaining Name field in singlefile test\"\n\nThis reverts commit e43ebf7aa80f884afdb3feca90867b1eff593f01.\n\n* Undo change of log.Println -> fmt.Println\n\nTotally accidental, sorry!\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/6c65e8f15389e8aad7e20e7ba4a9b3ff4be565d9\"><tt>6c65e8f1</tt></a> Update getting-started.md (<a href=\"https://github.com/99designs/gqlgen/pull/1674\">#1674</a>)</summary>\n\nmissing an 's' on quoted filename default\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3bbc2a342fc7a0839b25e26ebd0aa25d7f498dac\"><tt>3bbc2a34</tt></a> feat: generate resolvers for inputs if fields are missing (<a href=\"https://github.com/99designs/gqlgen/pull/1404\">#1404</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/7db941a56e742dca10cbba1e32d4d09458cdc8ef\"><tt>7db941a5</tt></a> Fix 1138: nested fieldset support (<a href=\"https://github.com/99designs/gqlgen/pull/1669\">#1669</a>)</summary>\n\n* formatting\n\n* update federation schema to latest Apollo spec\n\n\nalso:\nhandle extra spaces in FieldSet\nupgrade deps in federation integration tests\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/488a31fc12979b825b166cf6f317f4b27ee456a0\"><tt>488a31fc</tt></a> ContextMarshaler (<a href=\"https://github.com/99designs/gqlgen/pull/1652\">#1652</a>)</summary>\n\n* Add interface and detection for ContextMarshaler\n\n* Test error on float marshalling\n\n* Revert prettier changes\n\n* Rename context test\n\n* Only use the erroring float printer\n\n* Test that context is passed to marshal functions\n\n* Update scalar docs to include the context\n\n* Generate the examples\n\n* Move ContextMarshaller test code to new followschema\n\n* Resolve conflict a little more\n\n\n* Replicate sclar test for singlefile\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a626d9b47e54e4439976d3ad333dfefe4c2710d6\"><tt>a626d9b4</tt></a> Add ICMP to common initialisms (<a href=\"https://github.com/99designs/gqlgen/pull/1666\">#1666</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/db4b5eb71b4959c3f8b68086b753ec3c01c5b4c9\"><tt>db4b5eb7</tt></a> Merge Inline Fragment Nested Interface Fields (<a href=\"https://github.com/99designs/gqlgen/pull/1663\">#1663</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8b9737179d3ba08405ab6422fb8c4883dd8e720c\"><tt>8b973717</tt></a> Update directives doc page (<a href=\"https://github.com/99designs/gqlgen/pull/1660\">#1660</a>)</summary>\n\n* Update directives doc page\n\n* Add back one beloved piece of jargon\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1f500016aedcb9bc35eb9964b55730efe966ef5e\"><tt>1f500016</tt></a> Add follow-schema layout for exec (<a href=\"https://github.com/99designs/gqlgen/pull/1309\">#1309</a>) (closes <a href=\"https://github.com/99designs/gqlgen/issues/1265\"> #1265</a>)</summary>\n\n* Define ExecConfig separate from PackageConfig\n\nWhen support for writing generated code to a directory instead of\na single file is added, ExecConfig will need additional fields\nthat will not be relevant to other users of PackageConfig.\n\n* Add single-file, follow-schema layouts\n\nWhen `ExecLayout` is set to `follow-schema`, output generated code to a\ndirectory instead of a single file. Each file in the output directory\nwill correspond to a single *.graphql schema file (plus a\nroot!.generated.go file containing top-level definitions that are not\nspecific to a single schema file).\n\n`ExecLayout` defaults to `single-file`, which is the current behavior, so\nthis new functionality is opt-in.\n\nThese layouts expose similar functionality to the `ResolverLayout`s with\nthe same name, just applied to `exec` instead of `resolver`.\n\n\n* Rebase, regenerate\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/129783590c9cb8c709a2b0e9cbb7b69f022ee78a\"><tt>12978359</tt></a> Update GQLgen test client to work with multipart form data (take 2) (<a href=\"https://github.com/99designs/gqlgen/pull/1661\">#1661</a>)</summary>\n\n* Update GQLgen test client to work with multipart form data\n\nUpdate the GQLgen to support multipart form data, like those present\nwithin the fileupload examples.\n\n- Add missing space between \"unsupported encoding \" and failing\n  content-type header error\n\n(cherry picked from commit 101842f73fb79b10c1299bb40506080e08543ec6)\n\n* Add WithFiles client option for fileupload GQLgen client tests\n\nAdd a `WithFiles` GQLgen client option to support the fileupload input\nwithin tests, using the core Golang `os` package and File type, which\nconverts `os.File`s to their appropriate multipart form data within a\nrequest.\n\n- If there are no files this should just simply convert a\n  `application/json` Content-Type to supported `multipart/form-data`\n\n(cherry picked from commit 08ef942416c98a2cadf61223308a3ff3c879d1c9)\n\n* Update fileupload test to use GQLgen test client\n\nUpdate the fileupload test to use the GQLgen test client and `WithFiles`\noption to remove the need for `createUploadRequest` helper with raw http\nposts\n\n- Fix setting the Content Type by using the appropriate `http` package\n  function to dectect it\n\n  + https://godoc.org/net/http#DetectContentType\n\n(cherry picked from commit 5e573d51440eba9d457adb4186772577b28ef085)\n\n* Update WithFiles option test with multipart Reader\n\n(cherry picked from commit 6dfa3cbe0647138e80a59a0c1d55dd9c900f96f2)\n\n* Update file upload tests `WithFiles` option\n\nUpdate the file upload tests to use the GQL test client and its\n`WithFiles` option to remove the need for a custom raw HTTP post request\nbuilder `createUploadRequest`.\n\n- Also update `WithFiles` option to group & map identical files; e.g.\n\n  ```\n    { \"0\": [\"variables.req.0.file\", \"variables.req.1.file\"] }\n  ```\n\n(cherry picked from commit 486d9f1b2b200701f9ce6b386736a633547c1441)\n\n* Make sure `WithFiles` does not add duplicates to multipart form data\n\n(cherry picked from commit 0c2364d8495553051d97ab805618b006fcd9eddb)\n\n* Fix use of byte vs string in `WithFiles` tests\n\n(cherry picked from commit ba10b5b1c52a74e63e825ee57c235254e8821e0d)\n\n* Fix strict withFiles option test for race conditions\n\nFix a problem with how strict the test's expected response was for tests\nwith files in their request, since it always expected a strict order of\nfiles input that is somewhat random or dependent on what OS it is\nrunning the test on and/or race condition\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/7435403cf94ce8147fdd9d473a5469d63e7e5b38\"><tt>7435403c</tt></a> Adds RootFieldInterceptor to extension interfaces (<a href=\"https://github.com/99designs/gqlgen/pull/1647\">#1647</a>)</summary>\n\n* Adds RootFieldInterceptor to extension interfaces\n\n\n* Regenerates example folder\n\n\n* Re-generate after changes\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8b25c9e005c44ae3730eca83445fa7f7223481d1\"><tt>8b25c9e0</tt></a> Add a config option to skip running \"go mod tidy\" on code generation (<a href=\"https://github.com/99designs/gqlgen/pull/1644\">#1644</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/658195b79d8c9072a90419ce3ddccda4e430ebf0\"><tt>658195b7</tt></a> Revert \"Update GQLgen test client to work with multipart form data (<a href=\"https://github.com/99designs/gqlgen/pull/1418\">#1418</a>)\" (<a href=\"https://github.com/99designs/gqlgen/pull/1659\">#1659</a>)</summary>\n\nThis reverts commit 1318f12792e86c76a2cdff9132ebac5b3e30e148.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/41c867658a9eacf94b3c682121b03727e18940d5\"><tt>41c86765</tt></a> Revert 1595 (<a href=\"https://github.com/99designs/gqlgen/pull/1658\">#1658</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8359f9749e6fd54be20325ff6aafb05503124238\"><tt>8359f974</tt></a> Allow custom websocket upgrader (<a href=\"https://github.com/99designs/gqlgen/pull/1595\">#1595</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1318f12792e86c76a2cdff9132ebac5b3e30e148\"><tt>1318f127</tt></a> Update GQLgen test client to work with multipart form data (<a href=\"https://github.com/99designs/gqlgen/pull/1418\">#1418</a>)</summary>\n\n* Update GQLgen test client to work with multipart form data\n\nUpdate the GQLgen to support multipart form data, like those present\nwithin the fileupload examples.\n\n- Add missing space between \"unsupported encoding \" and failing\n  content-type header error\n\n* Add WithFiles client option for fileupload GQLgen client tests\n\nAdd a `WithFiles` GQLgen client option to support the fileupload input\nwithin tests, using the core Golang `os` package and File type, which\nconverts `os.File`s to their appropriate multipart form data within a\nrequest.\n\n- If there are no files this should just simply convert a\n  `application/json` Content-Type to supported `multipart/form-data`\n\n* Update fileupload test to use GQLgen test client\n\nUpdate the fileupload test to use the GQLgen test client and `WithFiles`\noption to remove the need for `createUploadRequest` helper with raw http\nposts\n\n- Fix setting the Content Type by using the appropriate `http` package\n  function to dectect it\n\n  + https://godoc.org/net/http#DetectContentType\n\n* Update WithFiles option test with multipart Reader\n\n* Update file upload tests `WithFiles` option\n\nUpdate the file upload tests to use the GQL test client and its\n`WithFiles` option to remove the need for a custom raw HTTP post request\nbuilder `createUploadRequest`.\n\n- Also update `WithFiles` option to group & map identical files; e.g.\n\n  ```\n    { \"0\": [\"variables.req.0.file\", \"variables.req.1.file\"] }\n  ```\n\n* Make sure `WithFiles` does not add duplicates to multipart form data\n\n* Fix use of byte vs string in `WithFiles` tests\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6758654c4e28dc0589147c9e962c9d4c1fd44705\"><tt>6758654c</tt></a> raise panic when nested [@requires](https://github.com/requires) are used on federation (<a href=\"https://github.com/99designs/gqlgen/pull/1655\">#1655</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f6c35be2128d8d0ec6c0c0d63bc0f135292ab5fe\"><tt>f6c35be2</tt></a> Add ReplacePlugin option to replace a specific plugin (<a href=\"https://github.com/99designs/gqlgen/pull/1657\">#1657</a>)</summary>\n\n* Add Helper Option for replacing plugins\n\n* Update recipe to use ReplacePlugin instead of NoPlugin and AddPlugin\n\n* fix linting issue on comment\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f8c46600aa005be4d62e52ca6f4a0467480c58c2\"><tt>f8c46600</tt></a> fix double indirect bug (<a href=\"https://github.com/99designs/gqlgen/pull/1604\">#1604</a>) (closes <a href=\"https://github.com/99designs/gqlgen/issues/1587\"> #1587</a>)</summary>\n\n* invalid code generated\n\n* update code generation for pointer-to-pointer updating\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/629c91a2dff9982a5c469f25e8076ab7737e167a\"><tt>629c91a2</tt></a> remove extra WithOperationContext call (<a href=\"https://github.com/99designs/gqlgen/pull/1641\">#1641</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/35199c49ab02648b518d5653ee25eac3e3627602\"><tt>35199c49</tt></a> codegen: ensure Elem present before using (<a href=\"https://github.com/99designs/gqlgen/pull/1317\">#1317</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/bfea93cdf3594edf0924e5ecd251eea09a1d35cb\"><tt>bfea93cd</tt></a> Reload config packages after generating models (<a href=\"https://github.com/99designs/gqlgen/pull/1491\">#1491</a>)</summary>\n\nIf models are generated in a package that has already been loaded, and\nthat package refers to another package that has already been loaded, we\ncan find ourselves in a position where it appears that a GQL `union` is\nnot satisfied.\n\nFor example, if we have:\n\n```\nunion Subject = User\n```\n\nwith this gqlgen.yml in github.com/wendorf/gqlgen-error/gql:\n\n```\nschema:\n- schema.graphql\nexec:\n  filename: generated.go\nmodel:\n\n  filename: models_gen.go\nmodels:\n  User:\n    model: github.com/wendorf/gqlgen-error/gql.User\n  Subject:\n    model: github.com/wendorf/gqlgen-error/models.Subject\n```\n\nNote that our User model is in the github.com/wendorf/gqlgen-error.gql\npackage, and our models_gen.go will be generated in that same package.\n\nWhen we try to run gqlgen, we get this error:\n\n```\nmerging type systems failed: unable to bind to interface: github.com/wendorf/gqlgen-error/gql.User does not satisfy the interface github.com/wendorf/gqlgen-error/models.Subject\n```\n\nDigging deeper, it's because we use types.Implements in\ncodegen/interface.go, which does a shallow object comparison. Because\nthe type has been reloaded, it refers to a _different_ interface type\nobject than the one we're comparing against, and get a false negative.\n\nBy clearing the package cache and repopulating it, the whole package\ncache is generated at the same time, and comparisons across packages\nwork.\n\nTo see a demo of this, check out\nhttps://github.com/wendorf/gqlgen-error and try the following:\n\n1. Checkout the works-with-v0.10.2 branch and `go generate ./...` to see\n   that it works\n2. Checkout the breaks-with-v0.13.0 branch (or run go get\n   to see errors\n3. Checkout the works-with-pull-request branch and `go generate ./...`\n   to see that it works again. This branch adds a go.mod replace\n   directive to use the gqlgen code in this PR.\n\nThe demo starts at v0.10.2 since it is the last release without this\nproblem. https://github.com/99designs/gqlgen/pull/1020 introduces the\ncode that fails in this scenario.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/9e0817cdc7428ea9f3a1542faaca72ce9c5f317c\"><tt>9e0817cd</tt></a> Add graphql schema aware field level hook to modelgen (<a href=\"https://github.com/99designs/gqlgen/pull/1650\">#1650</a>)</summary>\n\n* Add ast aware field level hook to modelgen\n\nCurrently, the only mechanism for extending the model generation is to use a BuildMutateHook at the end of the model generation process. This can be quite limiting as the hook only has scope of the model build and not the graphql schema which has been parsed.\n\nThis change adds a hook at the end of the field creation process which provides access to the parsed graphql type definition and field definition. This allows for more flexibility for example adding additional tags to the model based off custom directives\n\n* Add recipe for using the modelgen FieldMutateHook\n\n* fix goimport linting issue in models_test\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/af2ac061db4e08616cecff2ed74649465ee5fc20\"><tt>af2ac061</tt></a> handling unconventional naming used in type names (<a href=\"https://github.com/99designs/gqlgen/pull/1549\">#1549</a>)</summary>\n\n* handling unconventional naming used in type names\n\n* Fix merge resolution mistake\n\n* Fix merge resolution mistake\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/393f755421ae42d207655984dbe6b8b990440384\"><tt>393f7554</tt></a> add extraTag directive (<a href=\"https://github.com/99designs/gqlgen/pull/1173\">#1173</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fd1bd7c9b3b3804ce1b90b786cd3fb9281918882\"><tt>fd1bd7c9</tt></a> adding support for sending extension with gqlgen client (<a href=\"https://github.com/99designs/gqlgen/pull/1633\">#1633</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/589a774290cfaf8f39d6099650e930c6f10cd670\"><tt>589a7742</tt></a> Enable lowercase type names in GraphQL schema to properly render (<a href=\"https://github.com/99designs/gqlgen/pull/1359\">#1359</a>)</summary>\n\nThe difficulty with lowercased type names is that in go code any lowercased name is not exported.\nThis change makes the names title case for go code while preserving the proper case when interacting with the GraphQL schema.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/50f6a2aa603842fcdc158ab135fa117d1716d7e2\"><tt>50f6a2aa</tt></a> Fixes <a href=\"https://github.com/99designs/gqlgen/pull/1653\">#1653</a>: update docs and wrap error if not *gqlerror.Error (<a href=\"https://github.com/99designs/gqlgen/pull/1654\">#1654</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/7081dedb0efc6ed650118c7fce65ca3bdb33b8de\"><tt>7081dedb</tt></a> Bump tmpl from 1.0.4 to 1.0.5 in /integration (<a href=\"https://github.com/99designs/gqlgen/pull/1627\">#1627</a>)</summary>\n\nBumps [tmpl](https://github.com/daaku/nodejs-tmpl) from 1.0.4 to 1.0.5.\n- [Release notes](https://github.com/daaku/nodejs-tmpl/releases)\n- [Commits](https://github.com/daaku/nodejs-tmpl/commits/v1.0.5)\n\n---\nupdated-dependencies:\n- dependency-name: tmpl\n  dependency-type: indirect\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5287e4e5f30548d233f58111d128787c673c7f01\"><tt>5287e4e5</tt></a> Add QR and KVK to common initialisms (<a href=\"https://github.com/99designs/gqlgen/pull/1419\">#1419</a>)</summary>\n\n* Add QR and KVK to common initialisms\n\n* Update templates.go\n\n* Sort commonInitialisms\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f9df1a46601a23df87d364b33cc9c5564d77edd8\"><tt>f9df1a46</tt></a> Update time format for `Time` scalar (<a href=\"https://github.com/99designs/gqlgen/pull/1648\">#1648</a>)</summary>\n\n* Use more precise time format\n\n* update test\n\n* update docs\n\n* Apply suggestions from code review\n\n* Update scalars.md\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/77c757f0cf9f18de02f3b9e6a235a51dd2c75259\"><tt>77c757f0</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1640\">#1640</a> from minus7/master</summary>\n\nFix example run instructions\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e60dc7af373aeca15f48df234c1cb90d4909db5d\"><tt>e60dc7af</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1619\">#1619</a> from Khan/benkraft.mod-tidy-stdout</summary>\n\nForward `go mod tidy` stdout/stderr\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/0c63f1d10f508f528037c94c5cdb9f29af890098\"><tt>0c63f1d1</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1515\">#1515</a> from OpenSourceProjects/time</summary>\n\nMarshaling & Unmarshaling time return initial value\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a3d9e8ce9689533ab8c3ab4b3b4cd22df3cbfa03\"><tt>a3d9e8ce</tt></a> Remove redundant favicon (<a href=\"https://github.com/99designs/gqlgen/pull/1638\">#1638</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/210c1aa6edf8b34d6e2f35e8c66b3d404cf7e8eb\"><tt>210c1aa6</tt></a> Appropriately Handle Falsy Default Field Values (<a href=\"https://github.com/99designs/gqlgen/pull/1623\">#1623</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/47ce074a3c30a981bbeef8f3465fca4330aba783\"><tt>47ce074a</tt></a> Fix example run instructions (closes <a href=\"https://github.com/99designs/gqlgen/issues/1607\"> #1607</a>)</summary>\n\nMaking ./example a separate Go module [1] broke the `go run` invocations\nlisted in a few example readmes [2]. Using relative paths from the\nrespective example directory should be clear enough.\n\n[2]:\nexample/todo/server/server.go:10:2: no required module provides package github.com/99designs/gqlgen/example/todo; to add it:\n\tgo get github.com/99designs/gqlgen/example/todo\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1a0b19feff6f02d2af6631c9d847bc243f8ede39\"><tt>1a0b19fe</tt></a> Update README.md\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d999828375978c666728167f75a208fd727b4b15\"><tt>d9998283</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1628\">#1628</a> from robertmarsal/patch-1</summary>\n\nFix typo in the getting-started docs\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f93f73ac395209cd158862b86b2a0c136bc3e11b\"><tt>f93f73ac</tt></a> Fix typo in the getting-started docs\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/2f6919ff74dd165d58c0c2039e3fb1fc1f72b598\"><tt>2f6919ff</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1624\">#1624</a> from FlymeDllVa/master</summary>\n\nUpdate disabling Introspection\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c53bc0e53cacb9f9930ec3125388b85820241a27\"><tt>c53bc0e5</tt></a> Update disabling Introspection\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/880cd73dbe0d602168639a7d3f59638473a4a91c\"><tt>880cd73d</tt></a> Update README.md\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/eec81df05e18dd9ac977b5a661964df212bf4627\"><tt>eec81df0</tt></a> Update README.md\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/43b56cbaf3f1de1d1ad379055ab1de157592cf38\"><tt>43b56cba</tt></a> Forward `go mod tidy` stdout/stderr</summary>\n\nThis is a command that can fail (in my case I think for stupid reasons\nin a hell of my own construction, but nonetheless).  Right now we just\nget\n```\n$ go run github.com/Khan/webapp/dev/cmd/gqlgen\ntidy failed: go mod tidy failed: exit status 1\nexit status 3\n```\nwhich is not the most informative.  Now, instead, we'll forward its\noutput to our own stdout/stderr rather than devnull.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ce7a8ee469108e1c2dd62511249199312b32729a\"><tt>ce7a8ee4</tt></a> Fix link in docs\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/488cf7e8180e653c7a085c137d14734c5897393b\"><tt>488cf7e8</tt></a> Update docs/content/getting-started.md\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/73809f6912ed01c8ea18dbb5d7ea98e803ddb9c7\"><tt>73809f69</tt></a> Update getting started\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b938e55811966ef5ff96cc911597327af92c493c\"><tt>b938e558</tt></a> Update README.md\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cacd49a6d0421093bdb67d17551ea0323ceb438a\"><tt>cacd49a6</tt></a> Update README.md\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/7d549d6476853a33aaacab76c3d954bed9d6f0cd\"><tt>7d549d64</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1617\">#1617</a> from 99designs/update-docs-for-go1.17</summary>\n\nUpdate docs for getting started\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5c52f27c49d65d97a05bba14fc12ce8873d2b959\"><tt>5c52f27c</tt></a> Update docs for getting started\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/41d6926f38922cd0a01d93f30ac8702d9f9bcf48\"><tt>41d6926f</tt></a> Replace gitter with discord in contributing.md\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/24d4edcf128f7fa327d97fd85d087fef2e230943\"><tt>24d4edcf</tt></a> Update README.md\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2272e05bc00cc9f38e6d3179a8981651812acbba\"><tt>2272e05b</tt></a> Update README.md\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ef4d4a38a229a485bec4f111a1112b47c638382e\"><tt>ef4d4a38</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1614\">#1614</a> from 99designs/go-1.16</summary>\n\nAlso test against 1.16\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/00ed6fb1a74b1c94d195b38025b1721f9c77db90\"><tt>00ed6fb1</tt></a> Also test against 1.16\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/473f0671b5d9c3a0bb9afe6c2de2b4f10d9eeef6\"><tt>473f0671</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1613\">#1613</a> from 99designs/bump-non-module-deps</summary>\n\nClean up non-module deps\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6960c0c2adbe9e2359e0d7cb332d1eaceccb6b6f\"><tt>6960c0c2</tt></a> Bump non-module deps\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/bf9b34aae2eb079913aacbb75fa8b3dff7c45c32\"><tt>bf9b34aa</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1612\">#1612</a> from 99designs/update-linter</summary>\n\nUpdate golangci linter\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/85e7a4a0aae4c80c8522350d17400184fac48882\"><tt>85e7a4a0</tt></a> Linting fixes\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/777dabde381c1c4b1b6bb0316658f65cce22c654\"><tt>777dabde</tt></a> Update the linter\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/85dd47bb8ca9547ebc3530f441aab8a99e16b5a7\"><tt>85dd47bb</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1607\">#1607</a> from 99designs/example-module</summary>\n\n[POC/RFC] Split examples into separate go module\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f93fb2489285eef0542c4aa7b11341a8479b606a\"><tt>f93fb248</tt></a> Split examples into separate go module\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/890f5f66fb2059ccd760bb7dd708b04166ed274d\"><tt>890f5f66</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1610\">#1610</a> from 99designs/go-1.17</summary>\n\nUpdate to go 1.17\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9162c53fc32471c96d874764b47bf71f0c493fce\"><tt>9162c53f</tt></a> Fix newlines in error messages\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f67a5b2611ca89dfb0ffd3dd4c72cebb8f2532ef\"><tt>f67a5b26</tt></a> Update github.com/urfave/cli/v2\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1116ea6cdc1f3c66af5e214365af7ed67d464a52\"><tt>1116ea6c</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1608\">#1608</a> from jjmengze/patch-1</summary>\n\nfix Options response header\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/71e5784352a3c6d7b91bf9f2307fcebc959ab8b0\"><tt>71e57843</tt></a> Simplify init\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a8903ca2aca700217fe29c2b8c262b6ee45959fb\"><tt>a8903ca2</tt></a> Wrap errors\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a644175b8f80ba1fbc220799b4cd9ce257ccc7ac\"><tt>a644175b</tt></a> Update error checks for go 1.17\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c6b9f2926b14c0367ffb82db4e2c250c4fc7aab2\"><tt>c6b9f292</tt></a> go mod tidy\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1c63cfff8f2943d2ab3316f850b89bba83548c05\"><tt>1c63cfff</tt></a> Add missing model package file\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/59da23feb5e135b3c2c0ce976b0214643147e85c\"><tt>59da23fe</tt></a> Create a temporary file on init so go recognises the directory as a package\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/682a7d662bd2491213c45b8556461533cee56997\"><tt>682a7d66</tt></a> fix Options response header</summary>\n\noperatee the header of ResponseWriter should before WriteHeader called\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ed8054b054c4e7dae1c2ad12d86a8d4d26c194e9\"><tt>ed8054b0</tt></a> Update to a post-release version\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5216db5849eb5298722ee233cc98fa1e85db3237\"><tt>5216db58</tt></a> Fix TestAutobinding test failure by checking the module\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/90c5eb59b0fde89eb0c42e5b9c5ad276a8335f8f\"><tt>90c5eb59</tt></a> go generate\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/402f44950b4694a3a5fd65d3225e06ccd76fbf9d\"><tt>402f4495</tt></a> go fmt\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/10bb1ef262af49031c3d5224eb094586e6fd8083\"><tt>10bb1ef2</tt></a> Go mod tidy\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ed210385722431111b8842ec7da7b42051b77d91\"><tt>ed210385</tt></a> Update to go 1.17\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5c7acc1bc8198ed57a38867ae0c452987da91911\"><tt>5c7acc1b</tt></a> Fix imports\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d747387036fb300fc384fa6f17a76f6547dc6a1b\"><tt>d7473870</tt></a> Update plugin/servergen/server.go\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a6c6de6b73741caa1ac02cf8adea79afcd4ed78b\"><tt>a6c6de6b</tt></a> Update plugin/resolvergen/resolver.go\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/de7d19c812bed562d2841c6c08fb080d706195d1\"><tt>de7d19c8</tt></a> Update codegen/config/config_test.go\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/60d80d4aee61337793d2cade8a7ab35c2892613a\"><tt>60d80d4a</tt></a> Update cmd/gen.go\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a991e3e73ec4d624f6b23124d83198ce51af8ae3\"><tt>a991e3e7</tt></a> Update errors to use go1.13 semantics\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8f179be920401bf993630693b0586cfc51dbdd04\"><tt>8f179be9</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1581\">#1581</a> from tsh96/master</summary>\n\nBypass complexity limit on __Schema queries.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5048f9927e54828b07ea47cd79d1b30b3858d320\"><tt>5048f992</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1525\">#1525</a> from Code-Hex/fix/support-input-object</summary>\n\nsupport input object directive\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1e2b303a8cc8a596fc24cb79b560c33bec2c9ad6\"><tt>1e2b303a</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1526\">#1526</a> from epulze/fix/allow-more-types</summary>\n\nallow more than 10 different import sources with types\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e7df3e5c7d33dd485ec928c4be07f421423c722b\"><tt>e7df3e5c</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1405\">#1405</a> from alexsn/subsciption-complete-on-panic</summary>\n\nsubscriptions: send complete message on resolver panic\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/06e4fe8810d14649a5b6e2f9c1482eff28c86ddb\"><tt>06e4fe88</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1529\">#1529</a> from mathieupost/master</summary>\n\nReturn type loading errors in config.Binder.FindObject\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a557c90cd741f808f4065e9846b0c59ba1d29f9b\"><tt>a557c90c</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1340\">#1340</a> from bickyeric/master</summary>\n\nserialize ID just like String\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/522cab59d1ecb9813610013a60596da2edf91f33\"><tt>522cab59</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1285\">#1285</a> from Khan/benkraft.federation</summary>\n\nResolve requests for federation entities in parallel\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5adb73bbba5375f07cd21d1fe498c6a252b6f933\"><tt>5adb73bb</tt></a> add bypass __schema field test case\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/54cef3ddcdd3c5e106f8347ccd8afd9bbb8bdb44\"><tt>54cef3dd</tt></a> Bypass complexity limit on __Schema queries.\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f0ccab79549f184b1225dbc946d703400673aa5b\"><tt>f0ccab79</tt></a> Return type loading errors in config.Binder.FindObject\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/91b54787166e1dd26e2f95493e02a43130950105\"><tt>91b54787</tt></a> generated go code\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1efc152e4f9399a908620d1d4c1198b9662cb181\"><tt>1efc152e</tt></a> supported INPUT_OBJECT directive\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e82b401ddd97fe807a5066d3702b391ec317a358\"><tt>e82b401d</tt></a> allow more than 10 different import sources with types\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/481a4e44cbc114382dee087feb9cf18c15907d4a\"><tt>481a4e44</tt></a> Marshaling & Unmarshaling time return initial value</summary>\n\nThere was a lack of symmetry that would prevent times for being\nsymmetrical. That is because time.Parse actually parses an RFC3339Nano\nimplicitly, thereby allowing nanosecond resolution on unmarshaling a\ntime. Therefore we now marshal into nanoseconds, getting more\ninformation into GraphQL times when querying for a time, and restoring\nthe symmetry\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/956531936e9a7a0d9012c246153531a9bcf3c7bd\"><tt>95653193</tt></a> Resolve requests for federation entities in parallel (closes <a href=\"https://github.com/99designs/gqlgen/issues/1278\"> #1278</a>)</summary>\n\nIn apollo federation, we may be asked for data about a list of entities.\nThese can typically be resolved in parallel, just as with sibling fields\nin ordinary GraphQL queries.  Now we do!\n\nI also changed the behavior such that if one lookup fails, we don't\ncancel the others.  This is more consistent with the behavior of other\nresolvers, and is more natural now that they execute in parallel.  This,\nplus panic handling, required a little refactoring.\n\nThe examples probably give the clearest picture of the changes. (And the\nclearest test; the changed functionality is already exercised by\n`integration-test.js` as watching the test server logs will attest.)\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f00e2c3f3d70a58ae85ab05d5f2b8adf543a306d\"><tt>f00e2c3f</tt></a> subscriptions: send complete message on resolver panic\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fa371b9bb76e478dabc649564e1f465c45057f72\"><tt>fa371b9b</tt></a> serialize ID just like String\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.14.0\"></a>\n## [v0.14.0](https://github.com/99designs/gqlgen/compare/v0.13.0...v0.14.0) - 2021-09-08\n- <a href=\"https://github.com/99designs/gqlgen/commit/56451d92d626be6d15317b44e448c857297ddb68\"><tt>56451d92</tt></a> release v0.14.0\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8e97969b06e6d63160f1252a92bb36972c55a0b6\"><tt>8e97969b</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1358\">#1358</a> from mtsmfm/patch-1</summary>\n\nCreate package declaration to run dataloaden\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/b978593ca852ca1968a93501eaebec7bdc7fd359\"><tt>b978593c</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1387\">#1387</a> from Khan/benkraft.config</summary>\n\ncodegen/config: Add a new API to finish an already-validated config\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/71507dfc1be232bed3d4d08f63d61f8c8a9cdd77\"><tt>71507dfc</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1408\">#1408</a> from max107/patch-1</summary>\n\nint64 support graphql/string.go\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/23577b696e36bf3342c685b20ec48b8484158518\"><tt>23577b69</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1460\">#1460</a> from snxk/edit-docs-recipe-gin</summary>\n\nEdited the Gin-Gonic Recipe Docs\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/db6154b9eac60bf3ec82b959c0e6bfe1e79f0bb8\"><tt>db6154b9</tt></a> Update README.md\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/cecda16053ffe9f2b689c6e7da987eabe5c2515f\"><tt>cecda160</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1464\">#1464</a> from frederikhors/patch-1</summary>\n\nAdd goreportcard badge\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cc957171fc77df6bfb0749ddd66e1d8d9ca24afe\"><tt>cc957171</tt></a> Merge branch 'master' into patch-1\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/023f66df41a1761ab36eed6c68733e1dd85e5608\"><tt>023f66df</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1465\">#1465</a> from frederikhors/patch-2</summary>\n\nAdd coveralls badge\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/50c2028a9574c89f59d7720b84bf720e07a6a974\"><tt>50c2028a</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1497\">#1497</a> from polytomic/stable-introspection</summary>\n\nReturn introspection document in stable order\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a0232dd21c2fe51d8d52e6541d7a01d50bbaab4d\"><tt>a0232dd2</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1603\">#1603</a> from 99designs/dependabot/npm_and_yarn/integration/normalize-url-4.5.1</summary>\n\nBump normalize-url from 4.5.0 to 4.5.1 in /integration\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/4e059eba3d28e0b27445ba71ffe670852c84c096\"><tt>4e059eba</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1602\">#1602</a> from 99designs/dependabot/npm_and_yarn/integration/ini-1.3.8</summary>\n\nBump ini from 1.3.5 to 1.3.8 in /integration\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/43705d459a1340ef0e7c4ee46af97cec592c976c\"><tt>43705d45</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1601\">#1601</a> from 99designs/dependabot/npm_and_yarn/integration/y18n-3.2.2</summary>\n\nBump y18n from 3.2.1 to 3.2.2 in /integration\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1f2465c6d29a731ad1b9dd5b08d57da37ce14043\"><tt>1f2465c6</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1600\">#1600</a> from 99designs/dependabot/npm_and_yarn/integration/browserslist-4.17.0</summary>\n\nBump browserslist from 4.14.0 to 4.17.0 in /integration\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/bbdebd4c55194a2e18428a33546adbecea99b05d\"><tt>bbdebd4c</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1599\">#1599</a> from 99designs/dependabot/npm_and_yarn/integration/hosted-git-info-2.8.9</summary>\n\nBump hosted-git-info from 2.8.5 to 2.8.9 in /integration\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/900a37af53ee048bd10a755d227bebf11b0bc53f\"><tt>900a37af</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1598\">#1598</a> from 99designs/dependabot/npm_and_yarn/integration/node-fetch-2.6.1</summary>\n\nBump node-fetch from 2.6.0 to 2.6.1 in /integration\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/9d334cdd222c4616165e0ef168086c4d178d4313\"><tt>9d334cdd</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1597\">#1597</a> from 99designs/dependabot/npm_and_yarn/integration/ws-7.4.6</summary>\n\nBump ws from 7.3.1 to 7.4.6 in /integration\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/56181e8abe857e229a3e63e8d634582647480681\"><tt>56181e8a</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1365\">#1365</a> from frederikhors/add-uint,-uint64,-uint32-types-in-graphql</summary>\n\nadd uint, uint64, uint32 types in graphql pkg\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/fd133c0b7a2d552e73da63180e3af2e4bf4aa434\"><tt>fd133c0b</tt></a> Bump normalize-url from 4.5.0 to 4.5.1 in /integration</summary>\n\nBumps [normalize-url](https://github.com/sindresorhus/normalize-url) from 4.5.0 to 4.5.1.\n- [Release notes](https://github.com/sindresorhus/normalize-url/releases)\n- [Commits](https://github.com/sindresorhus/normalize-url/commits)\n\n---\nupdated-dependencies:\n- dependency-name: normalize-url\n  dependency-type: indirect\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/24d8c703c122cd007fe2eb81457a2eae89b49be8\"><tt>24d8c703</tt></a> Bump ini from 1.3.5 to 1.3.8 in /integration</summary>\n\nBumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.8.\n- [Release notes](https://github.com/isaacs/ini/releases)\n- [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.8)\n\n---\nupdated-dependencies:\n- dependency-name: ini\n  dependency-type: indirect\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/de89d3a6f28cffb44704f6f9b6876c8c81d9f7aa\"><tt>de89d3a6</tt></a> Bump y18n from 3.2.1 to 3.2.2 in /integration</summary>\n\nBumps [y18n](https://github.com/yargs/y18n) from 3.2.1 to 3.2.2.\n- [Release notes](https://github.com/yargs/y18n/releases)\n- [Changelog](https://github.com/yargs/y18n/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/yargs/y18n/commits)\n\n---\nupdated-dependencies:\n- dependency-name: y18n\n  dependency-type: indirect\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/13db61111eae250a02ead0cd9faa456d98dc007b\"><tt>13db6111</tt></a> Bump browserslist from 4.14.0 to 4.17.0 in /integration</summary>\n\nBumps [browserslist](https://github.com/browserslist/browserslist) from 4.14.0 to 4.17.0.\n- [Release notes](https://github.com/browserslist/browserslist/releases)\n- [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/browserslist/browserslist/compare/4.14.0...4.17.0)\n\n---\nupdated-dependencies:\n- dependency-name: browserslist\n  dependency-type: indirect\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/94e9406e93a5afee6f193fc936f200287c4f5847\"><tt>94e9406e</tt></a> Bump hosted-git-info from 2.8.5 to 2.8.9 in /integration</summary>\n\nBumps [hosted-git-info](https://github.com/npm/hosted-git-info) from 2.8.5 to 2.8.9.\n- [Release notes](https://github.com/npm/hosted-git-info/releases)\n- [Changelog](https://github.com/npm/hosted-git-info/blob/v2.8.9/CHANGELOG.md)\n- [Commits](https://github.com/npm/hosted-git-info/compare/v2.8.5...v2.8.9)\n\n---\nupdated-dependencies:\n- dependency-name: hosted-git-info\n  dependency-type: indirect\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/36be94fff25cfe702f6b93a7fd595972ceb41a4b\"><tt>36be94ff</tt></a> Bump node-fetch from 2.6.0 to 2.6.1 in /integration</summary>\n\nBumps [node-fetch](https://github.com/node-fetch/node-fetch) from 2.6.0 to 2.6.1.\n- [Release notes](https://github.com/node-fetch/node-fetch/releases)\n- [Changelog](https://github.com/node-fetch/node-fetch/blob/main/docs/CHANGELOG.md)\n- [Commits](https://github.com/node-fetch/node-fetch/compare/v2.6.0...v2.6.1)\n\n---\nupdated-dependencies:\n- dependency-name: node-fetch\n  dependency-type: direct:development\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/721158f3cdb00744c33380c05ab020f31b894325\"><tt>721158f3</tt></a> Bump ws from 7.3.1 to 7.4.6 in /integration</summary>\n\nBumps [ws](https://github.com/websockets/ws) from 7.3.1 to 7.4.6.\n- [Release notes](https://github.com/websockets/ws/releases)\n- [Commits](https://github.com/websockets/ws/compare/7.3.1...7.4.6)\n\n---\nupdated-dependencies:\n- dependency-name: ws\n  dependency-type: direct:development\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/2b3b721258bb22d0da26790a9383047cf1ef444c\"><tt>2b3b7212</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1594\">#1594</a> from 99designs/dependabot/npm_and_yarn/integration/tar-6.1.11</summary>\n\nBump tar from 6.0.5 to 6.1.11 in /integration\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5b43833db94d42332553ba79103f3d054c461e62\"><tt>5b43833d</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1582\">#1582</a> from 99designs/dependabot/npm_and_yarn/integration/path-parse-1.0.7</summary>\n\nBump path-parse from 1.0.6 to 1.0.7 in /integration\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/55b028cadc5e16421f0cb06ec9ffa94febee72a4\"><tt>55b028ca</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1584\">#1584</a> from nullism/patch-1</summary>\n\nFix spaces -> tabs typo in authentication.md\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/edf630a3da614949b9f0246299b08a61d25f6635\"><tt>edf630a3</tt></a> Bump tar from 6.0.5 to 6.1.11 in /integration</summary>\n\nBumps [tar](https://github.com/npm/node-tar) from 6.0.5 to 6.1.11.\n- [Release notes](https://github.com/npm/node-tar/releases)\n- [Changelog](https://github.com/npm/node-tar/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/npm/node-tar/compare/v6.0.5...v6.1.11)\n\n---\nupdated-dependencies:\n- dependency-name: tar\n  dependency-type: indirect\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/29133c1152b4d89ab897bf75e0114fffad32351e\"><tt>29133c11</tt></a> Fix spaces -> tabs typo in authentication.md</summary>\n\nThe indentation here was supposed to be a tab rather than spaces so the readme was off.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/01b25c5534453574296c52065c04d1923b3607c7\"><tt>01b25c55</tt></a> Bump path-parse from 1.0.6 to 1.0.7 in /integration</summary>\n\nBumps [path-parse](https://github.com/jbgutierrez/path-parse) from 1.0.6 to 1.0.7.\n- [Release notes](https://github.com/jbgutierrez/path-parse/releases)\n- [Commits](https://github.com/jbgutierrez/path-parse/commits/v1.0.7)\n\n---\nupdated-dependencies:\n- dependency-name: path-parse\n  dependency-type: indirect\n...\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/9a214e80158b78443cfb53bb10059df9c36d352e\"><tt>9a214e80</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1451\">#1451</a> from sanjeevchopra/patch-1</summary>\n\ndoc only change: updated sample code for disabling introspection\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/011974377ac4437c060d963c97f9c04f1fd1bfae\"><tt>01197437</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1417\">#1417</a> from RicCu/patch-1</summary>\n\nUse mutation instead of query in 'Changesets' doc example\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e3293b53d07145d4932a7b05fea534763cc8af12\"><tt>e3293b53</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1444\">#1444</a> from lisowskibraeden/patch-1</summary>\n\nUpdate cors.md\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a4d6785526f2423e5cd7d2a35bf2f6e68ab66bf7\"><tt>a4d67855</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1517\">#1517</a> from ShivangGoswami/patch-1</summary>\n\nUpdate apq.md function definition mismatch\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/eb36f04ffde9a706467839b0aadb5671e4ed16a9\"><tt>eb36f04f</tt></a> Return introspection document in stable order</summary>\n\nThis avoids spurious changes when generating client code using\nsomething like graphql-codegen.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/7e38dd46943cc103a82c6bca0c2510e5d1291edc\"><tt>7e38dd46</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1568\">#1568</a> from DanyHenriquez/patch-1</summary>\n\nUpdate apq.md\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/88f2b8a77680f49b07238cdafc03d429e5fb75b7\"><tt>88f2b8a7</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1572\">#1572</a> from talhaguy/dataloaders-doc-casing</summary>\n\nCorrect minor casing issue\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/be9a0791a9217a05e105914dbae11e29a651ea54\"><tt>be9a0791</tt></a> Update apq.md\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3e45ddc151232c5d05eb719f4722a9306f06afa1\"><tt>3e45ddc1</tt></a> Correct minor casing issue\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/145101e439f5460cbe7e85f8618e4de74104b676\"><tt>145101e4</tt></a> Update apq.md\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/843edd9ea507bcf50b02cb43d0543f3fdf0ae875\"><tt>843edd9e</tt></a> Update apq.md function definition mismatch</summary>\n\nline 67:  cache, err := NewCache(cfg.RedisAddress, 24*time.Hour)\nline 41: func NewCache(redisAddress string, password string,ttl time.Duration) (*Cache, error)\n\neither password should be removed from 41 or added in line 67\nProposed the first one for now.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5ad012e3d7be1127706b9c8a3da0378df3a98ec1\"><tt>5ad012e3</tt></a> Revert \"Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1511\">#1511</a> from a8m/a8m/restore-cwd\"</summary>\n\nThis reverts commit f4bf1f591b6a3884041876deb64ce0dd70c3c883, reversing\nchanges made to 3f68ea27a1a9fea2064caf877f7e24d00aa439e6.\n\nReverting this because it will break existing setups, moving where\ngenerated files get put.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bb59cc43aa5bae2595ec823f8d7e67369e990082\"><tt>bb59cc43</tt></a> Add a CHANGELOG.md (<a href=\"https://github.com/99designs/gqlgen/pull/1512\">#1512</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/058a365a3608a0d8e9704ee8715eb6c70e7cc902\"><tt>058a365a</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1456\">#1456</a> from skaji/issue-1455\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/bf2fdf4401b3c77a4d032572f641787eb99e8b71\"><tt>bf2fdf44</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1514\">#1514</a> from 99designs/bump-gqlparser</summary>\n\nBump gqlparser to v2.2.0\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4e881981de33f2e2bf1fef11c2bf833995f60719\"><tt>4e881981</tt></a> Bump to gqlparser v2.2.0\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1d768a29c960df5d54f6e675e0338619d5b04bfd\"><tt>1d768a29</tt></a> Add test covering single element -> slice coercion\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f57d1a0285eebce853a6a008da3c9c7b4eb77c57\"><tt>f57d1a02</tt></a> Bump gqlparser to master & support repeated directives\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f4bf1f591b6a3884041876deb64ce0dd70c3c883\"><tt>f4bf1f59</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1511\">#1511</a> from a8m/a8m/restore-cwd</summary>\n\ncodegen/config: restore current working directory after changing it\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3f68ea27a1a9fea2064caf877f7e24d00aa439e6\"><tt>3f68ea27</tt></a> Special handling for pointers to slices (<a href=\"https://github.com/99designs/gqlgen/pull/1363\">#1363</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/c920bdebb02f1fc4c406b9f36a63114556303657\"><tt>c920bdeb</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1449\">#1449</a> from steebchen/feat-prisma-compat</summary>\n\nfeat(codegen): handle (v, ok) methods\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/3cfc5b14d89ff8250656e40f967d1b0fae9de374\"><tt>3cfc5b14</tt></a> codegen/config: restore current working directory after changing it</summary>\n\nBefore this commit, a call to config.LoadConfigFromDefaultLocations changed\nthe working directory to the directory that contains the gqlgen config\nfile.\n\nThis commit changes the implementation to restore the working directory\nafter loading the config.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/35b80a72f6cdae48cf98c68128d96d9d70e5f756\"><tt>35b80a72</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1495\">#1495</a> from Niennienzz/improve-apq-doc</summary>\n\nUpdate apq.md\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/463debae6b4eb068aff0b882e6ea292bfac0fae2\"><tt>463debae</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1503\">#1503</a> from nana4gonta/resolve-vulnerability</summary>\n\nResolve indirect dependency vulnerability in example\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/29e7bccbf7fcb7d8d7f8c47cabd7abdc542cdcc6\"><tt>29e7bccb</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1501\">#1501</a> from 99designs/fix-init-1.16</summary>\n\nRun go mod tidy after code generation\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/9a4c80abc704d77c9471f5b7ee47d64cbced0348\"><tt>9a4c80ab</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1502\">#1502</a> from 99designs/rm-chi</summary>\n\nRemove chi from dataloader example\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5f21f9d9ecdedca84810d7fda605c6eddd1f2335\"><tt>5f21f9d9</tt></a> Remove chi from dataloader example\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e02db808a857ce1ec31861b3b0b54fa4d5cb85e6\"><tt>e02db808</tt></a> Run go mod tidy after code generation\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8c3e64e1965081ff07bbe9353dd9246817232887\"><tt>8c3e64e1</tt></a> Improve APQ documentation\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/03b57f3e01f34504261550aacb0b08f64843b6ad\"><tt>03b57f3e</tt></a> Run go mod tidy\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/54e387c45e97e7b7922f06baf1c6e57dd5a7ff2e\"><tt>54e387c4</tt></a> Resolve indirect dependency vulnerability in example\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7985db44855b160c1f2552bedbfed5bc150fc840\"><tt>7985db44</tt></a> Mention math.rand for the todo ID (<a href=\"https://github.com/99designs/gqlgen/pull/1489\">#1489</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b995f7f1fa2e18b4016d167739213ec5de95a053\"><tt>b995f7f1</tt></a> Make spacing consistent (<a href=\"https://github.com/99designs/gqlgen/pull/1488\">#1488</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/52ded95125beecffe5ad61d37ef942fbac2d726f\"><tt>52ded951</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1459\">#1459</a> from aaronArinder/getting-started-server-section</summary>\n\ngetting started: make running server own section\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/82a8e1bf39aec5225e05deb8e026083d859d50ef\"><tt>82a8e1bf</tt></a> Make it clearer what happened on init. (<a href=\"https://github.com/99designs/gqlgen/pull/1487\">#1487</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/7258af5f837802cd1673afd0778ee7a76b8c2471\"><tt>7258af5f</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1458\">#1458</a> from aaronArinder/getting-started-wording</summary>\n\ngetting started: making the resolver fn section clearer\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/4fead4895bc44aff95fd06a4a5a3aa4b184cc2ff\"><tt>4fead489</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1452\">#1452</a> from fmyd/fix/formatted-query-indent</summary>\n\nprettified some indentation\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/58e3225ed3100371d286869e9a2a4b19ec9810e6\"><tt>58e3225e</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1480\">#1480</a> from wilhelmeek/double-bubble</summary>\n\nBubble Null from List Element to Nearest Nullable Ancestor\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1fac78e9b4d68a76d3ae2fc0b980e7569cc3eb3c\"><tt>1fac78e9</tt></a> Add test case for nullable field\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/469e31bddf27395e5d124694e683cecc44fa00d3\"><tt>469e31bd</tt></a> Fix bad test case\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/635b1aef316c528b6f17416057d41a0948b42a2d\"><tt>635b1aef</tt></a> Add Test Case\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0b5da15cd87f315af0bc851a50f21362e4312002\"><tt>0b5da15c</tt></a> Check in generated code\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/55b774ba48146540bdef95d8cc027998eca7fd13\"><tt>55b774ba</tt></a> Fix type ref\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/45903a6597846c5ae71d82f156fc3ee3b743ec75\"><tt>45903a65</tt></a> Handle nillable list elements\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c4bf36c5bd94b64e8d13060a77a7b8ac8050b794\"><tt>c4bf36c5</tt></a> Add coveralls badge\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/269a58ad547f61b4ceaaa6586ed7898cafc041c1\"><tt>269a58ad</tt></a> Add goreportcard badge\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/971da82c8e3d1cf7cca31bb9cfff91cab2a460d3\"><tt>971da82c</tt></a> Updated gin.md\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/41ad51ceefc190b70c4b5fa77c77641ede1d7281\"><tt>41ad51ce</tt></a> Edited the Gin-Gonic Recipe Docs\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/67e652ad974418a9f6fa9cfa4c97eebc3db910bf\"><tt>67e652ad</tt></a> getting started: separate example mutation/query\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/31d339ab390a2c4119fec42c54edabebd96ef730\"><tt>31d339ab</tt></a> getting started: make running server own section\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/aa531ed87f327f0e03d243744a5f5e810d5c1230\"><tt>aa531ed8</tt></a> getting started: more wording updates\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5b2531aee84fa4f971ea83c083f7113b2d6b7c6e\"><tt>5b2531ae</tt></a> getting started: wording update\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ada1b928096db2d4cff8d476e62d8a84c41da47e\"><tt>ada1b928</tt></a> getting started: updating wording around implementing unimpl fns\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/23eec79139fd4735d50d397a081edfefad09fd27\"><tt>23eec791</tt></a> go generate ./...\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/18678b15ecbcf6075356623fbc0902606e440513\"><tt>18678b15</tt></a> Fix data race</summary>\n\nThe argument of unmarshalInput may be the same for concurrent use if it pass as graphql \"variables\".\nSo we have to copy it before setting default values\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/02b140038d1f192af2ff2cc05a08a691b300ec94\"><tt>02b14003</tt></a> fomatted query indent\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0e9d9c3a9d072c6e2262bf742705d723be8d2508\"><tt>0e9d9c3a</tt></a> updated sample code for disabling introspection\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/478c3f08b20fadd31c538ddd90bb7e88a4e2c1a9\"><tt>478c3f08</tt></a> feat(codegen): handle (v, ok) methods\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5ef5d14f864eb355ffb96d2727a19b61c5d2b362\"><tt>5ef5d14f</tt></a> Update cors.md</summary>\n\nI had problems reading this page and applying it to my project. With these changes it worked on my end\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/997da421b0b80884fcb43c8c6a22d747564b301c\"><tt>997da421</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1436\">#1436</a> from ddouglas/patch-1</summary>\n\nUpgrade graphql-playground to 1.7.26\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/be4514c60a3cef3673b003a545818eb67e620506\"><tt>be4514c6</tt></a> Upgrade graphql-playground to 1.7.26\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/918801eac861c0ceb5cf45969745f674b823ef7c\"><tt>918801ea</tt></a> Change 'Changeset' doc example to mutation\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/862762c77bae8b5f119c401d037358cfaf33fa52\"><tt>862762c7</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1409\">#1409</a> from zikaeroh/chi-mod</summary>\n\nUpgrade go-chi to v1.5.1 with module support\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c30ff3ddec18b7a9465e0b81ab0af301d3899141\"><tt>c30ff3dd</tt></a> Upgrade go-chi to v1.5.1 with module support\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a9c8fabff6d56c9c523ca68764dcd9f9e6cd4f45\"><tt>a9c8fabf</tt></a> int64 support\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/b484fc27b153639c6d96a3f1df7e952d587749be\"><tt>b484fc27</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1401\">#1401</a> from oseifrimpong/patch-1</summary>\n\nfix typo\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/4cc031afba041dd41b9f533cba3ac1399e8b66cd\"><tt>4cc031af</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1394\">#1394</a> from j2gg0s/fix-default-recover-func</summary>\n\nbugfix: Default Recover func should return gqlerror.Error\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/2af51336b421f45bd5076f5ee144d4d44c15ec54\"><tt>2af51336</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1400\">#1400</a> from 99designs/sanstale</summary>\n\nRemove stale bot\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/34a442c7980f5ba363f58aaee67b9ddaa77d7520\"><tt>34a442c7</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1399\">#1399</a> from 99designs/prevent-possible-error-deadlock</summary>\n\nDont hold error lock when calling into error presenters\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1123ba0da6c0cd0f5ab71d7e4c8aae7a5e8f40b4\"><tt>1123ba0d</tt></a> Update gin.md</summary>\n\nChanged this:\n`In your router file, define the handlers for the GraphQL and Playground endpoints in two different methods and tie then together in the Gin router:\n`\nto: \n`In your router file, define the handlers for the GraphQL and Playground endpoints in two different methods and tie them together in the Gin router:\n`\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/89a9f743240e589c476df6a01e122564314ec215\"><tt>89a9f743</tt></a> Remove stale bot</summary>\n\nWe tried it, but it's just causing more work both for maintainers and reporters of errors.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/4628ef8422c2118ee482dc15a65eedff5144d34c\"><tt>4628ef84</tt></a> Dont hold error lock when calling into error presenters</summary>\n\nThis can result in a deadlock if error handling code calls GetErrors.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d0d5f7db3d8f09f087abedfe3958423c9f5e4fb9\"><tt>d0d5f7db</tt></a> bugfix: Default Recover func should return gqlerror.Error\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/18b5df19bba282e0217dc269f6e9e211b52fc707\"><tt>18b5df19</tt></a> codegen/config: Add a new API to finish an already-validated config</summary>\n\nLoadConfig parses the config from yaml, but it does a bunch of other\nthings too.  We want to parse the config ourselves, so that we can have\nextra fields which will be passed to our plugins.  Right now, that means\nwe either have to duplicate all of LoadConfig, or write the config back\nto disk only to ask gqlgen re-parse it.\n\nIn this commit, I expose a new function that does all the parts of\nLoadConfig other than the actual YAML-reading: that way, a caller who\nwants to parse the YAML themselves (or otherwise programmatically\ncompute the config) can do so without having to write it back to disk.\n\nAn alternative would be to move all this logic to Config.Init(), but\nthat could break existing clients.  Either way would work for us.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/0e12bfbfde3b8fc8e54241fcd107c6301c98c6fa\"><tt>0e12bfbf</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1269\">#1269</a> from dqn/new-line-at-the-end-of-file</summary>\n\nAdd a new line to end of the file schema.graphqls\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/22c5d1f56eb081104b586c6a73f9324ded90a8b5\"><tt>22c5d1f5</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1303\">#1303</a> from kunalpowar/inline-directives-doc</summary>\n\nUpdate README.md\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/88cffee4fc5a29b2899d70d93b4ef64c145e4722\"><tt>88cffee4</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1356\">#1356</a> from maapteh/chore/chat-example-update</summary>\n\nChore: update Chat example\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1e8c34e540c04b5bb203a385788e0e02111f0afb\"><tt>1e8c34e5</tt></a> Dont export  Input\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/de8af66c892a5b2ec8b2ce7ed274003d7706d904\"><tt>de8af66c</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1360\">#1360</a> from Captain-K-101/master</summary>\n\nUpdate introspection.md\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0975691550f23be6b68c29b57840e2af4698eac4\"><tt>09756915</tt></a> Update introspection docs\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/651eda40fe4318ec7acd48e7e1f1eb933331c22d\"><tt>651eda40</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1374\">#1374</a> from rudylee/docs-file-upload-small-typo</summary>\n\nFix small typo in file upload docs\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/94252e047b6ab16532c003003511762e6bf4f655\"><tt>94252e04</tt></a> singleUpload consistency\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c9d346f549ca75ab19097ea8bf90f0d3666cc117\"><tt>c9d346f5</tt></a> Fix small typo in file upload docs\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9f85161930220becde384662e4da9f4b457ce19f\"><tt>9f851619</tt></a> add uint, uint64, uint32 types in graphql\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/0625525f663e7fc8d246f5435c1545beef137173\"><tt>0625525f</tt></a> Update introspection.md</summary>\n\nupdated disabling interospect\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c6a93aa77298d91dac38d7a6bf99c6d14a097b82\"><tt>c6a93aa7</tt></a> split layout components to their own part, makes sample more readable\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7904ef6fc5f481a4df5938d3cda34919c2160db7\"><tt>7904ef6f</tt></a> channel is switchable too\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/13752055b7c17d5f5d9c0119d54fb65ff623b648\"><tt>13752055</tt></a> add some layout for demo :)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/82ca6e24739f63266788b34e55248b68aed0202f\"><tt>82ca6e24</tt></a> Create package declaration to run dataloaden</summary>\n\nref: https://github.com/vektah/dataloaden/issues/35\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bf5491364e91b40372ef9132bc68b9ec303c0a38\"><tt>bf549136</tt></a> use Apollo docs styling for the gql var uppercase\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/36045a3758836ece8954d1ac969e6055d3632bcb\"><tt>36045a37</tt></a> do not autofocus\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0502228a61387cab237d786a530d41c662216661\"><tt>0502228a</tt></a> chore: update example to React hooks and latest Apollo client\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e6e64224a32ca35bf543b1cb18e7ccfe65ba824f\"><tt>e6e64224</tt></a> update deps\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/3a31a752df764738b1f6e99408df3b169d514784\"><tt>3a31a752</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1345\">#1345</a> from abeltay/fix-alignment</summary>\n\nFix tab spacing in cors.md\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/0c68337cee2cb15ef0487ae3b9bf902d2d2a96d1\"><tt>0c68337c</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1346\">#1346</a> from abeltay/fix-typo</summary>\n\nFix typo in migration guide\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/436a88adf607aede4ced31c54342c23fddaf1f95\"><tt>436a88ad</tt></a> Fix typo in migration guide\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3791f71df5a39d0e57e59ce6c9460627d45a8ab0\"><tt>3791f71d</tt></a> Fix tab spacing in cors.md\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/819e751c2416245370ec00a33ec3b8708aee51c4\"><tt>819e751c</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1341\">#1341</a> from dgraph-io/rajas/fix-gqlgen-1299</summary>\n\nRajas/fix gqlgen 1299\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/789d02f5c632a018b897e3e5c0a82fe3777e9b54\"><tt>789d02f5</tt></a> Requested changes\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/130ed3f7d9e586aec1960557f9819159986cb53b\"><tt>130ed3f7</tt></a> Fix different alias with same name in inline fragment\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f4669ba9b54cdda6340c6e0c16d05eff2ee4fa21\"><tt>f4669ba9</tt></a> v0.13.0 postrelease bump\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/07c065946504daa7c9fad0a1d0915713a45c9818\"><tt>07c06594</tt></a> Update README.md\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1c9f24b2e7f75bb1134318a6d805e3ab3f109ba5\"><tt>1c9f24b2</tt></a> remove triming space for schemaDefault\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.13.0\"></a>\n## [v0.13.0](https://github.com/99designs/gqlgen/compare/v0.12.2...v0.13.0) - 2020-09-21\n- <a href=\"https://github.com/99designs/gqlgen/commit/07c1f93b3d05a07dd7403c1f99793b1976228a48\"><tt>07c1f93b</tt></a> release v0.13.0\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/259f27119bf24ef4806e86334200c216429fbf5c\"><tt>259f2711</tt></a> Bump to gqlparser to v2.1.0 Error unwrapping release\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/669a16680de3e31be5650ccdbf6ca4e8f011dcda\"><tt>669a1668</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1312\">#1312</a> from 99designs/error-wrapping</summary>\n\nAlways wrap user errors\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/9b948a5f7816eb2764ef85b88f9af582f53a1d78\"><tt>9b948a5f</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1316\">#1316</a> from skaji/is-resolver</summary>\n\nAdd IsResolver to FieldContext\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/77aeb47790c737d337c6794e6e57d38e9326a4e9\"><tt>77aeb477</tt></a> Point latest docs to v0.12.2\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e821b97bfbb922589c9eea649f0415ec3454e446\"><tt>e821b97b</tt></a> Always wrap user errors (closes <a href=\"https://github.com/99designs/gqlgen/issues/1305\"> #1305</a>)</summary>\n\nRequires use of go 1.13 error unwrapping.\n\nOn measure I think I prefer this approach, even though it's a bigger BC break:\n- There's less mutex juggling\n- It has never felt right to me that we make the user deal with path when overriding the error presenter\n- The default error presenter is now incredibly simple\n\nQuestions:\n- Are we comfortable with supporting 1.13 and up?\n- Should we change the signature of `ErrorPresenterFunc` to `func(ctx context.Context, err *gqlerror.Error) *gqlerror.Error`?\n    - It always is now, and breaking BC will force users to address the requirement for `errors.As`\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/51b580de1408b934a03614dcdea94f6aa6f25f97\"><tt>51b580de</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1324\">#1324</a> from bemasher/patch-1</summary>\n\nFix typos in README.md\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8b2a023cdb586fdda6227a065cb776318f5fa33e\"><tt>8b2a023c</tt></a> Fix typos in README.md\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3e5dd956afecb08404a4ff2120b53f5979b44054\"><tt>3e5dd956</tt></a> add test for FieldContext.IsResolver\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1524989b7d252219502f045e8554c20cd4f34dce\"><tt>1524989b</tt></a> go generate\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/55951163bacbda7399b23824903e9d4a318ebd51\"><tt>55951163</tt></a> add IsResolver to FieldContext\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/622316e764b5c296455c558d6fae4b314ca52733\"><tt>622316e7</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1295\">#1295</a> from a-oz/a-oz-patch-1</summary>\n\nUpdate getting-started.md\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/4c11d9fa30e660180ed7d6be068e69888ad77b6d\"><tt>4c11d9fa</tt></a> Update getting-started.md</summary>\n\nfix typo\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b4375b04fcb0f7c5ca12d547c88a69c4a8d9f2b5\"><tt>b4375b04</tt></a> v0.12.2 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.12.2\"></a>\n## [v0.12.2](https://github.com/99designs/gqlgen/compare/v0.12.1...v0.12.2) - 2020-08-18\n- <a href=\"https://github.com/99designs/gqlgen/commit/03cebf201ec911411c2c1463ff9b05dfe574bd40\"><tt>03cebf20</tt></a> release v0.12.2\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e3ce560de7c2ceb00076b439495883548c462c78\"><tt>e3ce560d</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1288\">#1288</a> from alexsn/nopath-field-noerror</summary>\n\navoid computing field path when getting field errors\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/108975c3add6ca4fd1e0d629b82813073d5f49b6\"><tt>108975c3</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1284\">#1284</a> from dgraph-io/jatin/sameFieldSameTypeGettingIgnored</summary>\n\nfix same field name in two different fragments\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/eb424a22657c04b3f2a08d592fe132ca8ff6309f\"><tt>eb424a22</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1294\">#1294</a> from 99designs/fix-init</summary>\n\nAllow rewriter to work on empty but potentially importable packages\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a87c54adf263fc0ab9f7349363c678b278619bb4\"><tt>a87c54ad</tt></a> Allow rewriter to work on empty but potentially importable ckages\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8a7f3e64194f56138266694ca131072ab1d68e43\"><tt>8a7f3e64</tt></a> clean code\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fd0f97ceff73bd9cbca11080c2f36434b0e910a0\"><tt>fd0f97ce</tt></a> avoid computing field path when getting field errors\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2d59b684a3c41a7573cee1228a7f5bcb4e09392b\"><tt>2d59b684</tt></a> ran fmt on test\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3a1530755476fc690ffbe769b8f8a582f6f20e0d\"><tt>3a153075</tt></a> ran fmt\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/defd71199ad4dbb0c6a3fa3db6eb1e7ebd0ff97a\"><tt>defd7119</tt></a> added test\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9fcdbcd1fafad2763d58e34eac0adcbcc5d0d8b4\"><tt>9fcdbcd1</tt></a> fix panic test\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/473d63c02710986ea49749ec6cba44019a82bb9d\"><tt>473d63c0</tt></a> change name to alias\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/849e3eace8b82cb3481db3674068723862842cb8\"><tt>849e3eac</tt></a> added check for object defination name\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/08eee0fc5dbf08af483d7d7a5a9337ef97d8f8dd\"><tt>08eee0fc</tt></a> v0.12.1 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.12.1\"></a>\n## [v0.12.1](https://github.com/99designs/gqlgen/compare/v0.12.0...v0.12.1) - 2020-08-14\n- <a href=\"https://github.com/99designs/gqlgen/commit/0d5f462b25d920a7767ee571e2438dbc835cfbc7\"><tt>0d5f462b</tt></a> release v0.12.1\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e076b1b03002816516ca6c4a757415cba57d5b13\"><tt>e076b1b0</tt></a> Regenerate test server\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c952e0de6ac8df5798b04f1d6a53c73f1f691143\"><tt>c952e0de</tt></a> v0.12.0 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.12.0\"></a>\n## [v0.12.0](https://github.com/99designs/gqlgen/compare/v0.11.3...v0.12.0) - 2020-08-14\n- <a href=\"https://github.com/99designs/gqlgen/commit/7030212379f41dea8a1cac2f76f9e56e3054cf24\"><tt>70302123</tt></a> Version 0.12.0\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/3b633dfa11874ae5fc8d03da6c963acea6c12a07\"><tt>3b633dfa</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1267\">#1267</a> from ImKcat/master</summary>\n\nFixed transport not support issue\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/c9a27ae3bee99c22ea0af06744257f0184f78e70\"><tt>c9a27ae3</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1255\">#1255</a> from s-ichikawa/fix-object-directive-bug</summary>\n\nFix bug about OBJECT directive\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e9863af16691f94a68c23f073854930bd754781f\"><tt>e9863af1</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1276\">#1276</a> from Ghvstcode/master</summary>\n\nDocumentation Fixes\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/04f6a691577d627caaa0952c13cedecda5455e28\"><tt>04f6a691</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1277\">#1277</a> from 99designs/direct-pointer-binding</summary>\n\nSupport pointers in un/marshal functions\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bef9c8bf3a2d7d63531e4bf9540d550977289a5c\"><tt>bef9c8bf</tt></a> Add comments and docs for pointer scalars\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/997efd0395b8d51312cc73f709a7545c928709a0\"><tt>997efd03</tt></a> Reintroduce special cast case for string enums</summary>\n\nThis reverts commit 89960664d05f0e93ed629a22753b9e30ced2698f.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8561c056cb74834233f33a0ae4d42eafcc3e7c29\"><tt>8561c056</tt></a> Replace awkward loop in buildTypes with recursion\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d65b04f9ff3fa3435ef103da7ad5b45a59d82868\"><tt>d65b04f9</tt></a> Clean up generated code\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e1c463a4c873306d634279e21c7bd631d9c54fca\"><tt>e1c463a4</tt></a> Linting\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/89960664d05f0e93ed629a22753b9e30ced2698f\"><tt>89960664</tt></a> Remove unused special cast case for string enums\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/196954bc64771795d179a91bbd1422569f9fdced\"><tt>196954bc</tt></a> Bind directly to pointer types when possible, instead of always binding to value types\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5b3d08db47c9c3b49687411f6ecbcbc84b66a495\"><tt>5b3d08db</tt></a> Update README.md\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/efd33dab01483cfa54d634690aea67ab914dd72a\"><tt>efd33dab</tt></a> Update README.md\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f35b162f214ca0ae1461c25fde29d41b55293f16\"><tt>f35b162f</tt></a> Fixed transport not support issue\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/39a12e0f1b6d9833f516f0271db0dbfa45c5ec45\"><tt>39a12e0f</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1134\">#1134</a> from seriousben/fix-default-config-no-ast-sources</summary>\n\nAdd LoadDefaultConfig to load the schema by default\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1b23cf15b134cd695a11fe899d59c5457778a8be\"><tt>1b23cf15</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1264\">#1264</a> from 99designs/go-1.14</summary>\n\nTarget multiple go versions for CI\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/dbbda22ef42a921190cf52b3f23fa53b54726828\"><tt>dbbda22e</tt></a> go 1.14\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ce964c1f46bedff709f8d53356d83a3e983295f4\"><tt>ce964c1f</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1115\">#1115</a> from bowd/add-input-path-for-unmarshaling</summary>\n\nAdd input path in unmarshaling errors\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bde4291cfa7669a889db6e5e518218a855ffd433\"><tt>bde4291c</tt></a> shadow context to ensure scoped context use\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c43990a00ccfb11d950e7b33716d214f2fefec5c\"><tt>c43990a0</tt></a> Merge remote-tracking branch 'origin/master' into HEAD\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6be2e9df78c81b3fa45ac00717ef7fa505ed6a4f\"><tt>6be2e9df</tt></a> fix fileupload example\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ad675f0092bc8973dba5114ffa168379647bde45\"><tt>ad675f00</tt></a> Allow custom resolver filenames using `filename_template` option (closes <a href=\"https://github.com/99designs/gqlgen/issues/1085\"> #1085</a>)</summary>\n\nresolve merge conflicts.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fbfdd41c12147ec7fbc307163e4667dd28065626\"><tt>fbfdd41c</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1262\">#1262</a> from sateeshpnv/gqlparser-alias (closes <a href=\"https://github.com/99designs/gqlgen/issues/1258\"> #1258</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/99fafc9f19c838f26afc71785da6adbf0a1dbe76\"><tt>99fafc9f</tt></a> [issue <a href=\"https://github.com/99designs/gqlgen/pull/1258\">#1258</a>] explicitly add gqlparser alias to vektah/gqlparser/v2 import\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/49291f234e99878b925946efeb13c5bf1b2c348e\"><tt>49291f23</tt></a> fix bug in OBJECT directive\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/0fbf293f29f3c2ca01822723f1f43e01cab358d4\"><tt>0fbf293f</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1248\">#1248</a> from sotoslammer/master</summary>\n\nclose the connection when run returns\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d7eabafb4085e7b802ab553c13ac62fa6e3331f8\"><tt>d7eabafb</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1246\">#1246</a> from arkhvoid/master</summary>\n\nFix typo cause memory problem on upload\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/21b223b8d37208bdfb45d49dc7c35a557255e548\"><tt>21b223b8</tt></a> Fix typo cause memory problem on upload\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cc9c520f1ecf11e5786f2aca8d9cf24ef4af2f2e\"><tt>cc9c520f</tt></a> close the connection when run returns\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8494028eac6a22ef26f71ff30a9eb5738a86adff\"><tt>8494028e</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1243\">#1243</a> from 99designs/nilable-nullable-unnmarshal</summary>\n\nRemove a bunch of unneeded nil checks from non-nullable graphql type unmarshalling\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b81138dac0e4ba71f04b7e686e18eb3744e23919\"><tt>b81138da</tt></a> Add test for nillable input slice\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/14d1a4dc0a9242154d3a22787d92ab70239f079a\"><tt>14d1a4dc</tt></a> Only return nil for nilable types when the graphql spec would allow it\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/3e59a10d4268671b92428ef1b860aebbb73da60b\"><tt>3e59a10d</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1215\">#1215</a> from ddouglas/master</summary>\n\nAdding Missing Header to response\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1650c499548c074d5afb152a90235589dc98d107\"><tt>1650c499</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1242\">#1242</a> from 99designs/named_map_references</summary>\n\nDo not use pointers on named map types\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d11f60218ccb4e5b17d702e736585f02978b69a4\"><tt>d11f6021</tt></a> Do not use pointers on named map types\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/acaee3615ba86465e710635d7676cf05e017eb9b\"><tt>acaee361</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1121\">#1121</a> from Khan/extern-only</summary>\n\nDo not require a resolver for \"empty\" extended types.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/555db6d20b0157674b5ad05f6ce8856c6502db2e\"><tt>555db6d2</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1224\">#1224</a> from frederikhors/patch-1</summary>\n\nIndentation misprint\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/77b37bb290c55008d2ca1653aca587d3f1ea17e5\"><tt>77b37bb2</tt></a> Indentation misprint\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a3c38c6574b71389895e5162296ed12e13347349\"><tt>a3c38c65</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1221\">#1221</a> from longngn/patch-1</summary>\n\nUpdate dataloaders.md\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/71182de820e20edc5fd5a2e7363f089ff75bdb9a\"><tt>71182de8</tt></a> Update dataloaders.md\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d81baeed9f212c2728e6d9901bdec99929787ac2\"><tt>d81baeed</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1218\">#1218</a> from StevenACoffman/patch-1</summary>\n\nUpdate feature comparison for federation\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2c1f234503d94c6397833b018078ee9099ecf643\"><tt>2c1f2345</tt></a> Update feature comparison for federation (closes <a href=\"https://github.com/99designs/gqlgen/issues/5\"> #5</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e19d43bcb46df36bf6d8d8699788bfd929a596f5\"><tt>e19d43bc</tt></a> Adding test\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4a62f0121af3a730fa57bf9f9124beaf6a0809d7\"><tt>4a62f012</tt></a> Adding ContentType header to GET request responses\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f5de4731aa552bff75d6ddb06f7d7338388c5a34\"><tt>f5de4731</tt></a> Add timeout to integration test\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a21a6633b841779b9b720f95e7297db888935993\"><tt>a21a6633</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1189\">#1189</a> from RichardLindhout/patch-1</summary>\n\nUpgrade to OperationContext and remove duplicate fields to fix https:…\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/543317a28754c46f1679af33dde0c311d73f7ddd\"><tt>543317a2</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1170\">#1170</a> from alexsn/apollotracing/nopanic</summary>\n\napollotracing: skip field interceptor when on no tracing extension\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d347d97278ec166866b309d458001a17ed5779e0\"><tt>d347d972</tt></a> Update stale.yml\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/032854bb8a0877796d8d84d7d619d503beae5d52\"><tt>032854bb</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1154\">#1154</a> from gsgalloway/master</summary>\n\nAdd operation context when dispatching\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ccc4eb1db613027376e0bd69da02bdde8914e911\"><tt>ccc4eb1d</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1188\">#1188</a> from k-yomo/update-errors-doc</summary>\n\nUpdate outdated examples in errors doc\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/628b83c19657e042a0c4e8d694bcabb6ac182b1f\"><tt>628b83c1</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1198\">#1198</a> from ddevault/pgp</summary>\n\ncodegen: add PGP to common initialisms\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d881559bb1d9e6a4d61deb296cb6a18a6d8e1476\"><tt>d881559b</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1202\">#1202</a> from whereswaldon/patch-1</summary>\n\ndoc: fix typo in embedded struct example\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/b6ce42a7a218c33e327e68d7ebe5e49017dbe223\"><tt>b6ce42a7</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1207\">#1207</a> from k-yomo/update-gorilla-websocket</summary>\n\nUpdate gorilla/websocket to v1.4.2 to resolve vulnerability\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c5bfe9d3d9341a23d1254a38200a6d957c52e21c\"><tt>c5bfe9d3</tt></a> Update gorilla/websocket to v1.4.2 to resolve vulnerability\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/55c16e93ed6d5e63eb34d6d99f3a2db9830ad822\"><tt>55c16e93</tt></a> doc: fix typo in embedded struct example\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/89eb19937a8903b41fd85398a89443e30f63db01\"><tt>89eb1993</tt></a> codegen: add PGP to common initialisms\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9ab7294d79825e96b00063abecccfabf4286ba9b\"><tt>9ab7294d</tt></a> apollotracing: skip field interceptor when on no tracing extension\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/40570d1b4d70070c84915f7a468e406705b3f3ef\"><tt>40570d1b</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1163\">#1163</a> from fwojciec/master</summary>\n\nfix redundant type warning\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/3f7f60bf180a405ea24600c82a6e5b24c605ca9f\"><tt>3f7f60bf</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1181\">#1181</a> from tmc/patch-1</summary>\n\nUpdate getting-started.md\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6518d8391acf8618b1c39539b9bb7306814898d3\"><tt>6518d839</tt></a> Upgrade to OperationContext and remove duplicate fields to fix https://github.com/99designs/gqlgen/pull/1161\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/632904adf183e25559de42a06d2fde2a0af0ca53\"><tt>632904ad</tt></a> Update outdated examples in errors doc\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0921915d02741d3021a69ac7834bd76e9bbc38ab\"><tt>0921915d</tt></a> Update getting-started.md\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/0a40481343ef344121b5a2a5c0910ff7391aad1f\"><tt>0a404813</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1117\">#1117</a> from s-ichikawa/object-directive</summary>\n\nAdd support for OBJECT directive\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/90ee8dedb8dbea7d447801380639de7d475e62e8\"><tt>90ee8ded</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1137\">#1137</a> from ddevault/master</summary>\n\nReplace ~ with א in package names\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e4c699dcd4b8b1ccc62c31c158670904092fb374\"><tt>e4c699dc</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1147\">#1147</a> from ddevault/docs</summary>\n\nAdd links to godoc to the README and docsite\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/73746621696f25c55bd64d2d81b09fe314667c21\"><tt>73746621</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1131\">#1131</a> from muraoka/fix-typo</summary>\n\nFix typo in authentication docs\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ace558b411ec2633cfa4cc8b76d7a035d3216cef\"><tt>ace558b4</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1124\">#1124</a> from OpenSourceProjects/update-apq-documentation</summary>\n\nUpdate APQ example to reflect newer API\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/3c126f9edba3ba3f4c252b003f052743d5fd1c72\"><tt>3c126f9e</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1119\">#1119</a> from skaji/patch-1</summary>\n\ntype Person -> type Person struct\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1610039e7302c8bc543421af54e4a5005b8f9d13\"><tt>1610039e</tt></a> updated generated code\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/905e1aadfbd449a045f65b1368a0936daf591143\"><tt>905e1aad</tt></a> fix redundant type warning\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/39ded924092564cd953040c9a04be9ce8800aaa1\"><tt>39ded924</tt></a> fix ctx\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e7798ff26198eceb79f10d5743558aba02629ec8\"><tt>e7798ff2</tt></a> insert operation context\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6f78c6ac5c071700b80507c4ad72283a7911acaf\"><tt>6f78c6ac</tt></a> Add links to godoc to the README and docsite\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9b823a348713911f32e73826db69d61df25163c0\"><tt>9b823a34</tt></a> Replace ~ with א in package names (closes <a href=\"https://github.com/99designs/gqlgen/issues/1136\"> #1136</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/35a904829a89e9d29d1404ffed882cc5eda64ccf\"><tt>35a90482</tt></a> Add LoadDefaultConfig to load the schema by default\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/07a5494b34560fdfccfdd43f1430cbf064b860a6\"><tt>07a5494b</tt></a> Fix typo in docs\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/04b120c9044a20ac8c14f8329c529862ccdc6b6f\"><tt>04b120c9</tt></a> Update APQ example to reflect newer API</summary>\n\nThe example in APQ relates to the old handlers. This brings it up to\nshow how extensions can be used - and uses the new API for registering\nplugins that come in the graph.\n\nThe cache example now implements the graphql.Cache interface\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/55e0f0db84dfc709c837074d57cd26f9a579e9c5\"><tt>55e0f0db</tt></a> Check in a place where `Entity` might be nil now.\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1ecd0749dd3ba3ba6ba387d0391e69d410b313de\"><tt>1ecd0749</tt></a> Handle the case that all entities are \"empty extend\".</summary>\n\nIn that case, there are no resolvers to write, so we shouldn't emit\nany.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0e2666fb2bfca1134661dc835b80b1061550225c\"><tt>0e2666fb</tt></a> Run `go fmt`\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/36b5ed834d3444affb6df88b65f4f3ec8a42d488\"><tt>36b5ed83</tt></a> Actually, we need to check all-external, not all-key.</summary>\n\nWe might well be defining our own type that has only key-fields, but\nif they're not external then we're the primary provider of the type\n\nTest plan:\ngo test ./plugin/federation/\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/7e3f5844adb79c776a30a6e01fcb2b373049fb8e\"><tt>7e3f5844</tt></a> Do not require a resolver for \"empty\" extended types.</summary>\n\nSummary:\nIf our schema has a field with a type defined in another service, then\nwe need to define an \"empty extend\" of that type in this service, so\nthis service knows what the type is like.  But the graphql-server will\nnever ask us to actually resolve this \"empty extend\", so we don't\nrequire a resolver function for it.  Example:\n```\n   type MyType {\n      myvar: TypeDefinedInOtherService\n   }\n\n   // Federation needs this type, but it doesn't need a resolver for\n   // it!  graphql-server will never ask *us* to resolve a\n   // TypeDefinedInOtherService; it will ask the other service.\n   extend TypeDefinedInOtherService @key(fields: \"id\") {\n      id: ID @extends\n   }\n```\n\nTest Plan:\nI manually tested this on a service (`assignments`) that we have that\nfell afoul of this problem.  But I had a hard time adding tests inside\ngqlgen because the error happens at validation-time, and the\nfederation tests are not set up to go that far down the processing\npath.\n\nReviewers: benkraft, lizfaubell, dhruv\n\nSubscribers: #graphql\n\nDifferential Revision: https://phabricator.khanacademy.org/D61883\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9c80bb5ba7e315c8735599db945105e5acfe86d8\"><tt>9c80bb5b</tt></a> type Person -> type Person struct\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ea210929aeb7daf4ea1346a655c056df4935c63b\"><tt>ea210929</tt></a> add test for object directive\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5c3812cbe30cc452490e240f41919508d58c3009\"><tt>5c3812cb</tt></a> merge object directives to field directives\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8ea5ba2b3f0851c7de1312a24c14e234d051b0bb\"><tt>8ea5ba2b</tt></a> Fix additional missed tests\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/65be2a6e80792993384534da9794c7a47da78244\"><tt>65be2a6e</tt></a> Run generate\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fd615cf6d4f829e38f0d52cf2c3de886d65d463b\"><tt>fd615cf6</tt></a> Fix linting\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/61fa9903fa26c97a4fabbf3200e22c3d25ffcbc6\"><tt>61fa9903</tt></a> Add documentation for scalad error handling\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1aa20f25f5c8b3897e8ba47e4adb181a005ee60c\"><tt>1aa20f25</tt></a> Add test to highlight usecase\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d98ff1b04ca102e74037ac914dddb595aa9c6808\"><tt>d98ff1b0</tt></a> Modify templates to include deeper context nesting\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a1a02615f705292de46bd1c14f1710eedc95cb86\"><tt>a1a02615</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1104\">#1104</a> from oshalygin/docs/update-query-complexity-initialization</summary>\n\nUpdate Query Complexity Documentation\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/c68df3c61f389e065a4607c67e973f46f492cd9f\"><tt>c68df3c6</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1112\">#1112</a> from s-ichikawa/delete-unused-code</summary>\n\ndelete unused code\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/dfb6558a6fb4af8a60693b046485aeaaffffc507\"><tt>dfb6558a</tt></a> run CI on PRs</summary>\n\nPRs from outside the org arent running CI, hopefully this fixes it.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5149231ca6cd10b1928510fb5f1eef78d29e88ce\"><tt>5149231c</tt></a> delete unused code\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/6f81ff9273850813bec2a4ff705caab66d64eb88\"><tt>6f81ff92</tt></a> Update Query Complexity Documentation</summary>\n\n- This pass at the documentation updates the\n  appropriate section regarding query complexity,\n  specifically in the way that the http.Handler\n  is created.\n- The deprecated handler.GraphQL calls were replaced\n  with NewDefaultServer.\n- Instead of passing along the fixed query complexity\n  as a second argument to the now deprecated handler.GraphQL\n  func, extension.FixedComplexityLimit is used instead.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f0cd7a703261c5ce6274829686ed9611a2b6deb7\"><tt>f0cd7a70</tt></a> update doc site to point to latest version\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/224ff3454cfd3ff505c6ceca5e78978b94073aa1\"><tt>224ff345</tt></a> v0.11.3 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.11.3\"></a>\n## [v0.11.3](https://github.com/99designs/gqlgen/compare/v0.11.2...v0.11.3) - 2020-03-13\n- <a href=\"https://github.com/99designs/gqlgen/commit/4d73535648395cdb8bfbf5f66345a8eaf1b4e0c7\"><tt>4d735356</tt></a> release v0.11.3\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4b949f2e69026b51ddd26b71d5efb7b5dc8c6aca\"><tt>4b949f2e</tt></a> remove copyright notice at bottom of doc pages\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/c5039196612e7afeee14fc6373d8dcfe70eb5ab9\"><tt>c5039196</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1094\">#1094</a> from 99designs/update-upload-docs</summary>\n\nUpdate file upload docs with Apollo client usage\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5e3cef245a1e87b64c8e57630fa78dae706d069b\"><tt>5e3cef24</tt></a> revert <a href=\"https://github.com/99designs/gqlgen/pull/1079\">#1079</a>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/793b0672cee7c096e4b32f4b132469c455407c15\"><tt>793b0672</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1100\">#1100</a> from sonatard/fast</summary>\n\nGnerate to fast by exec codegen.GenerateCode before plugin GenerateCode\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/6ac2d1cdcb2b2ff33048a768a0e3cfefe8f29d75\"><tt>6ac2d1cd</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1097\">#1097</a> from 86/86/update-federation-doc</summary>\n\nAdd Enable federation section in federation doc\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/97896eeb76a2d942217cc049af7357ea40a1b9e7\"><tt>97896eeb</tt></a> exec codegen.GenerateCode before plugin GenerateCode to fast\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/44f8ba9ff598df631a1149a296e6584766303665\"><tt>44f8ba9f</tt></a> Update licence\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/94701fb78f7c3f2fff84ee22c5df7389f6f18869\"><tt>94701fb7</tt></a> add Enable federation section in federation doc\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/64190309002d888375931eea2d8597cfe5a8af5c\"><tt>64190309</tt></a> Update upload docs with Apollo usage\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a538119155cf1ce66094a5a1ba1a201905d3e832\"><tt>a5381191</tt></a> v0.11.2 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.11.2\"></a>\n## [v0.11.2](https://github.com/99designs/gqlgen/compare/v0.11.1...v0.11.2) - 2020-03-05\n- <a href=\"https://github.com/99designs/gqlgen/commit/2ccc0aa65998154a57ddb2fcb37046cbffbd6518\"><tt>2ccc0aa6</tt></a> release v0.11.2\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/78f3da2296a5d69967a7ab09b66338ed9bd94033\"><tt>78f3da22</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1050\">#1050</a> from technoweenie/executor</summary>\n\nExecutor\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b82ee517f528dbdbd1236aca61b7aacdfc633978\"><tt>b82ee517</tt></a> Fix CI badge\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/42eff5a9a5011606b5a89556dd211e6e08224b19\"><tt>42eff5a9</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1057\">#1057</a> from RichardLindhout/master</summary>\n\nUpgrade to github.com/urfave/cli/v2\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/bb5cb8a3dd51980a9b5c27dc4d5da87e9ab9a1c9\"><tt>bb5cb8a3</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1086\">#1086</a> from 99designs/github-actions</summary>\n\nUse GitHub Actions\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cd2b53f210373729a2d483183db08fd6cce38ebd\"><tt>cd2b53f2</tt></a> remove os.Exits\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/587bc81c1a52f259da85421500d971c035d8a0cc\"><tt>587bc81c</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1074\">#1074</a> from yudppp/feature/add_contenttype_for_upload</summary>\n\nAdd ContentType to graphql.Upload\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a84d657791b8f11a31b5af768d429b662faca312\"><tt>a84d6577</tt></a> graphql/handler: revive the existing around func types\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f9bb017b440f74dbb3db744638410dc357bdea18\"><tt>f9bb017b</tt></a> graphql/executor_test: ensure operation trace is started before every query\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/57dd8d9c75b1286b318b9236346e4ab14aa99c86\"><tt>57dd8d9c</tt></a> graphql/gqlgen: remove unnecessary convenience method\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fb86f7b9a8d768cd69c34e8e6654c06f1af9a7b8\"><tt>fb86f7b9</tt></a> graphql/executor: remove the naked return\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9ae6bc0b357e1ab5325e60cc4a86cb2072a75e01\"><tt>9ae6bc0b</tt></a> graphql/executor: reinit all extension values on every Use() call\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f3909a8aa8b5fc00375cfa7905e89cd873ff514f\"><tt>f3909a8a</tt></a> graphql/executor: make ext funcs private\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/df9e7ce3617d082f584edb998d9428fb6ce633ff\"><tt>df9e7ce3</tt></a> Run CI on push only\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ed76bc923b36dda8437a70dc0f43cbaf21295864\"><tt>ed76bc92</tt></a> Update badge\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5a1a54463628a2ce3fe9dc67e70e120a42515d56\"><tt>5a1a5446</tt></a> Coveralls fixes\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/41acc753cf76ced6a545d9229579db57c047710e\"><tt>41acc753</tt></a> Fix windows line endings\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/390cea4fea9261b1fe12b689d7185381110c4051\"><tt>390cea4f</tt></a> Replace Appveyor with Github Actions\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/85be072f4c28fd367ab3ce2b5016928acefa67bd\"><tt>85be072f</tt></a> Replace CircleCI with Github Actions\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8d540db3f8787395c876c3e612966d43bd98a6a1\"><tt>8d540db3</tt></a> fix: Add Upload.ContentType test\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f21832af91c7b9f7523f4f149c775700860286c1\"><tt>f21832af</tt></a> fix: Fixed Upload type document\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/b165568cce7d5027ba1ee2da68dad3012b12d189\"><tt>b165568c</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1071\">#1071</a> from kandros/fix-server-path</summary>\n\nfix server path\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/9d7648aa95d7479b11685350d6bd71d26e9aecac\"><tt>9d7648aa</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1072\">#1072</a> from wtask/patch-1</summary>\n\nFix a typo in sql example\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/24400c9b44d7a2dfc177969d13f9ca7cc1f158e0\"><tt>24400c9b</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1079\">#1079</a> from sonatard/remove-unused</summary>\n\nRemove unused code\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a7c79891abdd4323ce74b71521508d064f057f6d\"><tt>a7c79891</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1081\">#1081</a> from sonatard/fix-plugin-test</summary>\n\nFix unlink file path in resolvergen test\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e7bf75481aa110b533e1cc710a8dbeb88930a6ac\"><tt>e7bf7548</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1080\">#1080</a> from sonatard/fix-testdata</summary>\n\nFix test data\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3a61dc00a20288601fdbc6f5192333f2244dc85a\"><tt>3a61dc00</tt></a> Fix unlink file path in resolvergen test\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/df5ac929eb4bbd3090821b5350ba33493a78d58c\"><tt>df5ac929</tt></a> Fix test data\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b2843f67e04c2eff0579f5f05f3cfe21e9a05ba3\"><tt>b2843f67</tt></a> Remove unused code\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cff73f71fe116cd7549cd431aa13ea21c377e9b5\"><tt>cff73f71</tt></a> Add ContentType to Upload\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f0ebc0dfbe4d260129161ce6b6ce1d7ca44a325c\"><tt>f0ebc0df</tt></a> Fix a typo in sql example</summary>\n\nI think todo is referenced to user by user_id field, not by todo.id\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/22a43d776126936526ae37070ccc765983823f23\"><tt>22a43d77</tt></a> fix server path\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/b788cce5682351522a12ae63e8f1d11be60276a1\"><tt>b788cce5</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1054\">#1054</a> from 99designs/golint-free-resolvers</summary>\n\nsuppress golint messages\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/c515d403319c4c85799959501f56d927d221e1ce\"><tt>c515d403</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1053\">#1053</a> from RichardLindhout/patch-3</summary>\n\nAdd practical example of getting all the requested fields\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e57cd44598f2446c5f00888c1c545dde4b63edf3\"><tt>e57cd445</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1061\">#1061</a> from halvdan/patch-1</summary>\n\nFix mismatching documentation of Todo struct\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1388fa9465d5ba99b8b704472c281193a2926f3f\"><tt>1388fa94</tt></a> Fix mismatching documentation of Todo struct</summary>\n\nMismatch between the code and the getting started documentation.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/294884adaa279d56cf6008098b2c6d1d88d8f961\"><tt>294884ad</tt></a> Rollback go.sum and go.mod as per feedback of [@vektah](https://github.com/vektah)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d8acf1655d750fcd069989bafd86179077face7f\"><tt>d8acf165</tt></a> Upgrade to github.com/urfave/cli/v2\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/81bcbe75812169a1d6525df8cfbe0b42ad828151\"><tt>81bcbe75</tt></a> suppress golint messages\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/248130792a7a4fb665b29bbab94f2bc43bebe0c4\"><tt>24813079</tt></a> Add practical example of getting all the requested fields</summary>\n\nBased on this https://github.com/99designs/gqlgen/issues/954 was tagged as 'need documentation'\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a53ce377c9f7601f09e00da71a958c6f45deca4c\"><tt>a53ce377</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1051\">#1051</a> from 99designs/has-operation-context</summary>\n\nAdd function to check presense of operation context\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/95e453bfe6db62ee00faa2bd66cd64b537721f04\"><tt>95e453bf</tt></a> Add function to check presense of operation context\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/36365c4103361d395d9025dc811d816ad1edb626\"><tt>36365c41</tt></a> graphql/executor: move setExtensions()\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3acc942111a9051e53d93138363405bce4f2b33b\"><tt>3acc9421</tt></a> graphql/executor: ensure Executor implements graphql.GraphExecutor.\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f89b973bbec0c14cd69992e8791f8d23ee31c928\"><tt>f89b973b</tt></a> graphql/executor: merge ExtensionList into Executor\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c16a77c3195fe0a1a297429208c8816ed6962490\"><tt>c16a77c3</tt></a> graphql/handler: replace internal executor type\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8fa26cec4065fd90bbc7a01cb3cfa933e2b7b461\"><tt>8fa26cec</tt></a> graphql/executor: extract an Executor type from graphql/handler\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d5d780c5b59a1fc6fd3fe55274fd09c64505917b\"><tt>d5d780c5</tt></a> Point latest docs to 0.11.1\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/abaa0a041172268ffd8605345e6e2ee44847cf4c\"><tt>abaa0a04</tt></a> v0.11.1 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.11.1\"></a>\n## [v0.11.1](https://github.com/99designs/gqlgen/compare/v0.11.0...v0.11.1) - 2020-02-19\n- <a href=\"https://github.com/99designs/gqlgen/commit/11af15a14ba1f3217f1e81a0aeaf053f3f17d56d\"><tt>11af15a1</tt></a> release v0.11.1\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/bc07188cd6eaa4b5509843c7cc2d20a03623c759\"><tt>bc07188c</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1038\">#1038</a> from 99designs/feat-check-len</summary>\n\ncheck slice length\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2c3853c8dc0f500339e7349f9256c3a9ac1ef129\"><tt>2c3853c8</tt></a> fix whitespace in comparison\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/07a13861cf2a3bcaa96433a3a5e6380f688489f4\"><tt>07a13861</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1043\">#1043</a> from 99designs/ensure-panic-handlers-get-applied</summary>\n\nEnsure panic handlers get applied\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/156d306d69255cea25ee3cbf4f0b9f57c0b9f09f\"><tt>156d306d</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1046\">#1046</a> from appleboy/patch</summary>\n\ndocs(gin): missing import playground\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/26ee1aa1c9a08d15df5cb189c05195a635be6a64\"><tt>26ee1aa1</tt></a> docs(gin): missing import playground\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3abe5b32e965a6a05164a66110ac7cafda2e89d3\"><tt>3abe5b32</tt></a> add test\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6ecdb88de5ba7751f0403d9d09c9b573d1b6c635\"><tt>6ecdb88d</tt></a> Merge branch 'master' into feat-check-len\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2340f7a7ae54c33e5d065d99a1f30906f64ba229\"><tt>2340f7a7</tt></a> Ensure panic handlers get applied\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/25d167613df1e8e50dd895394343238b0e9f92ad\"><tt>25d16761</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1039\">#1039</a> from VitaliiLakusta/patch-1</summary>\n\nFix link to examples directory in Federation docs\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4c47ad16341cd1dfa9ec5e35aa0a99a7d102fb66\"><tt>4c47ad16</tt></a> Fix link to examples directory in Federation docs\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2506dce04f7be87b44c2ec8d99b9fcadc7c7db75\"><tt>2506dce0</tt></a> check slice len\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1a68df34c397d7fddb161a5ad3ab0b293f683eb9\"><tt>1a68df34</tt></a> fix origin/master reference in switcher\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/199cfedf8be47ed8141530ca9f42a04e22634d4d\"><tt>199cfedf</tt></a> remove old docs that no longer run with new layout\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/556c84843e1f6452bb0983a199772e6f17ff6855\"><tt>556c8484</tt></a> fix paths\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/282100c8205af2f964021c67550e0a118b4e751c\"><tt>282100c8</tt></a> use current layout to build old doc content\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4c38b8b4ae49aed623d5a0fd5447462109c9dba9\"><tt>4c38b8b4</tt></a> v0.11.0 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.11.0\"></a>\n## [v0.11.0](https://github.com/99designs/gqlgen/compare/v0.10.2...v0.11.0) - 2020-02-17\n- <a href=\"https://github.com/99designs/gqlgen/commit/368597aa18d82bc778e45d8e1f7a817a70ca62a7\"><tt>368597aa</tt></a> release v0.11.0\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e65d62285c5af647fa58ae947fde286f3e0ccc9c\"><tt>e65d6228</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1036\">#1036</a> from 99designs/update-v011-docs</summary>\n\nUpdate 0.11 migration docs\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/11f979365864fd6739fcf9c6d8d6deddfed834ba\"><tt>11f97936</tt></a> Update 0.11 migration docs\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/2b3eed303e63e433088efbfa026b7a42e66ff0de\"><tt>2b3eed30</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1034\">#1034</a> from 99designs/strip-underscores-from-entity-interfaces</summary>\n\nTrim underscores from around go identifiers\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b2d9bfcbfac96d920b3d1dd2ed7eb20f098a1d61\"><tt>b2d9bfcb</tt></a> Update stale.yml\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1ac8b5aeca013d19ce23c33db0e7c360fdc06095\"><tt>1ac8b5ae</tt></a> Update stale.yml\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4b9dfa61085d478814efbdd8ac237e3f81d4189b\"><tt>4b9dfa61</tt></a> trim underscores from around go identifiers\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/7cac3610246fb0b8a9028c88f57e63c41e5cced7\"><tt>7cac3610</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1027\">#1027</a> from sonatard/response-errors</summary>\n\npropagate resolver errors to response error in ResponseMiddleware\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/14dccc57885df5d5ca4ef347c1b80f5f3648719a\"><tt>14dccc57</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1022\">#1022</a> from 99designs/feat-gqlparser-117</summary>\n\nexample about apply https://github.com/vektah/gqlparser/pull/117\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cf6f76830d3ebbfbce26a96f709edbb11c828551\"><tt>cf6f7683</tt></a> bump to gqlparser v2\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/4ece3857c9abb4dc0c6122af6a72d4d5ce134feb\"><tt>4ece3857</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1028\">#1028</a> from abhimanyusinghgaur/master</summary>\n\nRespect includeDeprecated for EnumValues\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9638ce0f33d314c9ca5a2154f0b901d26ee7c719\"><tt>9638ce0f</tt></a> Fix format\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/51b921fab81fc6c9f8304f4a0013654693bcc77d\"><tt>51b921fa</tt></a> Fix format\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/07ffcc821c7fbeb9fea3c6b0916367a48f7d5b82\"><tt>07ffcc82</tt></a> Respect includeDeprecated for EnuValues\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d58434c9f4827a1a5448009b94341498dae87105\"><tt>d58434c9</tt></a> propagate resolver errors to response error in ResponseMiddleware\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/598559252c076967ae3120ee203885954c254a2a\"><tt>59855925</tt></a> go mod tidy\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e4530da6a4636a6d6430ae93356fa423d7a5ead7\"><tt>e4530da6</tt></a> apply https://github.com/vektah/gqlparser/pull/117\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/30e23757e9b50612f3300edd84310efe7eac9d4d\"><tt>30e23757</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1020\">#1020</a> from 99designs/handle-interfaces-implementing-interfaces</summary>\n\nHandle interfaces that implement interfaces\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b7a58a1c0e4b30a75d97ef69a8593e1ce3914bf2\"><tt>b7a58a1c</tt></a> Handle interfaces that implement interfaces\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ab8d62b67dd0dd9a27ad5320b3cb57b0bd76df51\"><tt>ab8d62b6</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1019\">#1019</a> from 99designs/remove-source-reprinting</summary>\n\nRemove source reprinting\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2f0fa0ef4d91a39e850e92e26d8450e5ea985bac\"><tt>2f0fa0ef</tt></a> handle schema loading error better\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/aacc9b1fd6ff8fa91d4b4985b4c115796851b416\"><tt>aacc9b1f</tt></a> Remove source reprinting\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e289aaa0b2ee378279710b018f0fb1c9c0da7997\"><tt>e289aaa0</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1018\">#1018</a> from 99designs/federation-docs</summary>\n\nFederation docs and examples\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3045b2cfadc80b4645dbb7228bf7e3cceb74d3c7\"><tt>3045b2cf</tt></a> Federation docs and examples\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/656a07d1877081199058c3bc54ed521350a15e72\"><tt>656a07d1</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1016\">#1016</a> from 99designs/federation-entity-type</summary>\n\nCreate a non generated federation _Entity type\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8850a527a89f9b880531dc7fdcfec1016882b777\"><tt>8850a527</tt></a> Create a non generated federation _Entity type\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1d41c2ebf22664de9660365fb4584c4ca1ac776c\"><tt>1d41c2eb</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1012\">#1012</a> from 99designs/federation-config</summary>\n\nAllow configuring the federation output file location\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/afa9a1504edb7da3e8055ed5923ce74647152396\"><tt>afa9a150</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1013\">#1013</a> from 99designs/feat-error-dispatch</summary>\n\npropagate errors to response context in DispatchError\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/652aa2fb2917fc4c2362abc608e7643ee589daa7\"><tt>652aa2fb</tt></a> propagate errors to response context in DispatchError\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/0fe1af8c8c55cfcef938e59ee63fac3df1a319df\"><tt>0fe1af8c</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1011\">#1011</a> from Khan/compound-keys</summary>\n\nCompound key support in federation\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ad3c1c818f86e8e610733e4be0cf6f755e60af25\"><tt>ad3c1c81</tt></a> Allow configuring the federation output file location\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/b4a00e6cfd6a7c0da51caa002bc72b7210610db9\"><tt>b4a00e6c</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1010\">#1010</a> from Khan/query-exists</summary>\n\nMake sure there's a Query node before trying to add a field to it.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/65401637e72c047c56ee2901d6341b9d52e60e14\"><tt>65401637</tt></a> Adding type with multiple keys to federation test</summary>\n\nSummary: The current federation test schema only has types with single keys (or no keys). Adding a type with multiple keys, including one non-String key, to test compound key federation code gen.\n\nTest Plan: - go test\n\nReviewers: csilvers, miguel\n\nDifferential Revision: https://phabricator.khanacademy.org/D60715\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/3f714a46146136c6e4adc4a77a4429488aa2f768\"><tt>3f714a46</tt></a> Extending federation to support compound keys per Apollo spec</summary>\n\nSummary:\nCompound keys are not yet supported for federation in gqlgen. This diff adds support by modifying the federation plugin to handle a list of key fields on an entity rather than a single top-level key field. It will now look for \"find<EntityName>By<KeyField1><KeyField2>...\" in the resolver, rather than the original \"Find<EntityName>By<KeyField>\". The federation plugin does not yet support more complicated FieldSets in the key, such as nested selections.\n\nReferences:\n- Apollo federation spec: https://www.apollographql.com/docs/apollo-server/federation/federation-spec/\n- Selection sets: https://graphql.github.io/graphql-spec/draft/#sec-Selection-Sets\n\nWill update https://phabricator.khanacademy.org/D59469 with multiple key changes.\n\nTest Plan:\n- Tested Go GQL services using both single- and multiple-key federated types (assignments and content-library in webapp/services)\n- Ran gqlgen on non-federated services in webapp to ensure regular generation still works (donations service)\n- WIP: creating unit tests; will submit as separate diff\n\nReviewers: briangenisio, dhruv, csilvers, O4 go-vernors\n\nReviewed By: dhruv, csilvers, O4 go-vernors\n\nDifferential Revision: https://phabricator.khanacademy.org/D59569\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/9f2a624bb4b57505d751d8d3e1d3248d11291c31\"><tt>9f2a624b</tt></a> Make sure there's a Query node before trying to add a field to it.</summary>\n\nFederation adds some queries to the schema.  There already existed\ncode to insert a Query node if none existed previously.  But that code\nwas only put on addEntityToSchema(), and not the other place we update\nthe query, addServiceToSchema().\n\nAlmost always the old code was good enough, since we call\naddEntityToSchema() before addServiceToSchema().  But there's on\naddServiceToSchema(), so we need to do the query-existence check there\ntoo.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/b941b970f0b67a4e102ee1635156a6a2b5a2863b\"><tt>b941b970</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1007\">#1007</a> from 99designs/handle-invalid-autoload-path</summary>\n\nGive an appropriate error message when autoload isnt a valid package\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/95b1080954c5d447a6afd059a185256ae2e2ed1e\"><tt>95b10809</tt></a> bump appveyor go version for consistent behavour\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/91a9ff97633e52f078687b79c7717f9f5129b9df\"><tt>91a9ff97</tt></a> fix bad copy from template\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d5d6f830475fcaa5790bb1d6390f3876cd9073a2\"><tt>d5d6f830</tt></a> Give an appropriate error message when autoload isnt a valid package\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f7667e127039af2d7fb4252c0bb3a36554634f80\"><tt>f7667e12</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1009\">#1009</a> from 99designs/interface-regression</summary>\n\nInterface regression\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ffc419f3053b18f6aead8eaba5d346c1ad9e31c5\"><tt>ffc419f3</tt></a> Fix interfaces used as normal object types\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/44cfb92639db2e7f18a1b0a4091b29f120a0dbb4\"><tt>44cfb926</tt></a> Test example for interface regression\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/0ddb3ef308d1f801928e919cc478d5b8d6653458\"><tt>0ddb3ef3</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1006\">#1006</a> from ravisastryk/entity-directives-lookup</summary>\n\nskip searching directives when entity is found\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/395e1d731969d6a33bdbebc4fb2fa14be5fe2fe4\"><tt>395e1d73</tt></a> skip searching directives when entity is found\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e1f2282e1331fd38c01fe449f116d47d16583cd6\"><tt>e1f2282e</tt></a> bump to go 1.13 in ci\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/34c92eba0b29a49cc592060890263d1677490a3d\"><tt>34c92eba</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1003\">#1003</a> from 99designs/fix-chat-example</summary>\n\nfix chat example\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6bf88417d867bce8bc3eca3b52a62f56eee994b9\"><tt>6bf88417</tt></a> fix chat example\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8ed2ec599b8faed3751177fd4335b1b3c3a79922\"><tt>8ed2ec59</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/988\">#988</a> from 99designs/package-cache</summary>\n\nCache all packages.Load calls in a central object\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9ccd7ed7199405ecbcc917ce601b83b72419009b\"><tt>9ccd7ed7</tt></a> Cache all packages.Load calls in a central object\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/565619a80674052de24a4df5c9a2dba87ceb72df\"><tt>565619a8</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/993\">#993</a> from 99designs/resolver-generator-v2</summary>\n\nResolver regenerator\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cf4a3eb455da1c482c20418deceeb44698a7f5bc\"><tt>cf4a3eb4</tt></a> keep imports when scattering resolvers between files\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/da7c1e45788d1b9b2dca9dc080d70c96729a3c89\"><tt>da7c1e45</tt></a> Update getting started docs\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c233876e67aea3946d73890aeb9b96cfc4106edd\"><tt>c233876e</tt></a> fix windows test paths\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/93713a291eb31279789332d316da7abd98c6276c\"><tt>93713a29</tt></a> Add tests for code persistence\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3e507e0dec0d2d29eedb2f067d138c509f91a991\"><tt>3e507e0d</tt></a> separate resolver stubs by 1 empty line\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8a208af51f6f808bbc8ef0b67aafb087e1112ca6\"><tt>8a208af5</tt></a> add tests covering ResolverConfig\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f8e6196164ee45c005be61e866e2d149d9a2fe9e\"><tt>f8e61961</tt></a> set init to use new resolvers by default\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/dbaf355dbf2d6d2255e1934094fad2fbd69b0441\"><tt>dbaf355d</tt></a> copy through any unknown data\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e7255580193837f91f6f015b24700787a56017eb\"><tt>e7255580</tt></a> copy old imports through before gofmt prunes\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6ec365046295574d8e903ee93cf24b7d49b4b180\"><tt>6ec36504</tt></a> Copy existing resolver bodies when regenerating new resolvers\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9e3b399d4d9f18b1de1ec51acba09406ae9e56ad\"><tt>9e3b399d</tt></a> add resolver layout = follow-schema\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8a18895e1ec49e383ce2cda79d315c78f5a701ca\"><tt>8a18895e</tt></a> Update to latest golangci-lint\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f7a67722a6baf2612fa429bd21ceb9c6b9cbed1c\"><tt>f7a67722</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/985\">#985</a> from Khan/no-key-needed\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/fa884991b5faec01f1ded737a64350d782e3a418\"><tt>fa884991</tt></a> Correctly generate a federated schema when no entity has a `[@key](https://github.com/key)`.</summary>\n\nNormally, when a service is taking part in graphql federation, it will\nservices can link to (that is, have an edge pointing to) the type that\nthis service provides.  The previous federation code assumed that was\nthe case.\n\ntypes.  It might seem that would mean the service is unreachable,\nsince there is no possibility of edges into the service, but there are\nand top level Mutation edges.  That is, if a service only provides a\ntop-level query or top-level mutation, it might not need to define a\n\nThis commit updates the federation code to support that use case.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/36aae4aa277847bc5dc2d4fcec5ae0c1d7a1d686\"><tt>36aae4aa</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/994\">#994</a> from 99designs/feat-cache-ctx</summary>\n\nAdd context.Context to graphql.Cache interface's methods\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/61e060bdfe4559138a08a00683815a315f85a154\"><tt>61e060bd</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/995\">#995</a> from alexsn/directiveroot_empty_lines</summary>\n\nRemove empty lines on DirectiveRoot generation\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/30c295c4014e2010ef8ed3356890c961247b379b\"><tt>30c295c4</tt></a> Remove empty lines on DirectiveRoot generation\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/85cfa8a3afffad11a99bf4205310f46987f3329d\"><tt>85cfa8a3</tt></a> Add context.Context to graphql.Cache interface's methods\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a6c7aafb928f648d0a8106c0a42554abdce53952\"><tt>a6c7aafb</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/931\">#931</a> from fridolin-koch/master</summary>\n\nFix for Panic if only interfaces shall be generated\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ec4f6b151d4c14d704f27ae7fe341f7ad5ad4883\"><tt>ec4f6b15</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/989\">#989</a> from 99designs/fix-intermittent-test-ka-failure</summary>\n\nFix intermittent websocket ka test failure\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/76035df5e63c580004440762edbf6779fe9243db\"><tt>76035df5</tt></a> Fix intermittent websocket ka test failure\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/aa407b1f3553ac2aee1939fbe28c85ed5cbfcdf9\"><tt>aa407b1f</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/979\">#979</a> from 99designs/capture-read-times</summary>\n\nCapture read times\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4dd1008659429e99e94e5da0f3401e358a16b69e\"><tt>4dd10086</tt></a> fix test race by only stubbing now where we need to\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8dbce3cf161f19c132d3cf29aa95851732c7f922\"><tt>8dbce3cf</tt></a> Capture the time spent reading requests from the client\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/c6b3e2a1ef220cd122ad3c2a6e25bc74c89a7a4c\"><tt>c6b3e2a1</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/983\">#983</a> from vikstrous/name-for-package-global</summary>\n\nsingle packages.Load for NameForPackage\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ae79e75bc2d8296551e8b88b7b3f8596f038ca94\"><tt>ae79e75b</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/978\">#978</a> from 99designs/pluggable-error-code</summary>\n\nAllow customizing http and websocket status codes for errors\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7f6f1667bd06e4a5f18128c592ef96e01bca97b6\"><tt>7f6f1667</tt></a> bump x/tools for consistent import formatting\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/842fcc11b1481bdb04d2bd711a1c091354b7a96e\"><tt>842fcc11</tt></a> review feedback\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f0bea5ffcbdfbf231a6d2848b77f0e9c20288702\"><tt>f0bea5ff</tt></a> Allow customizing http and websocket status codes for errors\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bd50bbcbb3d96bc168c1b5186147be14487e0cc6\"><tt>bd50bbcb</tt></a> single packages.Load for NameForPackage\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/28c032d1f3ba55761dbac0cf846c9c66b7abb5e8\"><tt>28c032d1</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/982\">#982</a> from DavidJFelix/patch-1</summary>\n\nfix: explicitly exclude trailing comma from link\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ac67050a7156be5e109d6b67b3fc7073e05fdeb1\"><tt>ac67050a</tt></a> fix: explicitly exclude trailing comma from link</summary>\n\n- this looks dumb, but when the page is rendered, the link resolves with the comma, despite the comma being excluded in github rendering.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4e95b363e8799ddf92af4b06cca058342164bfd1\"><tt>4e95b363</tt></a> fix some version switcher paths\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/08369dfe093d010b8a3c81245265232c42f909db\"><tt>08369dfe</tt></a> add missing trailing slash on paths\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ea347ca7c0a9f9ee5756d8e44b0dbc48e0bd6ed6\"><tt>ea347ca7</tt></a> fetch all tags\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8c1a8f5777a3b63ce0bde47538fd04bd4c9aa3b3\"><tt>8c1a8f57</tt></a> fix branch switching\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/324efc5cb537cee8df072e097d83e0bf0f57abd8\"><tt>324efc5c</tt></a> add origin if missing\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cfa2907a017d517ce90a62c4ef978f7bce66e9b7\"><tt>cfa2907a</tt></a> Generate docs for all tags\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8218c734fb126b49882b44801228b36f033909d2\"><tt>8218c734</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/851\">#851</a> from marwan-at-work/federation</summary>\n\nApollo Federation MVP\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/48dc29c19314cc9f7cbf6c58a9514245fa07a1b6\"><tt>48dc29c1</tt></a> go 1.12 generate, 1.14 failed\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b2e81787dbd76b43b2969e556dfda10076bdeaf8\"><tt>b2e81787</tt></a> update gqlparse to v1.2.1\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d2a13d33cdcb27e8e141c54e1ab1fa0aebad2d2b\"><tt>d2a13d33</tt></a> update go.mod\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/0eef2fe2cf5123990844a6c2bbb2418b044df1e6\"><tt>0eef2fe2</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/970\">#970</a> from spiffyjr/master</summary>\n\nFix extra trimspace on nillable Unmarshals\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/56b8eef2b7ca0852fff3f3cda80a08df3569868e\"><tt>56b8eef2</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/974\">#974</a> from oshalygin/docs/gqlgen-pg-example-repo</summary>\n\nAdd Link to Sample Project with GQLGen and Postgres\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f49936eb9a89336beb3677490ef687fb7b6a408e\"><tt>f49936eb</tt></a> Add Link to Sample Project with GQLGen and Postgres</summary>\n\nThis is a very straightforward project with numerous details in the README and the official\ndocumentation, but questions continue to pop up around how to use this project, organize the files\nand ultimately make data calls to some persistent layer.\n\nThe `https://github.com/oshalygin/gqlgen-pg-todo-example` was built in order to show newcomers the\nfollowing:\n- How to organize their graphql schema, resolvers, dataloaders and models\n- How to create a new dataloader\n- How to resolve with a dataloader and how to avoid some of the pitfalls(inconsistent db query to keys array order)\n- How to map models from a gql schema to structs\n\nWhile the examples in this project are helpful, they could benefit from more elaborate explanations in the\ncode as well as the README to help newcomers get started.  This PR is not intended to portray any of the examples\nnegatively and should not be interpreted as such.  There are many findings/lessons learned from the work that folks\nput together in those examples.\n\nREADME which covers a ton of the details on how to use this project:\n- [README](https://github.com/oshalygin/gqlgen-pg-todo-example)\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/db499561277294e5fc368a45fe49a678ba217fe9\"><tt>db499561</tt></a> force rebuild\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0985a78e18d4f2c629445d4bef9958fed85c5e09\"><tt>0985a78e</tt></a> remove debug comments\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7f64842577435c7246e5448acc1c1238221140d6\"><tt>7f648425</tt></a> add preliminary test_data\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c9d6d94b7465d1026d4a75f204cf0c645aa66972\"><tt>c9d6d94b</tt></a> add preliminary tests\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2345936ea1c0066052bc823c851bad8b8885c888\"><tt>2345936e</tt></a> fix integration\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/aae7486d5fbfff6bc7ca696df2949b48e6c4b80f\"><tt>aae7486d</tt></a> go generate\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/555a95462cec99c7b0549383102238d5b373ed71\"><tt>555a9546</tt></a> go generate + remove directives nil check\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/368d546dc2f6a240ab0cbb165d5dd6bf202be747\"><tt>368d546d</tt></a> Apollo Federation MVP\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/21e0e6762eef0dbdea1b0242b887cd5adad35a4d\"><tt>21e0e676</tt></a> Fix extra trimspace on nillable Unmarshals\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f869f5a85385745d5854daaa25eab5571b04b245\"><tt>f869f5a8</tt></a> remove deprected handler call\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f0b83cb16c618ddcad4c26a779d97868dbb9c8a8\"><tt>f0b83cb1</tt></a> fix merge conflict\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cdf967214d9e800c48ba55ac41e060b1107b0a53\"><tt>cdf96721</tt></a> update generated code\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/21356ce35cc55896ee855c9b3238aa00684ac242\"><tt>21356ce3</tt></a> markdown cleanup\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/412a72fe26b093b08d27e90adf0390ad0ea0a7ea\"><tt>412a72fe</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/885\">#885</a> from 99designs/handler-refactor</summary>\n\nRefactor handler package\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bac79c54bb58d0c7450a6e0f98371c6792ae3a3a\"><tt>bac79c54</tt></a> force clean git checkout\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/dca9e4a5b04f34f1bba32d472c0075ee9d0ea476\"><tt>dca9e4a5</tt></a> Add migration docs\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5106480b4c6332c9488b88b4f9a66b29a666948b\"><tt>5106480b</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/947\">#947</a> from 99designs/handler-oc-handling</summary>\n\nalways return OperationContext for postpone process\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/922db1e3182f119f7c9608f71be4503ad69fad56\"><tt>922db1e3</tt></a> always return OperationContext for postpone process\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8794f03e783d6319b8a9066b4bfe93d651a4a594\"><tt>8794f03e</tt></a> v0.10.2 postrelease bump\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/14dbf1aae6d512f6be5affd0e29686f360eb5579\"><tt>14dbf1aa</tt></a> use new handler package in new test\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a339a0423ee7cf9562c1767664aad6f15e1b5677\"><tt>a339a042</tt></a> panic if operation context is missing when requested\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a13a0f5f83eb2c71dbcd658fe2abe263aca0fb2d\"><tt>a13a0f5f</tt></a> add docs on extension name conventions\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/458fa0deda7b9b45fe7b45d098bb82b15aa207d7\"><tt>458fa0de</tt></a> Add more interface assertions\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d0836b72d5fe632808afff9254e415948ff11680\"><tt>d0836b72</tt></a> Expose APQ stats\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cf14cf103cff2d6d52146c7f30f46bd6a329aa59\"><tt>cf14cf10</tt></a> fix: Fix no code generation for only interfaces\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/dc76d029e2aea0aa71efb032923d660b809068b4\"><tt>dc76d029</tt></a> Merge remote-tracking branch 'origin/master' into handler-refactor\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/572fb419fc66c56ac103abf65bb54282d46aec29\"><tt>572fb419</tt></a> remove all references to deprecated handler package\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/dc6223462ed4dc85b66e836feb5c5ee58bc363bd\"><tt>dc622346</tt></a> Tune allocs for benchmarks\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a6f9462634b3408cdd0a8e0c0c14ff86d8f45317\"><tt>a6f94626</tt></a> Merge remote-tracking branch 'origin/master' into handler-refactor\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c3f938108d172b7097828d1ae2a7ce940b611ae6\"><tt>c3f93810</tt></a> fix benchmark\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/631b48a56ac159cd03dbc67e15f4a8dfef7dc266\"><tt>631b48a5</tt></a> remove automatic field stat collection to reduce time calls\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a77d9fc29019a78bd0f4459251cf24ce3083723b\"><tt>a77d9fc2</tt></a> Add generated stanzas back in\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0ee185b811db5d81286e02d90e2bf5cfbd424b9a\"><tt>0ee185b8</tt></a> fix duplicate header sends\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7cbd75db593854ac3be66fa66a3248a4b0acf6a9\"><tt>7cbd75db</tt></a> fix APQ signature\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/67fa21049567aff73f5ae019683a14b7b03a496d\"><tt>67fa2104</tt></a> allow extensions to declare their own stats\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e9502ae042f901e85731b39316d5d4687e3709f9\"><tt>e9502ae0</tt></a> Make extensions validatable\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fc727c9cd7663a874d3dcdccdbb096f385934dfd\"><tt>fc727c9c</tt></a> Add a signpost method to handler extension interface\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0a39ae206916d607fcf8c7fb07a167d0b48c8933\"><tt>0a39ae20</tt></a> add fixed complexity limit\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f2ef5ec3d660c7c226ad5392d9d43e38abcc6827\"><tt>f2ef5ec3</tt></a> more deprecations and more compat\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2898a622b48dd484e2c2365b9655f3b068ba524d\"><tt>2898a622</tt></a> rename ResolverContext to FieldContext\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/092ed95fd7cc9587b88865175a055d8b35a9fb42\"><tt>092ed95f</tt></a> collect field timing in generated code\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/848c627c375d9cc991131d94bbb13f317a723ecf\"><tt>848c627c</tt></a> remove DirectiveMiddleware\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/40f088681b169ef1249258f164b70f37ae7b66b6\"><tt>40f08868</tt></a> add NewDefaultServer\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1b57bc3eda296ffe15788626c628c6b0a092ced9\"><tt>1b57bc3e</tt></a> Rename RequestContext to OperationContext\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3476ac44bf70da28b606bd92f7d7e8dd68b371e7\"><tt>3476ac44</tt></a> fix linting issues\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/479abbef5e8f6a00b23db8c5f68e04a6fcd3e9a8\"><tt>479abbef</tt></a> update generated code\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bc98156929b06eeca1d95f475501470bd9034c2d\"><tt>bc981569</tt></a> Combine root handlers in ExecutableSchema into a single Exec method\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/473a0d256af2a23ed5b59facd0850ccf137d6fa8\"><tt>473a0d25</tt></a> Implement bc shim for old handler package\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/631142cfacc0d6b4c7773fea7750bd9d92cea4c4\"><tt>631142cf</tt></a> move writer all the way back to the transport\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c7bb03a8fd9b43c47f52b1beafb872d7aee65280\"><tt>c7bb03a8</tt></a> merge executable schema entrypoints\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e7e913d901fa72237cb1ee3dc22b7530238c8532\"><tt>e7e913d9</tt></a> Remove remains of old handler package\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8c5340c1ab61c43dc5d1e3fd6feb30d24d95cdb9\"><tt>8c5340c1</tt></a> Add complexity limit plugin\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0965420a4246492bbac6922da742b157ea968c29\"><tt>0965420a</tt></a> Add query document caching\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/aede7d1cf15f054b1762f9801337bd3e8764b54d\"><tt>aede7d1c</tt></a> Add multipart from transport\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/64cfc9add38004e8741fbe3bdd5a247c61718d80\"><tt>64cfc9ad</tt></a> extract shared handler test server stubs\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a70e93bcae24130ef3746d89afa48b23e96f4787\"><tt>a70e93bc</tt></a> consistently name transports\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9d1d77e67df3fd2c75646af7b5de361b9cbe8482\"><tt>9d1d77e6</tt></a> split context.go into 3 files\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/72c47c985f2727ab7d9dff7f6ebaf3614c44a507\"><tt>72c47c98</tt></a> rename result handler to response handler\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4a69bcd034ade82bacf6b71b4945f4917d2fdfc1\"><tt>4a69bcd0</tt></a> Bring operation middleware inline with other handler interfaces\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ab5665add4f1b6effe21cb1ef77f7346cad1d59c\"><tt>ab5665ad</tt></a> Add result context\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c3dbcf83eaa8bc865b7e482fd17f26fa5139485b\"><tt>c3dbcf83</tt></a> Add apollo tracing\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f00e5fa0791be8e8909923711f7ebde8d2e74c15\"><tt>f00e5fa0</tt></a> use plugins instead of middleware so multiple hooks can be configured\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a7c5e6600729012283270ad2c653de57772eba6b\"><tt>a7c5e660</tt></a> build middleware graph once at startup\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2e0c9cab65d4c6a0cd8237a1b15f55a075afb44f\"><tt>2e0c9cab</tt></a> mark validation and parse errors separately to execution errors\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cb99b42ed0e4974aeb1fc2d9cee43d061c1152cf\"><tt>cb99b42e</tt></a> Add websocket transport\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/eed1515c7abeb08a00291e9ab241f88af860d8aa\"><tt>eed1515c</tt></a> Split middlware out of handler package\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b5089cac400ddf2ffb00d75c849656731d2cb29e\"><tt>b5089cac</tt></a> Split transports into subpackage\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d0f683034fbf877457990060a8c2423b1ccfce0d\"><tt>d0f68303</tt></a> port json post\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/afe241b56cd44394a2b32447f7d817a8361f909d\"><tt>afe241b5</tt></a> port over tracing\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/311887d6a9336c1c5f6f9a59752a94afa6be5b52\"><tt>311887d6</tt></a> convert APQ to middleware\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/da986181d7e6ca9da2999fb62d8fbc7c33eda21f\"><tt>da986181</tt></a> port over the setter request context middleware\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/249b602d487fd189787bcd3605ff4c3a459771e9\"><tt>249b602d</tt></a> Start drafting new handler interfaces\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.10.2\"></a>\n## [v0.10.2](https://github.com/99designs/gqlgen/compare/v0.10.1...v0.10.2) - 2019-11-28\n- <a href=\"https://github.com/99designs/gqlgen/commit/f276a4e6773992c572119b22821d375ad008c53d\"><tt>f276a4e6</tt></a> release v0.10.2\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/9e989d946989e941985a62c1497d3d2d0abd856c\"><tt>9e989d94</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/929\">#929</a> from nmaquet/check-nil-interface-ptrs</summary>\n\nDon't crash when interface resolver returns a typed nil\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/6f20101c40adf13a6ceef483ce0158b83273afed\"><tt>6f20101c</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/940\">#940</a> from vikstrous/optional-modelgen</summary>\n\nmake model generation optional\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/9b9dd5620e65c4d1632c71c52acf1c3c12e7ca3d\"><tt>9b9dd562</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/942\">#942</a> from vikstrous/disable-validation</summary>\n\nadd skip_validation flag\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f9f2063a5f77a5cb21d30db1f038d17242f2dbd9\"><tt>f9f2063a</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/941\">#941</a> from vikstrous/qualify-package-path-faster</summary>\n\nshortcut QualifyPackagePath in go module mode\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4db0e6eccc8745ed765f3863d221ea13c57f0bd1\"><tt>4db0e6ec</tt></a> keep function private\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c06f05b319fc9287110ac0dce2f7e4aafbd34873\"><tt>c06f05b3</tt></a> add doc\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bd353b3e227f9dadd923ed49bc1a0ddb0c043865\"><tt>bd353b3e</tt></a> add skip_validation flag\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b829628d3186975544ee375cc23bf5cb778965a5\"><tt>b829628d</tt></a> shortcut QualifyPackagePath in go module mode\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3a05d2dd985ee4f1e2d3390a65d4a24447a5ecb4\"><tt>3a05d2dd</tt></a> add mention in the docs\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c2c2d7de0cf8dfb232e33c619d72e85e70e656b8\"><tt>c2c2d7de</tt></a> make model generation optional\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d3f6384425e61f39d58819e7fc893b55cfd00d21\"><tt>d3f63844</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/939\">#939</a> from mjarkk/patch-1</summary>\n\n(docs) graph-gophers now supports Struct Field resolving\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ba3d018929670a1831e58086660c6e062704d815\"><tt>ba3d0189</tt></a> graph-gophers now supports Struct Field resolvers\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e747d923d3d0c587a59b5586e1a6dddb2f0f3a7f\"><tt>e747d923</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/938\">#938</a> from lulucas/master</summary>\n\nmodelgen hook docs fixed\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/63be1d5e2a0365cc1eaf23c57826ec47f77eb730\"><tt>63be1d5e</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1\">#1</a> from lulucas/modelgen-hook-patch-1</summary>\n\nmodelgen hook docs use plugin poitner\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/33fc16b1a75e745e28378452847f45a943fdd238\"><tt>33fc16b1</tt></a> modelgen hook docs use plugin poitner</summary>\n\nand add modelgen package to ModelBuild type\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fcfe595e65660e5779a113bc0f9e68e0af750821\"><tt>fcfe595e</tt></a> Add a comment\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/599460871b52f129d653b7a9befd4773fe3b5acd\"><tt>59946087</tt></a> Add unit test for the interface resolver / typed nil interaction</summary>\n\nThis added test shows that the `_Dog_species` automatically generated\nresolver will crash unless the extra nil check is added in\n`interface.gotpl`.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/201768f0b3590dd4e8e7c52fb506c1bed90abc40\"><tt>201768f0</tt></a> Regenerate examples\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/85ca9efe5cfdbf111fe1b4d57fbb38eae151dbfb\"><tt>85ca9efe</tt></a> Return graphql.Null in interface resolver when passed a typed nil</summary>\n\nGo's dreaded _typed nil_ strikes again. Nil pointers of struct types\naren't equal to nil interface pointers.\n\nSee https://golang.org/doc/faq#nil_error\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/15b30588a1451bbe280660a1d6cf629f50121d86\"><tt>15b30588</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/894\">#894</a> from 99designs/enum-var-value-coercion</summary>\n\nImprove enum value (with vars) validation timing\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/568433a23bd2c123460a389fcb2e2e03dfe61ef2\"><tt>568433a2</tt></a> fix ci failed\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0ccfc7e0ebadffe8d59300a2b05dc8cfaa78d5a8\"><tt>0ccfc7e0</tt></a> Merge branch 'master' into enum-var-value-coercion\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/9cfd817e013b951206bc969ba517c98ff208a11c\"><tt>9cfd817e</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/897\">#897</a> from mskrip/modelgen-hook</summary>\n\nAdd possibility to hook into modelgen plugin\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c1e6414834344c20728f9a31b74dacf312713516\"><tt>c1e64148</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/900\">#900</a> from zannen/master (closes <a href=\"https://github.com/99designs/gqlgen/issues/896\"> #896</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8a8f0a0f8de1c10e1e8749d12108038ed5eac452\"><tt>8a8f0a0f</tt></a> Add autogenerated files (<a href=\"https://github.com/99designs/gqlgen/pull/896\">#896</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/531729df1303cde002c0bede5a8a0cb11ac4abda\"><tt>531729df</tt></a> Move test schema file from example dir into codegen/testserver (<a href=\"https://github.com/99designs/gqlgen/pull/896\">#896</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5144775f6c57ab7c0ca2b8eaa2441ed398042e40\"><tt>5144775f</tt></a> Add example to check for regression of <a href=\"https://github.com/99designs/gqlgen/pull/896\">#896</a>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3b5df4ceec3629694cf8ba3f0c62eac8dd66e82e\"><tt>3b5df4ce</tt></a> Add check for obviously different TypeReferences (<a href=\"https://github.com/99designs/gqlgen/pull/896\">#896</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fb96756a2095523acb9b59e219eb5861ca41e588\"><tt>fb96756a</tt></a> Update generated content (<a href=\"https://github.com/99designs/gqlgen/pull/896\">#896</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/fd201a8c8b0f6d95fa4593c8f7cdf3b629f062aa\"><tt>fd201a8c</tt></a> Update UniquenessKey for when Element is/isn't nullable (<a href=\"https://github.com/99designs/gqlgen/pull/896\">#896</a>)</summary>\n\nWith a schema:\ntype Query {\n  things1: [Thing] # Note the lack of \"!\"\n}\n\ntype Subscription {\n  things2: [Thing!] # Note the \"!\"\n}\n\nthe UniquenessKey for the two lists is the same, which causes non-deterministic output.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2a269dd3e4303fa748be4e2ec3d264f8a29bd6fd\"><tt>2a269dd3</tt></a> Add modelgen hook recipe\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6ceb76b632ec117b8b22adaddae68ad7f56e36df\"><tt>6ceb76b6</tt></a> Test tag generation only by looking up extected tag strings\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1f272d1bd14a9a5b0457238ba28f8070d7352307\"><tt>1f272d1b</tt></a> Add possibility to hook into modelgen plugin (closes <a href=\"https://github.com/99designs/gqlgen/issues/876\"> #876</a>)</summary>\n\nThis change introduces option to implement custom hook for model\ngeneration plugin without the need to completly copy the whole `modelgen` plugin.\n\nthat can be:\n\n```golang\nfunc mutateHook(b *ModelBuild) *ModelBuild {\n\tfor _, model := range b.Models {\n\t\tfor _, field := range model.Fields {\n\t\t\tfield.Tag += ` orm_binding:\"` + model.Name + `.`  +  field.Name + `\"`\n\t\t}\n\t}\n\n\treturn b\n}\n\n...\n\nfunc main() {\n    p := modelgen.Plugin {\n        MutateHook: mutateHook,\n    }\n\n    ...\n}\n\n```\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/99a55da2cdb986686f72dd6d4c6841dc1a79c688\"><tt>99a55da2</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/927\">#927</a> from matiasanaya/feature/bind-to-embedded-interface</summary>\n\nBind to embedded interface\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/70e860cce0a3c943f34b796351cc956fa48ab900\"><tt>70e860cc</tt></a> Bind to embedded interface method\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a745dc7807357e9064292a7978d80fe85c6794cd\"><tt>a745dc78</tt></a> Fixes <a href=\"https://github.com/99designs/gqlgen/pull/843\">#843</a>: Bind to embedded struct method or field\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f80cab0662d30abd847bfcb012a3d54e7fe4d8bb\"><tt>f80cab06</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/923\">#923</a> from 99designs/gqlparser-1.2.0</summary>\n\nUpdate to gqlparser-1.2.0\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7508f4e560194d17862ae269df40e7cf1968698e\"><tt>7508f4e5</tt></a> Update to gqlparser-1.2.0\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/7653a681a9696ba5a2562c976d298e38a408ba1b\"><tt>7653a681</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/916\">#916</a> from karthikraobr/patch-1</summary>\n\n3->4 scalars\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8faa0e3aad002970214f2e04de0fb3f3186c13ec\"><tt>8faa0e3a</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/917\">#917</a> from colelawrence/patch-1</summary>\n\ndocs: Fix typo in title of \"Resolvers\"\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f7d888f9e95d076fde232362e371912bda070ddd\"><tt>f7d888f9</tt></a> Merge branch 'master' into patch-1\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d722ac66368529b8f57e0a5c1feea635a2b1bbbe\"><tt>d722ac66</tt></a> Update scalars.md\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1172128c3c7f231e8ca1654a0c978b1f3447736e\"><tt>1172128c</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/904\">#904</a> from cfilby/fix-config-docs</summary>\n\nMinor Documentation Tweaks\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/935f11eda72a3d0761ade303cbc324ab9f4098da\"><tt>935f11ed</tt></a> Fix typo in title\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/026d029cfa1ad86a22363efab43338fd231a2420\"><tt>026d029c</tt></a> 3->4 scalars\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5eb6bef6f515b31ca5c539ede824241b1befb75f\"><tt>5eb6bef6</tt></a> Fix weird indending\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/756dcf6bb3be6680d6574b01eb31fd378c225bdf\"><tt>756dcf6b</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/907\">#907</a> from lian-yue/patch-1 (closes <a href=\"https://github.com/99designs/gqlgen/issues/860\"> #860</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2a943eed912ab9557d124ea1ab7abfc9dd9fa8e8\"><tt>2a943eed</tt></a> Update directive.go (closes <a href=\"https://github.com/99designs/gqlgen/issues/860\"> #860</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/adbceeea04b3b8c27b92760da4bd1a8beae0a913\"><tt>adbceeea</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/902\">#902</a> from cfilby/fix-int64-marshalling</summary>\n\nAdd support for int64 IDs\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/13c3d9224b184f8648ff78b6fe860e4dc51aa913\"><tt>13c3d922</tt></a> Update id function\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/37191779306d628648fc888b8cc3dd83e4eb7f3c\"><tt>37191779</tt></a> Add more tests\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0968e0cbfb660f909f96e3833204f7e17b3c2268\"><tt>0968e0cb</tt></a> Fix VSCode Weirdness, validate formatting\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a20c96d51a4ee0a2715af0bf3a9e6ba7f8fb5327\"><tt>a20c96d5</tt></a> More edits\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e9e88b41e0ee2fcb6e3ebd61cea41e5811fcb544\"><tt>e9e88b41</tt></a> Stop double indending\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9f4df68edc84a087ecab4beaf0cbf4f15a7ffd0b\"><tt>9f4df68e</tt></a> More minor doc fixes\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7abf0ac3d3bf03a2c66bf2729da5a0b07ba94a11\"><tt>7abf0ac3</tt></a> Fix documentation bug\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e9730ab90b17ca10ab85b866481f934ea5e957e8\"><tt>e9730ab9</tt></a> gofmt\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c3930f57e3b4164e1627a8d117872a5bc54599b6\"><tt>c3930f57</tt></a> Remove redundant paren, add test\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/395fc85e02c2be3a6d1b67169919e2555f2b74de\"><tt>395fc85e</tt></a> Add support for int64 ids\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/dbc88428d2d13c2de3554ffb361c09c90ac21474\"><tt>dbc88428</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/889\">#889</a> from thnt/fix-init-with-schema-arg</summary>\n\nfix init not use custom schema filename\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fc4e513fd91773f4bf4707328a0a7c749c7fab64\"><tt>fc4e513f</tt></a> add test for https://github.com/vektah/gqlparser/pull/109\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/dd98bb13d9a3ae85f9afa525091b8c0c1c2fa7c8\"><tt>dd98bb13</tt></a> fix init not use custom schema\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/4c35356cbe7bf886fd8c59c9f754d2d98f6987b8\"><tt>4c35356c</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/883\">#883</a> from 99designs/handle-invalid-types</summary>\n\nGracefully handle invalid types from invalid go packages\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/25b7027118f99c097255d0d11e7384898d65b471\"><tt>25b70271</tt></a> Gracefully handle invalid types from invalid go packages\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/046054dbda38cc50f8f1e2e3c6073cbcc315c2b1\"><tt>046054db</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/882\">#882</a> from 99designs/testserver-autobind</summary>\n\nUse autobinding in testserver\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/12c963a4f3b88e3545f5b878216e54f1c2d6b32d\"><tt>12c963a4</tt></a> Use autobinding in testserver\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/305116a0a0dc48fff6486a78642e77058365a41c\"><tt>305116a0</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/879\">#879</a> from coderste/patch-1</summary>\n\nFixed broken GitHub link within the APQ page\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/b4867b3f6934446c46845957981d62d2708d8343\"><tt>b4867b3f</tt></a> Fixed broken GitHub link within the APQ page</summary>\n\nSmall documentation change to fix a broken GitHub link.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9f6b0ee4f5822a9af90b753f36bc01d4a2cfe0a4\"><tt>9f6b0ee4</tt></a> v0.10.1 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.10.1\"></a>\n## [v0.10.1](https://github.com/99designs/gqlgen/compare/v0.10.0...v0.10.1) - 2019-09-25\n- <a href=\"https://github.com/99designs/gqlgen/commit/efb6efe06c6e4fc706440acebf6f81fff85f295c\"><tt>efb6efe0</tt></a> release v0.10.1\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/955f3499b245507e817e74417f8179a18b18eb81\"><tt>955f3499</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/877\">#877</a> from 99designs/fix-websocket-client</summary>\n\nFix websocket connections on test client\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ef24a1cc1e144f73c9fc71eb514ea67478ac504c\"><tt>ef24a1cc</tt></a> Fix websocket connections on test client\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c997ec0c922b724b6752a87e0759e9b387ca052e\"><tt>c997ec0c</tt></a> v0.10.0 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.10.0\"></a>\n## [v0.10.0](https://github.com/99designs/gqlgen/compare/v0.9.3...v0.10.0) - 2019-09-24\n- <a href=\"https://github.com/99designs/gqlgen/commit/75a837522ff029e1d0c5349922182c14023649ef\"><tt>75a83752</tt></a> release v0.10.0\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/0bc3cc86fae5aef301b93a6e206cb275a053b2a1\"><tt>0bc3cc86</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/875\">#875</a> from 99designs/fix-clientwide-opts</summary>\n\nFix client global options\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/b43edf5d613c79cbc3d4e26a9446a81f80437a07\"><tt>b43edf5d</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/874\">#874</a> from 99designs/configurable-slice-element-pointers</summary>\n\nAdd config option to omit pointers to slice elements\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/921aa9cf9055575d19d967e976eabe5e6aee2872\"><tt>921aa9cf</tt></a> Fix client global options\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d0098e60acc03cc7314bfc743579be75c46625a8\"><tt>d0098e60</tt></a> Add config option to omit pointers to slice elements\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/0189328068eb49438a131715a6d9354dc30731db\"><tt>01893280</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/819\">#819</a> from 99designs/fix-directive-interface-nils</summary>\n\nFix directives returning nils from optional interfaces\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/34d109754e83d85262d53a5b7df098e07908007c\"><tt>34d10975</tt></a> Fix directives returning nils from optional interfaces\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/eea38e55661d6de749d1851e6d4447331a063df7\"><tt>eea38e55</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/862\">#862</a> from qhenkart/fixes-shareable-link-setting</summary>\n\nfixes shareable link button in playground\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/b5e78342937549496dbc3a362ed7a2a8738279c6\"><tt>b5e78342</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/870\">#870</a> from 99designs/ws-init-ctx</summary>\n\nAllow changing context in websocket init func\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/034aa627cfa5b943497b54595e87b53637a6d1f5\"><tt>034aa627</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/871\">#871</a> from 99designs/subscription-middleware</summary>\n\nCall middleware and directives for subscriptions\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/7b41ca3c13858ca6e69659ade6bc0fc7a54d81da\"><tt>7b41ca3c</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/872\">#872</a> from 99designs/autobind-prefix</summary>\n\nAllow prefixes when using autobind\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/de8e559f5a90fb1120bec15465f10cc5adea74cc\"><tt>de8e559f</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/854\">#854</a> from wabain/nested-map-interface</summary>\n\nFix for nested fields backed by map or interface\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/cc64f331d1024d485ee583cdd0be61e8cf03a506\"><tt>cc64f331</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/828\">#828</a> from 99designs/feat-rc</summary>\n\nintroduce RequestContext#Validate and use it instead of NewRequestContext function\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ed2a853637e3bb944fe7264c22496b5c6e4c5a2e\"><tt>ed2a8536</tt></a> Allow prefixes when using autobind\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/819cc71b92808353fe73c88904aa7057db6abcb3\"><tt>819cc71b</tt></a> Call middleware and directives for subscriptions\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5a7c5903f64efb240d575ef947b0ed1d59b1a3d0\"><tt>5a7c5903</tt></a> Allow changing context in websocket init func\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/17f32d28c29ec45dce407f2f6afac16bdd8d64ca\"><tt>17f32d28</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/861\">#861</a> from 99designs/refactor-test-client</summary>\n\nRefactor test client\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ed14cf045779a9a485b2f31a523b120c60f463a3\"><tt>ed14cf04</tt></a> Update playground.go</summary>\n\nfix formatting\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ee8d7a173d3fb8066dff40e6e9c0b4d1e9260b71\"><tt>ee8d7a17</tt></a> Update playground.go</summary>\n\nfix formatting\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/27389951d110511732010349e2c519cfa71319c5\"><tt>27389951</tt></a> fixes shareable link button in playground\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4162d11e2badb02e7a7e1974d02838a1127fcb47\"><tt>4162d11e</tt></a> Refactor test client\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8ed6ffc7a183732696564f7cdd800c2bb29e4ea6\"><tt>8ed6ffc7</tt></a> Fix for nested fields backed by map or interface\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/55b2144289debeb5ca104a4d01d36f96be5ed84c\"><tt>55b21442</tt></a> Update stale.yml\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/feebee7d305e02b6ba96eb9307922436a61f99a4\"><tt>feebee7d</tt></a> stalebot\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/7e643fdc5cc5097f786ef6a386e28feee293fd7a\"><tt>7e643fdc</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/838\">#838</a> from 99designs/fix-directive-nil</summary>\n\nfix directives return nil handling\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f33e09e8109cfcc1ef2dd4096d27d0a4b6eee9c8\"><tt>f33e09e8</tt></a> Merge branch 'master' into fix-directive-nil\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8590edef5b8bbf094240f33c0ed696e034ca80e0\"><tt>8590edef</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/839\">#839</a> from 99designs/fix-nil-directive</summary>\n\nrefactor unimplemented directive handling\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1f7ed0d52ac853830c164d5d3ebbed8a77c8d710\"><tt>1f7ed0d5</tt></a> refactor unimplemented directive handling\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/94ad3f2e92e0fd7ffc99566f3c4e1abe7a616acc\"><tt>94ad3f2e</tt></a> fix directives return nil handling\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5c644a6fbef1a9bc1c50ef6975686711ec31ff28\"><tt>5c644a6f</tt></a> v0.9.3 postrelease bump\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/82758be87d570691febde1f1072a435af4c3920c\"><tt>82758be8</tt></a> fix error\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/edde2d03aa14cb1b6c42748bd40e9c87f6670d12\"><tt>edde2d03</tt></a> add OperationName field to RequestContext\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/830e466ec066f58c93d1f38ada51c6c874b74e19\"><tt>830e466e</tt></a> introduce RequestContext#Validate and use it instead of NewRequestContext function\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.9.3\"></a>\n## [v0.9.3](https://github.com/99designs/gqlgen/compare/v0.9.2...v0.9.3) - 2019-08-16\n- <a href=\"https://github.com/99designs/gqlgen/commit/a7bc468ca1b184a5ce1b07ea331e0121fc56ae82\"><tt>a7bc468c</tt></a> release v0.9.3\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/fc02cfe83a8f78f36b5e37a63b0a87bf511e94b2\"><tt>fc02cfe8</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/829\">#829</a> from 99designs/fix-2directives</summary>\n\nfix go syntax issue when field has 2 directives\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/924f620c4110ac02b76d302d686f3c58e77948ed\"><tt>924f620c</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/831\">#831</a> from yudppp/patch-1</summary>\n\nFixed scalar reference documentation\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ca4cc732569d70c84aea94dd1f22c5748e23881e\"><tt>ca4cc732</tt></a> Fixed scalar documents\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cc9fe1450c86effb85642bca00735ef17f0415f8\"><tt>cc9fe145</tt></a> fix go syntax issue when field has 2 directives\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6b70be0316bce27b048f64a44f82f1e450716d2c\"><tt>6b70be03</tt></a> v0.9.2 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.9.2\"></a>\n## [v0.9.2](https://github.com/99designs/gqlgen/compare/v0.9.1...v0.9.2) - 2019-08-08\n- <a href=\"https://github.com/99designs/gqlgen/commit/4eeacc6e4cb7bedc7c5312b6a3947697ad5cfb55\"><tt>4eeacc6e</tt></a> release v0.9.2\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5628169dd38517e856e3d12b50696b4e9a79d60f\"><tt>5628169d</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/822\">#822</a> from 99designs/windows-import-path-loop</summary>\n\nfix for windows infinite loop\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a861aa524c4d96da8a4b25f75fde5006a29398c0\"><tt>a861aa52</tt></a> lint fix\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6348a5632123286aae227c456f5178275ddb737a\"><tt>6348a563</tt></a> fix for windows infinite loop\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/12893fa4db4bcd5b341aed584dd584d0c6f2b226\"><tt>12893fa4</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/821\">#821</a> from 99designs/fix-init</summary>\n\nFix config loading during gqlgen init\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5fafe79c050ae34448ee495c703caced6b8f3126\"><tt>5fafe79c</tt></a> Fix config loading during gqlgen init\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/2599f5607863415a015feb97f1abb9d46359e1ee\"><tt>2599f560</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/820\">#820</a> from 99designs/keepalive-on-init</summary>\n\nsend keepalive on init\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/139e4e8d444b5c6fb27406ad610ca4fce897710a\"><tt>139e4e8d</tt></a> More directive docs\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f93df34059a0867c7c33bc992aff0e3a5ddb0f14\"><tt>f93df340</tt></a> send keepalive on init\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8f0d9b482a9b735810a99c80543c37323592e4e9\"><tt>8f0d9b48</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/816\">#816</a> from nii236/patch-1</summary>\n\nUpdate cors.md to allow CORS for websockets\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/297e09c4a99356b8c7ef7ec7922ba86a94d4c435\"><tt>297e09c4</tt></a> change origin check\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/410d83225aec8f4cb20e50b2a187a16d6dceded6\"><tt>410d8322</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/805\">#805</a> from andrey1s/golangci</summary>\n\nenable-all linters on golangci-lint\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/504a96bc30e1a672191c5baedc60916cd44e57d3\"><tt>504a96bc</tt></a> set enabled linters\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/91966ef485331c61177b384bfb029e51eb0a3cb1\"><tt>91966ef4</tt></a> add example to lint\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bcddd7aad8eb4147f13a845d20d391790f6512c9\"><tt>bcddd7aa</tt></a> fix typo in readme\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cce06f1d060bbb5093e6c5b992ec907499725403\"><tt>cce06f1d</tt></a> update lint in circleci\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/da1c208e00658e40800af7029fd4b522c5f9655c\"><tt>da1c208e</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/795\">#795</a> from oshalygin/feature/issue-794-resolve-dead-readme-link</summary>\n\nUpdate GraphQL Reference Link\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8343c32c2b0059bd8d04ac56fa3c82bbbb6b908e\"><tt>8343c32c</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/784\">#784</a> from y15e/add-missing-header</summary>\n\nAdd a missing \"Upload\" header\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8302463fb74745c198436381049f7adbd750421e\"><tt>8302463f</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/797\">#797</a> from muesli/format-fixes</summary>\n\nFormat import order using goimports\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f2825e09c2331e21d0e3bdbeba4ffbd23cd7a1b0\"><tt>f2825e09</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/801\">#801</a> from Schparky/patch-1</summary>\n\nDocumentation: getting-started edits\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/3db5627f2f3987b7cec7e8732b24cc2fdf27fc24\"><tt>3db5627f</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/807\">#807</a> from flrossetto/patch-1</summary>\n\nFix doc\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ab228f1bd4477dcb2ceea091acef17d35322cbb2\"><tt>ab228f1b</tt></a> Update cors.md to allow CORS for websockets\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/c4ac93473b017e423823716f2548a633f2527517\"><tt>c4ac9347</tt></a> Fix doc</summary>\n\nmap[string]{interface} -> map[string]interface{}\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fbbed5b82a01e037c4c08871c35c129f7f008c36\"><tt>fbbed5b8</tt></a> use alias when invalid pkg name\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2591ea36be96a057f27c571668f303ce95647f8b\"><tt>2591ea36</tt></a> fix lint prealloc\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3b0e44fecf327e380162c367073ce574849d2201\"><tt>3b0e44fe</tt></a> fix lint misspell\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6ff62b61668930c1565a59d8900d0b96353d0210\"><tt>6ff62b61</tt></a> fix lint gocritic\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cb7f482b9167917c71eddb6ea661faf72b5a90ec\"><tt>cb7f482b</tt></a> fix lint unparam\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/620552be324097b65576240b0f886a687bb57f88\"><tt>620552be</tt></a> fix lint goimports\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/477e804eb60c07391b609aaf35e83670484d2059\"><tt>477e804e</tt></a> update config golangci\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5b203bcca8e36841e7249aa1adb409cb261a695d\"><tt>5b203bcc</tt></a> clarify where the go:generate line should be added\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2a3df24e66417c6071f281fa4cdba328709c7dca\"><tt>2a3df24e</tt></a> Replace the -v flag as described below.\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f3eeb6392dd06b43f6819c3ee946dbd949727e7b\"><tt>f3eeb639</tt></a> Clarify that the schema file will be generated\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3ac17960bb4b8a32c47368567c8b8beef9b90b4d\"><tt>3ac17960</tt></a> Missing '*' in Todos resolver example\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bd598c2ce3daa89958573f56f40bf01c948f1cc9\"><tt>bd598c2c</tt></a> Format import order using goimports\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/419f966d3c30abe85b53594f2fb5c51f2da07cf1\"><tt>419f966d</tt></a> Update GraphQL Reference Link (closes <a href=\"https://github.com/99designs/gqlgen/issues/794\"> #794</a>)</summary>\n\n- The link in the readme has been updated to reference a post by\n  Iván Corrales Solera, \"Dive into GraphQL\".  The previous link\n  does not resolve, likely because the personal site is no longer\n  hosted.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/373359de83dd626d4a19ec57b7b599c58c88ca2c\"><tt>373359de</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/781\">#781</a> from 99designs/fix-default-directives-init</summary>\n\nSet default directives after parsing config\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ca8b21e31f05a633ac79f79328fb3993cbfe7b8d\"><tt>ca8b21e3</tt></a> Add a missing header\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8cab5fba1f1c7ebda1a3cffc789a7ab7a2ac2736\"><tt>8cab5fba</tt></a> Set default directives after parsing config\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d2c5bf2ae2d8d7da647aded0b3287be4ad2547a9\"><tt>d2c5bf2a</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/780\">#780</a> from zdebra/master</summary>\n\nfixed generating a description to golang comments for enum type\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/bf2cc90ec9bda2be035d6fc93f58344577f12172\"><tt>bf2cc90e</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/768\">#768</a> from 99designs/fix-ptr-from-directive</summary>\n\nFix pointer returns from directive\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/446c3df37f727fd638442669f2e86b12fa688c3a\"><tt>446c3df3</tt></a> fixed generating a description to golang comments for enum type\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/414a4d3414b2b5856851816f0152980098f7b3ab\"><tt>414a4d34</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/771\">#771</a> from sunfmin/master\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4d1484b012d9f0d35d82f1ffa24157e66faac444\"><tt>4d1484b0</tt></a> Fix doc for how to use [@goField](https://github.com/goField) directives forceResolver option\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6f3d73103dae0fa8f409b8b869421ba1c57f3e90\"><tt>6f3d7310</tt></a> Fix pointer returns from directive\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/21b65112e5952aee4a5cf40da97551ccbf246552\"><tt>21b65112</tt></a> v0.9.1 postrelease bump\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.9.1\"></a>\n## [v0.9.1](https://github.com/99designs/gqlgen/compare/v0.9.0...v0.9.1) - 2019-06-27\n- <a href=\"https://github.com/99designs/gqlgen/commit/b128a29122e8ca8ada5f34cc18338fa7c10fc5b4\"><tt>b128a291</tt></a> release v0.9.1\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1bbc0cd60235877c2aa14242f5d4ec8c4bab5083\"><tt>1bbc0cd6</tt></a> Update release process to keep tags on master</summary>\n\nthis was affecting the version shown in go modules when using commits\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5ffc29754dd71a847f6860f0fb37d75dea367ee7\"><tt>5ffc2975</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/764\">#764</a> from 99designs/fix-field-directives-on-roots</summary>\n\nfix field schema directives applied to roots\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ef3830b5e951d30dd49c43183dc029c79c338645\"><tt>ef3830b5</tt></a> fix field schema directives applied to roots\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/17ee40ba40898db7b8293e537ee6bb0aa953c0b3\"><tt>17ee40ba</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/761\">#761</a> from 99designs/autobinding</summary>\n\nAutobind models\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b716bfac517ae641461df88c525643b5fcdf184e\"><tt>b716bfac</tt></a> Autobind models\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/fc3755f1c2f0eb6383c59646388161052aa5e676\"><tt>fc3755f1</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/732\">#732</a> from 99designs/schemaconfig-plugin</summary>\n\nAdd a plugin for configuring gqlgen via directives\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c14f8650d72591d6ae7a75e904118c05cf1e291f\"><tt>c14f8650</tt></a> Add docs\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/64aca616f334797818f7272c0c11eccc86d2d93b\"><tt>64aca616</tt></a> Merge remote-tracking branch 'origin/master' into schemaconfig-plugin\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5e7e94c80034a986f45305eb6c5ed559259fbd16\"><tt>5e7e94c8</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/756\">#756</a> from andrey1s/field</summary>\n\ngenerate field defenition and execute field directive\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ad2ca304b532470721a0a6d2a9a78b85eef633cf\"><tt>ad2ca304</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/759\">#759</a> from 99designs/circle-workflows</summary>\n\nCircleCI workflows\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0fc822ca68f02fe7c510519ca91c7e0a131fbb99\"><tt>0fc822ca</tt></a> CircleCI workflows\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/2dc8423b7937c9d012ee8886d2854011cf61dee7\"><tt>2dc8423b</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/758\">#758</a> from franxois/patch-1</summary>\n\nUpdate dataloaders.md\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d0db28ab9b1327bb539b57cd68a82835b48afc37\"><tt>d0db28ab</tt></a> Update dataloaders.md</summary>\n\nMake SQL request use requested IDs\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a58ecfe9be6b8aa9201a3221e2838ea7cf5b2f9f\"><tt>a58ecfe9</tt></a> add example and test field directive\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/526beecb981b91e3e880050af655b4caa43f4fb4\"><tt>526beecb</tt></a> update generate field\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6e9d7dab9458106d2deed0e83910202d6625245b\"><tt>6e9d7dab</tt></a> generate types directive by location\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/dfec7b687fb5b61780941f51a53b195dadca8621\"><tt>dfec7b68</tt></a> define fieldDefinition template\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/be890ab9a1d887a1993aa3403c4e36c294003187\"><tt>be890ab9</tt></a> use UnmarshalFunc in args directives implement\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/dd162f04051c034bfae7c8fb3732975dec449586\"><tt>dd162f04</tt></a> define implDirectives template\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/56f3f92b8ee315ef8a3c32484e6b63dd13ae574a\"><tt>56f3f92b</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/755\">#755</a> from 99designs/fix-globbing-windows</summary>\n\nfix globbing on windows\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a4480fb078794d8761a77d5053abf7fd0cb759fc\"><tt>a4480fb0</tt></a> fix globbing on windows\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ba176e2efbc717c6da5ca9b604524104c3daddec\"><tt>ba176e2e</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/754\">#754</a> from 99designs/coveralls</summary>\n\nAdd coveralls\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f28ed264310d3c62c0a19a5de742d006019a7675\"><tt>f28ed264</tt></a> Add coveralls\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f4a69ab5fa6235e840c1059fbf0a670c1ab69177\"><tt>f4a69ab5</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/744\">#744</a> from andrey1s/directive</summary>\n\nadd Execute QUERY/MUTATION/SUBSCRIPTION Directives\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/dbd2cc6e5d5eedfad3c857c4d8cb1052a25ff19f\"><tt>dbd2cc6e</tt></a> simplify resolver test\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/7fed71b6ce42790a2894fb550ef33f186acacd65\"><tt>7fed71b6</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/728\">#728</a> from fgallina/make-generated-resolver-dependent-types-follow-configured-type</summary>\n\nresolvergen: use the resolver type as base name for dependent types\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/cb284c568490926d6d25999daab9ee3ad3bc6a06\"><tt>cb284c56</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/734\">#734</a> from DBL-Lee/master</summary>\n\nAutomatic Persisted Queries\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/726a94f4895cb9d7ca031e97893e60eac3ac0e5d\"><tt>726a94f4</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/750\">#750</a> from 99designs/ws-connection-param-check</summary>\n\n[websocket] Add a config to reject initial connection\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/69d7e28241b9847a073f1a335a5cc12e2efddf05\"><tt>69d7e282</tt></a> move directive to directives.gotpl\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/090f0bd949536c41d2d0610c0454263bd80f8243\"><tt>090f0bd9</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/722\">#722</a> from marwan-at-work/deps</summary>\n\nresolve all pkg dependencies\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c397be0c409c7566214fa673a504a4f5821d4bf5\"><tt>c397be0c</tt></a> Update websocketInitFunc to return error instead of boolean\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/be18ae1feaedfdba4787a745b8b62d981955912c\"><tt>be18ae1f</tt></a> Add a test\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a6508b6d4fbec8fcba56091293fc4e5ade3a13aa\"><tt>a6508b6d</tt></a> Update typing, function name and small code refactor\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e6d791a9b83827bb5054b023baf100c5866d54bd\"><tt>e6d791a9</tt></a> Add websocketOnConnectFunc as a config that can be used to validate websocket init requests\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/c5acbead96b3c2c307809b8dd37af9dda610a84b\"><tt>c5acbead</tt></a> resolvergen: use the resolver type as base name for dependent types</summary>\n\nThe template was outputing invalid code since the resolver type was\nnot used in places like the embedding at {query,mutation}Resolver.\n\nThis change also ensures that objects like {query,mutation}Resolver\nalso use the user provided type name as suffix.\n\nHere's the resulting diff on the code generation with `type:\nGeneratedResolver` in the resolver config:\n\n```\ndiff -u resolver.go resolvernew.go\n--- resolver.go 2019-05-26 20:04:15.361969755 -0300\n+++ resolvernew.go      2019-05-26 20:04:54.170737786 -0300\n@@ -7,20 +7,20 @@\n type GeneratedResolver struct{}\n\n func (r *GeneratedResolver) Mutation() MutationResolver {\n-       return &mutationResolver{r}\n+       return &mutationGeneratedResolver{r}\n }\n func (r *GeneratedResolver) Query() QueryResolver {\n-       return &queryResolver{r}\n+       return &queryGeneratedResolver{r}\n }\n\n-type mutationResolver struct{ *Resolver }\n+type mutationGeneratedResolver struct{ *GeneratedResolver }\n\n-func (r *mutationResolver) CreateTodo(ctx context.Context, input NewTodo) (*Todo, error) {\n+func (r *mutationGeneratedResolver) CreateTodo(ctx context.Context, input NewTodo) (*Todo, error) {\n        panic(\"not implemented\")\n }\n\n-type queryResolver struct{ *Resolver }\n+type queryGeneratedResolver struct{ *GeneratedResolver }\n\n-func (r *queryResolver) Todos(ctx context.Context) ([]*Todo, error) {\n+func (r *queryGeneratedResolver) Todos(ctx context.Context) ([]*Todo, error) {\n        panic(\"not implemented\")\n }\n```\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cfdbc39ac69a08450ebf70dfaa40f4b86225d0a2\"><tt>cfdbc39a</tt></a> update QueryDirectives\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f32571ee002479dc07c3b81548d15fdc1169bfa6\"><tt>f32571ee</tt></a> add SUBSCRIPTION Directive\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/32462d0f1c2cd6b9f94639ee83da288d25219eae\"><tt>32462d0f</tt></a> update example todo add directive with location QUERY and MUTATION\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3eec887a69508b9e431d384a9adae8ee53d63b97\"><tt>3eec887a</tt></a> add Execute QUERY/MUTATION/SUBSCRIPTION Directives\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8fcc186817974f99060f0f815dd3935876607bf0\"><tt>8fcc1868</tt></a> format\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e0e1e318bb5bbae97348f3d773fd16d8f7fc8317\"><tt>e0e1e318</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/1\">#1</a> from radev/master</summary>\n\nSupport for external APQ cache\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9873d998b54009721c81b3c13b23f975463aaf02\"><tt>9873d998</tt></a> Add APQ documentation with example\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/48292c1020344b7686efa6667ea16ed7706ece14\"><tt>48292c10</tt></a> Support pluggable APQ cache implementations.\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/694f90aa089c34a80bf3007a6d298a96ba7f132c\"><tt>694f90aa</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/717\">#717</a> from cbelsole/schema_file_globbing (closes <a href=\"https://github.com/99designs/gqlgen/issues/631\"> #631</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9be5aad0cf295796e01ea0955ff53f944a8c5cb9\"><tt>9be5aad0</tt></a> Don't inject builtins during schema config\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8dc17b470d339f5fcd6e1cf9a3d14dec2df4067e\"><tt>8dc17b47</tt></a> support GET for apq\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d36932c55ee97e41567eb9c42d49a884388095d0\"><tt>d36932c5</tt></a> support automatic persisted query\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/de75743c1169cc0e51de0049e78c7f7c0bd92cef\"><tt>de75743c</tt></a> Add plugin for providing config via schema directives\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/17a82c37e86df494354c92de4b306a15c11747ee\"><tt>17a82c37</tt></a> Provide config to skip generating runtime for a directive\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ba7092c595a7e62f3a2350504f35bd2cc11b0c1b\"><tt>ba7092c5</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/724\">#724</a> from saint1991/patch-1</summary>\n\nadded a missing close bracket\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9c1f8f2a10f3664749b51dc8805448881d73c625\"><tt>9c1f8f2a</tt></a> added a missing close bracket\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3dd8baf528b79dc3945f6a156c7cb7316ef87479\"><tt>3dd8baf5</tt></a> resolve all pkg dependencies\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1617ff28daba04a67413ba9696c7650e718aa080\"><tt>1617ff28</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/718\">#718</a> from hh/fix-docs (closes <a href=\"https://github.com/99designs/gqlgen/issues/714\"> #714</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9d332a7d77d025b2f4e9bec74a8c7c06c6129098\"><tt>9d332a7d</tt></a> Fixing getting-started documentation\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/39db147719f48556710f1f5afedf6e79bc8affc4\"><tt>39db1477</tt></a> updated docs\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e32c82be0f3d562b149c01b08f459b6515b75aca\"><tt>e32c82be</tt></a> cleanup\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e9389ef8f8eee80eec108983575ed303e99000e9\"><tt>e9389ef8</tt></a> added schema file globbing fixes <a href=\"https://github.com/99designs/gqlgen/pull/631\">#631</a>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/4f163cbc8466634ddaeca0a4071813a76ec55ea5\"><tt>4f163cbc</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/713\">#713</a> from 99designs/faq</summary>\n\nAdd faq section\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3a21b36965067663a85745c1d0df06894be7af67\"><tt>3a21b369</tt></a> Add faq section\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.9.0\"></a>\n## [v0.9.0](https://github.com/99designs/gqlgen/compare/v0.8.3...v0.9.0) - 2019-05-15\n- <a href=\"https://github.com/99designs/gqlgen/commit/ea4652d223c441dc77b31882781ce08488763d67\"><tt>ea4652d2</tt></a> release v0.9.0\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f3c8406d909bd3f7bce89897637648870f7b1295\"><tt>f3c8406d</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/710\">#710</a> from 99designs/slice-pointers</summary>\n\nUse pointers to structs inside slices\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e669d476e6a04bf2fb43ed8e53bb28e91b424a3a\"><tt>e669d476</tt></a> fix imports for vendor based projects\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/315141d9bd2ab14169a88a50f19326c4483d17e3\"><tt>315141d9</tt></a> Use pointers to structs inside slices\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/9a6a10abe7d927f2d3271acc9bff9058cd070bf9\"><tt>9a6a10ab</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/706\">#706</a> from 99designs/mapping-primitive</summary>\n\nFix mapping object types onto go primitives\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a5120054d3bafebd6bbb9557e6b4e773c40d6693\"><tt>a5120054</tt></a> fix binding to primitive non leaf types\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b0cd95a19710fd92ab9e76422591ac9f0c5a6f31\"><tt>b0cd95a1</tt></a> Test mapping object types onto go string\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/eaa61bb56c75a6fdb98ee7b53b81b70b519b35ba\"><tt>eaa61bb5</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/707\">#707</a> from 99designs/gomodules-performance</summary>\n\nmake gqlgen generate 10x faster in some projects\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ab961ce000f72314346521009172e6391d107b69\"><tt>ab961ce0</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/705\">#705</a> from 99designs/fix-error-race</summary>\n\nFix a data race when handling concurrent resolver errors\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/71cc8554135ea424df46baf1f41dd9b43de0e673\"><tt>71cc8554</tt></a> make gqlgen generate 10x faster in projects with cgo\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cab4babec38b23dc30f0ecfc53a92a1c2dce41fd\"><tt>cab4babe</tt></a> Test mapping object types onto go primitives\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/962470dec347d728e236395c59844ae0acf22333\"><tt>962470de</tt></a> Fix a data race when handling concurrent resolver errors\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/9ca43ba938f6c67a33986cddf650658fc406fe95\"><tt>9ca43ba9</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/701\">#701</a> from 99designs/modelgen-pointers</summary>\n\nUse pointers when embedding structs in generated structs\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4f5e9cf03a047ce69523df374be8dd3991735f65\"><tt>4f5e9cf0</tt></a> always use pointers when refering to structs in generated models\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e2ac84807945c048572c49bb73b48aa70845ca04\"><tt>e2ac8480</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/704\">#704</a> from tul/doc-typo</summary>\n\nFix typo\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/80ebe644b0286a466beea67f6a76c910b083b8fd\"><tt>80ebe644</tt></a> Fix typo\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/0bd9080964817324cbb046a3833bdfc4674d22fb\"><tt>0bd90809</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/700\">#700</a> from 99designs/fix-interface-caseing</summary>\n\nFix interface casing\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5586ee2c0e610ad2f257d2bda577d97437bbb17e\"><tt>5586ee2c</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/702\">#702</a> from 99designs/drop-automatic-zeroisnull</summary>\n\nDrop automatic conversion of IsZero to null\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/75aa99ad2bfc9506c76bb86ff810461b699ec31d\"><tt>75aa99ad</tt></a> Drop automatic conversion of IsZero to null\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/46c40b748d55bcecd236c1ca827cef00808a5363\"><tt>46c40b74</tt></a> Fix interface casing (closes <a href=\"https://github.com/99designs/gqlgen/issues/694\"> #694</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e49d44f7464a05347691bfa9ed9eab44bf4ffe5f\"><tt>e49d44f7</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/689\">#689</a> from tgwizard/enforce-request-content-type</summary>\n\nEnforce content type for POST requests\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/78f277e9178316fe8ae3e646a5d5c1ba4c9e5d15\"><tt>78f277e9</tt></a> run go generate\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d4b3de3aff5eeb6ad9a7093e6b3905edeef10f1e\"><tt>d4b3de3a</tt></a> Merge remote-tracking branch 'origin/master' into enforce-request-content-type\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f8ef6d2e2be1b481f4fdbb065da5b50236600143\"><tt>f8ef6d2e</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/668\">#668</a> from mbranch/complexity</summary>\n\nFix: complexity case selection\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/c4805049b75965b1305583fda6e60487c727d8a0\"><tt>c4805049</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/655\">#655</a> from hantonelli/file-upload</summary>\n\nFile upload\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5d1dea0a104ff07f657aa18e63097bf1626174a7\"><tt>5d1dea0a</tt></a> run go generate\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8a0c34a485d06a2eea5e8fb7cbc0aed0a025d80d\"><tt>8a0c34a4</tt></a> Merge branch 'master' into file-upload\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/4e359aa26d29f8a182010e907a834ee948abf45d\"><tt>4e359aa2</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/686\">#686</a> from qhenkart/master</summary>\n\nAdds default custom scalar of interface{}\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/aeccbce0fe78665cd0d7d55c42b4df142623fe6b\"><tt>aeccbce0</tt></a> Update test include an example that uses io.Read interface directly\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d9dca642e348a9e8ea8749cd48235bf4da633b63\"><tt>d9dca642</tt></a> Improve documentation\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f30f1c312f5e49142578705cef05ef753bcc4277\"><tt>f30f1c31</tt></a> Fix fmt\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/54226cdbb2ab5e2f687241357ec9c062667e7b8a\"><tt>54226cdb</tt></a> Add bytesReader to reuse read byte array\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/02e9dd8e842028aa3e38da361f04b1d5d406f024\"><tt>02e9dd8e</tt></a> Fix complexity case selection</summary>\n\nUse the GraphQL field name rather than the Go field name in the generated\n`Complexity` func.\n\nBefore this patch, overloading complexity funcs was ineffective because they\nwere never executed.\n\nIt also ensures that overlapping fields are now generated; mapping all possible\nfield names to the associated complexity func.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bf2d07a47fa57b27434a02021ca8ed868019ba9c\"><tt>bf2d07a4</tt></a> moves naming convention to a non-go standard\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d1e8acda1dd71b8f944ab08019e70ae6092ab61a\"><tt>d1e8acda</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/687\">#687</a> from stereosteve/fix-includeDeprecated</summary>\n\nFix: omit deprecated fields when includeDeprecated=false\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f7d0b9c824c025856d066a76c320a7752f45b519\"><tt>f7d0b9c8</tt></a> Enforce content type for POST requests\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7d0b8eecc94c16d46a653758de9c8506b953b8c0\"><tt>7d0b8eec</tt></a> Fix: omit deprecated fields when includeDeprecated=false\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/89c873459212f48d95e16d87d5732460d229255e\"><tt>89c87345</tt></a> fix grammar in docs\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/85643f5dad6ff410ebb78f26539e845f38df37e1\"><tt>85643f5d</tt></a> fix import\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ca96a1550d4581d9aef9532b8eacdbcf6e0122a0\"><tt>ca96a155</tt></a> update docs\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1de25d0c65d549e10684d55e674a1ec1748aea86\"><tt>1de25d0c</tt></a> adds interface scalar type\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/43fc53f9a90429c6693bfe88afaa83b1de8591e3\"><tt>43fc53f9</tt></a> Improve variable name\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b961d34e06ee088251ffbe2929c86db4381dec24\"><tt>b961d34e</tt></a> Remove wrapper that is now not required\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bb0234760f8d30ce1d142fe117d5b857eff7cb8e\"><tt>bb023476</tt></a> Lint code\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f8484159adde6204e727c3edc09bb7ca4e264029\"><tt>f8484159</tt></a> Modify graphql.Upload to use io.ReadCloser. Change the way upload files are managed.\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/0306783ed6c9eeb371f5775a33cfc505a9961351\"><tt>0306783e</tt></a> Revert \"Change graphql.Upload File field to FileData.\"</summary>\n\nThis reverts commit 7ade7c2\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/afe33f73875beca92e917742c1f49c1f6145018b\"><tt>afe33f73</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/680\">#680</a> from asp24/collect-fields-performance</summary>\n\nBetter CollectFields performance\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7ba1b3b298695a7382abda437d3417d0aeae9c5b\"><tt>7ba1b3b2</tt></a> graphql.CollectFields now accept *RequestContext as first arg It was done because RequestContext is a part of executionContext and can be passed directly without extraction from ctx. This is increasing performance when model depth is high\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5dfa2285234fc7fe2839bd567a09351e6f6f2136\"><tt>5dfa2285</tt></a> Pre-allocate mem for collectFields() method result slice\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/88cdbdf10d5e2da58b06249202fbb2769e21d0bb\"><tt>88cdbdf1</tt></a> Rename getOrCreateField to getOrCreateAndAppendField to describe behaviour\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a74abc4738315f36fee98ad53ac02a0b2093e36a\"><tt>a74abc47</tt></a> Early return in shouldIncludeNode if directives empty\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7ade7c21d83d37397bd0fa42dc7bfadcdd492fa9\"><tt>7ade7c21</tt></a> Change graphql.Upload File field to FileData.\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/da52e810cf98ffe9a57cb0a8ecf68df97f6ac6f7\"><tt>da52e810</tt></a> Extend test and don't close form file.\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1c95d42a4cd8e20fd41dba4170e02e03ad7dacbe\"><tt>1c95d42a</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/678\">#678</a> from jonatasbaldin/gin-context-recipe</summary>\n\nFix unset key and comment block at Gin recipe docs\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0b39c44526fa300bb9341edd1e11fa71e7cdcd74\"><tt>0b39c445</tt></a> Fix unset key and comment block\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5aa6a20b72ec0d90dc676abcd796ad33b2e39a83\"><tt>5aa6a20b</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/673\">#673</a> from marwan-at-work/tpl</summary>\n\ncodegen/templates: allow templates to be passed in options instead of…\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/37fd067e8099e2c11706db7c2d00f27bc8c76dd0\"><tt>37fd067e</tt></a> fix typo\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e69b739955acd2e2bd744ec84abc61661ca6a626\"><tt>e69b7399</tt></a> add docs to the templates package\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8cae895b99cad57406851d11b2fd92c628f18ff6\"><tt>8cae895b</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/676\">#676</a> from jonatasbaldin/gin-context-recipe</summary>\n\nAdd recipe to use gin.Context\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/40c7b9524d94b342a6169653483dd8f87061f1ec\"><tt>40c7b952</tt></a> update test name\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5418a290f381f85c89562cd7366d3f6ee98f3777\"><tt>5418a290</tt></a> Add recipe to use gin.Context\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/16f392eeaffb9c3e9e973288c5cbe23c118ac0ad\"><tt>16f392ee</tt></a> add unit test\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a0ee7172289ff0bd0c00d45f50b80766a7f93f48\"><tt>a0ee7172</tt></a> codegen/templates: allow templates to be passed in options instead of os files\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2cf7f452dd9ca5b4baa1399c501926a51debf59d\"><tt>2cf7f452</tt></a> Fix comments (add request size limit, remove useless comments, improve decoding and function signature, improve documentation)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5ff60925ce417b4689cd745361bb800608192dfe\"><tt>5ff60925</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/665\">#665</a> from ezeql/patch-1</summary>\n\nupdate README.md\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/b42e1ba633f1da7845159bd2d6b0903ada51e843\"><tt>b42e1ba6</tt></a> update README.md</summary>\n\nfix link\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d3770395a23e6ec92e06886036f1832f4ddf9af2\"><tt>d3770395</tt></a> Fix tests.\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2c1f8573321521e6ca70c73f6a78192a9ca38066\"><tt>2c1f8573</tt></a> Fix lint errors.\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/73b3a5366cd145534014215d9c7597619d64b506\"><tt>73b3a536</tt></a> Fmt graphql.go\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/83cde4b69e95758e8a819cc5ab02ab9f1a3301b3\"><tt>83cde4b6</tt></a> Fix tests. Improve code format.\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/425849a697d475c70ba496f079d9cc5f46f457b2\"><tt>425849a6</tt></a> Improve fileupload example readme. Update scalars.md. Add file-upload.md\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/849d4b1eaa5bf2141ef30e9a0d850f851770dcbe\"><tt>849d4b1e</tt></a> Make uploadMaxMemory configurable\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fc318364521228b1cf208fb6157e77a4d2af0ff0\"><tt>fc318364</tt></a> Improve format, inline const.\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/662dc3372caa4aca09474eb67ff0c35b838af3f3\"><tt>662dc337</tt></a> Move Upload to injected if defined in the schema as scalars\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f244442e86a96c99333610972134cf90a081fddc\"><tt>f244442e</tt></a> Fix merge. Remove regexp check.\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/bf79bc9289961295db8067f662a8b9a5619d5c30\"><tt>bf79bc92</tt></a> Merge branch 'master' into next</summary>\n\n# Conflicts:\n#\tcodegen/config/config.go\n#\thandler/graphql.go\n#\thandler/graphql_test.go\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bd4aeaa6596443a044d7f0c0df4b1a8ed894f461\"><tt>bd4aeaa6</tt></a> Merge remote-tracking branch 'upstream/master'\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3a6f2fb7e7e83d7de00fc6198795257f81c40d59\"><tt>3a6f2fb7</tt></a> Improve test code\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/239bc46f6f54f7d7f28f6f182b93a91dbc75d50d\"><tt>239bc46f</tt></a> Add comments\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/be8d6d1249bca523133950a631686267467c0d96\"><tt>be8d6d12</tt></a> Improve test\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4d92696bf6e87404f85aaea0a5bfd8c15b7744b7\"><tt>4d92696b</tt></a> Clean up code and add tests\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2c414edcbb3f672afea9cb7d1cfa822129674b84\"><tt>2c414edc</tt></a> Improve and add tests\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/68446e17d6157036cd59d897a35724dac43647bc\"><tt>68446e17</tt></a> Revert change to websocket_test\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/61c1cb9cbb5b1cb154901526beec94041c8b35b2\"><tt>61c1cb9c</tt></a> Improve examples\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/493d9375b767f85333e4f7d70d1bab9c0e47e475\"><tt>493d9375</tt></a> Improve examples\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3c5f8bb9f7e47ee3e39cc2cd254191d274e1c59f\"><tt>3c5f8bb9</tt></a> Improve some examples\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/db7a03b117ba2fd74346f669df9b926e46b891c7\"><tt>db7a03b1</tt></a> Improve tests and names\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c493d1b96c33ab73ab27332cd9ba41a9f073170b\"><tt>c493d1b9</tt></a> Revert changing to websocket_test\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/998f7674cae96d0cf7eca9eaffffc4cab3e55b0a\"><tt>998f7674</tt></a> Revert changing the stub file\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a7e95c597673673cb71a9f3e8f64a33f3dc1a197\"><tt>a7e95c59</tt></a> Fix tests. Improve file generation\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/10beedb30fe05e94891cbffdc314498b4cc005c7\"><tt>10beedb3</tt></a> Remove not required file\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5afb6b4059b8d13206d19ad5ad4277698c118370\"><tt>5afb6b40</tt></a> Add file upload to default schema\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9c17ce33f74900fcb2db4285f30b1d57143759e6\"><tt>9c17ce33</tt></a> Add file upload\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b454621d436be44ef082bb82c841fe404a91639f\"><tt>b454621d</tt></a> Add support to upload files.\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.8.3\"></a>\n## [v0.8.3](https://github.com/99designs/gqlgen/compare/v0.8.2...v0.8.3) - 2019-04-03\n- <a href=\"https://github.com/99designs/gqlgen/commit/010a79b66f08732cb70d133dcab297a8ee895572\"><tt>010a79b6</tt></a> release v0.8.3\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/3623f7fcd78ac6e8ddaff3ecfb5b0e006c8e862a\"><tt>3623f7fc</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/650\">#650</a> from andcan/plugin-funcmap</summary>\n\nAllow plugins to provide additional template funcs\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a2e5936250f2807a1d1faebd1a2bf0d918af533d\"><tt>a2e59362</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/652\">#652</a> from andrey1s/extraBuiltins</summary>\n\nadd extra builtins types when no type exists\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/c93d92ba10391cd0a1e44e493ed38ff85bb2acb0\"><tt>c93d92ba</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/654\">#654</a> from sharkyze/fix-introscpetion-doc</summary>\n\ndoc: fix mistake on introspection doc page\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/93e72b589b09e7582f072d9e911decb2d897c971\"><tt>93e72b58</tt></a> doc: fix error on introspection doc page\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ef2e51ba3e4b6408c48f4e44e0b048947196719b\"><tt>ef2e51ba</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/637\">#637</a> from 99designs/fix-is-slice</summary>\n\nFix Mapping Custom Scalar to Slice\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e5ff6bc2c3bedb73df62f81a35056957c061f81c\"><tt>e5ff6bc2</tt></a> add extra builtins types when no type exists\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8225f63a89a8ee272d454399fa295785bb8416fc\"><tt>8225f63a</tt></a> Allow plugins to provide additional template funcs\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7b533df1a00be66e2ebe7a4268add80a5aa123e1\"><tt>7b533df1</tt></a> Update ISSUE_TEMPLATE.md\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/055157f979f06a490979726db7ec20d8d9a634d4\"><tt>055157f9</tt></a> Update ISSUE_TEMPLATE.md\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a148229cff7c5cb02b61caba81d7142ec9ef9948\"><tt>a148229c</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/644\">#644</a> from Sauraus/master</summary>\n\nFix Gin installation instruction\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/52624e5372f260077e90645732dd24b8d1fad317\"><tt>52624e53</tt></a> Fix Gin installation instruction</summary>\n\nCurrent `go get gin` instruction results in an error from Go: `package gin: unrecognized import path \"gin\" (import path does not begin with hostname)`\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/515f22547466f30865a313e46d9ae499468d0cf1\"><tt>515f2254</tt></a> Add test case for custom scalar to slice\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/2284a3eb7c2d41458c60f2ca603220d4e7ffa80e\"><tt>2284a3eb</tt></a> Improve IsSlice logic to check GQL def</summary>\n\nCurrently TypeReference.IsSlice only looks at the Go type to decide.\nThis should also take into account the GraphQL type as well, to cover\ncases such as a scalar mapping to []byte\n\n</details></dd></dl>\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.8.2\"></a>\n## [v0.8.2](https://github.com/99designs/gqlgen/compare/v0.8.1...v0.8.2) - 2019-03-18\n- <a href=\"https://github.com/99designs/gqlgen/commit/ee06517c25deb254fa6708609ee5fd3fb3fbdbf2\"><tt>ee06517c</tt></a> release v0.8.2\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8ac8a1f8142aaa0a4ce12d30c9680236efbffb03\"><tt>8ac8a1f8</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/635\">#635</a> from 99designs/fix-inject-builtin-scalars</summary>\n\nOnly Inject Builtin Scalars if Defined in Schema\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d10e048e5be9ec34451a8c180d19cbcdcedc753c\"><tt>d10e048e</tt></a> Add docs for built-in scalar implementations\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d27e6eb65e8fb62ac9893c2992157a5050923c57\"><tt>d27e6eb6</tt></a> Add example case for object type overriding builtin scalar\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d567d5c8f737fc9870e4772e9e04e5e0dbe04e7a\"><tt>d567d5c8</tt></a> Inject non-spec builtin values only if defined\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/3e39b57a98fac8d4db1a85e0b998bd83e29fb9c5\"><tt>3e39b57a</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/634\">#634</a> from 99designs/fallback-to-string</summary>\n\nUse graphql.String for types wrapping a basic string\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a2cce0d14984402fccd9e8abb9f286a80e7296fb\"><tt>a2cce0d1</tt></a> Use graphql.String for types wrapping a basic string\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/fc05501b87c73faf116b1096490978254b4f2436\"><tt>fc05501b</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/633\">#633</a> from 99designs/fix-union-pointers</summary>\n\nFix Having Pointers to Union Types\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f02dabb7bad39e049323e05b171feb8f387d257a\"><tt>f02dabb7</tt></a> Add test case for union pointer\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8257d423e8c2d936bf03de1aa4f6215dfdf7229c\"><tt>8257d423</tt></a> Check Go type rather than GQL type for ptr</summary>\n\nThis is probably a more correct way to check whether we should wrap the\ntype in a pointer or not, rather than looking at the GrapQL definition.\nThere may be use-cases where a GraphQL interface/union might be mapped\nto a Go stuct.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5df0938f0dfa6418457a23b31c5bd1b3bc7e879d\"><tt>5df0938f</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/628\">#628</a> from 99designs/fix-ambient-imports</summary>\n\nMove ambient imports into cmd package\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8e1590d784e27a0dc3fbb4779453ad3a732f1e53\"><tt>8e1590d7</tt></a> Move ambient imports into cmd package</summary>\n\nThe getting started docs for dep suggest creating a local gqlgen script,\nhowever these ambient import are in the root, so dep misses them.\n\nThis was changed in 0.8 but the ambient imports weren't moved.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/58744de96123b48aea4728f844b01694ff2b8ae9\"><tt>58744de9</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/622\">#622</a> from 99designs/handle-complexity-root-collisions</summary>\n\nHandle colliding fields in complexity root gracefully\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c889b3148f631f9e6a9467ee60cf3d21c0333ff8\"><tt>c889b314</tt></a> Handle colliding fields in complexity root gracefully\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/26c395b02c59e39b264ab3f9750f845e660ad99c\"><tt>26c395b0</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/620\">#620</a> from codyleyhan/cl/error</summary>\n\nAllow user to supply path to gqlerror\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/12cf01aa60fef7be26b6c78ac3139b407ed7a455\"><tt>12cf01aa</tt></a> Allow user to supply path to gqlerror\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/932322b6da351176889e41102f032202d1b0778c\"><tt>932322b6</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/619\">#619</a> from 99designs/nil-slices</summary>\n\nSupport returning nulls from slices\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a48c55b24e22490ef3b6baffec247cf41b2f07f3\"><tt>a48c55b2</tt></a> Support returning nulls from slices\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/2b270e4d5f469bf764fff2e7c76ee3abc6d2aaa8\"><tt>2b270e4d</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/618\">#618</a> from codyleyhan/cl/method</summary>\n\nAdds way to determine if a resolver is a function call or value\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/af6dc16d8b2637c961fc5b8ad76418670a3df1e4\"><tt>af6dc16d</tt></a> Add test for IsMethod in resolver\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/27e97535903e956eaf48acb08951b49539c7f80f\"><tt>27e97535</tt></a> Expose IsMethod to resolver context\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f52726dec03743d4e96aa0f56e2b6569d55beaba\"><tt>f52726de</tt></a> Update README.md\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ac2422e3ccf40361d7fc597c7e8d55df314c87c3\"><tt>ac2422e3</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/614\">#614</a> from wesovilabs/master</summary>\n\nAdding entry for workshop\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/db4f7255b11fc4468e7642894f007fde9e2b1102\"><tt>db4f7255</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/613\">#613</a> from icco/patch-2</summary>\n\nUpgrade graphql-playground to 1.7.20\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/163bfc76c47e6663a8514020db26f67f0786c8b9\"><tt>163bfc76</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/612\">#612</a> from 99designs/maps-changesets</summary>\n\nMaps as changesets\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6aa9dfc65af4ebd6c5373b854b40fe0a97f6dfbc\"><tt>6aa9dfc6</tt></a> Adding entry for workshop\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/08f936e1ec91f1af2bca22de8511cc13b47c6e09\"><tt>08f936e1</tt></a> Upgrade graphql-playground to 1.7.20</summary>\n\nCSS didn't change but js did.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8fb1fafdcf641f4520b726d209cf2eb685dd69f3\"><tt>8fb1fafd</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/611\">#611</a> from 99designs/gqlparser-1.1.2</summary>\n\nBump gqlparser to 1.1.2\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/37983a5f1c799ee856fe59677578301fac3405d7\"><tt>37983a5f</tt></a> remove some invalid test schema\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/765ff73865ac2d61eb8b6c9fe4534e5a4fbc072e\"><tt>765ff738</tt></a> Add some docs on maps\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0a92ca465691ea96186481471ec1ba01d6ecfaf8\"><tt>0a92ca46</tt></a> Support map[string]interface{} in return types\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ac56112b0cb83260f8f9b18ee5f03bb0af6f6905\"><tt>ac56112b</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/610\">#610</a> from tgwizard/dynamic-complexity</summary>\n\nAllow configuring the complexity limit dynamically per request\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a89050aa1f1ffb93950eccb48bf1156da9587850\"><tt>a89050aa</tt></a> Bump gqlparser to 1.1.2\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/dd2881455f20f37ec601791bf09e32db9e928790\"><tt>dd288145</tt></a> Allow configuring the complexity limit dynamically per request\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/485ddf3051a289874577c8384a22d7e58b199e72\"><tt>485ddf30</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/605\">#605</a> from 99designs/fix-default-scalars</summary>\n\nFix default scalars\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/3ca2599adf049dba59dbf904de1ab0aeb14e2da3\"><tt>3ca2599a</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/606\">#606</a> from jonatasbaldin/add-gin-recipe</summary>\n\nAdd Gin recipe\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/386eede91a4d5b3b2b35944d08716c4ed0e4886a\"><tt>386eede9</tt></a> Add Gin recipe\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/22be59d159135252154e46e21b0e0cbdf0fb23b9\"><tt>22be59d1</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/604\">#604</a> from cevou/arg-scalar</summary>\n\nFix directives on args with custom type\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d02736dcdd9860685c2ea0c34a9a7e7626316d0f\"><tt>d02736dc</tt></a> Added test for fix directives on args with custom type\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/30d235bc781c1976c08def2ca5283998f4786d76\"><tt>30d235bc</tt></a> Fix default scalars\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d7b5dc283de948282815a8addaa4ef36d8253358\"><tt>d7b5dc28</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/591\">#591</a> from 99designs/fix-577</summary>\n\nFix mixed case name handling in ToGo, ToGoPrivate\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bef6c0a960bb9646f617af8c337b17b6c3e63da1\"><tt>bef6c0a9</tt></a> Fix directives on args with custom type\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bc386d79c8cee441951f71814be1a61bbd4b9a5b\"><tt>bc386d79</tt></a> Fix mixed case name handling in ToGo, ToGoPrivate\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.8.1\"></a>\n## [v0.8.1](https://github.com/99designs/gqlgen/compare/v0.8.0...v0.8.1) - 2019-03-07\n- <a href=\"https://github.com/99designs/gqlgen/commit/229185e45e9f411de393ee22f0daf0c30ad83812\"><tt>229185e4</tt></a> release v0.8.1\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d872af63addc93b6b8e8df37a82bd33e312f5b59\"><tt>d872af63</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/582\">#582</a> from demdxx/master</summary>\n\nLoad the playground sources from HTTPS by default\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8e66832f1f8fad88af08b05e0f5f0a36a7b4e0a4\"><tt>8e66832f</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/589\">#589</a> from 99designs/fix-autocasing-modelgen-bugs</summary>\n\nFix autocasing modelgen bugs\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/de3b7cb825c9676c720826472c7c54b0c0301ce0\"><tt>de3b7cb8</tt></a> Fix autocasing modelgen bugs\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8e00703ebe967db83bf5544e169a8b0cc5895866\"><tt>8e00703e</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/588\">#588</a> from 99designs/fix-default-scalar-implementation-regression</summary>\n\nFix default scalar implementation regression\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b27139ed5c290214d979e374a23689fc36eed78a\"><tt>b27139ed</tt></a> Fix default scalar implementation regression\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/737a59a31d6663987127ff604f671d326e509337\"><tt>737a59a3</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/579\">#579</a> from 99designs/fix-camelcase</summary>\n\nTake care about commonInitialisms in ToGo\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/52838cca91034b6e26733eaa896e3c426be50eed\"><tt>52838cca</tt></a> fix ci\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2c3783f18f3b679ece4fffed18fa839977e8359d\"><tt>2c3783f1</tt></a> some refactoring\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/eb4536743c4dc507df32da1fe7a581052f7c438c\"><tt>eb453674</tt></a> address comment\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/dcd208d91603475f4cb3505e89a71aeb53d0c52f\"><tt>dcd208d9</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/584\">#584</a> from 99designs/fix-deprecated-directive\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5ba8c8ead3ca891601215263b5969e4942c52a6b\"><tt>5ba8c8ea</tt></a> Add builtin flag for build directives</summary>\n\nThese have an internal implementation and should be excluded from the\nDirectiveRoot. In the future this may be a func that plugins could use\nto add custom implementations.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/b8526698d46f6a3e7726bfdd6c33163e06cb2ea1\"><tt>b8526698</tt></a> Load the playground sources from HTTPS by default</summary>\n\nFor some browsers on non-secure domains resources from CDN doesn't loads, so I made all cdn.jsdelivr.net resources of the playground by HTTPS by default\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6ea48ff69aa370cc8fe7f498149f55859c3c11dd\"><tt>6ea48ff6</tt></a> Take care about commonInitialisms in ToCamel\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1968a7bcfff5a640b4fb80aecc485d404bf596e3\"><tt>1968a7bc</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/576\">#576</a> from jflam/patch-1</summary>\n\nUpdate README.md\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/44becbbe3afc314ba19778a18b0e7733645eaf24\"><tt>44becbbe</tt></a> Update README.md</summary>\n\nFixed typo in MD link ttps -> https\n\n</details></dd></dl>\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.8.0\"></a>\n## [v0.8.0](https://github.com/99designs/gqlgen/compare/v0.7.2...v0.8.0) - 2019-03-04\n- <a href=\"https://github.com/99designs/gqlgen/commit/f24e79d00425f1bbf13fbc79f0230ff4b2037955\"><tt>f24e79d0</tt></a> release v0.8.0\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/55df9b8d926d238ede66a29cd7b38513ab2bb2f7\"><tt>55df9b8d</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/574\">#574</a> from 99designs/next</summary>\n\nv0.8.0\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/aedcc68ada4d9c299e6a1c96c56059787a193403\"><tt>aedcc68a</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/573\">#573</a> from 99designs/plugin-docs</summary>\n\nVery rough first pass at plugin docs\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8f91cf56cf39de4f3845395f3564224452d9b95b\"><tt>8f91cf56</tt></a> Very rough first pass at plugin docs\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/3d9ad75ebd191d578a5b8085f150be6c9e42b3d2\"><tt>3d9ad75e</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/572\">#572</a> from 99designs/handle-nonexistant-directories-when-genreating-packagenames</summary>\n\nHandle non-existant directories when generating default package names\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/08923334725c963ffcff948efe030881d658c38a\"><tt>08923334</tt></a> Handle non-existant directories when generating default package names\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/2ef4b443a873c8be7ccabdbba39b941d71cd64d1\"><tt>2ef4b443</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/571\">#571</a> from 99designs/automatically-bind-to-int32-int64</summary>\n\nAutomatically bind to int32 and int64\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/2888e96c01bbcb4614f636bbc5dd9ecf4af45284\"><tt>2888e96c</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/570\">#570</a> from 99designs/vendor-packages-workaround</summary>\n\nWorkaround for using packages with vendored code\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fb87dc3942e4179aa1eb8007f8f3d384fd4b9fca\"><tt>fb87dc39</tt></a> Automatically bind to int32 and int64\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f2d9c3f74f11947f4ae1e6fdaa12d2095ab30518\"><tt>f2d9c3f7</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/569\">#569</a> from 99designs/improve-introduction</summary>\n\nIntroduction Improvements\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1e7aab63fc134090a47d1f3634bab4d8f3d35291\"><tt>1e7aab63</tt></a> Workaround for using packages with vendored code\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5c692e294e71aa6846192ce71e90c983d760d114\"><tt>5c692e29</tt></a> User README as canonical introduction\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/25bdf3d6bff9790ffb0eb8ef7b4422e4008386f7\"><tt>25bdf3d6</tt></a> Consolidate Introduction documents\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d81670d8bf568c4d5ed5b8db1274c3cf496db416\"><tt>d81670d8</tt></a> Add initial contributing guidelines\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d9a9a532178aff2def9992c39db37fcd79092fa2\"><tt>d9a9a532</tt></a> playground: secure CDN resources with Subresource Integrity\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/cb38b4be9c6baa228a67e897d1bdfa205142ea7b\"><tt>cb38b4be</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/568\">#568</a> from MichaelMure/secured-playground</summary>\n\nplayground: secure CDN resources with Subresource Integrity\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/0258e1a29685aa8fd0adda5f9a7d57fb60f7ce22\"><tt>0258e1a2</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/565\">#565</a> from steebchen/next</summary>\n\nFix cli config getters\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6ad1d97e52a5c003f8014dc0ed00663caf4a1118\"><tt>6ad1d97e</tt></a> Move feature comparison\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/37cbbd6de2268ca9b0930abc3e39abc72e685e58\"><tt>37cbbd6d</tt></a> playground: secure CDN resources with Subresource Integrity\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/da12fd11020c4d2449f5abb2545ce28d4dde75dd\"><tt>da12fd11</tt></a> Fix cli config getters\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/51266b8f7ab04827838098a328ef9fcd70b545a2\"><tt>51266b8f</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/554\">#554</a> from 99designs/fix-missing-recover</summary>\n\nRecover from panics in unlikly places\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/67795c95b21a60fda303b35e509a447653bc8351\"><tt>67795c95</tt></a> Recover from panics in unlikly places\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/56163b4584483d70ba5dd2cb5b968e63447c36e6\"><tt>56163b45</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/553\">#553</a> from 99designs/getting-started-0.8</summary>\n\nUpdate Getting Started for 0.8 and Go Modules\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0bd120b5c27fa81fc3f60f662496bc3328f3ad86\"><tt>0bd120b5</tt></a> Update dep code as well\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6c5760320cc3834d46cd190fa906bdf7c033a5da\"><tt>6c576032</tt></a> Update getting started with 0.8 generated code\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ba761dcf38224e9a3da08bc678fe2e2415d0df28\"><tt>ba761dcf</tt></a> Reintroduce main package in root\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cdc575a23d5a8191e51176214a4aad0cbea5feb2\"><tt>cdc575a2</tt></a> Update getting started with Go Modules support\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/378510e5cd93d65003b605a7451021e0d7d3b533\"><tt>378510e5</tt></a> Move Getting Started above Configuration\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d261b3fbb107b328ef6ffcfdbbc0e0903b1c5767\"><tt>d261b3fb</tt></a> Fix navigation font weights\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/327a1a34f92860957148a011ce8e043224cf8cc5\"><tt>327a1a34</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/551\">#551</a> from 99designs/improved-collect-fields-api</summary>\n\nImproved Collect Fields API and Documentation\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/6439f197d0d84d22b1abf3068bd7982bb3c98c22\"><tt>6439f197</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/552\">#552</a> from 99designs/always-return-struct-pointers</summary>\n\nAlways return *Thing from resolvers for structs\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/318639bbbb71985778ca2ee796bfe22fe231808e\"><tt>318639bb</tt></a> Always return *Thing from resolvers for structs\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e61b3e0be1fc52d94f0bbc80f7c486bb9eeb4f40\"><tt>e61b3e0b</tt></a> Add Field Collection docs\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ef0223cfdf8a17e8dc5f83ef6a14e4f5a12ddd49\"><tt>ef0223cf</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/541\">#541</a> from 99designs/fix-underscore-only-fields</summary>\n\nAllow underscore only fields and naming collisions to be aliased explicitly\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/58b2c74f6d7dd5ecf4503d1adab5bcd3838aef73\"><tt>58b2c74f</tt></a> drive by config fix\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f6c52666a789164d9efcc22473a5911c56c34b00\"><tt>f6c52666</tt></a> Add a test for aliasing different cases (closes <a href=\"https://github.com/99designs/gqlgen/issues/376\"> #376</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8c2d15ee698737bc1c524ecc11a96deb1c7253fc\"><tt>8c2d15ee</tt></a> Fix underscore only fields (closes <a href=\"https://github.com/99designs/gqlgen/issues/473\"> #473</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0eb8b5c158eb2cfcad62444869ef077be1c7e1e0\"><tt>0eb8b5c1</tt></a> Merge remote-tracking branch 'origin/master' into HEAD\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/015d02ebca21137a2bf5aff0e379956da14c2628\"><tt>015d02eb</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/542\">#542</a> from Elgarni/add-more-validation-checks-on-yml-config-file</summary>\n\nAdd more validation checks on .yml config file\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/647c62a555775a278f1df528a3e71d14ad39320f\"><tt>647c62a5</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/550\">#550</a> from 99designs/fix-unstable-marshaler-func</summary>\n\nFix unstable external marshaler funcs with same name as type\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3a8bf33f05dbdaacf8a2bba0114977eeab1615b9\"><tt>3a8bf33f</tt></a> Add CollectAllFields test cases\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9ebe77175f676c267fb9091042ec3da209479659\"><tt>9ebe7717</tt></a> Fix unstable external marshaler funcs with same name as type\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a1195843c84e17593a5b22c811484bb0f0b3d63b\"><tt>a1195843</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/544\">#544</a> from enjoylife/fix-directive</summary>\n\nFix directives on fields with custom scalars\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/dc925c462705af9e61357d038b6a3f869f1f3157\"><tt>dc925c46</tt></a> Added a test for config checking\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b56cb659d36b090b0c26277c061d2b9a4ed2c4a9\"><tt>b56cb659</tt></a> Refactored config check so that it runs after being normalized\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/dc6a7a36272c22a045dad6e8a7dd47d5f1a41a0c\"><tt>dc6a7a36</tt></a> Add CollectAllFields helper method\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a2e61b3d628bf5e0f5b12e961f82a68fba066448\"><tt>a2e61b3d</tt></a> Added a model and used directive on an input field within the integration schema</summary>\n\nAdded to the integration schema such that the build will catch the directive bug in question.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0b0e4a91a0827c66fd3d6f6b5a58177be96ce860\"><tt>0b0e4a91</tt></a> Fix directives on fields with custom scalars\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8ac0f6e4e0ae01485bf240286533c2cc1da42d81\"><tt>8ac0f6e4</tt></a> Removed redundant semicolons\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3645cd3ecf6c11cde04e65493afb7d3db34e04dd\"><tt>3645cd3e</tt></a> Add more validation checks on .yml config file\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1b8b1ea16cb53e976af44f7d126446b5eba52d97\"><tt>1b8b1ea1</tt></a> Fix typo in README</summary>\n\nFix typo in README in selection example directory to point to the selection example, not the todo example.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/66120d8fbff69609195a6483e53de00ccb5b54dd\"><tt>66120d8f</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/535\">#535</a> from awiede/master</summary>\n\nFix typo in README\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fcacf200a365c1ad4201d17c8243a7d598765922\"><tt>fcacf200</tt></a> Merge remote-tracking branch 'origin/master' into HEAD\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/b9819b21789c0543161f77dd811a8b208ec17f0f\"><tt>b9819b21</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/540\">#540</a> from 99designs/check-is-zero</summary>\n\nAutomatically convert IsZero to null\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/03a655dc9e9d7a1db9271a385b3c3b0854fceec7\"><tt>03a655dc</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/526\">#526</a> from 99designs/union-fragment-bug</summary>\n\nUnion Fragment Bug Fix\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/99e9f41fd92a958226c960260de82cc0c0fd85f2\"><tt>99e9f41f</tt></a> Use Implements for type Implementors in codegen\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ccca823f7257048049df495b88e0c33818db5a4b\"><tt>ccca823f</tt></a> Separate out conditionals in collect fields</summary>\n\nThese conditions are not really related, and I missed the second\nconditional when reading through the first time.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/efe8b026d562b95b6cd95f3df3b64e4624ed2b01\"><tt>efe8b026</tt></a> Add reproducable test cases\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/306da15f43db5b796bf7a77e7897e5f8772a7fa9\"><tt>306da15f</tt></a> Automatically convert IsZero to null\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f81c61d3f8fa25b6cc1200f148dfefcd266810f7\"><tt>f81c61d3</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/539\">#539</a> from 99designs/test-nullable-interface-pointers (closes <a href=\"https://github.com/99designs/gqlgen/issues/484\"> #484</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f5200c80a42e5442c34dd97d4d680c240d5b4c46\"><tt>f5200c80</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/498\">#498</a> from vilterp/playground-content-type</summary>\n\nadd `content-type: text/html` header to playground handler\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/de148d133667b3cf0574b2054b8d5579f5c5db1a\"><tt>de148d13</tt></a> Test for <a href=\"https://github.com/99designs/gqlgen/pull/484\">#484</a>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9a48a007bd7ee36752a0879c075bb3470d243ebd\"><tt>9a48a007</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/538\">#538</a> from 99designs/test-input-marshalling (closes <a href=\"https://github.com/99designs/gqlgen/issues/487\"> #487</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7a82ab43a060b334d19c51a353a8924857dd39bb\"><tt>7a82ab43</tt></a> Test for <a href=\"https://github.com/99designs/gqlgen/pull/487\">#487</a>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/48a7e07f4fd28b8bca8c270ee824c5f99436cfaa\"><tt>48a7e07f</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/537\">#537</a> from 99designs/stub-generation</summary>\n\nStub generation\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/787b38d8589a5b4169464a46ab5bd1e87573221c\"><tt>787b38d8</tt></a> Break testserver tests down into smaller files using stubs\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c5e3dd44959d59bef6830cbe2652498e49b53089\"><tt>c5e3dd44</tt></a> add stub generation plugin\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/43db679a9d39ed4939b2c06aeed5b6ee95b961cd\"><tt>43db679a</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/534\">#534</a> from 99designs/multiple-bind-types</summary>\n\nMultiple bind types\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b26b915ea6f5a8529cc63c1f5285118426868510\"><tt>b26b915e</tt></a> Move input validation into gqlparser see https://github.com/vektah/gqlparser/pull/96\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/7d394222022613afcbae9b7dbc3083eb7ce0c1fe\"><tt>7d394222</tt></a> Fix typo in README</summary>\n\nFix typo in README in selection example directory to point to the selection example, not the todo example.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/42131868df3225cc1960e205dc56f769c03bb285\"><tt>42131868</tt></a> Linting fixes\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/956d03063de0e021ec7d23e4a6695fdafe0a01f6\"><tt>956d0306</tt></a> Arg type binding\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6af3d85da38a4768598f2a0a07be2da6c3f1b5f3\"><tt>6af3d85d</tt></a> Allow multiple field bind types\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3015624baf4f280a1b6812b39ddb1c2506ccd4a7\"><tt>3015624b</tt></a> Regen dataloader with correct version\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/50f7d9c846f48a0824946aa4f3ca0b7d9fc572cd\"><tt>50f7d9c8</tt></a> Add input field directives back in\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8047b82ad25c4f71741a53360f814a576a06c4b3\"><tt>8047b82a</tt></a> Fix nullability checks in new marshalling\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b3f139c9374854d87d61a0628031136d1f215653\"><tt>b3f139c9</tt></a> Cleanup field/method bind code\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cf94d3ba6a4a7cd513454a8cb4b250f1db68ee53\"><tt>cf94d3ba</tt></a> Removed named types\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/82ded32137fcddf9b295bb283d118183bba983cb\"><tt>82ded321</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/532\">#532</a> from 99designs/fix-missing-json-content-type</summary>\n\nFix set header to JSON earlier in GraphQL response\n\nUpdate the GraphQL handler to set the Response Header to JSON earlier for\nerror messages to be returned as JSON and not text/html.\n\nFixes https://github.com/99designs/gqlgen/issues/519\n\n## Notes:\n- Add checks for JSON Content-Type checks in decode bad queries tests\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/b4c5a074b8250cb6470efbe18e5f2b028437fa37\"><tt>b4c5a074</tt></a> Fix set header to JSON earlier in GraphQL response</summary>\n\nUpdate the GraphQL handler to set the Response Header to JSON earlier for\nerror messages to be returned as JSON and not text/html.\n\nFixes https://github.com/99designs/gqlgen/issues/519\n\n== Notes:\n- Add checks for JSON Content-Type checks in decode bad queries tests\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/533b08b698ae8254d97091ec9e6e0087f7ccaa30\"><tt>533b08b6</tt></a> remove wonky input directives\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/60473555e7668de29c188448558123d9dc8edb3b\"><tt>60473555</tt></a> Shared arg unmarshaling logic\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a7c8abe6d89935c129e982fc91e0afb6db07dc9f\"><tt>a7c8abe6</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/529\">#529</a> from 99designs/websocket-keepalive</summary>\n\nAdd websocket keepalive support\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/555d7468922e2a27411e688f783dcda5c450554c\"><tt>555d7468</tt></a> Remove TypeDefinition from interface building\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cfa012de44b74987653560296ac9571a385c31dd\"><tt>cfa012de</tt></a> Enable websocket connection keepalive by default\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/c5b9b5a812e5b87b4504a64ac201f3f8f0d27d37\"><tt>c5b9b5a8</tt></a> Use constant tick rate for websocket keepalive</summary>\n\nSome clients (e.g. apollographql/subscriptions-transport-ws) expect a\nconstant tick rate for the keepalive, not just a keepalive after x\nduration of inactivity.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/693753fcc69329fba282ad5f1d69c02979cbce08\"><tt>693753fc</tt></a> Add websocket keepalive support\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/162afad73b653d9456d21ec38d00c3476ab2dde4\"><tt>162afad7</tt></a> enums dont exist in runtime\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d0b6485b23f259588e9ecd34e23924c741d9c6f2\"><tt>d0b6485b</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/525\">#525</a> from 99designs/stop-grc-panic</summary>\n\nStop GetResolverContext from panicking when missing\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/78cfff48aa5895a9eefe35615aae3b7b33ed11b1\"><tt>78cfff48</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/528\">#528</a> from 99designs/fix-todo-directive</summary>\n\nFix Todo Example Directive\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5e1bcfaf71d81d8e119758e3ec47e1cdfb0bf092\"><tt>5e1bcfaf</tt></a> Remove parent check in directive</summary>\n\nThis should always be true, and currently has a bug when comparing\npointers to structs. Can just be removed.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c1b50cecda176fadfb98f8b84205058f8d1c7a5b\"><tt>c1b50cec</tt></a> Stop GetResolverContext from panicking when missing\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/44aabbd3e92bc7582f92e74d1d657a626b0a1962\"><tt>44aabbd3</tt></a> Move all build steps back into file containing defs\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4e49d489cf589001179b68efe5ee2f5f1f823070\"><tt>4e49d489</tt></a> Merge object build and bind\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/97764aec135905c4be05ad769b4f680a982b70ba\"><tt>97764aec</tt></a> move generated gotpl to top\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d380eccfd6721769835f1c3ed486ec5a1e5f9b2e\"><tt>d380eccf</tt></a> promote args partial to full template\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1bc51010eb895d675573cae4243207ea3aa6477e\"><tt>1bc51010</tt></a> Everything is a plugin\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/055fb4bc9a6aae2ca92c50deb011b089d6fea5d0\"><tt>055fb4bc</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/514\">#514</a> from 99designs/gomod</summary>\n\nAdd support for go modules\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/48eb6c521259c1b6f80c3849318d7878f1223bf6\"><tt>48eb6c52</tt></a> Update appveyor\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9e02a977daaba56f7c189a54bcc13f2d53e0d2f2\"><tt>9e02a977</tt></a> fix integration test\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/251e8514d637b99bb0e52030dc25483f5e74085d\"><tt>251e8514</tt></a> Add support for go modules\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/62175eab825058eadd79eddf40978db8a194a40b\"><tt>62175eab</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/502\">#502</a> from 99designs/model-plugin</summary>\n\nModel plugin\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0f8844932c526fa14dc81ed14b036537cd5eca35\"><tt>0f884493</tt></a> linting fixes\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c6eb1a854225c2618ee6f281401a90a58f535c59\"><tt>c6eb1a85</tt></a> Extract model generation into a plugin\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d3f1195ce28ba0dab5b7df9a4044777fbfc999db\"><tt>d3f1195c</tt></a> add `content-type: text/html` header to playground handler</summary>\n\nThis ensures that the browser doesn't think it should download the page\ninstead of rendering it, if the handler goes through a gzipping\nmiddleware.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f94b4b7883e0e8e0db78146a4b4efa8a50f917ff\"><tt>f94b4b78</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/497\">#497</a> from azavorotnii/small_fixes</summary>\n\nSmall fixes\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/21769d937f1d0f96d31e95d1adcd0f17da13b009\"><tt>21769d93</tt></a> Ensure no side affect from preceding tests in wont_leak_goroutines test\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/10f4ccde2a5fd79d8cd0fd66d79ceed19dbcd2de\"><tt>10f4ccde</tt></a> newRequestContext: remove redundant else part\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a76e022803d49a5e4cdc95504766e2060fb7124a\"><tt>a76e0228</tt></a> Add cache usage for websocket connection\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/940db1f962c24864fea7e41362f383e163bedd1a\"><tt>940db1f9</tt></a> Fix cacheSize usage in handler\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/fba9a37816b6ff55f80ded3b941a7e85390decb3\"><tt>fba9a378</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/492\">#492</a> from 99designs/unified-merge-pass</summary>\n\nUnified merge pass\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a7f719a3982c24bd36c1f60545a146f59d494cbe\"><tt>a7f719a3</tt></a> update appveyour to not rely on main\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f46b7c8e38a8309243a46002cd9bb47b2f750dcb\"><tt>f46b7c8e</tt></a> Reclaim main package for public interface to code generator\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6b829037855aa73c0dc3f41553cb40e7604217d0\"><tt>6b829037</tt></a> Extract builder object\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/87b37b0c30b98f311d18db56c404679bf40b68e5\"><tt>87b37b0c</tt></a> Replace string based type comparisons with recursive types.Type check\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/82b1917d512e24a1160e0f65f8334257a8abc2eb\"><tt>82b1917d</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/490\">#490</a> from 99designs/bind-directly-to-types</summary>\n\nBind directly to AST types, instead of copying out random bits\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1d86f9883da24d175611d2268b1ecf4485030a85\"><tt>1d86f988</tt></a> extract argument construction\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4b85d1b0363824814bab903fe8d86d661102aa53\"><tt>4b85d1b0</tt></a> Merge buildInput into buildObject\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/db33d7b71c20737e2237139e46c9fc910c6a9d90\"><tt>db33d7b7</tt></a> Extract graphql go merge into its own package\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/afc773b1133ae173c285e68c5b4d2a8f0e24209d\"><tt>afc773b1</tt></a> Use ast definition directly, instead of copying\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8298acb0903f76ae31f92c66ae251f53aa4c22fd\"><tt>8298acb0</tt></a> bind to types.Types in field / arg references too\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/38add2c22a6bc13fecc9bc9180b5c48b208b4cc0\"><tt>38add2c2</tt></a> Remove definition embedding, use normal field instead\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/950ff42c2668399e50d749b8d56e2208e9155142\"><tt>950ff42c</tt></a> Bind to types.Type directly to remove TypeImplementation\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/70c852eb59e98136ae6595b0e756ae94000d5a85\"><tt>70c852eb</tt></a> Add lookup by go type to import collection\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/eb1011617b052446b44239ec2fb9b6f6ee9cfdde\"><tt>eb101161</tt></a> Remove aliased types, to be replaced by allowing multiple backing types\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e79252b0ea6efabfd9131fab703089ed23ff2d38\"><tt>e79252b0</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/488\">#488</a> from 99designs/refactor-config</summary>\n\nRefactor config\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4138a3728d3dec69e509b09ff7f3fe7257f01cf2\"><tt>4138a372</tt></a> rename generator receiver\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bec38c7e304c2bdc2e4ff32661e1d1972cdb1484\"><tt>bec38c7e</tt></a> Extract config into its own package\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/34b878713c95839e085cef8e8fbe377cf7dae725\"><tt>34b87871</tt></a> Rename core types to have clearer meanings\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f10fc649fe4db6a10d048d2bcf2520121a4bbcac\"><tt>f10fc649</tt></a> Merge remote-tracking branch 'origin/next' into HEAD\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/dd972081ca802d30d94a9a6e42879491c572edca\"><tt>dd972081</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/486\">#486</a> from nicovogelaar/feature/list-of-enums</summary>\n\nadd list of enums\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1140dd85782572b148e8ec2c1d9526f87b763a1e\"><tt>1140dd85</tt></a> add unit test for list of enums\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1e3e5e9b36587311b8b632668f83b53278d3f8eb\"><tt>1e3e5e9b</tt></a> add list of enums\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f87ea6e85f867d169760c1bb2a73842f82194363\"><tt>f87ea6e8</tt></a> Merge remote-tracking branch 'origin/master' into HEAD\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/473f4f0c566042e93d7ae9ae3cee49697386a766\"><tt>473f4f0c</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/465\">#465</a> from 99designs/performance-improvments</summary>\n\nPerformance improvments\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f9ee6ce0a09fd587c5786e18d2f089df83a10b55\"><tt>f9ee6ce0</tt></a> return arg in middleware\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5c8b1e24546c78ddc00a05e2605f894d66f2911f\"><tt>5c8b1e24</tt></a> Avoid unnessicary goroutines</summary>\n\ngoos: linux\ngoarch: amd64\npkg: github.com/99designs/gqlgen/example/starwars\nBenchmarkSimpleQueryNoArgs-8      300000             25093 ns/op            6453 B/op        114 allocs/op\nPASS\nok      github.com/99designs/gqlgen/example/starwars    10.807s\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/b0ffa22a8a06fb912b5ef36260b2025bf66e1356\"><tt>b0ffa22a</tt></a> Remove strconv.Quote call in hot path to avoid some allocs</summary>\n\ngo test -benchtime=5s -bench=. -benchmem\ngoos: linux\ngoarch: amd64\npkg: github.com/99designs/gqlgen/example/starwars\nBenchmarkSimpleQueryNoArgs-8      200000             32125 ns/op            6277 B/op        118 allocs/op\nPASS\nok      github.com/99designs/gqlgen/example/starwars    9.768s\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/2cf5a5b8049198e130ccdcd8068cfe321b82e17e\"><tt>2cf5a5b8</tt></a> Add a benchmark</summary>\n\ngo test -benchtime=5s -bench=. -benchmem\ngoos: linux\ngoarch: amd64\npkg: github.com/99designs/gqlgen/example/starwars\nBenchmarkSimpleQueryNoArgs-8      200000             32680 ns/op            6357 B/op        126 allocs/op\nPASS\nok      github.com/99designs/gqlgen/example/starwars    9.901s\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5e0456febd0b1c61fa09fe16f1dbd1d8a56c5b84\"><tt>5e0456fe</tt></a> fix fmt anf metalint generated code\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b32ebe1480704a34bc941553c689e0c4d746bcd5\"><tt>b32ebe14</tt></a> check nullable value for go1.10\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d586bb61f1b4da0a9a916118809cb6dc0c996bbd\"><tt>d586bb61</tt></a> use arg value for the ResolveArgs\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e201bcb5540ecae0c9c9d96868cfce1ba2f79227\"><tt>e201bcb5</tt></a> set default nil arg to ResolverContext\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6fa6364004f9140e62b2b873f0fb5bf344dd68f7\"><tt>6fa63640</tt></a> remove empty line in generated files\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/139ed9fb048a34598cc153f3e8ef3b6b6fa8b220\"><tt>139ed9fb</tt></a> fix go10 assign exist variable by eq\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/428c6300f3f6ddbde7182e56a096307447686109\"><tt>428c6300</tt></a> add nullable argument to directives\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/740960331927b0d7af1e80fca0f3bc4825fa74de\"><tt>74096033</tt></a> move chainFieldMiddleware to generate code for BC\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/be51904c52bfec461626a7765b0c8ef2f063ffe6\"><tt>be51904c</tt></a> check nullable arguments\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6b0050940400bc02da4ccb6827e6ce1237f7b221\"><tt>6b005094</tt></a> add test directives generate\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/047f2ebcaebd043aed4a38cba282b2f5b5602521\"><tt>047f2ebc</tt></a> update inline template\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a13b31e9b40aa9098fcf90fb947b9d854b53dbe1\"><tt>a13b31e9</tt></a> metalinter\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/526bef0bafb42b15952e724570dd16c7366da34e\"><tt>526bef0b</tt></a> generate servers and add path to error\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/29770d6485a69abf86585da6ecb68fb4fe75b4fa\"><tt>29770d64</tt></a> resolve = in template\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3a729cc3c60f1aafdee405513d43cdf43693269d\"><tt>3a729cc3</tt></a> update recursive middleware\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8b3e634e5cc1ba0bf4317629f05872752d0f2ba7\"><tt>8b3e634e</tt></a> update tempate and set Dump public\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e268bb75797fd9cb8a753cc0312fff3e564a20d5\"><tt>e268bb75</tt></a> Merge remote-tracking branch 'upstream/master' into directives\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e8f0578de98539ea16fea15f0033b83615192f96\"><tt>e8f0578d</tt></a> add execute ARGUMENT_DEFINITION and INPUT_FIELD_DEFINITION directive\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.7.2\"></a>\n## [v0.7.2](https://github.com/99designs/gqlgen/compare/v0.7.1...v0.7.2) - 2019-02-05\n- <a href=\"https://github.com/99designs/gqlgen/commit/da1e07f5876c0fb79cbad19006f7135be08590d6\"><tt>da1e07f5</tt></a> release v0.7.2\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8c0562c17743ea26cc316e9ff4cd509054b35287\"><tt>8c0562c1</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/530\">#530</a> from 99designs/websocket-keepalive-master</summary>\n\nAdd websocket keepalive support\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/43fdb7da02b53094b44ce6a268a3e845bedd0967\"><tt>43fdb7da</tt></a> Suppress staticcheck lint check on circleci\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/9c4b877afd9d6396d110957c9947eb62ad9409b7\"><tt>9c4b877a</tt></a> Use constant tick rate for websocket keepalive</summary>\n\nSome clients (e.g. apollographql/subscriptions-transport-ws) expect a\nconstant tick rate for the keepalive, not just a keepalive after x\nduration of inactivity.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d36d3dc567476909853fd3bb0a0b3ba28b24ed9f\"><tt>d36d3dc5</tt></a> Add websocket keepalive support\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/39216361225c6dc824331ad1a218c9c931cc0985\"><tt>39216361</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/476\">#476</a> from svanburen/patch-1</summary>\n\nUpdate config.md\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/9f6f2bb8a58dfc8d8da6714297a460d7d85e55cd\"><tt>9f6f2bb8</tt></a> Update config.md</summary>\n\nAdd a missed word and add an apostrophe\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c033f5fcfdcab6be940356b3d99e3924e7919314\"><tt>c033f5fc</tt></a> Fix edit link positioning\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b3f163d828f65797884a15197f31e49a17f55408\"><tt>b3f163d8</tt></a> Add not about relative generate path\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/675ba773946c772b3bc405f7f9fb7cfe4c8b9a47\"><tt>675ba773</tt></a> Update errors.md\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5c870a489da3eecd57b4152f0501b65cd682f4af\"><tt>5c870a48</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/461\">#461</a> from ryota548/patch-1</summary>\n\nUpdate getting-started.md\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/9bcd27c1a179a8ab2ac546287f1d699b11245af7\"><tt>9bcd27c1</tt></a> Update getting-started.md</summary>\n\nmodify `graph/graph.go` to `resolver.go`\n\n</details></dd></dl>\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.7.1\"></a>\n## [v0.7.1](https://github.com/99designs/gqlgen/compare/v0.7.0...v0.7.1) - 2018-11-29\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/3a7f37c7e22a8fedce430c4d340ad5c1351198f4\"><tt>3a7f37c7</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/455\">#455</a> from 99designs/fix-deprecated-fields</summary>\n\nFix deprecated fields\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b365333ba4015017a05664d382773954be7d71db\"><tt>b365333b</tt></a> Fix graphiql deprecating all fields\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/99610be997bb8f906c2f27cfe010e69693ad2e9e\"><tt>99610be9</tt></a> Get chat example up to date\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.7.0\"></a>\n## [v0.7.0](https://github.com/99designs/gqlgen/compare/v0.6.0...v0.7.0) - 2018-11-28\n- <a href=\"https://github.com/99designs/gqlgen/commit/a81fe5037b2492cdd312a7d8c875677da4b1f6c9\"><tt>a81fe503</tt></a> release v0.7.0\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/4bfc82d782409044f07e002c926f867fdb14ac8d\"><tt>4bfc82d7</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/453\">#453</a> from 99designs/deprecate-binary</summary>\n\nAdd Deprecation Warning to Binary\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8dd29b8548320a3a01a8b7645bc79d5b216edd62\"><tt>8dd29b85</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/454\">#454</a> from 99designs/update-gqlparser</summary>\n\nUpdate gqlparser to latest\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/747c3f9c41903a77781f50d919335d4b29a215b8\"><tt>747c3f9c</tt></a> Update gqlparser to latest\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d6d9885fac16079f92aeda0f6571cc0e7697b0ac\"><tt>d6d9885f</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/416\">#416</a> from 99designs/improved-getting-started</summary>\n\nImprove Getting Started Documentation — No Binary Approach\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d22f03c62d582f36872c85507b75d095c0ec4fc9\"><tt>d22f03c6</tt></a> Add deprecation warning\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/878f3945f1ec84aa26400f67a714fd8cc7db40e3\"><tt>878f3945</tt></a> Minor fixes to getting started code examples\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/6a02657c5a257173034efe93fa8cecd49da7d990\"><tt>6a02657c</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/447\">#447</a> from 99designs/disable-introspection</summary>\n\nAdd config option to disable introspection\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b9fbb642f1f90bf8b173cfabdfc88d24ec36344d\"><tt>b9fbb642</tt></a> Mention recursive-ness of generate ./...\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e236d8f36d8b09e034928761523a21dead7014d5\"><tt>e236d8f3</tt></a> Remove generate command from resolver.go\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/04a72430f5550aa0a052aad20878ccf401eb3b23\"><tt>04a72430</tt></a> Re-add final touches section to getting started\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3a7a506259cce1a7da4ea9ebe74e1358d3c7bed0\"><tt>3a7a5062</tt></a> Add handler import to root cmd\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9dba96d51a60114b2a33a2c296dde02f2306fe41\"><tt>9dba96d5</tt></a> Fix GraphQL capitalisation\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1dfaf637be0b4f7ec2d4063f383e8288c5994c25\"><tt>1dfaf637</tt></a> Minor updates to getting started from feedback\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/94b95d976b490a2342f6f9a18f7b7b36f0e996e7\"><tt>94b95d97</tt></a> Some CSS fixes\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a36fffd213e5860a4d57604829811bc4fc4c0ec7\"><tt>a36fffd2</tt></a> Updated getting started with new no-binary approach\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/601354b364911267763ac8536d9a738edf15a147\"><tt>601354b3</tt></a> Add blockquote breakout style\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/6bea1d88358ced8438311deb7ac488674ebdecf4\"><tt>6bea1d88</tt></a> Merge remote-tracking branch 'origin/master' into disable-introspection</summary>\n\nRegenerate\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e4bad0e6bd11386d8436e1c268a02ed875b52ef5\"><tt>e4bad0e6</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/449\">#449</a> from 99designs/increase-float-precision</summary>\n\nIncrease float precision\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/c5589792b0f69c28a536a13c12dbf2a8f5e11b01\"><tt>c5589792</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/450\">#450</a> from 99designs/import-refactor</summary>\n\nRefactor import handling\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/62f0d085b5a019254b7699e2f02ee0e61c96f52d\"><tt>62f0d085</tt></a> Edit copy for introspection docs\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/63fc2753eb74995bcb65f64914bbd913114cf4da\"><tt>63fc2753</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/452\">#452</a> from cemremengu/patch-1</summary>\n\nFix typo in directives.md\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/da31e8eda2125363b99cc84890ba9da9e0e6cf3f\"><tt>da31e8ed</tt></a> Update directives.md</summary>\n\nFix small typo\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/83e33c135ca0a065c625922cdc8d46808cb73107\"><tt>83e33c13</tt></a> Remove a debug print\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6c57591462cae14ddb9dfff8279e4e4493c44b33\"><tt>6c575914</tt></a> fix doc indentation\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f03b32d3539a231e1c572a92a52090b73a8a3762\"><tt>f03b32d3</tt></a> Use new import handling code\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c45546e57a1f73a57d763cde673fe48462314191\"><tt>c45546e5</tt></a> Increase float precision\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/77f2e2847d8c171563e824cfadc402e8001882ac\"><tt>77f2e284</tt></a> Start moving import management to templates\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c114346d88dbe979b7e5e7c09eacef2bba0f7500\"><tt>c114346d</tt></a> Decouple loader creation from schema\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/9d636e780e5b1aa3a1290b41e590d207764848a5\"><tt>9d636e78</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/448\">#448</a> from 99designs/update-gqlparser</summary>\n\nUpdate to latest gqlparser\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d6ce42df131b868afdec66a00966f7a334233c16\"><tt>d6ce42df</tt></a> Update to latest gqlparser\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b0acd078ac03f165a4d48a18e8e1743086e80270\"><tt>b0acd078</tt></a> Add config option to disable introspection\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f9c880b6ee3a4423320468c1304237af7ee4e8b6\"><tt>f9c880b6</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/446\">#446</a> from 99designs/fix-flakey-test</summary>\n\nFix flakey goroutine test\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5461e967f847df9d8c51d76f193c69b31882e89f\"><tt>5461e967</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/445\">#445</a> from 99designs/remove-graphqlgen</summary>\n\nRemove graphqlgen link\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8a5039d8fe5157003196c995505ae8d1b1a59676\"><tt>8a5039d8</tt></a> Fix flakey goroutine test\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/4b082518034eeae70f74c32ed77b6d590853df25\"><tt>4b082518</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/439\">#439</a> from snormore/pointer-slice</summary>\n\nFix type binding validation for slices of pointers like []*foo\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/293b9eaf5c88e3d524da38cd7421ed0ba038d1b2\"><tt>293b9eaf</tt></a> Remove graphqlgen link\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/77b27884d0d4d5238d9e72ba881ae1b142e6abca\"><tt>77b27884</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/443\">#443</a> from mgutz/patch-1</summary>\n\nfix generate stubs sentence\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ae1c77327b5b91900ac3531521ee0cdf2d56501a\"><tt>ae1c7732</tt></a> fix generate stubs sentence\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/827dac5e0991bb6368f6d47642e9b1e7a232cf4d\"><tt>827dac5e</tt></a> Fix type binding validation for slices of pointers like []*foo\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f7932b40ee0f75b35428af917cd05193b7f3414f\"><tt>f7932b40</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/435\">#435</a> from matiasanaya/update-readme</summary>\n\nUpdate README.md comparison with graph-gophers\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a816208b938269ed569bf6d9b8e9884c28547dfc\"><tt>a816208b</tt></a> Update README.md comparison with graph-gophers\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d25e3b4b2ba627f306dcd703cb98506f3268837b\"><tt>d25e3b4b</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/422\">#422</a> from gracenoah/model-method-context</summary>\n\naccept an optional ctx parameter on model methods\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/0ac6fa5758104b70852eb0c90317fa21f1cd4ecf\"><tt>0ac6fa57</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/434\">#434</a> from urakozz/patch-1</summary>\n\nTracer: fixed nil pointer issue\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d4f7c954a52a1d704fce96971e6ff0c179bb3437\"><tt>d4f7c954</tt></a> Update context.go\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/4c4ccf471f769a402b2231519fd2fcb15d6e5e4a\"><tt>4c4ccf47</tt></a> Update context.go</summary>\n\nRight now code generated with latest master fails since there are usages of Trace but there is no any single write to this variable\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5faf3a2bdf592c8445655b915c56e2762e305dc8\"><tt>5faf3a2b</tt></a> re-generate\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6fed89478253c95b400cb55dfb8d6b7fe47fb776\"><tt>6fed8947</tt></a> rebase fixes\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4c10ba55bb493839605673a63701a4cb84b364e2\"><tt>4c10ba55</tt></a> fix generated code\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8066edb719066f3b306b6e6165ff9e959f298deb\"><tt>8066edb7</tt></a> add tests\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9862c30f17df6dbcc1c3712dc3cff523950ee918\"><tt>9862c30f</tt></a> mention contexts on model methods in docs\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/602a83d6f1ac630b0abf6732375643b48f1b38db\"><tt>602a83d6</tt></a> make ctx method resolvers concurrent\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/497551202238b0befd67d69b1da547bfff660948\"><tt>49755120</tt></a> accept an optional ctx parameter on model methods\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/02a1935255fadced7f122dff7f2a9f54546c9d61\"><tt>02a19352</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/429\">#429</a> from 99designs/refactor-gofmt</summary>\n\napply go fmt ./...\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6a77af136c090502fdffbc0ca19f731080c26021\"><tt>6a77af13</tt></a> apply gofmt on ./.circleci/test.sh\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c656dc3127d29b102bdcd286ac94dc00b2a9600a\"><tt>c656dc31</tt></a> apply go fmt ./...\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/3f598bdc8c72c9f20cb47046aac6837090005452\"><tt>3f598bdc</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/427\">#427</a> from anurag/patch-1</summary>\n\nFix docs typo\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cac61bb2035545137ac96c9d0ac102b71f2f3169\"><tt>cac61bb2</tt></a> Fix docs typo\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/9f4afe3a6eb09e9ba12fbf5591ce3c0f06ad48be\"><tt>9f4afe3a</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/425\">#425</a> from 99designs/render</summary>\n\nSwitch to hosting docs on render.com\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/9875e74bdc2d071773429111d632eec38f978320\"><tt>9875e74b</tt></a> Switch to hosting docs on render.com</summary>\n\nRender.com has offered to host our static site for free, and have\na pretty simple setup for rebuilding on merge to master. I've\nswitched the DNS records and updated the docs.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/981fd10a677716bd3e5b803465e2084e4fac3723\"><tt>981fd10a</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/419\">#419</a> from 99designs/fix-capture-ctx</summary>\n\nfix unexpected ctx variable capture on Tracing\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/027803d23914a1b23082fe7391972a890565d24b\"><tt>027803d2</tt></a> address comment\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2b090de9ebe65dc3c23642d5c6b57d5e7d40d0de\"><tt>2b090de9</tt></a> address comment\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d3238d54013d07d5b543aa01b453fdafa6ac7b3d\"><tt>d3238d54</tt></a> chore\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a2c33f13a501e0b2058f6730cf1ba104a72edfda\"><tt>a2c33f13</tt></a> write ctx behavior test & refactoring tracer test\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5c28d0116ee17a921ab891f06e555fda7cf7ca61\"><tt>5c28d011</tt></a> fix unexpected ctx variable capture on Tracing\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/4bda3bc1291bdc0bc44e3057b5229d987eeecde2\"><tt>4bda3bc1</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/411\">#411</a> from 99designs/feat-geterrors</summary>\n\nadd GetErrors to RequestContext\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a4eaa400c2cdfd0aa6fd4471a5899a93deb460f4\"><tt>a4eaa400</tt></a> add tests for RequestContext#GetErrors\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/53f33f7722464e3063ecd15f053dfe3d79928dff\"><tt>53f33f77</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/410\">#410</a> from 99designs/move-tracing-to-contrib</summary>\n\nMove tracing to contrib\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/19403832ced12b9c610fb773a184eacf4ec8e3f6\"><tt>19403832</tt></a> add GetErrors to RequestContext\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f0dbce5a30b444ece286db2b7bac21dca01de174\"><tt>f0dbce5a</tt></a> Move tracing to contrib\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a3a92775eee4365784bcf35a5cb550027c680fd7\"><tt>a3a92775</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/409\">#409</a> from 99designs/graphql-playground-1.7.8</summary>\n\nBump to the latest version of graphql-playground\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d2648580b441915b0a57b37b70b0e136bc20ea61\"><tt>d2648580</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/402\">#402</a> from 99designs/feat-opencensus</summary>\n\nadd Tracer for OpenCensus\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7286e2445ea6c30040bd12c87f92d36cd21faed5\"><tt>7286e244</tt></a> fix shadowing\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/af38cc5a74ff978e1e266a1e0bb5d0a50be4dd4f\"><tt>af38cc5a</tt></a> Bump to the latest version of graphql-playground\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8bbb5eb79bfcc448851883510aa01d99de3f721c\"><tt>8bbb5eb7</tt></a> fix some tests\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/256e741f8ae41174693757544aea18568f2f8226\"><tt>256e741f</tt></a> add complexityLimit and operationComplexity to StartOperationExecution\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4e7e6a1c7167e938e611dcaffa9c25b34e4ecc02\"><tt>4e7e6a1c</tt></a> Merge branch 'master' into feat-opencensus\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/926ad17adfe84c26db5f4882c289941fe654af31\"><tt>926ad17a</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/403\">#403</a> from 99designs/feat-complexity</summary>\n\ncopy complexity to RequestContext\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2d3026cbaf390d61791e9d892cfc629365e3b137\"><tt>2d3026cb</tt></a> Merge branch 'master' into feat-complexity\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/59ef91ad7bb0790d361f720b89cac9accea00106\"><tt>59ef91ad</tt></a> merge master\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c9368904b5cab04655a1ce2666346c0070f37ed0\"><tt>c9368904</tt></a> Merge branch 'master' into feat-opencensus\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/b26ee6b4ea235d699f34eee09cd569d814a4bafc\"><tt>b26ee6b4</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/404\">#404</a> from 99designs/feat-apollo-tracing</summary>\n\nadd apollo-tracing support\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fd4f55877352659feabd73640fb0816caec3dee9\"><tt>fd4f5587</tt></a> fix timing issue\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/91e3e88d0f212865d9d2f0bd907330eb61974edf\"><tt>91e3e88d</tt></a> address comment\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a905efa88e85bed2f9df597c5bf8581da4a7fab1\"><tt>a905efa8</tt></a> fix lint warning\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b2ba5f86b7e668dcd0c13a490a55015a1ec3fb88\"><tt>b2ba5f86</tt></a> address comment\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/561be1c070c2d3237b38235bc81fd1c4f18d153b\"><tt>561be1c0</tt></a> add Apollo Tracing sample implementation\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/83c7b2cba6c21075913f46515b5ff1483ca619e0\"><tt>83c7b2cb</tt></a> add Start/EndOperationParsing & Start/EndOperationValidation methods to Tracer\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b5305d75c79e9749ea90c7487a54de88ca61be28\"><tt>b5305d75</tt></a> address comment\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/784dc01fdb4f0759e59e32bb48814b94760ca00b\"><tt>784dc01f</tt></a> oops...\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a027ac21c773ed1bf71ec6017e5cafbd140305a2\"><tt>a027ac21</tt></a> copy complexity to RequestContext\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ececa23c60cafd25454d0c2d45f89f6e0549b8f4\"><tt>ececa23c</tt></a> add Tracer for OpenCensus\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/0d5c65b6dc1c80d7809b862fd0b9ad3247926b0f\"><tt>0d5c65b6</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/400\">#400</a> from 99designs/fix-ci</summary>\n\nfix Circle CI test\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/00d11794f4779c4d0755336ecfaf6547a84306da\"><tt>00d11794</tt></a> add mutex to logger\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/884d35c6d7519dd3910e95f2522db6d79380e991\"><tt>884d35c6</tt></a> fix race condition\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f70cedc2bac7e4582e9b50d8b34cb49d41dcc8d2\"><tt>f70cedc2</tt></a> fix Circle CI test\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1b17b5a2489094911e701a299aedee3d1d1a2319\"><tt>1b17b5a2</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/392\">#392</a> from 99designs/feat-tracer</summary>\n\nAdd Tracer layer\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/184e48cbd3c1391a2dd1434b17dc0bcceaf41661\"><tt>184e48cb</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/396\">#396</a> from 99designs/remove-ci-exclusion</summary>\n\nRun generate ./... and test ./... in circle\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/fd5d9ecae750465e74475112f6af0496404db87b\"><tt>fd5d9eca</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/395\">#395</a> from 99designs/feat-extension-example</summary>\n\nadd Type System Extension syntax example\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/686c71a47162855e93a9b8c69d3102b4c1ce63ee\"><tt>686c71a4</tt></a> Run generate ./... and test ./... in circle\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/304d3495819f8cbe163d664ea03736b1dd0107e4\"><tt>304d3495</tt></a> fix https://github.com/99designs/gqlgen\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/85322586f166296310dcd6f0855cbda9c65a8362\"><tt>85322586</tt></a> address comment\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/195f952b91dbeec23f39ba2d91c9bf6c96f42423\"><tt>195f952b</tt></a> fix CI failed</summary>\n\nAppVeyor handle this test, But Circle CI is not\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b5b767c42cae2a9eaebdde1afe9dde1f3accc412\"><tt>b5b767c4</tt></a> address comment\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d723844b9bc3b4115b837399e6d4705ddbf4c0cb\"><tt>d723844b</tt></a> add Type System Extension syntax example\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/df685ef7f771453efed1c4bbfe47bf740202a7f3\"><tt>df685ef7</tt></a> change timing of EndFieldExecution calling\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/94b7ab02b4ca683d4385717433ea5dae2b6138d6\"><tt>94b7ab02</tt></a> refactor Tracer interface signature that fit to apollo-tracing specs\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8eb2675a439e98293a8d799dbd78290f6137d3c2\"><tt>8eb2675a</tt></a> Revert \"change field marshaler return process that make it easy to insert other processing\"</summary>\n\nThis reverts commit 583f98047f5d1b6604d87e7b8d6f8fd38082d459.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c8af48cdaec63ab37226bcc2f2f4b1e071d8e709\"><tt>c8af48cd</tt></a> rename Tracer method name\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a3060e80a1926cffb080932725262f540a6e55f3\"><tt>a3060e80</tt></a> refactor Tracer signature\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d319afe6623c04e99f1186685c0384e43103a790\"><tt>d319afe6</tt></a> add support request level tracer\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1c5aedde3d72e4dd306c0120e6031d66d359d592\"><tt>1c5aedde</tt></a> add support field level tracer\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/583f98047f5d1b6604d87e7b8d6f8fd38082d459\"><tt>583f9804</tt></a> change field marshaler return process that make it easy to insert other processing\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ab4752c28debbe543601e16dc7861b7973407b5c\"><tt>ab4752c2</tt></a> Update README.md\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/3447dd2d8b361c532d38688474d04315788edec1\"><tt>3447dd2d</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/389\">#389</a> from 99designs/multiple-schemas</summary>\n\nSupport multiple schemas\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a230eb049370be09434b451ed8e913e68a134ad1\"><tt>a230eb04</tt></a> Support multiple schemas\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/20a5b6c7f2f6a9feabe96dcde68ce0b6d23f4982\"><tt>20a5b6c7</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/369\">#369</a> from vetcher/master</summary>\n\nreverse errors and data order in response\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f1f043b9d4e97d3dc8ad1559110e8ff8688b4afe\"><tt>f1f043b9</tt></a> reverse 'data' and 'error' fields order in failure tests\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/3eab22a33bf8a9ff99482c899dd184c589445c7b\"><tt>3eab22a3</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/370\">#370</a> from rodrigo-brito/fix-underscore</summary>\n\nUnderscore on field name finder\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0ad3d3ce71b852dbb62a72babf3f5352eae47100\"><tt>0ad3d3ce</tt></a> fix on struct name finder\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/42e110453498b2690ce4412b384881a3bf55d0c5\"><tt>42e11045</tt></a> reverse errors and data order in response\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.6.0\"></a>\n## [v0.6.0](https://github.com/99designs/gqlgen/compare/v0.5.1...v0.6.0) - 2018-10-03\n- <a href=\"https://github.com/99designs/gqlgen/commit/6f486bde038887adf67c3e3766624ef111ea95cf\"><tt>6f486bde</tt></a> release v0.6.0\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/7833d0cbf3fd7fb82ddadf8c19a9284554f48250\"><tt>7833d0cb</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/365\">#365</a> from 99designs/dont-guess-imports</summary>\n\nDon't let goimports guess import paths\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/732be3959b402bbd3b864c5f40f475640f1334c5\"><tt>732be395</tt></a> Don't let goimports guess import paths\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/926eb9d814747bf3726313d397a31cd7dbddddd1\"><tt>926eb9d8</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/364\">#364</a> from 99designs/query-cache-test</summary>\n\nAdd a stress test on query cache\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bab70df5bf66675b16bf1945ce902658a4fdaed2\"><tt>bab70df5</tt></a> Add a stress test on query cache\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8448176179aa4492d6cb2962b6155bdeaae2774a\"><tt>84481761</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/362\">#362</a> from 99designs/fix-error-docs</summary>\n\nfix error docs\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/23b58f6d5c03e69e05eb0d862be9286912a70151\"><tt>23b58f6d</tt></a> fix error docs\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8f0ef777fbb502ed453fa64861a8a0ca59fcacef\"><tt>8f0ef777</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/361\">#361</a> from 99designs/revert-360-revert-335-typed-interfaces</summary>\n\nRevert \"Revert \"Generate typed interfaces for gql interfaces & unions\"\"\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/77257d1e593f35e6b639b3120b8ee6ba4dc7d4a5\"><tt>77257d1e</tt></a> Revert \"Revert \"Generate typed interfaces for gql interfaces & unions\"\"\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1cae19bb114a3bee95ebac0e2e0e47ecdb59ec46\"><tt>1cae19bb</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/359\">#359</a> from 99designs/fix-null-arg-error</summary>\n\nFix Issue With Argument Pointer Type\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ee862717e87b39a46d01efc031f272ac26fd7b0b\"><tt>ee862717</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/360\">#360</a> from 99designs/revert-335-typed-interfaces</summary>\n\nRevert \"Generate typed interfaces for gql interfaces & unions\"\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/02658647f2de7ad601c8eee43417d322b4060ccc\"><tt>02658647</tt></a> Revert \"Generate typed interfaces for gql interfaces & unions\"\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/bc35d730cf4a22df34faafe066c77f891b750b9d\"><tt>bc35d730</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/335\">#335</a> from 99designs/typed-interfaces</summary>\n\nGenerate typed interfaces for gql interfaces & unions\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/48724dea899491c1aa75b825047d9c1ef66029e8\"><tt>48724dea</tt></a> Removed redundant file\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2432ab3cfcc043e31537ac21b550a6b3faf5bfcc\"><tt>2432ab3c</tt></a> Fix other tests with pointer change\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/20add1267ff738b7a6f976de81afab53b22e50da\"><tt>20add126</tt></a> Fix test case\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f5c034019889ffb19c28a0c10919c209411def54\"><tt>f5c03401</tt></a> Do not strip ptr for args with defaults</summary>\n\nThis fails if a client still sends a null value.  If an arg is nullable\nbut has a default, then null is still a valid value to send through.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0c399270a5c29e617d0cfc147d1809325ad8b8cc\"><tt>0c399270</tt></a> Add test case\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/b836a976a12a3ea70b0e5b1767b6aceefb8a9fa6\"><tt>b836a976</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/358\">#358</a> from 99designs/fix-embedded-pointer</summary>\n\nFix Embedded Pointer\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d3e27553742d7559996fb9cfb310e87c5774fea4\"><tt>d3e27553</tt></a> Bump gqlparser to latest master\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b8af0c811747c48190126e2d2b4006e718362756\"><tt>b8af0c81</tt></a> Use types.Implements to check if an interface implementor accepts value recievers\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/2ab05daf9c7864073fcbf8eeb03328223dc66df2\"><tt>2ab05daf</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/353\">#353</a> from 99designs/resolver-ctx-parenting</summary>\n\nParent middleware generated contexts\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/faf0416bf719ea00f40a96a061567807cef16827\"><tt>faf0416b</tt></a> Parent resolver generated contexts\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/caa474c6ac53f3408ebd24ac3d285247bf6c6f8f\"><tt>caa474c6</tt></a> Check for embedded pointer when finding field on struct\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f302b4082be7f143304f3e2c39419b2297efef03\"><tt>f302b408</tt></a> Added reproduce test case\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/14cf46bc15514a35ac23f8f8b980203cb7bb31da\"><tt>14cf46bc</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/348\">#348</a> from gissleh/feat-websocket-initpayload</summary>\n\nAdded parsing of the websocket init message payload\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3147d914a6c2bc0f297a2c8bbe4eaf2c64be0552\"><tt>3147d914</tt></a> Updated example in docs to use handler.GetInitPayload instead of graphql.GetInitPayload\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/32f0b843d8d0e834993caa8b31279862793e137f\"><tt>32f0b843</tt></a> Moved InitPayload from graphql to handler package, updated test to import it from there.\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/01923de635c3c33cbbfd571150973c095f8806a8\"><tt>01923de6</tt></a> Moved initPayload to wsConnection member, changed wsConnection.init to return false on invalid payload\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/25268ef991d11155af3c2abc7294bdc53698ec53\"><tt>25268ef9</tt></a> Added information about it under recipes/authentication doc\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/575f28e0305e991ca7b2c8e60fa793efc1260f0a\"><tt>575f28e0</tt></a> Fixed graphql.GetInitPayload panic if payload is nil.\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/380828fa768a570b4209762a9cb5ff7236a29bfb\"><tt>380828fa</tt></a> Added parsing of the websocket init message payload, and making it available via the context passed to resolvers.</summary>\n\n* Added GetInitPayload(ctx) function to graphql\n* Added WithInitPayload(ctx) function to graphql\n* Added WebsocketWithPayload method to client.Client (Websocket calls it with a nil payload for backwards compability)\n* Added tests for these changes in codegen/testserver/generated_test\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/2bd1cc2e669c685d41cacf82c8b730c04c44fef5\"><tt>2bd1cc2e</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/334\">#334</a> from 99designs/support-response-extensions</summary>\n\nSupport Extensions in Response\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8fdf4fbbcd24cd78942a3c3f7f3533c59ee5273f\"><tt>8fdf4fbb</tt></a> Add test case for extension response\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/60196b87614965d3926c0a1172974ed8fedbdf4e\"><tt>60196b87</tt></a> Add extensions to response struct\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cbde0ea97359831026ecc22d2e69adc2c3cd22ad\"><tt>cbde0ea9</tt></a> Generate typed interfaces for gql interfaces & unions\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.5.1\"></a>\n## [v0.5.1](https://github.com/99designs/gqlgen/compare/v0.5.0...v0.5.1) - 2018-09-13\n- <a href=\"https://github.com/99designs/gqlgen/commit/636435b68700211441303f1a5ed92f3768ba5774\"><tt>636435b6</tt></a> release v0.5.1\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bfb48f2f833c6ab7f2981035b61efdf773dcddba\"><tt>bfb48f2f</tt></a> Update README.md\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/869215a7e69f227f4869f901d319267d1061289d\"><tt>869215a7</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/339\">#339</a> from 99designs/fix-subscription-goroutine-leak</summary>\n\nFix gouroutine leak when using subscriptions\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/535dd24bf4986186af9fbac5f5965e853fcbdb4f\"><tt>535dd24b</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/338\">#338</a> from codyleyhan/cl/docs</summary>\n\nAdds docs for how resolvers are bound\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/baa99fc58711afed393a3952296a4a9bc754494c\"><tt>baa99fc5</tt></a> cleaned up resolver doc\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/647fbbc95b4b3926bedf1ad84e10bc38f050bc68\"><tt>647fbbc9</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/340\">#340</a> from chris-ramon/patch-1</summary>\n\nREADME.md: Updates `graphql-go/graphql` features.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/729e09c8add3eb78480bc1e55140a5ca3bf3e426\"><tt>729e09c8</tt></a> README.md: Updates `graphql-go/graphql` features.</summary>\n\n- Subscription support: https://github.com/graphql-go/graphql/issues/49#issuecomment-404909227\n- Concurrency support: https://github.com/graphql-go/graphql/issues/389\n- Dataloading support: https://github.com/graphql-go/graphql/pull/388\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/229a81be8b3ad6bcbd3974f2cc078d366ebade7c\"><tt>229a81be</tt></a> Fix gouroutine leak when using subscriptions\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c15a70ffbb19d8875504f8fde90bb3ff4c5ddd7c\"><tt>c15a70ff</tt></a> Adds docs for how resolvers are bound\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/35c15c940d3b83909551818ed5dc2dd5cd926c6a\"><tt>35c15c94</tt></a> Add link to talk by Christopher Biscardi\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/72edf98a67f4efbe44cf03e4922dcbfd0a1bf91a\"><tt>72edf98a</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/331\">#331</a> from edsrzf/arg-refactor</summary>\n\nRefactor arg codegen\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/31505ff44b7fac9941292bb0152c53921e0fcf4a\"><tt>31505ff4</tt></a> Use arg function for generated Complexity method\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ebdbeba01cb5c62bb3583bcf1171e7f64d5dea1e\"><tt>ebdbeba0</tt></a> Just realized \"if not\" is allow in templates\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/861a805c7ae8128d2aa61ec1b9ba72bb28cec024\"><tt>861a805c</tt></a> Regenerate code\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/639727b644f35584a4bf00a7e3f2331bffdf08df\"><tt>639727b6</tt></a> Refactor arg codegen</summary>\n\nNow a function is generated for each field and directive that has\narguments. This function can be used by both field methods as well as\nthe `Complexity` method.\n\nThe `args.gotpl` template now generates the code for this function, so\nits purpose is a little different than it used to be.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8026e63b05391e9313a6450207e49fb03c8418f9\"><tt>8026e63b</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/330\">#330</a> from edsrzf/string-compare</summary>\n\nUse built-in less than operator instead of strings.Compare\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c770b4e75b1206130441c8d2a06e05ea44b4715a\"><tt>c770b4e7</tt></a> Use built-in less than operator instead of strings.Compare\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.5.0\"></a>\n## [v0.5.0](https://github.com/99designs/gqlgen/compare/v0.4.4...v0.5.0) - 2018-08-31\n- <a href=\"https://github.com/99designs/gqlgen/commit/5bc4665fab378aa7fe6b81bef968ed608aad1477\"><tt>5bc4665f</tt></a> release v0.5.0\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/b48c6b92dcdfc7a797c34250478a2b1d1dc486c8\"><tt>b48c6b92</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/326\">#326</a> from 99designs/version</summary>\n\nAdd version const\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/14587a5f44f051fdd733fe80102194edd368d84f\"><tt>14587a5f</tt></a> Add version const\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/7d44dd6bfe71faf85b6df5e651157210d573b6cd\"><tt>7d44dd6b</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/315\">#315</a> from edsrzf/query-complexity</summary>\n\nQuery complexity calculation and limits\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2ab857eec3baef22867cef3a898eb24b0eb65d14\"><tt>2ab857ee</tt></a> Merge branch 'master' into query-complexity\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6e408d5d64d45e3797fd5fd5b1bf5acc7c50a094\"><tt>6e408d5d</tt></a> Interfaces take max complexity of implementors\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d08b9c4a36a8b7c3a22ec1f328a6bef9c95ec1e8\"><tt>d08b9c4a</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/325\">#325</a> from edsrzf/no-get-mutations</summary>\n\nOnly allow query operations on GET requests\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/82a28b5735f59524aa3f513f9c893a4c48b6d104\"><tt>82a28b57</tt></a> Only allow query operations on GET requests (closes <a href=\"https://github.com/99designs/gqlgen/issues/317\"> #317</a>)</summary>\n\nThis mitigates the risk of CSRF attacks.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/239b1d2277632767defaa6d72c82a765d7e87ff1\"><tt>239b1d22</tt></a> Don't emit complexity fields for reserved objects\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8da5d61b045ee4ea230ecac6706c8857d8f9081d\"><tt>8da5d61b</tt></a> Generate complexity for all fields. Fix bugs. Re-generate examples.\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/40943c6d92d2158db473aac699277dc6a95b95bb\"><tt>40943c6d</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/322\">#322</a> from 99designs/drop-old-flags</summary>\n\nDrop old cli flags\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8c17eea9ed7fb449e84f89c3f295b119a636c80c\"><tt>8c17eea9</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/320\">#320</a> from andrioid/master</summary>\n\nDescription added to generated Model code\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/988b367a542f44fac6e01148503b2e2e7e13fd5d\"><tt>988b367a</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/316\">#316</a> from 99designs/feat-concurrent-each-element</summary>\n\nuse goroutine about processing each array elements\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e5265ac2842f5ee39d266e8814d1209e6d4c9625\"><tt>e5265ac2</tt></a> Fix complexity template bug\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7c0400454230b3bb01d49ba310b7047b064cdc65\"><tt>7c040045</tt></a> now with field values\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/08ab33bedf493581c932313d6cc14e7b5722faf0\"><tt>08ab33be</tt></a> starting to look better\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e834f6b90453aaf97d9442c238ad2ff1676463ba\"><tt>e834f6b9</tt></a> Query complexity docs\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a0158a4edd009fbfd6f67a1ec63d1b69c56b719b\"><tt>a0158a4e</tt></a> Drop old cli flags\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bb78d2faee1270626c670d21699bbde7e682cd93\"><tt>bb78d2fa</tt></a> go generate ./..\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2488e1b3c0b30b36cc0a0289a4813d21ff672824\"><tt>2488e1b3</tt></a> Merge branch 'master' of https://github.com/99designs/gqlgen\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f6a733aea7c01e71ce43efecd1622b61eb8b537c\"><tt>f6a733ae</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/308\">#308</a> from codyleyhan/tags</summary>\n\nFinds fields by configurable struct tag\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f7aeb88adbe30d19b2c37f8ed41e0322d27f5ef4\"><tt>f7aeb88a</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/321\">#321</a> from 99designs/remove-typemap</summary>\n\nRemove support for the old json typemap\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d63449b91ae1b95c1faa0dbd1100928e2d1b8641\"><tt>d63449b9</tt></a> Remove support for the old json typemap\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fce4c722a818665a1b0277693a5123b6f166f4a8\"><tt>fce4c722</tt></a> address comment\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8c3aed7d199521533d59e302a9dff4d2cd643aff\"><tt>8c3aed7d</tt></a> Merge branch 'master' into query-complexity\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/cecd84c698b8ce171e0cd9604215405de248e765\"><tt>cecd84c6</tt></a> Add complexity package tests</summary>\n\nAlso some small behavior fixes to complexity calculations.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/002ea4761fff26f723d0bbf0119b61b2f5c4f816\"><tt>002ea476</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/318\">#318</a> from edsrzf/query-cache</summary>\n\nAdd query cache\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fcd700b6f9613c01381f5fa78d03700c53b05343\"><tt>fcd700b6</tt></a> Panic on lru cache creation error\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/78c570790aa4010613756e9d66f632dd500de091\"><tt>78c57079</tt></a> Add query cache</summary>\n\nThis commit adds a query cache with a configurable maximum size.\nPast this size, queries are evicted from the cache on an LRU basis.\n\nThe default cache size is 1000, chosen fairly arbitrarily. If the size\nis configured with a non-positive value, then the cache is disabled.\n\nAlso ran `dep ensure` to add the new dependency to `Gopkg.lock`.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/076f9eac313b2d2460f4f735a8e59283a2862950\"><tt>076f9eac</tt></a> removed dirt\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6ae82383f52b2a6c479f982d04215ddfda28f806\"><tt>6ae82383</tt></a> trying to get description with generated models\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7d6f8ed4b4d5e64eb98dca853aa58fef9aee8784\"><tt>7d6f8ed4</tt></a> fixes case where embeded structs would cause no field to be found\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/02873495e1f85ae83e38cf79e52a2122a845986f\"><tt>02873495</tt></a> use goroutine about processing each array elements\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/40f904a6a3e07145532db7ef08b09d8ec221cbd9\"><tt>40f904a6</tt></a> Merge branch 'master' of github.com:99designs/gqlgen into tags\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/56768d6ba53088c47390944813b0c13cb97e4ae4\"><tt>56768d6b</tt></a> adds tests for findField\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/556b93ac9f76f72cedb4be5189a1c014dea4da04\"><tt>556b93ac</tt></a> Run go generate ./...\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/2dcb2dd8c3aea0d993b19c93660b4579e404c53f\"><tt>2dcb2dd8</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/314\">#314</a> from 99designs/directive-obj</summary>\n\nAdd obj to Directives\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0e2aaa9ec6e6be2cafe04b878f42444275056a41\"><tt>0e2aaa9e</tt></a> Merge branch 'master' of github.com:99designs/gqlgen into tags\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7cfd9772cb10bb4cb75cef188c0c4635aecb8663\"><tt>7cfd9772</tt></a> fixes field selection priority\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/238a7e2fe255b6e9bd2106f3d0663ef7909fc62e\"><tt>238a7e2f</tt></a> Add complexity support to codegen, handler\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/95ed529b11a57ad717b92efed2767031e7c55d9f\"><tt>95ed529b</tt></a> New complexity package\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1fda3edefc6e9a028903fafeca7f59bedb796e6f\"><tt>1fda3ede</tt></a> Add obj to Directives\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/9b24710218507d6420c9710f92ab33d59594584e\"><tt>9b247102</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/301\">#301</a> from 99designs/feat-directive-parent</summary>\n\nadd Result field to ResolverContext\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9ec385d1553ad4af3db23109d708a17848132db4\"><tt>9ec385d1</tt></a> Merge branch 'tags' of github.com:codyleyhan/gqlgen into tags\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c5849929105209bcdaba2f86ab65cb8b21d6190d\"><tt>c5849929</tt></a> adds binding by passed tag\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6ef2035b06a98435f9f9fd5b7d8a67b86c7da51d\"><tt>6ef2035b</tt></a> refactor set Result timing\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/568a72e9edde1d564f64e1e22267b76670d12853\"><tt>568a72e9</tt></a> add some refactor\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/50588a8af8eedc8c85f388cf17a83ec5077bb39e\"><tt>50588a8a</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/299\">#299</a> from 99designs/test-init-on-windows</summary>\n\nTest gqlgen init on windows\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9148adfc5d3d88e341408acb40b4ee910a7d7a03\"><tt>9148adfc</tt></a> Test gqlgen init on windows\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c7fd841666d8fbd3496a7da63abb9c9ced3f1c61\"><tt>c7fd8416</tt></a> Merge branch 'master' into feat-directive-parent\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/3f8a601b5b1d129bdccf79aa72787897701a0027\"><tt>3f8a601b</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/312\">#312</a> from 99designs/validate-gopath</summary>\n\nValidate gopath when running gqlgen\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/77e6955279ca8c844bd1bd5541f4fd7f793164cd\"><tt>77e69552</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/310\">#310</a> from 99designs/sitemap-404s</summary>\n\nRemove 404s from sitemap\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/0b6cedfbab61fd9fbe93c5ac36ce25fff48dd4d1\"><tt>0b6cedfb</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/311\">#311</a> from jekaspekas/fix-mapstructure-err</summary>\n\nfix mapstructure unit test error\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b07736ef8cfd03ba2a649c70cf8bfa3667102ecc\"><tt>b07736ef</tt></a> Validate gopath when running gqlgen\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/b082227dc3f43337ea17c0a1944e0e7397c31e0f\"><tt>b082227d</tt></a> fix mapstructure unit test error</summary>\n\nfix unit test error \"mapstructure: result must be a pointer\". It appears instead of resolver returned error.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/25b12cb600ae04866a089831c9fb4c01d2e53ab4\"><tt>25b12cb6</tt></a> Remove 404s from sitemap\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/4a6f505d968843836998a154d06fe8f46e7b598c\"><tt>4a6f505d</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/309\">#309</a> from 99designs/pr-template</summary>\n\nAdd a PR template\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/64f3518edb7448bceaa4357a70f2e2a65fbc4c58\"><tt>64f3518e</tt></a> run generate\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a81147dfed21e1725e5489ddfebfab6b4ea1bd7e\"><tt>a81147df</tt></a> Add a PR template\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/15d8d4ad219ee7121206c7edb332ed56db018795\"><tt>15d8d4ad</tt></a> Merge branch 'introspection-directive-args' into HEAD\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/12efa2d5d8c01a2359721b04a27a58c353567e34\"><tt>12efa2d5</tt></a> add tests\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/95b6f323a880d9034cacf048f0db0c783ca772e9\"><tt>95b6f323</tt></a> finds fields by json struct tag\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/07ee49f3162553b41d45cee11ed0b96ecfe5d745\"><tt>07ee49f3</tt></a> Added args to introspection scheme directives.\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e57464fef03faff2664fa249de8f9c0e821ed910\"><tt>e57464fe</tt></a> refactor ResolverContext#indicies and suppress lint error\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/09e4bf8c481a8fbdc2ed34bad80051ded1a2023e\"><tt>09e4bf8c</tt></a> add Result field instead of ParentObject field\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/b8695fb5223ba49fce18aad984af831b710c8b60\"><tt>b8695fb5</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/304\">#304</a> from 99designs/newline-for-init-response</summary>\n\nPut newline at end of `gqlgen init` output\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fabc6f8ff011cf969e318032d3eabdc934632292\"><tt>fabc6f8f</tt></a> Merge branch 'master' into feat-directive-parent\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e53d224e2ad3137cf93deb5baae638197a3e73f6\"><tt>e53d224e</tt></a> Merge branch 'master' into feat-directive-parent\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/de750645ac12568d8909b52f539d625c6a4ee62c\"><tt>de750645</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/298\">#298</a> from 99designs/handle-response-nulls</summary>\n\nNulls in required fields should cause errors and bubble\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c855272921a9d21a9eb321276b36a9ac65c4593e\"><tt>c8552729</tt></a> Put newline at end of gqlgen init output\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/072363c777fa35f726d5c6f0626720dab296bc3b\"><tt>072363c7</tt></a> add ParentObject field to ResolverContext\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e15d78906a5ab4d528c4ca4b13aaeae2dd944a14\"><tt>e15d7890</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/300\">#300</a> from 99designs/fix-starwars-connection-example</summary>\n\nfix connection example\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d6acec162547ee261961de22da28cd219df4a24d\"><tt>d6acec16</tt></a> fix connection example\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7d1cdacabfb6dcea8367468d97ec29be02164a2c\"><tt>7d1cdaca</tt></a> Nulls in required fields should cause errors and bubble\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/2c4e6cbf05e6920d119790b6f9d6262b87a56e3b\"><tt>2c4e6cbf</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/294\">#294</a> from 99designs/simplfy-concurrent-resolvers</summary>\n\nSimplfy concurrent resolver logic\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7926c688bc50c55b8a2e5c308c3c60857b8fef52\"><tt>7926c688</tt></a> Simplfy concurrent resolver logic\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"v0.4.4\"></a>\n## [v0.4.4](https://github.com/99designs/gqlgen/compare/0.4.3...v0.4.4) - 2018-08-21\n- <a href=\"https://github.com/99designs/gqlgen/commit/6f6622c6b78098660f03d38fb8f0d459d428bdbe\"><tt>6f6622c6</tt></a> Bump gqlparser to latest version\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/72659af418c34428b706f6dfc100a678540c8acd\"><tt>72659af4</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/297\">#297</a> from 99designs/fix-dep-pruning</summary>\n\nExplicitly import ambient imports so dep doesn't prune them\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cac3c729ad5fbb5d0e4de0b156c7a0f6f5453b24\"><tt>cac3c729</tt></a> Explicitly import ambient imports so dep doesn't prune them\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e6af26e097a8046ad2463c3c580b4777ad54f848\"><tt>e6af26e0</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/296\">#296</a> from heww/master</summary>\n\nsort directives by name when gen\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fd09cd9931347475cfc83f67685ff6ef7e815f6b\"><tt>fd09cd99</tt></a> sort directives by name when gen\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/719172670d1c5f80e819bf1376edb8e1f9ed59f3\"><tt>71917267</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/292\">#292</a> from m4ppi/fix-doc</summary>\n\nFix broken links in docs\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/05c73d9f5eac7c84319e894febf9b74b8ae76336\"><tt>05c73d9f</tt></a> Fix broken links in docs\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5a0b56aa613bf7604688f2c5f8f10ec586aec835\"><tt>5a0b56aa</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/285\">#285</a> from 99designs/fix-force-type</summary>\n\nStop force resolver from picking up types from matching fields\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/31478cf4f74564682f6b0160867661c25b0bbe78\"><tt>31478cf4</tt></a> Stop force resolver from picking up types from matching fields\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ebdcf7401de7853e33940a3be357cd7b19b543be\"><tt>ebdcf740</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/283\">#283</a> from 99designs/speed-up-tests</summary>\n\nSpeed up tests\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/36e84073852d13ee782733030c457bb68aab8a03\"><tt>36e84073</tt></a> Speed up tests\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"0.4.3\"></a>\n## [0.4.3](https://github.com/99designs/gqlgen/compare/0.4.2...0.4.3) - 2018-08-10\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/3575c289486fce174c941b63749b9bbb88c3ca90\"><tt>3575c289</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/281\">#281</a> from 99designs/introspection-default-args</summary>\n\nFix missing default args on types\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b808253f02667601d6162acc2a941a504d5a95c2\"><tt>b808253f</tt></a> Fix missing default args on types\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/bf235296103837d477e5d05b062c20f399a51553\"><tt>bf235296</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/282\">#282</a> from 99designs/flakey-tests</summary>\n\nRemove sleeps in tests\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e9c68f08502011d73b20a68dd74b9ed103f9ebe7\"><tt>e9c68f08</tt></a> make appveyor less flakey\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"0.4.2\"></a>\n## [0.4.2](https://github.com/99designs/gqlgen/compare/0.4.1...0.4.2) - 2018-08-10\n- <a href=\"https://github.com/99designs/gqlgen/commit/06b00d459e44d7a7e29094992d56697fcf8b0f2b\"><tt>06b00d45</tt></a> Update README.md\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5c379a338ee2a7d46da0f0cbab6427d00aa93fc3\"><tt>5c379a33</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/279\">#279</a> from 99designs/integration-tests</summary>\n\nIntegration tests\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7f20bdef2615f55f3ea90cd429cd2664ee6e4208\"><tt>7f20bdef</tt></a> disable tty for jest\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bb0a89a0fd94d1b1a9cf456c6094ed73e701c61f\"><tt>bb0a89a0</tt></a> exclude generated code from tests\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c2bcff795b4c2d0e0730d5bc84c7a36addd26571\"><tt>c2bcff79</tt></a> regenerate\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/45e22cb1f117b1b277c23e2483cb12f041528e91\"><tt>45e22cb1</tt></a> Add introspection schema check\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/53109cd081a7e3f6a0304a0f205eac7fa9cd6b03\"><tt>53109cd0</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/270\">#270</a> from 99designs/feat-handlers</summary>\n\nstop pickup \"github.com/vektah/gqlgen/handler\" from GOPATH\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ae82b94af59cf825f2c45cc4d7453b0cd136f867\"><tt>ae82b94a</tt></a> convert existing tests to jest\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f04820b1a64ebff617ce6a0adc98900f7ba521e7\"><tt>f04820b1</tt></a> address comment\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/88730e2cce1358a3a420ca9e18660a36f417c8b7\"><tt>88730e2c</tt></a> Convert test directory into integration test server\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f372b1c920835b873005e33e77e79733267ec93f\"><tt>f372b1c9</tt></a> Use docker in docker for the existing testsuite\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/0eb08ab9545252332e683fbd912c39dbd9dbc821\"><tt>0eb08ab9</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/274\">#274</a> from 99designs/fix-variable-validation-data</summary>\n\nPrevent executing queries on variable validation failures\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/47a7ac35e34664992754d55d468b2ac09628475a\"><tt>47a7ac35</tt></a> Prevent executing queries on variable validation failures\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e6e323d02785d0a25f0ccbb88926bc03f6df8a47\"><tt>e6e323d0</tt></a> stop pickup \"github.com/vektah/gqlgen/handler\" from GOPATH\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e6005f6b9205ea489b453614858488d46eb48672\"><tt>e6005f6b</tt></a> fix mobile nav\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5cdbc9751f61597d92519e4b406674b6a53f6650\"><tt>5cdbc975</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/267\">#267</a> from 99designs/authentication-docs</summary>\n\nAuthentication docs\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1871c4ce2c38a4d4b27191a08094dfbda626f17c\"><tt>1871c4ce</tt></a> Add bold variant of Roboto to docs\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fc9fba099d58d1782fabd6a9da7ae213301b1824\"><tt>fc9fba09</tt></a> Some minor edits to authentication docs\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d151ec8d9cfbb279343104ffda312dec939a402e\"><tt>d151ec8d</tt></a> Add docs on user authentication\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8db3c143559c65ff3317e17b3b6307afa90c02cb\"><tt>8db3c143</tt></a> Add structure to menu\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/c57619e0879f25bc749940b8dba3e75910b4e5eb\"><tt>c57619e0</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/260\">#260</a> from 99designs/init-improvements</summary>\n\nInit Config Improvement\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/336b62ec685d04a065c2163cd728877165b3e2ea\"><tt>336b62ec</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/266\">#266</a> from 99designs/lint-friendly-decollision</summary>\n\nMake keyword decollision more lint friendly\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2acbc245889a300d00c4943983afc9963b3db912\"><tt>2acbc245</tt></a> Make keyword decollision more lint friendly\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f12f08a78c27a8d1736cfe19cec983db0c91cdd1\"><tt>f12f08a7</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/264\">#264</a> from 99designs/docs</summary>\n\nCORS docs\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a2a7c0e7863242de8b77411f8ff1c4bcbaff41ee\"><tt>a2a7c0e7</tt></a> Eliminate font resize popin\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8a7ed618ff56c297d6590683e8ed149d5f40b734\"><tt>8a7ed618</tt></a> Fix errors docs\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/96e6aab249b4caf1248cd290fa214474caf3d406\"><tt>96e6aab2</tt></a> Add CORS docs\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/0ab1c685eb45f580dc52bfe143f8185f3dc363ef\"><tt>0ab1c685</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/263\">#263</a> from 99designs/add-logo</summary>\n\nAdd logo to doc site\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6d39f868b2129f90f62c3e7d4ca104bfca7eb6a8\"><tt>6d39f868</tt></a> Add logo to doc site\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d7241728f83cbb8e524ce2e3d765c022a466f5c5\"><tt>d7241728</tt></a> Better error on init if file exists\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fb03bad9f1ebf86526bce85091272ed50ba46a68\"><tt>fb03bad9</tt></a> Run init even if config is found\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/52b78793bd1bb1343032aeb59724f15dbe628f41\"><tt>52b78793</tt></a> Fix hard-coded server filename in init\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"0.4.1\"></a>\n## [0.4.1](https://github.com/99designs/gqlgen/compare/0.4.0...0.4.1) - 2018-08-04\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/42f10ec9122abaac7b9cf03444f35b6c5cb5f53d\"><tt>42f10ec9</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/255\">#255</a> from 99designs/introspection-fixes</summary>\n\nFix introspection api\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7400221c3a5e8cd8917726e9e92522679c2acfbe\"><tt>7400221c</tt></a> Fix introspection api\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/b35804bac53cf90fa4179dcff6cf6b3b47126c5e\"><tt>b35804ba</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/254\">#254</a> from oskanberg/patch-1</summary>\n\nFix typo in introduction docs\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/84552437d36e5a4124a1af886f01184e16661b57\"><tt>84552437</tt></a> Fix typo in introduction docs\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b5a48e3e76630d733860c314a6119bed1f224b67\"><tt>b5a48e3e</tt></a> Update README.md\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c20bb134fa69173a3708160f01ecb79c4276b096\"><tt>c20bb134</tt></a> update badges\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"0.4.0\"></a>\n## [0.4.0](https://github.com/99designs/gqlgen/compare/0.3.0...0.4.0) - 2018-08-03\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/7b5a3d7473f375bb81bd8efe1a08e69a932e6706\"><tt>7b5a3d74</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/247\">#247</a> from 99designs/next</summary>\n\n0.4.0 Release\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/c0be9c9943982ce21a0ff47655c9f4f99034d489\"><tt>c0be9c99</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/251\">#251</a> from 99designs/rewrite-imports</summary>\n\nRewrite import paths\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4361401a903bda5d84220b8cb41d8cef3c11f720\"><tt>4361401a</tt></a> Rewrite import paths\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f042328a2c75ea771472390e9f1bc33d7cad75f0\"><tt>f042328a</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/252\">#252</a> from 99designs/move-doc-site</summary>\n\nMove doc site\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/658a24d9dcda158b451f5f21535ce2363eb188f8\"><tt>658a24d9</tt></a> Move doc site\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/07b7e6ca88acceb1882789fa180109d2a54331dd\"><tt>07b7e6ca</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/248\">#248</a> from 99designs/json-usenumber</summary>\n\nuse json.Decoder.UseNumber() when unmarshalling vars\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/95fe07fef6e87653242067346d7f3e99c0589e5c\"><tt>95fe07fe</tt></a> use json.Decoder.UseNumber() when unmarshalling vars\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/c555f54cead11d8885d24eb6f7e11260ac930450\"><tt>c555f54c</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/245\">#245</a> from vektah/new-feature-docs</summary>\n\nNew feature docs\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/825840aacdf3f160372add5e714dc6e7e42566db\"><tt>825840aa</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/244\">#244</a> from vektah/array-coercion</summary>\n\nAdd implicit value to array coercion\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/90b4076951ef8b5962ec2276b38434d957ae6c94\"><tt>90b40769</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/246\">#246</a> from vektah/fix-introspection</summary>\n\nFix introspection\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ef208c76db36eabcabf94c0576e4f18f194e54c1\"><tt>ef208c76</tt></a> add docs for resolver generation\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e44d798d6e01c3d317199c0345e1a8db5b1bf865\"><tt>e44d798d</tt></a> Add directives docs\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/62d4c8aa60a8187de695b21fdd40858af2b85b87\"><tt>62d4c8aa</tt></a> Ignore __ fields in instrospection\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bc204c64a892622db810a4b729603f696dda639e\"><tt>bc204c64</tt></a> Update getting started guide\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b38c580ab3b9828bb5d91fad941274e03c6a0d15\"><tt>b38c580a</tt></a> Return the correct mutation & subscription type\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9397920c4abf1cc940eee17e022666bf742a62f5\"><tt>9397920c</tt></a> Add field name config docs\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d2265f3d0a40525359328a52a3d30467f330baa5\"><tt>d2265f3d</tt></a> Add implicit value to array coercion\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/191c8ba020f10a1f000cfe5925b972f00807ab6c\"><tt>191c8ba0</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/239\">#239</a> from vektah/directive-args</summary>\n\nDirective args\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3bef596d022a4c58c30e7f1c73adc3b7dec918d3\"><tt>3bef596d</tt></a> regenerate\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4f37d17028f85eb6e12009d26bea8604e332f766\"><tt>4f37d170</tt></a> Add directive args\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f78a6046f87d4ba6d7dc81421b189fa2e772741a\"><tt>f78a6046</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/241\">#241</a> from vektah/feat-lintfree</summary>\n\nMake more golint free generated code\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/19b5817589c3eaeaf1cbace84e1318c8af33c14b\"><tt>19b58175</tt></a> Merge remote-tracking branch 'origin/master' into HEAD\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c3fa1a55981538ea9d5b6c9bef10a1c19880588a\"><tt>c3fa1a55</tt></a> Merge branch 'next' into feat-lintfree\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/17bfa2cbd4bfccffe704eefbf4d11007ad193e92\"><tt>17bfa2cb</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/240\">#240</a> from vektah/doc-fonts</summary>\n\nUse fonts from golang styleguide\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/64ef0571cc62cae0c71ddb3e1f1dfe6369e6d6e3\"><tt>64ef0571</tt></a> Use fonts from golang styleguide\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/6b532383c4176fb9b0b683eddc267a0e15ab7481\"><tt>6b532383</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/237\">#237</a> from vektah/feat-fieldmapping</summary>\n\nAdd model field mapping\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4fb721aeec445aa05c595d4b89edf71a9500ab7d\"><tt>4fb721ae</tt></a> address comment\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bf43ab3ddfddfba0309093ffa561b9c7f590eeb2\"><tt>bf43ab3d</tt></a> Merge branch 'next' into feat-fieldmapping\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/353319caf4905a2c5917660db1f10794c37729fd\"><tt>353319ca</tt></a> Refactor GoVarName and GoMethodName to GoFieldName etc...\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d7e24664af0c9d143b002598ae6cae686eebb59e\"><tt>d7e24664</tt></a> Add method support\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/17bcb322d07c82ac794884b572f3acbe59b8bbc0\"><tt>17bcb322</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/236\">#236</a> from vektah/generate-handler-on-init</summary>\n\nGenerate server on running init\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/600f4675970cbca0b376f204fe75e820906db863\"><tt>600f4675</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/238\">#238</a> from vektah/variable-validation</summary>\n\nAdd missing variable validation\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d6a76254d197c14902762ff944b0af32126d7b6f\"><tt>d6a76254</tt></a> Add missing variable validation\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/121e8db49d3e3441d04cc74d59799d497408cf44\"><tt>121e8db4</tt></a> Generate server on running init\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/108bb6b4f73b8d0c627602e748373ab64cfb0826\"><tt>108bb6b4</tt></a> Rename govarname to modelField\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f7f6f9166ab71b67713276597347d429b4691398\"><tt>f7f6f916</tt></a> Make more lint friendly\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/69eab93811af49085104fb1aca7822a3c62392b4\"><tt>69eab938</tt></a> Add model field mapping\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ffee020c33783b5e9e2d7f91eff01800b09d6b29\"><tt>ffee020c</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/235\">#235</a> from vektah/generate-resolver-on-init</summary>\n\nGenerate resolver on init\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/df95f0032b47a110c0fb2f3f6e8fb879420b05f4\"><tt>df95f003</tt></a> Generate code after init\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/58831ac11446af5960153aed1a7ae84b88ec1506\"><tt>58831ac1</tt></a> Generate resolver if configured\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/7031264d468ad298a4a562c26cce0f746e2ea5e2\"><tt>7031264d</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/229\">#229</a> from vektah/fix-init-command</summary>\n\nFixing init command\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/078bc9853f2cc46ec0cec9bc8f57b8a3a7758724\"><tt>078bc985</tt></a> Fixing init command</summary>\n\nThe init command always return file already exists if there are no\nconfigFilename specified\n\nThis is caused by codegen.LoadDefaultConfig() hiding the loading details\nand always return the default config with no error while the init\ncommand code expects it to tell us if config exists in default\nlocations.\n\nTo avoid confusion I have splitted the loading config from default\nlocations out into its own method so we can handle different cases\nbetter.\n\nAdditionally I also moved default config into a method so we always\ngenerating new a config instead of passing it around and potentially\nmutating the default config.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/803711e941fa9465ebd4ffa7565cba84412a26f9\"><tt>803711e9</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/221\">#221</a> from vektah/middleware-stack</summary>\n\nImplement FieldMiddleware Stack\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0ec918bf88145a813c99eafa5502d1de7627e54d\"><tt>0ec918bf</tt></a> Switch GoName to Name|ucFirst\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5dc104ebe5fe54e6eb32c58807a9335e09f248d2\"><tt>5dc104eb</tt></a> Add middleware example for Todo\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/73a8e3a3386fa46b2f2678693faa3c52b26e09b2\"><tt>73a8e3a3</tt></a> Fix some issues with directive middlewares\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8416324766817e69d984d6e39e51e68758795b8f\"><tt>84163247</tt></a> Regenerate\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/0e16f1fcdadac39c8cab520956b4987a1938cb7e\"><tt>0e16f1fc</tt></a> Generate FieldMiddleware</summary>\n\nMoves it off of RequestContext and into generated land.  This change\nhas a basic implementation of how directive middlewares might work.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2748a19b2cd34ba6db06aee47a446b242d8824ff\"><tt>2748a19b</tt></a> Require Config object into NewExecutableSchema\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/09242061c7ce1d6e304f06344914c7bc6788c8b7\"><tt>09242061</tt></a> Add Directives to Build\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/69e790c27430454c03cc1f97b5fa425f3df6442d\"><tt>69e790c2</tt></a> Add *Field to CollectedField</summary>\n\nWe need the Field Definition so that we can run directive middlewares\nfor this field.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d6813f6d47ce90123739c4c8ce6ab9333623e2e0\"><tt>d6813f6d</tt></a> Generarte\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/764c6fda0cd7199a51c7e9d806565bf8e6679799\"><tt>764c6fda</tt></a> Refactor ResolverMiddleware to FieldMiddleware</summary>\n\nThis will allow us to include DirectiveMiddleware in the same middleware\nsetup, that will run after Resolver middlewares.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/7226e573a85b9ac69e054e7c1a73122a1c4afc7d\"><tt>7226e573</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/225\">#225</a> from rongfengliang/patch-1</summary>\n\nUpdate getting-started.md\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/66593ffe5339e707c11870a2afc21e2da29042a4\"><tt>66593ffe</tt></a> Merge remote-tracking branch 'origin/master' into HEAD\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8714f7fbb97089cc7bd56ee1d00e9d234c226220\"><tt>8714f7fb</tt></a> hush metalinter\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/0dfb92a79af66024f70a323faef7ddc72bd2b83b\"><tt>0dfb92a7</tt></a> Update getting-started.md</summary>\n\nCreateTodo  UserID   input should be UserId not User\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/0fa7977f9a778a0ba8b56e7272702d508bd390f9\"><tt>0fa7977f</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/217\">#217</a> from vektah/resolver-middleware-all</summary>\n\nRun Resolver Middleware For All Fields\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/7292be78338605c49ef96c55595d53aba243682a\"><tt>7292be78</tt></a> Rename CastType to AliasedType</summary>\n\nThis field stores a Ref if a type is a builtin that has been aliased. In\nmost cases if this is set, we want to use this as the type signature\ninstead of the named type resolved from the schema.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ec928cadf952e43d95092194a3aed42f2174e207\"><tt>ec928cad</tt></a> Regenerate examples\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/97f131842addf705f39d56c21cd094cebeca435f\"><tt>97f13184</tt></a> Remove comment about ResolverMiddleware</summary>\n\nNot true anymore!\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b512176ccd04fca974685829c93345357a0c9cf1\"><tt>b512176c</tt></a> Run resolver middleware for all fields\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f67f8390f31b2a498900aa4e3db817b8da3e704f\"><tt>f67f8390</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/218\">#218</a> from vektah/remove-old-resolvers</summary>\n\nRemove old resolvers\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1a3e4e9940602bb047924e623e641f6e7c40cff0\"><tt>1a3e4e99</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/220\">#220</a> from vektah/feat-race</summary>\n\nturn back -race option\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/40989b193c9885f94f6ceee0e66865992865af26\"><tt>40989b19</tt></a> turn back -race option\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1ba61fcb262123cefb506c899160292fc1dab542\"><tt>1ba61fcb</tt></a> Update test & examples to use new resolver pattern</summary>\n\n* chat\n* dataloader\n* scalar\n* selection\n* starwars\n* todo\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/3870896111fe12e5320880a0f1baf65a1baa3776\"><tt>38708961</tt></a> Stop generating two types of resolvers</summary>\n\nIn recent refactor we introduced a new pattern of resolvers which is\nbetter structured and more readable. To keep Gqlgen backward compatible\nwe started generate two styles of resolvers side by side.\n\nIt is now time to sunset the old resolver. This commit removes the old\nresolver and update the generation code to use the new resolver\ndirectly.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ffe42658fed0fd990c80c1cb58684c79e9c33642\"><tt>ffe42658</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/208\">#208</a> from vektah/directives-skip-include\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a69071e3a59ae80bef327cbc9f823933d5ec4794\"><tt>a69071e3</tt></a> Pass context to CollectFields instead of RequestContext</summary>\n\nInternally it can still get to RequestContext as required.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d02d17ae1d05a2efd3915bff84153feb6497f458\"><tt>d02d17ae</tt></a> Add method for generating method name from field\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c7ff32086724ca8a1fd8bf437cc1f7417c47a619\"><tt>c7ff3208</tt></a> Update gqlparser version to include default resolution\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ce17cd9034ff42a6881429ac198afb572e6950f2\"><tt>ce17cd90</tt></a> Add default value test case\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/cbfae3d31bd8ee298103c65d83d9eef7272d44b6\"><tt>cbfae3d3</tt></a> Add skip/include test cases</summary>\n\nAdds a set of test cases for skip and include directives to the todo\nexample. Also now conforms to spec if both are included.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ea0f821cc6c8e661f4b60f26aeec12ac90bcf3e0\"><tt>ea0f821c</tt></a> Add skip/include directive implementation</summary>\n\nThis is a snowflake implementation for skip/include directives based on\nthe graphql-js implementation.  Skip takes precedence here.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ebfde103e0ca294e8ce6ba131419344a1be67048\"><tt>ebfde103</tt></a> Pass request context through to CollectFields\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/bab7abb21b7328380e9ff8985db81fc523160158\"><tt>bab7abb2</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/210\">#210</a> from vektah/feat-init</summary>\n\nintroduce gen & init subcommand\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/6ba508f96ab7dd962ce4ac3a43f3bd2572e1bf4c\"><tt>6ba508f9</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/214\">#214</a> from vektah/gqlparser-schema-validation</summary>\n\nBump gqlparser to get schema validation\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/138b4ceafd405c1d0e288e996d2f5ca74f3e179a\"><tt>138b4cea</tt></a> Bump gqlparser to get schema validation\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/08d7f7d0cdd6bb85ce42f70cbb57e4e16b41824b\"><tt>08d7f7d0</tt></a> Merge branch 'next' into feat-init\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/39f9dbf6d245f5b1b1c942c7afcda31519ca1113\"><tt>39f9dbf6</tt></a> fix error from breaking change\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/41147f6f907d2144b0499ca141ed48fc8b97e9c6\"><tt>41147f6f</tt></a> update Gopkg.lock\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/87d8fbeaa5f2e5363e717e808ba42e0de60af5f7\"><tt>87d8fbea</tt></a> remove unused flag\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/eff49d048962d2804181a93d29654335de7b74f3\"><tt>eff49d04</tt></a> support init subcommand\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c5810170eb49ef72c55adf3de2789cf1f50348e9\"><tt>c5810170</tt></a> introduce cobra library\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c3c20f8f609b0e58e3da1dc26d481becd90d8b8a\"><tt>c3c20f8f</tt></a> Merge remote-tracking branch 'origin/master' into HEAD\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/90df37f6a80713a4c6faf0e9887036189c29453a\"><tt>90df37f6</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/205\">#205</a> from vektah/forward-credential-to-graphql-endpoint</summary>\n\nUse original credential for query request in playground\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/52343745e6e491a072e4ea51bc624bf2a911c159\"><tt>52343745</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/206\">#206</a> from vektah/validation-locations</summary>\n\nUpdate gqlparser for validation locations\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f4d31aa429fe5e5ea20e5e88e114c2d29a551a71\"><tt>f4d31aa4</tt></a> Update gqlparser for validation locations\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/9d473f8b6585a1919cca3b7224ef0cca9767dae9\"><tt>9d473f8b</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/203\">#203</a> from vektah/99designs-announcement</summary>\n\nAnnouncement: 99designs is now sponsoring gqlgen\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/c2f1570d1a9b0cbe2fdc97f568b4fa4005eab608\"><tt>c2f1570d</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/204\">#204</a> from vektah/gqlparser-prelude</summary>\n\nUse shared prelude\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/004ec6a96a06b8a08815311c8e8170661c91a836\"><tt>004ec6a9</tt></a> Add 99designs sponsorship news\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/548aed142366e4fc6e37527db629d08e7f2903c2\"><tt>548aed14</tt></a> Use shared prelude\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/edb3ea4e725657409ff4c96de59b49821b6225e5\"><tt>edb3ea4e</tt></a> Use original credential for query request in playg</summary>\n\nCurrently the playground doesn't forward any credentials when making\nquery calls. This can cause problems if your playground requires\ncredential logins.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f855a89c8a873d1d8523bb3c1d4b47330778da65\"><tt>f855a89c</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/201\">#201</a> from cocorambo/remove-trailing-println</summary>\n\nRemove trailing Println\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c41a6c36cf9adad011de060817bae8cf66f79933\"><tt>c41a6c36</tt></a> Remove trailing Println\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/2692d3e0aa5a6c5936301a822c5c71320ad96dbc\"><tt>2692d3e0</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/197\">#197</a> from vektah/new-parser</summary>\n\nIntegrate gqlparser\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5796d47d3c62f32f128e85c037bf35f31b458a11\"><tt>5796d47d</tt></a> Integrate gqlparser\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/55179a61aeefeb044f023d7fa0342518b90af76e\"><tt>55179a61</tt></a> Update badges\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/01a4c67737c161aebd8e76c3a9406140ecdd895f\"><tt>01a4c677</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/195\">#195</a> from jonstaryuk/master</summary>\n\nUpdate playground version\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c52f24aff789512ede45cb2cf16a670f769f6f2d\"><tt>c52f24af</tt></a> Update playground version to 1.6.2\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"0.3.0\"></a>\n## [0.3.0](https://github.com/99designs/gqlgen/compare/0.2.5...0.3.0) - 2018-07-14\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/381b34691fd93829e50ba8821412dc3467ec4821\"><tt>381b3469</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/194\">#194</a> from vektah/multiline-comments</summary>\n\nFix multiline comments\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/112d68a680fc6a6d053eabaadff3ba391f2bd1b6\"><tt>112d68a6</tt></a> only build master branch\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4b3778e32cffe09c745f12b130aae3b08f281902\"><tt>4b3778e3</tt></a> Fix multiline comments\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/eb44925cb17032879939a5352a2fbdc930f79320\"><tt>eb44925c</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/193\">#193</a> from vektah/validate-method-returns</summary>\n\nvalidate method return types\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/164acaed8876c96f0b9f726fd4fdc5e59f79aad9\"><tt>164acaed</tt></a> validate method return types\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f478f816529a9045ad39a90df36629250445a317\"><tt>f478f816</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/192\">#192</a> from vektah/strict-config</summary>\n\nStrict config\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a1c02e7b771e7898aff1590326b324c3e373a702\"><tt>a1c02e7b</tt></a> Strict config\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/533dcba7f4062ee4c090ea5f3bdceafe29e3bce0\"><tt>533dcba7</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/191\">#191</a> from vektah/nullable-list-elements</summary>\n\nSupport nullable list elements\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e0bf6afd14fbba795a0823248a05547c0d4fc520\"><tt>e0bf6afd</tt></a> Support nullable list elements\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/0780bf2ecce2409042b359ddfb86f34a59417ef4\"><tt>0780bf2e</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/190\">#190</a> from vektah/generated-forced-resolvers</summary>\n\nAllow forcing resolvers on generated types\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bf1823cdf0e531aeda296090a5fd249efa8131ec\"><tt>bf1823cd</tt></a> Allow forcing resolvers on generated types\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/febd0358f4f7373e619597f1199c8e4f71270329\"><tt>febd0358</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/186\">#186</a> from vektah/error-redux</summary>\n\nError redux\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b884239a5170fcff95f9ceb1dbf7027671cedd95\"><tt>b884239a</tt></a> clarify error response ordering\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/58e32bbf601cba00e6ecc40e49067ffacb2a9bf3\"><tt>58e32bbf</tt></a> Drop custom graphql error methods\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d390f9c649e4cad098e4c20f2019cb1459ca642d\"><tt>d390f9c6</tt></a> Errors redux\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"0.2.5\"></a>\n## [0.2.5](https://github.com/99designs/gqlgen/compare/0.2.4...0.2.5) - 2018-07-13\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/0a9709db44324b53cb37ee23eff512213678362d\"><tt>0a9709db</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/188\">#188</a> from vektah/fix-windows-gopath</summary>\n\nFix windows gopath issue\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ea4f26c69e8b86e57ed46db71fec96e4dc6742be\"><tt>ea4f26c6</tt></a> more fixes\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1066953dfc6f39dfc4324190064deaf8793eaec3\"><tt>1066953d</tt></a> Appveyor config\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f08d8b61c5c68e1e9d9b5cd411ba465e986c63ae\"><tt>f08d8b61</tt></a> Fix windows gopath issue\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9ade6b7a62b2ad75b96ace7171c6c500fdccb137\"><tt>9ade6b7a</tt></a> Update gettingstarted to use new resolvers\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"0.2.4\"></a>\n## [0.2.4](https://github.com/99designs/gqlgen/compare/0.2.3...0.2.4) - 2018-07-10\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ac9e5a66f8790951063927b9c971f99cdaae7a2f\"><tt>ac9e5a66</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/180\">#180</a> from vektah/import-alias-before-finalize</summary>\n\nFix a bug custom scalar marshallers in external packages\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/160ebab52f7ed9d95944dadaa07050a08e81ac36\"><tt>160ebab5</tt></a> Fix a bug custom scalar marshallers in external packages\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/43212c04c9ffa65fa3c44d3179f8b123addae767\"><tt>43212c04</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/179\">#179</a> from vektah/models-config-error</summary>\n\nImprove Output Filename and Package Handling\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/936bc76e4fc8dd23110eefde1c6e054feaaf50c4\"><tt>936bc76e</tt></a> Better handling of generated package name\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5d3c8ed2a58189dbe8c09b8854446e503e463f37\"><tt>5d3c8ed2</tt></a> Inline ImportPath strings\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fc43a92ad6b1370cbb319fa37ca8cb12f9d59226\"><tt>fc43a92a</tt></a> Check that exec and model filenames end in *.go\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6d38f77d0841210a48b64a62573a6460fff93a62\"><tt>6d38f77d</tt></a> Handle package name mismatch with dirname\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ebf1b2a5688787fa6e3e3474e77080990e96a875\"><tt>ebf1b2a5</tt></a> Add error message when specifying path in package name\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c8355f48e90da4d8acba0ab5aa124e87db6fbb2d\"><tt>c8355f48</tt></a> Check models config for package-only specs\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"0.2.3\"></a>\n## [0.2.3](https://github.com/99designs/gqlgen/compare/0.2.2...0.2.3) - 2018-07-08\n- <a href=\"https://github.com/99designs/gqlgen/commit/6391596d0b6d3fb06b412bffbb7e18e3bc1e3044\"><tt>6391596d</tt></a> Add some basic docs on the new config file\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a9c3af86ee8cda101e1e6044407db9d447da9f86\"><tt>a9c3af86</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/176\">#176</a> from vektah/config-search-paths</summary>\n\nSearch for config\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/25cfbf082d8a07c4f9f247acb5452631056160e1\"><tt>25cfbf08</tt></a> Search for config\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/bff3356bec9b9b3ea70ff157fee5a9fa9421ab2a\"><tt>bff3356b</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/175\">#175</a> from vektah/lint-all-packages</summary>\n\ngometalinter should cover all packages\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/61f3717348e532ea4c072268a40844e3f758a1b1\"><tt>61f37173</tt></a> gometalinter should cover all packages\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ce6570448d36a9805c89bf4d071f1943872cc02e\"><tt>ce657044</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/173\">#173</a> from vvakame/feat-resolver-hint</summary>\n\nadd resolver option support to field\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/57b8279e2bb11344280410baa8e9a4c11721955d\"><tt>57b8279e</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/172\">#172</a> from vvakame/feat-newconfig</summary>\n\nswitch to .gqlgen.yml\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fcfceefbfc9e91a5d25da702de673036198354f8\"><tt>fcfceefb</tt></a> add resolver option support to field\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c7ce1cbbbf9082d023d9cfc2e4279c7e077dfc86\"><tt>c7ce1cbb</tt></a> update docs\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/42948153981d2fe84c715b20b396966dd74d5c09\"><tt>42948153</tt></a> move to .gqlgen.yml\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/325c45a40b41dec948abd1138cc8f84ae815b285\"><tt>325c45a4</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/171\">#171</a> from vvakame/add-gitignore</summary>\n\nadd .idea/ to .gitignore\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/aa4cec9b05374bfa196d29fdd31fc67865373b3e\"><tt>aa4cec9b</tt></a> add .idea/ to .gitignore\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"0.2.2\"></a>\n## [0.2.2](https://github.com/99designs/gqlgen/compare/0.2.1...0.2.2) - 2018-07-05\n- <a href=\"https://github.com/99designs/gqlgen/commit/f79b6a52ef73871a2f0d2d57b15a77078439c3b1\"><tt>f79b6a52</tt></a> cleanup new config\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f0a08617588220df36b0938dd5e0dbe0f2a06538\"><tt>f0a08617</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/163\">#163</a> from vvakame/feat-types-json</summary>\n\nsupport .gqlgen.yml\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/faf095fc412ac24799165e3e6217a46a34396cb8\"><tt>faf095fc</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/166\">#166</a> from vektah/validate-at-end</summary>\n\nValidate at end\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fca1e08e1796afd152cbf8ad94c4de16fa1faebc\"><tt>fca1e08e</tt></a> shh errcheck\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cc78971ee7f5e83d49d5bb7e0c4bea30fc12e4a8\"><tt>cc78971e</tt></a> Dont show compilation errors until after codegen\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9f6ff0cf7a9e14380c09a03029959199315a4455\"><tt>9f6ff0cf</tt></a> Convert todo example to new resolver syntax\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8577ceab9d2715b84d76aa38a6dc2bb20fd95889\"><tt>8577ceab</tt></a> address comment\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/86dcce730bad2f06b48faf7f8ea1f27af668de50\"><tt>86dcce73</tt></a> Add format check to -typemap argument\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5debbc6acfc7aa0b5ace5c96d775401aef4ad85f\"><tt>5debbc6a</tt></a> Implement types.yaml parsing\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ecf56003d5b366805930e62f787ec338f57d9543\"><tt>ecf56003</tt></a> Refactor types.json parsing\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/b16e84295a1e72d27c6b96784c0266058d8716bb\"><tt>b16e8429</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/159\">#159</a> from vektah/enum-only-generation</summary>\n\nDont skip model generation if there are enums defined\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3f751a407d6c33f5cc61998983ec02d1c644fc26\"><tt>3f751a40</tt></a> Dont skip model generation if there are enums defined\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/588aeacb5fb32b6b3e4ee818fec784eae2277956\"><tt>588aeacb</tt></a> more tutorial fixes\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/dc472965103858af8dd0af0f951f453f88ea3f3e\"><tt>dc472965</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/157\">#157</a> from johncurley/fix-docs-argument</summary>\n\nUpdated mutation to take correct argument\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/88a84f83320c19fb01b6935af8d4fd34652344fc\"><tt>88a84f83</tt></a> Updated mutation to take correct argument\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/404f0b0d4844035f971135864bb4b20e98761b22\"><tt>404f0b0d</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/151\">#151</a> from qdentity/fix-longer-gopath</summary>\n\nFix bug with multiple GOPATH full package name resolving\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f66e2b3b8c7be8915dbf8cdc2a7d57a907ff31f0\"><tt>f66e2b3b</tt></a> Fix bug with multiple GOPATH full package name resolving</summary>\n\nThis commit fixes the bug where GOPATH values that are longer than the input package name cause 'slice bounds out of range'  errors.\n\n</details></dd></dl>\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"0.2.1\"></a>\n## [0.2.1](https://github.com/99designs/gqlgen/compare/0.2.0...0.2.1) - 2018-06-26\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/cb87a2cb66f5a64749f6464900b1c12bca47ed67\"><tt>cb87a2cb</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/147\">#147</a> from vektah/import-overhaul</summary>\n\nImprove import handling\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/9fa3f0fbdc5691042e6ca21e9574d87715838318\"><tt>9fa3f0fb</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/134\">#134</a> from mastercactapus/small-interfaces</summary>\n\nadd lint-friendly small interfaces option for resolvers\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e8c30acdce72d1f39b9308f1b548a89f7a11316c\"><tt>e8c30acd</tt></a> fix template error on generated defaults (<a href=\"https://github.com/99designs/gqlgen/pull/146\">#146</a>)</summary>\n\n* fix template error on generated defaults\n\n* go fmt\n\n* add test for default fix\n\n* .\n\n* add key sort for default values\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/769a97e2e6903960df001e5953e5369e86d6432e\"><tt>769a97e2</tt></a> fix race in chat example test - t.Parallel() doesn't guarantee parallel execution - moved goroutine so the test can execute independently\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5b77e4c22dd929db47cdf23535e14bab5b793a93\"><tt>5b77e4c2</tt></a> remove deprecation warning for now\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/59a5d7520fc936e9432b9ec8484ad9175b3ddc5b\"><tt>59a5d752</tt></a> remove trailing S\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b04846f6da0cfdb341a38e76ca8069a6cd792ef7\"><tt>b04846f6</tt></a> fix time race in scalar test\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a80b720fc230172c8c3a7414b2ad06175d94cba4\"><tt>a80b720f</tt></a> name updates, deprecation, some code comments\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2bbbe0546d12ba343db5eea61aeba896c127a6c4\"><tt>2bbbe054</tt></a> Merge branch 'master' into small-interfaces\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4ffa2b24d4b4c53b934d8a168d54c50e08dde9b6\"><tt>4ffa2b24</tt></a> case insensitive compare to determine self package\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c0158f5418b679d1af358ce6f7f9a9d3ecf4fcf0\"><tt>c0158f54</tt></a> make sure colliding imports are stable\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/abf85a104ab1b06c6c181c7dae74d84b3d88628c\"><tt>abf85a10</tt></a> get package name from package source\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a39c63a5ef9dadec023241f049d511380dbce189\"><tt>a39c63a5</tt></a> remove a random json tag from tutorial\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f48cbf03b9df1d3bcedf44f8b23fa7f18b6c909a\"><tt>f48cbf03</tt></a> tutorial fixes\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/0a85d4f2df870106b309ab11c467070de5214200\"><tt>0a85d4f2</tt></a> Update generated headers to match convention. (<a href=\"https://github.com/99designs/gqlgen/pull/139\">#139</a>)</summary>\n\n* Update generated.gotpl\n\n* Update models.gotpl\n\n* Update data.go\n\n* update go generate\n\n* revert code changes\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4a6827bdcc106187fb8ee4b70deb19931f5514ee\"><tt>4a6827bd</tt></a> Update getting started guide\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a21f32731d8f354f29aa11f1f62b5bb2da977ad8\"><tt>a21f3273</tt></a> Use recognized `Code generated` header\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/038c6fd2d499c89dea430255ffaf583510fd6016\"><tt>038c6fd2</tt></a> change from `ShortResolver` to `ShortResolvers` - prevents possible collision with an object type named `Short`\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0bc592cd070d8d54fd6ceb23032f994918bc6db8\"><tt>0bc592cd</tt></a> run go generate\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/db2cec072a8f617844393c248248f94500f7749a\"><tt>db2cec07</tt></a> fix template formatting\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/59ee1b5cf3789aa98907436ab446373249e88527\"><tt>59ee1b5c</tt></a> from probably makes more sense\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/620f7fb42c4be6c5bc46bf56b41d0f0903adb9f0\"><tt>620f7fb4</tt></a> add \"short\" resolver interface\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<a name=\"0.2.0\"></a>\n## [0.2.0](https://github.com/99designs/gqlgen/releases/tag/0.2.0) - 2018-06-21\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d26ef2a2622e005e6047c924ef83fcbec83ea46c\"><tt>d26ef2a2</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/136\">#136</a> from tianhai82/master</summary>\n\nfix GOPATH case mismatch issue\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a34b4de4cdf37401d82871970f7696b857cd63ce\"><tt>a34b4de4</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/137\">#137</a> from appleboy/patch-1</summary>\n\nfix example links\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/c1cde36c18c84633c4adcc8de9d6f97e48b7ec31\"><tt>c1cde36c</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/133\">#133</a> from mastercactapus/skip-type-mismatch</summary>\n\nskip struct fields with incompatible types\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c1b4574cc5f9c09925f391ebab839d30c63f7f2b\"><tt>c1b4574c</tt></a> fix example links\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/63976d5fd90bf374c9b0553ac34c3e68bec88310\"><tt>63976d5f</tt></a> fix GOPATH case mismatch issue\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8771065fa6a95ac7cf8c0548f6f1da3e0d23818f\"><tt>8771065f</tt></a> skip fields with incompatible types\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/40d9a11be10846d2d69c8731c503ddf434b93146\"><tt>40d9a11b</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/127\">#127</a> from jon-walton/windows-path-slash</summary>\n\nconvert windows input path separators to slash\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7db9d122bb7b2145dac61b69a1947c5d211c7623\"><tt>7db9d122</tt></a> convert windows input path separators to slash\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a5f7260161f98d29b79c3484f80279ce42990dfc\"><tt>a5f72601</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/122\">#122</a> from vektah/json-encoding-fixes</summary>\n\nFix json string encoding\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f207c62c817cfe47e58407639fbf47491a6da3fd\"><tt>f207c62c</tt></a> review feedback\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/578d8415192341986a44ee0e1acf5f623534f5ac\"><tt>578d8415</tt></a> Fix json string encoding\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e9b406669f567b4804958606dfd68f641dbce6a3\"><tt>e9b40666</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/123\">#123</a> from vektah/drop-fk-generation</summary>\n\nBC Break: Stop generating foreign keys in models\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a8419e20b5181f1397761cf17cd4da773c2873c9\"><tt>a8419e20</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/124\">#124</a> from vektah/fix-backtick-escaping</summary>\n\nFix backtick escaping\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/47eaff4de24fbdda9c0d78df76182748e47035ab\"><tt>47eaff4d</tt></a> Fix backtick escaping\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a5c02e6c1d9700b620d6735ed38e4f023f26bbd9\"><tt>a5c02e6c</tt></a> BC Break: Stop generating foreign keys in models\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/94d5c89eabde2bef4efd024c23587474d38ddf94\"><tt>94d5c89e</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/120\">#120</a> from andrewmunro/bugfix/fix-panic-on-invalid-array-type</summary>\n\nFixing panic when non array value is passed to array type\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5680ee49b7ff8972d6c8998e3c301675bc6e30d0\"><tt>5680ee49</tt></a> Adding dataloader test to confirm no panic on malformed array query\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/55cc161f6fb9f44d15fe520b1f6bcff12b3a1db6\"><tt>55cc161f</tt></a> Fixing panic when non array value is passed to array type\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6b3b338d5f9c8b5a80ad4ea1e2e37aa58677ea9d\"><tt>6b3b338d</tt></a> Add gitter link to readme\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6c823beb069be4fed6f0218ec5ff6a5211968b56\"><tt>6c823beb</tt></a> add doc publish script\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a25232d8cce19899b610fcaffbda5cee3d1f4bab\"><tt>a25232d8</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/113\">#113</a> from mikeifomin/patch-1</summary>\n\nFix typo in url dataloaden\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3a129c77a73b340bd9e04ecfdbebe65e9779f47f\"><tt>3a129c77</tt></a> Fix typo in url dataloaden\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e1fd79fed15f60c47471d901c8250ab56aff1c55\"><tt>e1fd79fe</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/111\">#111</a> from imiskolee/master (closes <a href=\"https://github.com/99designs/gqlgen/issues/110\"> #110</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e38cb497d72a1452c04ed2b82195f6b7cb142038\"><tt>e38cb497</tt></a> 1. fix bug: <a href=\"https://github.com/99designs/gqlgen/pull/110\">#110</a>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/3990eacf7d8d99143a69b249ef164787ed00e2ee\"><tt>3990eacf</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/108\">#108</a> from imiskolee/master</summary>\n\ngenerate json tag to model field  by gql name.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/abb7502af6f8df4726b5d96233a32871668b3787\"><tt>abb7502a</tt></a> 1. run go generate\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e1f90946d1d81737ef40e2bcf8cecdb770d34f5f\"><tt>e1f90946</tt></a> 1. add json tag in models_gen.go 2. use gqlname to model filed json tag.\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/35e0971773350fc64949ed5526bf74d7ea2cd574\"><tt>35e09717</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/107\">#107</a> from vektah/fix-vendor-normalization</summary>\n\nFix vendor normalization\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/63ee41996e5466e27ea2711923c546eef41c6183\"><tt>63ee4199</tt></a> Fix vendor normalization</summary>\n\nWhen refering to vendored types in fields a type assertion would fail. This\nPR makes sure that both paths are normalized to not include the vendor\ndirectory.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/2a437c23b379cdcad7b7f4ca2e14a5c6075123a9\"><tt>2a437c23</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/105\">#105</a> from vektah/keyword-input-args</summary>\n\nAutomatically add a _ suffix to reserved words\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/26ac13ffec364baf5d6db0a3d6bb613c5fba25ea\"><tt>26ac13ff</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/104\">#104</a> from vektah/new-request-context</summary>\n\nAdd a NewRequestContext method\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/309e5c6db1c7af0da9b75b14aeff16885264122d\"><tt>309e5c6d</tt></a> Automatically add a _ suffix to reserved words\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a2fb14213d99f82edc5ef1a0ae44999c0fa1a707\"><tt>a2fb1421</tt></a> Add a NewRequestContext method\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ab6e65bd7d3b9dec26340074435cffec27cfe8d8\"><tt>ab6e65bd</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/97\">#97</a> from vektah/add-input-defaults</summary>\n\nDefault values for input unmarshalers\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1cd80c4a529688a8a713a9f5755c678e14db0e8c\"><tt>1cd80c4a</tt></a> Default values for input unmarshalers\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/79c69d15a44a35ee31aa4048a67a3240b3264636\"><tt>79c69d15</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/96\">#96</a> from vektah/refactor-tests</summary>\n\nRefactor tests\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7b1c819850ea5571e0c19530151bd1e0d3e02b32\"><tt>7b1c8198</tt></a> Refactor tests\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/0c7bdfc682bc065ff44752ac4fbefd455c3fcfeb\"><tt>0c7bdfc6</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/95\">#95</a> from vektah/custom-error-types</summary>\n\nCustom error types\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4bdc1e1f2a9f6442e65c6e0115d576dbc6566147\"><tt>4bdc1e1f</tt></a> regenerate\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/20250f189458d46e133a2cd583f0c503b40d51b2\"><tt>20250f18</tt></a> Add fully customizable resolver errors\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a0f66c8801e1d76bac4e3c16fbcf39a6403acc66\"><tt>a0f66c88</tt></a> Update README.md\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8f62d505c2c1d38252f6dda848d072b0aae88456\"><tt>8f62d505</tt></a> Update README.md\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a1043da696875b205ae3447ca75f58741fb4780e\"><tt>a1043da6</tt></a> Add feature comparison table to readme\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/22128e0ed65686e6482cb1b0a27363e67db69733\"><tt>22128e0e</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/93\">#93</a> from vektah/input-type-error-handling</summary>\n\nInput type error handling\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e7539f110a3d90ff9a0bce861e7c024fd91e2a02\"><tt>e7539f11</tt></a> Add an error message when using types inside inputs\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a780ce694891bd12fafe93eecc0e30cf534480e0\"><tt>a780ce69</tt></a> Add a better error message when passing a type into an input\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0424f0434ff34db8d4e8fc769e69f7205db05d49\"><tt>0424f043</tt></a> Refactor main so tests can execute the generator\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ab3803a6683be2941e5817ccb9f34460f2b39ac9\"><tt>ab3803a6</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/89\">#89</a> from vektah/opentracing-parent-span</summary>\n\nAdd parent opentracing span around root query/mutation/resolvers\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d157ac353535af70d5c235d493281fefc8111d73\"><tt>d157ac35</tt></a> Add context to recover func</summary>\n\nThis makes the request and resolver contexts available during panic\nso that you can log the incoming query, user info etc with your bug\ntracker\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3ceaa18941bfa5cfd26e1d1eaae499050f72c91d\"><tt>3ceaa189</tt></a> add request middleware\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/877f75a07cca3abc836437608cf2e7d499ad3ff8\"><tt>877f75a0</tt></a> remove debugging trace (closes <a href=\"https://github.com/99designs/gqlgen/issues/81\"> #81</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/091d25ab6e9250c5eca7e5144bf05455ed1a8754\"><tt>091d25ab</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/87\">#87</a> from jon-walton/windows-paths</summary>\n\nfix package paths on windows\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/53a6e8141d870f28176433233d98573fc83a890a\"><tt>53a6e814</tt></a> fix package paths on windows\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/546b7b7607c9b6137253e528ab5cef9508ba7410\"><tt>546b7b76</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/84\">#84</a> from yamitzky/master</summary>\n\nFix collectFields to handle aliased fields properly\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ba2ecb166b6754a4684dcedff7cab532c025496d\"><tt>ba2ecb16</tt></a> Add test case for aliased field\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/78f3a56cb3670a203f9484af57c05f54c94345ea\"><tt>78f3a56c</tt></a> Fix collectFields to handle aliased fields\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/4d2eece0b6a79c7c34b5485dc0678fe1fd1690e3\"><tt>4d2eece0</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/77\">#77</a> from vektah/opentracing</summary>\n\nAdd resolver middleware Add opentracing support\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f0def668d3a7edb75e88830013ff957b3cf7e363\"><tt>f0def668</tt></a> better opentracing tags\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/600bff7ae34e28ceab663317f07c3b583cdd59c0\"><tt>600bff7a</tt></a> bump metalinter deadline\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2e32c12162aa3952734d1ef47678b94fa279b275\"><tt>2e32c121</tt></a> regenerate code\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5b9085072d77a72e0d138a09ace6946f15fee827\"><tt>5b908507</tt></a> opentracing middleware\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/57adb244df6b509c2ecf4bfb15ea7d4ecd00e17c\"><tt>57adb244</tt></a> Add resolver middleware\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/28d0c81f077b8b01dc715de9cd96820fc197c36e\"><tt>28d0c81f</tt></a> capture args in map\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e266fab9b98129526e78178a927e28f3242dc002\"><tt>e266fab9</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/75\">#75</a> from mathewbyrne/fix-import-dash</summary>\n\nReplace Invalid Characters in Package Name with an Underscore\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/b0d79115d07506920fea5f3f93086c9b4849f9e3\"><tt>b0d79115</tt></a> Replace invalid package characters with an underscore</summary>\n\nThis will sanatise local import names to a valid go identifier by\nreplacing any non-word characters with an underscore.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/66a915034875ec0ff4be588406272159d35c342e\"><tt>66a91503</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/72\">#72</a> from vektah/custom-enum</summary>\n\nAdd support for custom enums\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/61a34a7428aa897f1c14d5d3e5e47a655c2c236c\"><tt>61a34a74</tt></a> Add support for custom enums\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/74ac827a9a417cd0bb4bfb0276cd61278ba0ae6e\"><tt>74ac827a</tt></a> move docs to new domain\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ebcc94d153a1cf336ec5f866ac6c9514fba3f57e\"><tt>ebcc94d1</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/70\">#70</a> from vektah/models-in-separate-package</summary>\n\nAllow generated models to go into their own package\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9a5321317b96de2404c56d0a4dcae12f4beff78f\"><tt>9a532131</tt></a> Allow generated models to go into their own package\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/6129fd266ac2d662404531df0070c47d402b4b35\"><tt>6129fd26</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/69\">#69</a> from vektah/support-options</summary>\n\nSupport OPTIONS requests\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/af38cf0571bbf4e43231f764508330d818fdcc5b\"><tt>af38cf05</tt></a> Support OPTIONS requests\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/893ead12b72ade2fe965dab33bbf0c7a4179bcad\"><tt>893ead12</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/67\">#67</a> from vektah/raw-schema-string</summary>\n\nUse a raw string for schema\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/af6178a7a782ca1e03200929d7c67371f6855cf8\"><tt>af6178a7</tt></a> Use a raw string for schema\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/c0753bed4b8687082b559540abbbdfdbf1a65a1b\"><tt>c0753bed</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/66\">#66</a> from vektah/generate-enums</summary>\n\nGenerate enums\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/85a51268892a5c33fdebd1bf51eb181d8b1e1b2a\"><tt>85a51268</tt></a> Generate enums\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/71c4e2655c7ed81068f278598aa6cc2d9eed5b32\"><tt>71c4e265</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/65\">#65</a> from vektah/context</summary>\n\nMake field selections available in context\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c60336bff6e6367f71d48279bceaeb7cbd331299\"><tt>c60336bf</tt></a> regenerate\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c5ccfe4e720b2ece5599ebe3fdf7a0473012acc2\"><tt>c5ccfe4e</tt></a> Add an example for getting the selection sets from ctx\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e7007746dea1694c97a6741fee7ec1351b5ef350\"><tt>e7007746</tt></a> add fields to resolver context\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/40918d52d4f222f7d89bd09bdee6c0d2963a6720\"><tt>40918d52</tt></a> move request scoped data into context\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/4e13262e5b1b30b8f85fb580f00d1bc6f213ca8e\"><tt>4e13262e</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/64\">#64</a> from vektah/vendor-gen-path</summary>\n\nFix vendored import paths in generated models\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2ff9f32f6e6195f9ee8b760e872fc2f8b052de07\"><tt>2ff9f32f</tt></a> Fix vendored import paths\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/630a3cfc60cb0dff9d32431b11c966bdcc596f58\"><tt>630a3cfc</tt></a> failing test\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/99dec54c55dd7ec38d9e338ea643087955974363\"><tt>99dec54c</tt></a> fix missing deps\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/652c567e145310921ee1159dc97d13965c46f932\"><tt>652c567e</tt></a> Remove missing field warning and add test for scalar resolvers (closes <a href=\"https://github.com/99designs/gqlgen/issues/63\"> #63</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3dc87e1b08d7ba4eeae95b738dff14a631691603\"><tt>3dc87e1b</tt></a> gtm\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c76c34342e71c59a53e3307664d65c09eecc86a3\"><tt>c76c3434</tt></a> Add dataloader tutorial\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/449fe8f823760340cd8569d7caed00fb97613eb4\"><tt>449fe8f8</tt></a> Optimize frontmatter\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b90ae60e80d3df104e94f2d35b7f8f687bbf738c\"><tt>b90ae60e</tt></a> flatten menus\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a508ecb07fc8c5d714bba99f5174247d99e7eaca\"><tt>a508ecb0</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/45\">#45</a> from dvic/fix-resolver-public-errors</summary>\n\nRetain orignal resolver error and support overriding error message\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ab4e7010a6ed1b75a5ab334b543806a2b1889628\"><tt>ab4e7010</tt></a> Retain orignal resolver error and support overriding error message (closes <a href=\"https://github.com/99designs/gqlgen/issues/38\"> #38</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a05a18d5a4bdc85962d17945659df4a7360dbf91\"><tt>a05a18d5</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/61\">#61</a> from vektah/import-resolver-collisions</summary>\n\nDeal with import collisions better\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d81ea2c23f9ddab0ca9fa8d9a34183f08a146a1d\"><tt>d81ea2c2</tt></a> Deal with import collisions better\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/fb131a94816a31ade5dbeedd9c7fb15c87aaa1a1\"><tt>fb131a94</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/59\">#59</a> from vektah/map-support</summary>\n\nAdd map[string]interface{} escape hatch\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/49d921647337e2a54fca53b71d5ae3907e681f12\"><tt>49d92164</tt></a> Add map[string]interface{} escape hatch\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/5abdba16ebfe032ef6c1b965d81b53099a3efc69\"><tt>5abdba16</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/57\">#57</a> from vektah/null-input-fields</summary>\n\nNull input fields\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f8add9d2c79ce57f5b7776fd4265f7a72bebc4a3\"><tt>f8add9d2</tt></a> remove more unneeded whitespace\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/84b066170081d0c2d16d06ec89e39323062e5d0e\"><tt>84b06617</tt></a> Allow nulls in input fields\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/54fbe16a2788b870cd966cb8ad6581b4f7b016e3\"><tt>54fbe16a</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/56\">#56</a> from vektah/getting-started-fixes</summary>\n\nGetting started fixes\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/17fd17a4318c9cb02d69a2bdd9dd3176857497d6\"><tt>17fd17a4</tt></a> Update the tutorial\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e65d2a5ac92eb9528d4f80c391e284571ff66d18\"><tt>e65d2a5a</tt></a> detect correct FK type\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b66cfa03ed53f8639b3cf0cf20a4ff8ebd604194\"><tt>b66cfa03</tt></a> small fixes to entry point\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0b62315a89d6c865b6d554789db9f817503d7da8\"><tt>0b62315a</tt></a> Create ISSUE_TEMPLATE.md\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f3a70dacafc04b6895c39eb0f8789022bd476254\"><tt>f3a70dac</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/55\">#55</a> from vektah/fix-input-ptr-unpacking</summary>\n\nFix ptr unpacking in input fields\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/10541f1922656c7ed48153421484edb3da973a79\"><tt>10541f19</tt></a> Fix ptr unpacking in input fields\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/15b3af2d5a6ed7240d09fb4c21fd905c8c316aa7\"><tt>15b3af2d</tt></a> Fix value receivers for unions too</summary>\n\nfixes 42\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/46103bdc1bc88c8cb6182f1d339c3b562c4e12b6\"><tt>46103bdc</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/53\">#53</a> from vektah/docs</summary>\n\nDocs\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d0211a0a6e2096fb609279d93c75d432921854f0\"><tt>d0211a0a</tt></a> Custom scalar docs\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e6ed4de5ab7f3346b2133c756008f6deb998d79a\"><tt>e6ed4de5</tt></a> Update readme link\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/51f08a9ec5a1622a057502ee67390c9329f8c19e\"><tt>51f08a9e</tt></a> start of docs\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ac832dea46f2f1b80660f781c5bc9e40e6482101\"><tt>ac832dea</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/51\">#51</a> from vektah/support-embedding</summary>\n\nSupport embedding in models\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9d710712becfe5ee08c7e9d0940ddd14145f77f7\"><tt>9d710712</tt></a> add embedding support\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0980df0e999d0a7a7cf9fb98e280782d29a5e862\"><tt>0980df0e</tt></a> Embedding example\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/cb34e6db2695cc16b72a661a3bb8c5b57e6bb2a0\"><tt>cb34e6db</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/50\">#50</a> from vektah/valuer-receiver</summary>\n\nDon't generate value receivers for types that cant fit the interface\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ec5f5e66a1303bc6dcca06b717e8e1cdd45e6b96\"><tt>ec5f5e66</tt></a> check for valuer receivers before generating type switch\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/dc898409dca42e0ae392f4b768321545d30434c3\"><tt>dc898409</tt></a> add test case\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/8ef253cbc3ae69e6da29b38b04a86287b2cc944a\"><tt>8ef253cb</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/49\">#49</a> from vektah/default-entrypoints</summary>\n\ndefault to Query / Mutation / Subscription if no entry points are specified\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/302058a7705f008c6877373e2e701332b6e50469\"><tt>302058a7</tt></a> Use default entry points for Query/Mutation/Subscription\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/13949fdf6977b05c3e4809e6678ac6a5c13c86e5\"><tt>13949fdf</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/37\">#37</a> from vektah/generate-interfaces</summary>\n\ngenerate interfaces\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/acc45bf0bcda7e85be14d2489b193c1ed0228d4f\"><tt>acc45bf0</tt></a> generate interfaces\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e47d5038e43963754073d2ea745cd8206e3a5756\"><tt>e47d5038</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/34\">#34</a> from vektah/root-types-only</summary>\n\nOnly bind to types in the root package scope\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ffe972a878d485bae6d82130947f95833e9987f5\"><tt>ffe972a8</tt></a> Only bind to types in the root package scope\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/0e78c0aeb9b73a57634e6934fa2e13234ec31d9a\"><tt>0e78c0ae</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/33\">#33</a> from vektah/unset-arguments</summary>\n\nAllow unset arguments\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bc9e0e54f69b88ff709f8d79d55f3491b30ff45e\"><tt>bc9e0e54</tt></a> Allow unset arguments\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/947183514df552507c78193d95d62665f03820a9\"><tt>94718351</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/31\">#31</a> from vektah/recover-handler</summary>\n\nCustomizable recover func\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e4e249ea5103c190226131fad48adfdfa6a3f551\"><tt>e4e249ea</tt></a> Customizable recover func\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/69277045fd045dfd3f47508f2491809c1e91826f\"><tt>69277045</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/30\">#30</a> from vektah/complex-input-types</summary>\n\nFix complex input types\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9b64dd22cee0454c5cc48d2921e12213d531e6cc\"><tt>9b64dd22</tt></a> Fix complex input types\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1d074b89baedb19b7011976a213d7169a4f24793\"><tt>1d074b89</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/29\">#29</a> from vektah/multi-stage-model-build</summary>\n\nSplit model generation into its own stage\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cf580c24c96f9064706accdaaa80513e3c8d350e\"><tt>cf580c24</tt></a> Split model generation into its own stage\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/926384db2ff70cf2bdbf7608feeb69666ddd9919\"><tt>926384db</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/28\">#28</a> from vektah/default-args</summary>\n\nadd default args\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/68c54a14debcc6a7b325d7e838c6a6b516d0dfda\"><tt>68c54a14</tt></a> add default args\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d63128f6ac1b0749b44b2386632174fe76b3be21\"><tt>d63128f6</tt></a> appease the linting gods\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/7b6b124ed53950c6e038fa641e391e8bf1369333\"><tt>7b6b124e</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/20\">#20</a> from vektah/codegen-cleanup</summary>\n\nCodegen cleanup\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/78c34cb3ca028519a8e4a83211a7e9a4d6f8ec3a\"><tt>78c34cb3</tt></a> regenerate\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5ebd157c798c7742656f802f9ecad5ada6c29183\"><tt>5ebd157c</tt></a> Only use one gofunc per subscription\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/79a70376e65dd097929deb048cd21f43d6b4fa48\"><tt>79a70376</tt></a> Move generated field resolvers into separate methods\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/e676abe4cdfc1ea97f9747cf0eb1d6a80c059b3e\"><tt>e676abe4</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/19\">#19</a> from vektah/generate-input-types</summary>\n\nGenerate input models too\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f094e79c3a24e820485cdf631eaeb666f8571447\"><tt>f094e79c</tt></a> Generate input models too\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1634f0882f3d469d0542cd5cd2943658df49a145\"><tt>1634f088</tt></a> Add a missed error check\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/4feb1689aa3b397c4ff6a1ff97c33f9a5a61fff2\"><tt>4feb1689</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/18\">#18</a> from vektah/array-input-args</summary>\n\nFix input array processing\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/98176297239463a57c35d05607051ecdfb4c59e9\"><tt>98176297</tt></a> Fix input array processing\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/4880497fc0431e2a83e5525c1f2668f7c15328cd\"><tt>4880497f</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/16\">#16</a> from vektah/better-templates</summary>\n\nBetter templates\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/278df9de416c542904b94c6a68b4b2f8f67966d3\"><tt>278df9de</tt></a> Better templates\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/f3731c73087b7d4233fb76f5f8518e13446cc6f9\"><tt>f3731c73</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/14\">#14</a> from vektah/autogenerate-models</summary>\n\nAutogenerate models\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cfe902a0b5c8ca9e8c12bccbb679530df2dff22a\"><tt>cfe902a0</tt></a> Autogenerate models\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/287bf7f43a14a4e689f9a5ff7812c6a9f36076a0\"><tt>287bf7f4</tt></a> more docs\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/9d896f4018f85b6c3db31b2221b83a49aeae8260\"><tt>9d896f40</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/13\">#13</a> from vektah/autocast</summary>\n\nAutomatically add type conversions around wrapped types\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/85fa63b9570357b8ce954b88ccfd2ba2dd437d15\"><tt>85fa63b9</tt></a> Automatically add type conversions around wrapped types\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/c8c2e40fe967a455c9a68dff69d1b5b100828ff6\"><tt>c8c2e40f</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/11\">#11</a> from vektah/subscriptions</summary>\n\nAdd support for subscriptions\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d514b82940a4aeb3312b3703e926f9c209f910f9\"><tt>d514b829</tt></a> Add some go tests to the chat app\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ec2916d91c7cf3ebd0803b82b064b9b830f8e9e0\"><tt>ec2916d9</tt></a> chat example for subscriptions using CRA+apollo\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8f93bf8d8856091e5d19103911c74dd0e1d6fe1f\"><tt>8f93bf8d</tt></a> get arg errors working in both contexts\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/62a18ff1ebd8ff1d4b370f217b03f63ac7641d6f\"><tt>62a18ff1</tt></a> Update generator to build a new ExecutableSchema interface\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c082c3a443d3547a83e0a594f06c69e3b58f8dea\"><tt>c082c3a4</tt></a> prevent concurrent writes in subscriptions\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f555aec6a3d3965288f67ebafe2b491f749be16d\"><tt>f555aec6</tt></a> switch to graphql playground for better subscription support\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/182195413ab1573286a3e0ea05ca5ad8550e360b\"><tt>18219541</tt></a> add websocket support to the handler\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d4c7f3b988c4d74eeb67e55be40a45549e4498f7\"><tt>d4c7f3b9</tt></a> update resolver definition to use channels for subscriptions\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d0244d24425231e7c021ef972993350482b69ff7\"><tt>d0244d24</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/10\">#10</a> from vektah/newtypes</summary>\n\nUser defined custom types\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5d86eeb60b9a82015e28deaf085349498b5ebb97\"><tt>5d86eeb6</tt></a> fix jsonw test\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/944ee0884b565d82c2f567dc64f01bff1f6b2806\"><tt>944ee088</tt></a> regenerate\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4722a855959112565548f5b2fc48891afd8d641a\"><tt>4722a855</tt></a> add scalar example\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/83b001aeb00773681279bc489197c08fff6794c2\"><tt>83b001ae</tt></a> rename marshaler methods\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e0b7c25f10b0b089109ede0edb5ac55c56e91272\"><tt>e0b7c25f</tt></a> move collectFields out of generated code\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/146c65380cec9e5f5bf59641d84faafecb31c07b\"><tt>146c6538</tt></a> generate input object unpackers\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d94cfb1f8654a42c8ab21e80b54ee2a50dc744e3\"><tt>d94cfb1f</tt></a> allow primitive scalars to be redefined\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/402e073076977744699cdf3ab961bd9967125561\"><tt>402e0730</tt></a> rename jsonw to graphql\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3e7d80dfe2afc488ea1a76f7ec727b5634bfca11\"><tt>3e7d80df</tt></a> Update README.md\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9c77e7a05659baef60d470502dd4ae903ac641a0\"><tt>9c77e7a0</tt></a> Update dataloaden dep\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/530f7895b79a60c7b0fb820126e727dffa2c3dfa\"><tt>530f7895</tt></a> Make gql client work with older versions of mapstructure\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5c04d1adaddd2b67b5052caa33488a4a2c011df0\"><tt>5c04d1ad</tt></a> __typename support\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/51292db98260ba3dd75630a87104d69b057a20b4\"><tt>51292db9</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/4\">#4</a> from vektah/cleanup-type-binding</summary>\n\nCleanup schema binding code\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c89a8774650d41a4a99bf5b90d0c69c4a7a166a3\"><tt>c89a8774</tt></a> Cleanup schema binding code\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/030954a5d49ccc5129c10edd921d169a33f79be4\"><tt>030954a5</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/2\">#2</a> from ulrikstrid/patch-1</summary>\n\nFix typo in README\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cb507bd07bb4cdd65fd2f64a34d2dfa1e7319008\"><tt>cb507bd0</tt></a> Fix typo in README\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e3167785fce58eef451015cefd60b0a015a86b0b\"><tt>e3167785</tt></a> Fix template loading from inside vendor\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/261b52ce9fb650099a8d4eb3c2105c5fa04b67a1\"><tt>261b52ce</tt></a> fix an error handling bug\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1da57f59f06576884f4d9ce793914f6ae8b572d0\"><tt>1da57f59</tt></a> Split starwars models out from resolvers\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/743b2cf9741096ebddbbcad4d3e61c5c98fe5800\"><tt>743b2cf9</tt></a> fix indenting\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fb2d5817ebb2c447880b5b3525b56954ca9c742a\"><tt>fb2d5817</tt></a> use gorunpkg to vendor go generate binaries\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7f4d0405e0aad3c01d00533af603f029512d2f71\"><tt>7f4d0405</tt></a> encourage dep use\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3276c7824ad7f9de4ae0b83f00517e6eeb7ec623\"><tt>3276c782</tt></a> Do not bind to unexported vars or methods\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5fabffaf1765f9404fa6a1a4286df8888e6984ab\"><tt>5fabffaf</tt></a> heading tweaks\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e032c1d5e9a24c8813a282e895747946a0bb7bdc\"><tt>e032c1d5</tt></a> Prior art\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/45b79a1e050299e9268f5c95588f90b3c1cb13e7\"><tt>45b79a1e</tt></a> Add a test for multidimensional arrays\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ec73a50a45e576bb8cc3ba886244e96d2c03eb32\"><tt>ec73a50a</tt></a> fix race\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/75a3a05c2b34442c334f74baef551424a57be4b2\"><tt>75a3a05c</tt></a> Dont execute mutations concurrently\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3900a41db7a9afaade738ddcfe20b7463013ae6a\"><tt>3900a41d</tt></a> tidy up json writing\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0dcf7f6b0a792d98bac361e9a353ec6310d9a097\"><tt>0dcf7f6b</tt></a> add circle ci badge\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2c9bf21cb301fd1c3b42e6444002d4e1c4b16e2f\"><tt>2c9bf21c</tt></a> get dataloaden\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4fff3241e1a237bd15dd7300adec4a2954159bf5\"><tt>4fff3241</tt></a> install dataloaden in ci\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/951f41b2c13bd2057bd271ca70e1c7a59d791920\"><tt>951f41b2</tt></a> circle ci\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8fa5f628c2c03f4ca8e23554cb7bce7a0f4e6038\"><tt>8fa5f628</tt></a> less whitespace\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c76f3b9883b107811f983902438920bfc7104dc6\"><tt>c76f3b98</tt></a> clean up template layout\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4a6cea5e50be1e1721d7ac2eb0089c325f68e068\"><tt>4a6cea5e</tt></a> readme fixes\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b814ad52598a681550b0421e09b4ea6e701cecae\"><tt>b814ad52</tt></a> rename repo\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9c79a37adfbfa205e05b78dd50081c7108406e8d\"><tt>9c79a37a</tt></a> Cleanup and add tests\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5afb5caa9f7ddd94a7f1f817be1589735e80c90d\"><tt>5afb5caa</tt></a> update dataloaden\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d00fae08a66e6f8a1eb4dbdaf72b7adb423e94b5\"><tt>d00fae08</tt></a> Add dataloader example\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/86cdf3a0a7c57af5e9f9649c7d0c176c52f200bd\"><tt>86cdf3a0</tt></a> Fix package resolution\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/41306cbab515668d3f6ba42d41a21f9779bb8f50\"><tt>41306cba</tt></a> Better readme\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ce5e38ed04f98aeb9eac7d2304b81004e7998bc0\"><tt>ce5e38ed</tt></a> Add GET query param support to handler\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/dd9a8e4d1179532784ac9344cbf69071dc6240bb\"><tt>dd9a8e4d</tt></a> parallel execution\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4468127eeed9f747fdf590620906725d7312e9a9\"><tt>4468127e</tt></a> pointer juggling\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9e99c14929c18b624f2899551c79b1667df2afac\"><tt>9e99c149</tt></a> Use go templates to generate code\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/41f74970749b289303bc1d1ded8b0d9a0bb99adb\"><tt>41f74970</tt></a> Support go versions earlier than 1.9\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c20ef3d0d5c448cbf377f407d4b277566eb5a1aa\"><tt>c20ef3d0</tt></a> add missing nulls\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bb753776138e12b08c0ceaa8b3059e0ba3cbdb5b\"><tt>bb753776</tt></a> Use goimports instead of gofmt on generated code\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c2cf38354c2db094761f7021cd9979d77fe280b8\"><tt>c2cf3835</tt></a> coerce types between similar types\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5297dd4090db7564fadc389845e5d743d087dfd2\"><tt>5297dd40</tt></a> Add support for RFC3339 formatted Time as time.Time\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/61291ce9c1215156ceab87ec6b0fcd4c821c304f\"><tt>61291ce9</tt></a> support vendor\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6d437d7ea42017741f9209a95db23491dfc5c1d0\"><tt>6d437d7e</tt></a> allow map[string]interface{} arg types\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/39a8090a4800c5788572d0de1a4a4fe223bf6847\"><tt>39a8090a</tt></a> cleanup\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a9352e3239cf58ff86e630a2d324b2292f6c6654\"><tt>a9352e32</tt></a> gometalinter pass\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9ab81d671b8a9417baa7d9e622440b3dbe819bda\"><tt>9ab81d67</tt></a> Finish fleshing out the connection example\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e04b1e50e8437fc44e6bc8d861dc1a0a71bfd38d\"><tt>e04b1e50</tt></a> inline supporting runtime funcs\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9cedf0122d4c1164475e69d038ecabfbd8e77267\"><tt>9cedf012</tt></a> complex arg handling\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0c9c009f2d0f47d5491a37ac7d561000feb60ca7\"><tt>0c9c009f</tt></a> Clean up json writer\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e7e18c401d874362132fcac3b8349130c8e265ea\"><tt>e7e18c40</tt></a> much cleaner generated code\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6a76bbf6d8f1fdc2f084f4de107381707dad2565\"><tt>6a76bbf6</tt></a> Interfaces and starwars example\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/29110e76b56bbb4265f5a8327021a26d3d0e5cbb\"><tt>29110e76</tt></a> Generate ESS to remove it interface{} casts completly\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2f358e7daacfcfd861372d2b891e19ac909c47e2\"><tt>2f358e7d</tt></a> graphiql autocomplete working\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2e2c3135e6940657647d8d091962cda880638a5f\"><tt>2e2c3135</tt></a> create separate type objects in prep for fragment support\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/22c0ad0a230ce02fe058aaaa2f971aee897983d5\"><tt>22c0ad0a</tt></a> Add basic introspection support\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c1c2cb6440efd45c92f4125029756923a16773d4\"><tt>c1c2cb64</tt></a> Code generation\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4be5ac84f45789d327fd18c5ec2bbcdf5a936659\"><tt>4be5ac84</tt></a> args\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bde800e19db009e91eb0386d240857b73ed122f8\"><tt>bde800e1</tt></a> imports\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/596554da3c31f7b4de5fd8c81c3b4f4f36ebdb72\"><tt>596554da</tt></a> start of code generator\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/62fa8184f7f9ec767f2b9a74482224e98b77df1f\"><tt>62fa8184</tt></a> split generated vs exec code\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0ea104cd9cec6b427261d7357eebff4e9a75a9bd\"><tt>0ea104cd</tt></a> remove internal package\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f81371e8431e8136985d9742fbea157e25bc34fd\"><tt>f81371e8</tt></a> Args\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/01896b3bbd66b3e6131ab1242c34cc5b1761d78a\"><tt>01896b3b</tt></a> Hand written codegen example\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5a756bda0de8154469bc50db5a481ea86a90ea09\"><tt>5a756bda</tt></a> Rewrite paths and add readme\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/b46637030579abd312c5eea21d36845b6e9e7ca4\"><tt>b4663703</tt></a> trace: Log graphql.variables rather than tag</summary>\n\nAccording to the OT documentation tag values can be numeric types, strings, or\nbools. The behavior of other tag value types is undefined at the OpenTracing\nlevel. For example `github.com/lightstep/lightstep-tracer-go` generates error\nevents.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5d3b13f2e2215f7d53c88b20fd2c37f0a37b5ffd\"><tt>5d3b13f2</tt></a> Support context injection in testing\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/beff08417b04a91f0a7618b55786d63eec833b9f\"><tt>beff0841</tt></a> Separate literal arg parsing cases (int, float)</summary>\n\nThis change allows the ID scalar implementation to more semantically\nhandle the case for unmarshalling integer IDs.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/ab1dd4b5bf46b60897a048fab59628abe736812c\"><tt>ab1dd4b5</tt></a> Add tests for ID scalar input</summary>\n\nThis commit adds two tests cases for ID scalar input:\n- a string literal\n- an integer literal\n\nBoth of these literal types are covered by the GraphQL specification as\nvalid input for the ID scalar.\n\nReference the ID section of the spec for more information:\nhttp://facebook.github.io/graphql/October2016/#sec-ID\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/d8c57437fcbad670b16d06538151dfddc72eda88\"><tt>d8c57437</tt></a> Extract ID scalar implmentation</summary>\n\nThis change moves the ID scalar implementation out of `graphql.go` and\ninto its own file `id.go` for consistency with the Time scalar\nimplementation.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/10eb949b8f4439212ef19d5d924c47c10c110cc7\"><tt>10eb949b</tt></a> cleaned up example to use MustParseSchema\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/52080e1f0951c75dd4addba57db27fc4de1d0019\"><tt>52080e1f</tt></a> Rename friendsConenctionArgs to friendsConnectionArgs</summary>\n\nFix spelling error in friendsConnectionArgs type\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3965041f0afca9aa0b87f45421eaa1244aada88f\"><tt>3965041f</tt></a> Update GraphiQL interface (add history)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/6b9bc3e2dcb85a6f0d08b133d170ec3e60fe55d0\"><tt>6b9bc3e2</tt></a> Add `(*Schema).Validate` (<a href=\"https://github.com/99designs/gqlgen/pull/99\">#99</a>)</summary>\n\n* Add `(*Schema).Validate`\n\nThis adds a `Validate` method to the schema, which allows you to find out if a query is valid without actually running it. This is valuable when you have a client with static queries and want to statically determine whether they are valid.\n\n* Fix Validate doc string\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7f3f7120c8849d4f3ed4c3c9421b9c05a4625d84\"><tt>7f3f7120</tt></a> Set content-type header to `application/json`\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c76ff4d892ae945f1c1a7b31cd19262d8031d597\"><tt>c76ff4d8</tt></a> moved packer into separate package\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/073edccda088f21eb03050184190bbe1e66289eb\"><tt>073edccd</tt></a> updated tests from graphql-js\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3a9ac3683963f80ac4bb7446ff1870c760c50b72\"><tt>3a9ac368</tt></a> validation: improved overlap check\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f86c8b01d949de962be8254b486e7b3e99c52489\"><tt>f86c8b01</tt></a> allow multiple schemas in tests\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/77750960d3c3002eb2b17268834795782448e654\"><tt>77750960</tt></a> validation: OverlappingFieldsCanBeMerged\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e7ca4fde4e2fe3aa5c71ae6ff8af605728ec6dd9\"><tt>e7ca4fde</tt></a> refactor: remove SelectionSet type\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7aad6ba78fc19e4b89b0eae12263e79f56eeb97b\"><tt>7aad6ba7</tt></a> refactor: use schema.NamedType\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fddcbcb791d050972e8eb4177c7e48b14db38824\"><tt>fddcbcb7</tt></a> resolves <a href=\"https://github.com/99designs/gqlgen/pull/92\">#92</a>: fix processing of negative scalars during parse literals\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/48c1a0fb9c1adcec045be7453f74eed6b77f6419\"><tt>48c1a0fb</tt></a> Small fix based on feedback.\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e90d10895bd124a6519d08e4c18fa49a4f592b5f\"><tt>e90d1089</tt></a> allow custom types as input arguments\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/dd3d39e28aa2c58ad04f5a608d8ff5c15f9db518\"><tt>dd3d39e2</tt></a> fix panic when variable name not declared\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c2bc105ff947eb09cdc5df7f452813c67472e0a0\"><tt>c2bc105f</tt></a> validation: NoUnusedVariables\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4aff2976b4cc7aea5311d994920aeb0023b09c47\"><tt>4aff2976</tt></a> refactor\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0933d24133db6ffbe62da026e62e6e5e4c7711d2\"><tt>0933d241</tt></a> validation: VariablesInAllowedPosition\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/83e2f31aa8b8fd94d6fb0d47dbf1676907e07631\"><tt>83e2f31a</tt></a> validation: NoUndefinedVariables\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c39ffecaa7a19ae0d5703923a7e7c7d018d29e23\"><tt>c39ffeca</tt></a> validation: PossibleFragmentSpreads\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/47c5cde7110bca8e5c78771db80d8c216dc1cd18\"><tt>47c5cde7</tt></a> validation: UniqueInputFieldNames\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/94cb291812ee54a780bc70d065532e2be952be95\"><tt>94cb2918</tt></a> big refactoring around literals\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3d63ae8037964a34f0660baa752973f549de8ee3\"><tt>3d63ae80</tt></a> some refactoring\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/969dab9d2fc07c21a64c0566a6374a2ef7854950\"><tt>969dab9d</tt></a> merged lexer into package \"common\"\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a9de61717bc8ac77dcf5c4e537b12d0788c34c4f\"><tt>a9de6171</tt></a> renamed lexer.Literal to lexer.BasicLit\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/88c492bbb06d76cb7f07883e7194e73b4fcb93a9\"><tt>88c492bb</tt></a> validation: NoFragmentCycles (closes <a href=\"https://github.com/99designs/gqlgen/issues/38\"> #38</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d39712c819b716ef2e87097bffb37988e13af9e4\"><tt>d39712c8</tt></a> refactor addErrMultiLoc\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ee5e1c3baa2b0eb4854942596e82f7dea686a83f\"><tt>ee5e1c3b</tt></a> validation: updated tests\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/490ad6b2b9bc4e3fa0f89b04dd12ee1d9dd0f1bc\"><tt>490ad6b2</tt></a> validation: NoUnusedFragments\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/da85f09dd939b282cf7df78870d0bd71ca6d6681\"><tt>da85f09d</tt></a> add path to errors on resolver error or panic (closes <a href=\"https://github.com/99designs/gqlgen/issues/86\"> #86</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/04cb2550483c3cf827b6668b69383e1f363e8dd4\"><tt>04cb2550</tt></a> allow structs without pointers (closes <a href=\"https://github.com/99designs/gqlgen/issues/78\"> #78</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4c40b305eb4c8a2abad853dd53c6df51f050199f\"><tt>4c40b305</tt></a> show all locations in error string\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5c26f320e3a296c653c6b3763280883cf4e4b416\"><tt>5c26f320</tt></a> fix limiter\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/dbc3f0a094e9cf25aeeb6106d78587ca878613e1\"><tt>dbc3f0a0</tt></a> fix composing of fragments (closes <a href=\"https://github.com/99designs/gqlgen/issues/75\"> #75</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/213a5d013a4e0f7e540931cc1f3581d183412232\"><tt>213a5d01</tt></a> Warn if an interface's resolver has a ToTYPE implementation that does not return two values.</summary>\n\nCurrently this instead crashes fairly inscrutably at runtime here: https://github.com/neelance/graphql-go/blob/master/internal/exec/exec.go#L117\n\nAn alternate fix would be to check len(out) there and perhaps rely on out[0] being nil to continue if there's only one return value.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/00c4c5743b2fff2500fbd0643d3a43e297139221\"><tt>00c4c574</tt></a> Fix panic when resolver is not a pointer\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d0df6d8a2d50fdc903c88b60f1fe925020df2790\"><tt>d0df6d8a</tt></a> small cleanup\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/036945e2bef3692493bfdbd42d1a8231ae5d45a3\"><tt>036945e2</tt></a> fix hang on panic (fixes <a href=\"https://github.com/99designs/gqlgen/pull/82\">#82</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/01ab5128e53e25d42cc15dd04168cacb310fc0a9\"><tt>01ab5128</tt></a> Add supports for snake case (<a href=\"https://github.com/99designs/gqlgen/pull/77\">#77</a>)\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/67e6f91d3f998c19d0a23d292852af2589a03d15\"><tt>67e6f91d</tt></a> use encoding/json to encode scalars</summary>\n\nThere are some edge cases that are better handled by the proven encoder of encoding/json, for example special characters in strings.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3f1cb6f83af94ebfc621b7dd2f83bbaa70046252\"><tt>3f1cb6f8</tt></a> implement user defined logger (with sensible defaults)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b357f4641697a00d450101cd21349a0adc03d130\"><tt>b357f464</tt></a> built-in json encoding\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2d828770c3ce02a9d98ec9fbcb46621f37004298\"><tt>2d828770</tt></a> refactor: collect fields to resolve\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/32f8b6ba2bd8cdb042f47c48e98ede15df1b4531\"><tt>32f8b6ba</tt></a> refactor: replaced MetaField\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b95c566e05321524e962333dbc202806adaf3586\"><tt>b95c566e</tt></a> simplify schema introspection\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4200a584f2986af42ab07cba6a794e89dc8f6b54\"><tt>4200a584</tt></a> split internal/exec into multiple packages\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c11687a72110091da7964ca370fcbc9c5bc912ee\"><tt>c11687a7</tt></a> refactored internal/exec\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bd742d84b6026f484c7d05e6f5dec90a113ec2ca\"><tt>bd742d84</tt></a> WIP\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d09dd543c7f5fbcb68f7cf40df9a2d005f04c283\"><tt>d09dd543</tt></a> added SchemaOpt\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1dcc5753f3f91f1269617e2350124b52189719ed\"><tt>1dcc5753</tt></a> fix Schema.ToJSON\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4f07e397b1ea3e26621bffdd8b261cb77a47ee9a\"><tt>4f07e397</tt></a> pass variable types to tracer\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/36e6c97e53891214b0d6286a3a2720f2d1dbc790\"><tt>36e6c97e</tt></a> readme: remove outdated section about opentracing\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0b143cca346bd478e684aaa66fba557890a8f8ce\"><tt>0b143cca</tt></a> refactor: apply before exec\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/a992060271937699b725b5a72b8bfbcdc06ee7ca\"><tt>a9920602</tt></a> pluggable tracer</summary>\n\nImproved performance while keeping flexibility.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/58d3d5b8274933506d071426c63408c7820d6bcc\"><tt>58d3d5b8</tt></a> refactored exec.Request\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9dd714ec00dbce57bfc1df09b8a59bd557211873\"><tt>9dd714ec</tt></a> refactored execField some more\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a43ef2411e0c59d63c0f4575d13cf73a4aeb51e2\"><tt>a43ef241</tt></a> refactor: meta fields\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/48931d17313dd9f706a5f4b36188e84ab60cb847\"><tt>48931d17</tt></a> refactor fieldExec\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ee95710db59e7abf49eac7accd9f81cfc7a60bfb\"><tt>ee95710d</tt></a> small cleanup\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/84baade55e292ffcc1be7dc0d0ba0c5805d3aa11\"><tt>84baade5</tt></a> perf: create span label only once\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a16ed60054ea3a6ccb8c118367f6af785338657c\"><tt>a16ed600</tt></a> improved concurrency architecture\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/aef3d9cf7adefb68aabbb3d20c99db9beb087f98\"><tt>aef3d9cf</tt></a> Add testing.go into its own package (gqltesting)</summary>\n\nThis is done so that \"testing\" (and especially its registered cli flags)\naren't included in any production builds.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f78108a335e635dffd75aa83a5f2114c1f76ca18\"><tt>f78108a3</tt></a> validation: meta fields\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c6ab2374926b50199eca22c8f63e53f21b37e714\"><tt>c6ab2374</tt></a> added empty file to make CI happy\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d59c1709c5e8daf56c18275df9fd3793a6430a44\"><tt>d59c1709</tt></a> fix introspection of default value\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/42608a035615d89dfd4ea7e8543d1f847d72bbb3\"><tt>42608a03</tt></a> clean up now unnecessary check\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e45f26dd458a2171a12ed77ed867529ff51eb01d\"><tt>e45f26dd</tt></a> validation: UniqueDirectivesPerLocation\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/dcf7e59f141277e4da7d8e5f671aeb4bcbec1dfe\"><tt>dcf7e59f</tt></a> validation: UniqueFragmentNames\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/eeaa510b3ec2d6babfe823350df93bea71896c90\"><tt>eeaa510b</tt></a> validation: UniqueOperationNames\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a5a11604b187c8104f8688babe9fade58dc3797f\"><tt>a5a11604</tt></a> refactor: Loc on Field\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b5919db43e5c1a7fbeab1e91e022e2ce03aaa6c4\"><tt>b5919db4</tt></a> validation: UniqueVariableNames\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8632753a6219518df212d6519f43d9d4666f8d8c\"><tt>8632753a</tt></a> validation: ScalarLeafs\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4584498444b623e12480bbc03cb8447a9156b63a\"><tt>45844984</tt></a> validation: ProvidedNonNullArguments\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c741ea84f9bb6f39c9f41672a350831a2526071a\"><tt>c741ea84</tt></a> validation: VariablesAreInputTypes\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0875d74f6aebbdcc1226def90090bb7772b44b9c\"><tt>0875d74f</tt></a> validation: UniqueArgumentNames\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1fdab07f1df987d1b6beb19bc628bd01b39a5128\"><tt>1fdab07f</tt></a> validation: LoneAnonymousOperation\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/090df527284031385ebc1073bf431ffa0df62cb0\"><tt>090df527</tt></a> validation: KnownTypeNames\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f99ca95eea69cffbfa899e9408a99367b3d96550\"><tt>f99ca95e</tt></a> refactor: validation context\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8aac28174b16d5d519f158c955abf5986914129d\"><tt>8aac2817</tt></a> validation: KnownFragmentNames\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/eae3efc9479546a60af4b8ddb68c36e074d00325\"><tt>eae3efc9</tt></a> validation: KnownDirectives\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/70581168ba2fea03a35f1f271ffe2f09d3c5c635\"><tt>70581168</tt></a> refactor: separate InlineFragment and FragmentSpread\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d6aec0d65bdb976f49f32fa71f7d7648f0f9a110\"><tt>d6aec0d6</tt></a> renamed schema.Directive to DirectiveDecl\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b616eeca1e84157410bf8531897bf9cfd390809c\"><tt>b616eeca</tt></a> validation: KnownArgumentNames\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/885af6079bd4e417283418e0f3a7a1bb716ba5cf\"><tt>885af607</tt></a> refactor: Location without pointer\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5a40251c951f5ae584f77b6d97b04255a3da06b6\"><tt>5a40251c</tt></a> tests: filter errors to currently tested rule\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9c054f5304bd0032b0c654f7351b35a842fdf88c\"><tt>9c054f53</tt></a> refactor: lexer.Ident\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/254afa8a3c1fbee15faf0ce61b7982fe6dc54c4a\"><tt>254afa8a</tt></a> validation: fragment type\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b6ef81af178ee49eeb4b1f24e96aecf98a86251d\"><tt>b6ef81af</tt></a> added test export script\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/95a4ecd841312e27b542fb147295923832fdc7bc\"><tt>95a4ecd8</tt></a> validation: fields\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c387449f4deea4a7531c87e7f10b66ccef089b6f\"><tt>c387449f</tt></a> validation: default values\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/44c6e634bae779e1a115b3443df5d73eb18696d7\"><tt>44c6e634</tt></a> validation: arguments\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/30dcc339f36601cf099e4853093d93b1c63387b1\"><tt>30dcc339</tt></a> directive arguments as slice\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d331ac27e70a409e7602ee2ee7964ab12f7946b0\"><tt>d331ac27</tt></a> input values as slice\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/615afd61aacfdc6f408c518e3a8e4c0928d97209\"><tt>615afd61</tt></a> fields as slice\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/607599043f6a3b3d1875405f22efb3706c759933\"><tt>60759904</tt></a> arguments as slice\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f7d9ff4e09a02f4b09800eaf3604a36df90514e6\"><tt>f7d9ff4e</tt></a> refactor literals\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2e1fef012d13bf299d1a5b9949571fffc9ef7abb\"><tt>2e1fef01</tt></a> keep track of location of arguments\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/29e0b375539193232c7b0298d5283773a2dfdc47\"><tt>29e0b375</tt></a> added EnumValue type\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/aa868e8d461160e65058b1976484dcb74e264b0b\"><tt>aa868e8d</tt></a> resolve fragments early\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/adeb53d684ee2f38b387c9063e11dd598ba9adc2\"><tt>adeb53d6</tt></a> remove resolver from query package\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2e23573fa55611dde28cbb8b0e18ce24960ee786\"><tt>2e23573f</tt></a> parse directive decl without arguments\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/36f8ba8ba769fe7d76bb6f5954cad2b4d721b3e9\"><tt>36f8ba8b</tt></a> fix introspection of default value (closes <a href=\"https://github.com/99designs/gqlgen/issues/65\"> #65</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e06f58558c5a1b319f1bea12bc157cf2d25f0aa9\"><tt>e06f5855</tt></a> support for \"deprecated\" directive on enum values\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/498fe3961c3058c45f5ad90b1212a48adfbba266\"><tt>498fe396</tt></a> support for [@deprecated](https://github.com/deprecated) directive on fields (fixes <a href=\"https://github.com/99designs/gqlgen/pull/64\">#64</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/93ddece9c068b9e3ce6f0c85f8517e60047fb9f5\"><tt>93ddece9</tt></a> refactor: DirectiveArgs\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8f5605a1414369c7da0ee6b5e424d554a8b2e718\"><tt>8f5605a1</tt></a> refactor directives\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/faf5384a347efef90900c63ff0c1ee800d005cb8\"><tt>faf5384a</tt></a> simplify parseArguments\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b2c2e906436885fac70ee32d4a05af4cc82d56e8\"><tt>b2c2e906</tt></a> some more docs\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f45165236be72481237a834a86313ff65338e8d9\"><tt>f4516523</tt></a> added some method documentations\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/91bd7f887b6c9e45856c74db19e2081de48d1e60\"><tt>91bd7f88</tt></a> improved meta schema\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/10dc8ee62965c02c6bca323fd6516814fdadb303\"><tt>10dc8ee6</tt></a> added support for directive declarations in schema\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/28028f6677bd02cc1da876f7aa49d229004090cd\"><tt>28028f66</tt></a> readme: more info on current project status\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e9afca38415b36b594b585bf044a49e723e79713\"><tt>e9afca38</tt></a> hint in error if method only exists on pointer type (fixes <a href=\"https://github.com/99designs/gqlgen/pull/60\">#60</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/356ebd93204134d83349e001302811d9a47850bc\"><tt>356ebd93</tt></a> nicer error messages (fixes <a href=\"https://github.com/99designs/gqlgen/pull/56\">#56</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e413f4edabe636dc05c0a5fabce95b60ca0fbf70\"><tt>e413f4ed</tt></a> make gocyclo happy\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6e92795e8e04c3d961a30ea313cdb617c1195d9c\"><tt>6e92795e</tt></a> fix spelling\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/306e27ef29eb170e61557d02551effacdd802627\"><tt>306e27ef</tt></a> gofmt -s\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/612317b28bf7e9a793d7b11d2cac81109ad1f988\"><tt>612317b2</tt></a> fix ToJSON\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/728e57a9c3c084ec90938d7b4346bd004f3c305e\"><tt>728e57a9</tt></a> improved doc for MaxParallelism\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e8590a10d5acadaa06f4655d877544677d6983bb\"><tt>e8590a10</tt></a> don't execute any further resolvers after context got cancelled\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/644435cc1084b8393d3f2d780a0547a535500787\"><tt>644435cc</tt></a> added MaxParallelism\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/21802a339d523fae0fe0b8cee0e6ad5005c85bec\"><tt>21802a33</tt></a> readme: add Sourcegraph badge\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5b2978fcb1baf5d104a51d2638e2204abac0f5fd\"><tt>5b2978fc</tt></a> added support for recursive input values\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8c84afb1a622fdf7a44ce471a4f9070137044056\"><tt>8c84afb1</tt></a> improved structure of \"make exec\" code\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d5a6ca4953dbade97f08c7e05d1d92df612167c8\"><tt>d5a6ca49</tt></a> make sure internal types don't get exposed\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c9d4d865c19532267da57d7b681a4a8f39b40eec\"><tt>c9d4d865</tt></a> fixed some null handling\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a336dd4be28093e214c2404a2af88f32ac978b05\"><tt>a336dd4b</tt></a> added request.resolveVar\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/943f80f48b8255bdef89a4edae33106f5f6e2dc4\"><tt>943f80f4</tt></a> added unmarshalerPacker type\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f77f73392b42621b62fa7a0af690f85abd647334\"><tt>f77f7339</tt></a> refactored non-null handling in packer\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ae0f1689b8e8ae5ab847fa09d3ea6c7d14d2419e\"><tt>ae0f1689</tt></a> remove hasDefault flag from makePacker\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9cbad485080affc6d94126f55fdfdabf996262e7\"><tt>9cbad485</tt></a> allow Unmarshaler for all types, not just scalars\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f565a119801e2faa7fecb6ca7386e7aa933e61c6\"><tt>f565a119</tt></a> refactored \"make exec\" code\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/07a09e5d93da69b5e571076540e15bc35414e2e8\"><tt>07a09e5d</tt></a> properly check scalar types of result values\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ecceddec6e3bbc4df96536a211a9a71f0919e47d\"><tt>ecceddec</tt></a> Add ResolverError field to QueryError for post processing\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b7c59ab9f042d11a73cf1c5fedc75538d8bca6e6\"><tt>b7c59ab9</tt></a> renamed type\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5817d30019edf5984356016bceea085af3f26bc8\"><tt>5817d300</tt></a> moved some introspection code into new package, added Schema.Introspect\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/cdef8563513e825d0c77b7ef13856169780e05af\"><tt>cdef8563</tt></a> removed SchemaBuilder</summary>\n\nIt is not necessary any more. Simpler API wins.\n\n</details></dd></dl>\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/518a5fe7542d07e61d163a1c199cce9ac0b6a078\"><tt>518a5fe7</tt></a> Merge pull request <a href=\"https://github.com/99designs/gqlgen/pull/45\">#45</a> from nicksrandall/master</summary>\n\nfix wrong import statement\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8112e7191fa2341244e176b3b00025229f9afc53\"><tt>8112e719</tt></a> fix wrong import statement\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7fafcc6ec1a2a6c69f8775fb30f933ca352ab9db\"><tt>7fafcc6e</tt></a> allow single value as implicit list (fixes <a href=\"https://github.com/99designs/gqlgen/pull/41\">#41</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2b513d7e6c46b01de0cbcaeb1b68424dd3c043be\"><tt>2b513d7e</tt></a> improved custom types\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/191422c4ccf1fef693582e7f18bc263e6f2e09d2\"><tt>191422c4</tt></a> merged code for value coercion and packing\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/232356b393b32a9db53bc49d35c6a08ede9dad26\"><tt>232356b3</tt></a> introspection for \"skip\" and \"include\" directives (fixes <a href=\"https://github.com/99designs/gqlgen/pull/30\">#30</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2e10f7b852261d9afa33637e6978fecd511320d1\"><tt>2e10f7b8</tt></a> readme: spec version and link (fixes <a href=\"https://github.com/99designs/gqlgen/pull/35\">#35</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/61eca4c7621fe86c75ad96ddaffb6107086e65ea\"><tt>61eca4c7</tt></a> pretty print SchemaBuilder.ToJSON\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5e09ced15c3be3cd26ace9c2dc8edc9554edaf74\"><tt>5e09ced1</tt></a> fix \"null\" value for empty descriptions of types\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/33cd194fc2cf0d2fa2c1768d0b0e60d2d0606237\"><tt>33cd194f</tt></a> SchemaBuilder.ToJSON instead of SchemaToJSON (fixes <a href=\"https://github.com/99designs/gqlgen/pull/29\">#29</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fff173bcbe1bdc521f919c91e897078163d6c552\"><tt>fff173bc</tt></a> proper error message when using non-input type as input (<a href=\"https://github.com/99designs/gqlgen/pull/19\">#19</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b94f2afe22033bcb4b1a68d64adab00986abeea4\"><tt>b94f2afe</tt></a> improved support for null\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4130d540fbff248ea1990a36ec7b1198befc28db\"><tt>4130d540</tt></a> added support for input object literals\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/663e466fda86388ee5239a6d32162f39f3eafbac\"><tt>663e466f</tt></a> moved some code into separate file\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/728e071e474353acb30d2530c50044acf7b48918\"><tt>728e071e</tt></a> added support for lists as input values (fixes <a href=\"https://github.com/99designs/gqlgen/pull/19\">#19</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/86f0f14544112d824efa3d586f47ccc1b04a1d26\"><tt>86f0f145</tt></a> fix Float literals\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b07f277bb052b43f27580766945d9d4a80a79e8e\"><tt>b07f277b</tt></a> raise error on unexported input field (fixes <a href=\"https://github.com/99designs/gqlgen/pull/24\">#24</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4838c6f3bf4d198be8ebc81f5f39cf08bfd7c27b\"><tt>4838c6f3</tt></a> fix optional input fields (fixes <a href=\"https://github.com/99designs/gqlgen/pull/25\">#25</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/a15deed4f8fe354dc77feb60a45b29eb5671de72\"><tt>a15deed4</tt></a> better way to implement GraphQL interfaces (<a href=\"https://github.com/99designs/gqlgen/pull/23\">#23</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7a66d0e02d9fdb4150e045360c1008dafe92d63b\"><tt>7a66d0e0</tt></a> add support for description comments (fixes <a href=\"https://github.com/99designs/gqlgen/pull/20\">#20</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0b3be40c0717ac6955d2ddd0021bb9e16d4faac7\"><tt>0b3be40c</tt></a> improved tracing\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/da879f4f78a67c3031a9ff9537cc49437ef38113\"><tt>da879f4f</tt></a> small improvements to readme\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f3f24cf6f1946333562bd7f90ef4f7afe08f00c6\"><tt>f3f24cf6</tt></a> added some documentation\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/38598d83ded236fac7b1f7a8383d72cc42bbf26c\"><tt>38598d83</tt></a> added CI badge to readme\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bab81332446865f44ea10d773f024da9e0d9414a\"><tt>bab81332</tt></a> starwars example: fix pagination panic (<a href=\"https://github.com/99designs/gqlgen/pull/12\">#12</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5ce3ca69fa6e3c7db69914f4ccb26ac9bf71cbd3\"><tt>5ce3ca69</tt></a> testing: proper error on invalid ExpectedResult\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8f7d2b1efd9e96e423c0dc0ecf7dbc905e1b5ff0\"><tt>8f7d2b1e</tt></a> added relay.Handler\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fce75a50a4f393bbf1bcef85835d406b03228b87\"><tt>fce75a50</tt></a> properly coerce Int input values (<a href=\"https://github.com/99designs/gqlgen/pull/8\">#8</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0dd38747e3d5907dfc56d098bda073e2f5c34a4b\"><tt>0dd38747</tt></a> star wars example: pass operation name and variables (<a href=\"https://github.com/99designs/gqlgen/pull/8\">#8</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3b7efd5cb6e73337e26a67ca05750b6e1b02320e\"><tt>3b7efd5c</tt></a> fix __typename for concrete object types (fixes <a href=\"https://github.com/99designs/gqlgen/pull/9\">#9</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/35667edabfbc519b7d9fc5e1ca0d3c4943448df5\"><tt>35667eda</tt></a> testing tools\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/84571820f69feb18afd28609d997feac4e1bfab3\"><tt>84571820</tt></a> only create schema once for tests\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/de113f969220b95e48cb64439069a13370dc26d6\"><tt>de113f96</tt></a> added MustParseSchema\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d5e5f6096fb8fbf48725ecca9014c47c31de58f4\"><tt>d5e5f609</tt></a> improved structure for tests\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/947a1a3a8a25fd0821569a402dd433c751c58787\"><tt>947a1a3a</tt></a> added package with tools for Relay\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/65f3e2b186c2bd9cb439505dd92be586ee6205de\"><tt>65f3e2b1</tt></a> fix SchemaToJSON\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cec7cea1c3b771e99b0c1fb45dd3fbf530c20d71\"><tt>cec7cea1</tt></a> better error handling\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e3386b067b33fb73ca885fc5b25c5a1249134671\"><tt>e3386b06</tt></a> improved type coercion and explicit ID type\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2ab9d765d642ae067a0055a4b2bde56eb6fcd461\"><tt>2ab9d765</tt></a> support for custom scalars (fixes <a href=\"https://github.com/99designs/gqlgen/pull/3\">#3</a>)\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bdfd5ce306598d599f7d26bc9c4f9a70fe0c0c66\"><tt>bdfd5ce3</tt></a> use custom error type less\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0a7a37d1a7a6a8c8e84ac4b3d0f427ea3c55892c\"><tt>0a7a37d1</tt></a> more flexible API for creating a schema\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bd20a165e0aa4428f40424d68846b68d6e330a65\"><tt>bd20a165</tt></a> improved type handling\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ffa9fea4d939e28562475e1beac0826176fd64fc\"><tt>ffa9fea4</tt></a> renamed GraphQLError to QueryError\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fcfa135a03366e19b4900b6381ab5e06b3e58b8c\"><tt>fcfa135a</tt></a> refactor\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c28891d831baca59c10027b31a67deda775b3fff\"><tt>c28891d8</tt></a> added support for OpenTracing\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2cf7fcc8b709f160d5fcb3d1746fbe9e18967782\"><tt>2cf7fcc8</tt></a> added SchemaToJSON\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f6b498ac52dbb4cc87b22872f3b9844dadd1ffb5\"><tt>f6b498ac</tt></a> stricter type mapping for input values\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/3c15e177dc0be85c5aa1d71a18a9c7966c5db34f\"><tt>3c15e177</tt></a> execute mutations serially\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1faf666161862d92bf8396bf89048d297cd4f850\"><tt>1faf6661</tt></a> fix missing error\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/de9b7fed219a29adb0973819c9d7affb57d78d51\"><tt>de9b7fed</tt></a> add support for mutations\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/094061d8ce65dbc0177a90a4bb2c6c4ab548b230\"><tt>094061d8</tt></a> improved error handling a bit\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cdb088d6e0df8357c1caba39dc93208753f611a4\"><tt>cdb088d6</tt></a> refactor: args as input object\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b06d39411d92439009084d342c1f3cdd98cb6339\"><tt>b06d3941</tt></a> refactor: values\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4fd33958e6645b471b742f07148c29e1ab19e155\"><tt>4fd33958</tt></a> refactor: improved type system\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/1d03e667370a66100eead7f198eb457cd29a58f3\"><tt>1d03e667</tt></a> refactor: new package \"common\"</summary>\n\npackage \"query\" does not depend on \"schema\" any more\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1a959516cacda256f52b3ba2f5cf2e7fd03c85da\"><tt>1a959516</tt></a> refactor\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f8cb11c10ab15ad4a547a1695efe538a7b5209a8\"><tt>f8cb11c1</tt></a> example/starwars: use interface base type to make type assertions nicer\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/746da4b8e1dff2ec72167060487e1441506a97c3\"><tt>746da4b8</tt></a> star wars example: friendsConnection\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bec45364913260dd699d295837336a4df824b7a6\"><tt>bec45364</tt></a> parse type in query\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/be87a8fa7cfe42a2ea4748a525d0490a73e155c0\"><tt>be87a8fa</tt></a> remove unused code\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/042e306a2478445bb9eecb7fb43b04892c8ee85f\"><tt>042e306a</tt></a> simpler way to resolve type refs in schema\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7cbf85fb2507b5b46af44e84ea195639fd95b202\"><tt>7cbf85fb</tt></a> improved type checking of arguments\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2b6460ae9c13be41f1aafbc7e881446f47c9c558\"><tt>2b6460ae</tt></a> type check for scalars\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/17034fe713fd4396fc8483e9c2dc124833377fcb\"><tt>17034fe7</tt></a> improved null handling\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e6b6fbcab4297dd19e706d3981f7b6a98a581ee8\"><tt>e6b6fbca</tt></a> small cleanup\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7b8cd1bce34ce543781376f42062bc7234e8d8d1\"><tt>7b8cd1bc</tt></a> meta schema from graphql-js\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9333c0b396c6c19c306ba2d5e0b0b9fe024abd41\"><tt>9333c0b3</tt></a> introspection: inputFields\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c4faac56a02f7743de55bc20b261fb749578afa8\"><tt>c4faac56</tt></a> introspection: ofType\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/86da849221ab53ae653eef12c12afc7604f603fd\"><tt>86da8492</tt></a> introspection: interfaces and possibleTypes\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/20dbb84517b342ecec87e6ca8fba0951e5aa5d71\"><tt>20dbb845</tt></a> proper nil support for lists\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2e3369aebc265d07b5b1b025fcb6aa768c70ccaf\"><tt>2e3369ae</tt></a> resolve types in schema package\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/7da95f4a932a8ce4dae85f7b8924294d041f55d9\"><tt>7da95f4a</tt></a> introspection: enum values\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cb423e6e1d36044a00a6d8ee62336844294e54fb\"><tt>cb423e6e</tt></a> improved handling of scalar types\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/5b07780f940edfc6f7ee4c5d0bdd3f598a158998\"><tt>5b07780f</tt></a> introspection: original order for fields and args\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1e2d180c24bcdf8cfa945b3491bcceb8bbde9565\"><tt>1e2d180c</tt></a> introspection: arguments\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f21131bbc269ce4804ad7065f508abd14f131c10\"><tt>f21131bb</tt></a> refactored schema to be more in line with introspection\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0152d4f21a0b204df5a0f6df5c398a29734f3e68\"><tt>0152d4f2</tt></a> introspection: currently no descriptions and deprecations\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ad5689bbed8bd2fc7ac5e7005cc30ab2c16472e5\"><tt>ad5689bb</tt></a> field introspection\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2749d81451ae5033ab78095634dfd058d4e77c60\"><tt>2749d814</tt></a> removed query.TypeReference\n\n<dl><dd><details><summary><a href=\"https://github.com/99designs/gqlgen/commit/2eb105ec0bfe26ca1e6272c363a922394a9d95ef\"><tt>2eb105ec</tt></a> Revert \"resolve scalar types in exec\"</summary>\n\nThis reverts commit fb3a6fc969b0c8c286c7d024a108f5696627639c.\n\n</details></dd></dl>\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/40682d680d3613b866629e768cd23b39c1415346\"><tt>40682d68</tt></a> removed exec.typeRefExec\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/64ea90fec366a3dcc09c428e177d96496a4d374a\"><tt>64ea90fe</tt></a> makeWithType\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2966f213e10bf0d1ca5b338da57558f42a7e05c6\"><tt>2966f213</tt></a> added nonNilExec\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c12a8ad39cdc3d4f484bc70e2f636f1eca0400d4\"><tt>c12a8ad3</tt></a> added support for ints and floats in query\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0f85412bbdf9bf4b1d984bd949022867b02204cd\"><tt>0f85412b</tt></a> improved example\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/22ce46d1adeed7cf7022a223dfa7fc4b72e500da\"><tt>22ce46d1</tt></a> support for optional error result\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0fe56128d58946add9f4b03b9e3047a0dd2eb697\"><tt>0fe56128</tt></a> optional context parameter\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f1bc9b21f69b8e66144c2fe78faf52ea4e677a7b\"><tt>f1bc9b21</tt></a> syntax errors with proper line and column\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ae299efc1456ae143d6ffdf10c0ad9e71ef840b9\"><tt>ae299efc</tt></a> proper response format\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/9619721b0ce1d21c82c35cc1bbb101b48da42e9e\"><tt>9619721b</tt></a> added support for contexts\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/267fc6316b9ac4dc46dba9cdda70bd4057b09d4d\"><tt>267fc631</tt></a> refactor\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2e56e7ea619c95e419b298658b4042958d0934b3\"><tt>2e56e7ea</tt></a> renamed NewSchema to ParseSchema\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/356b6e6bb14143f021d28e13070dad6482d2d1b9\"><tt>356b6e6b</tt></a> added godoc badge\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/03f2e72dd506695e0ab30e73f8b8d18cd92df601\"><tt>03f2e72d</tt></a> added README.md\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1134562aaca2c8d08974dd33427093af79eeb5d4\"><tt>1134562a</tt></a> added non-null type\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/8fa415513ce4b83bad465887c3d61c5c665ada80\"><tt>8fa41551</tt></a> renamed Input to InputObject\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6f2399aa0eec93f27bb784a7436e4da08cd92f30\"><tt>6f2399aa</tt></a> introspection: type kind\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e2c58f2f7163522224bd7b39fced1a44cd3967f4\"><tt>e2c58f2f</tt></a> refactor: schema types for interface and input\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0c8c9436ae2809df20f918956002aec688f2a1f7\"><tt>0c8c9436</tt></a> introspection: __type\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/99a37521cb7af233924ae365edaf8497ba4bf3b6\"><tt>99a37521</tt></a> refactoring: calculate \"implemented by\" in schema package\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1cac7e5657f680593a1b2c3bfdfa4e3cee952cde\"><tt>1cac7e56</tt></a> introspection: queryType\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cc348faf3c98e7107d2ed484c90063094c22e2bc\"><tt>cc348faf</tt></a> first bit of introspection\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fb3a6fc969b0c8c286c7d024a108f5696627639c\"><tt>fb3a6fc9</tt></a> resolve scalar types in exec\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4cb8dcc015ba05002165d496a38a6e9ecb05fdf1\"><tt>4cb8dcc0</tt></a> panic handlers\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/c7a528d4df37c4211cf3303ff75a68bc02a2e99d\"><tt>c7a528d4</tt></a> proper error handling when creating schema\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/ae37381cb14fa6d851ef3a709cb5ba69ab0196af\"><tt>ae37381c</tt></a> add support for __typename\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/4057080f8dcb75e6207fb9f1e357329738dcda50\"><tt>4057080f</tt></a> add support for union types\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d304a418586a1c33ccfcd8df017f70122fcd6d62\"><tt>d304a418</tt></a> attribute source of star wars schema\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0fcab871feeb20d445ba02aa411fa042ba6f47f9\"><tt>0fcab871</tt></a> added LICENSE\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0dc0116d69be9bc31688961cd653c047e602e4d2\"><tt>0dc0116d</tt></a> support for inline fragments\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/f5e7d0709417463bd70730e244e2e8e515d14009\"><tt>f5e7d070</tt></a> support for type assertions\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fcb853c628f31d439af7c76de2f86e12317f561d\"><tt>fcb853c6</tt></a> refactoring: addResultFn\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/741343f809a4bb85dc93cd4405738da44d886ce6\"><tt>741343f8</tt></a> explicit fragment spread exec\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/73759258e589f4ded5977bd6a63a1048ecb7954e\"><tt>73759258</tt></a> all missing stubs for star wars example\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/edc78e2bb7f2ad1aab86c4e6876d4b01e56fbcb6\"><tt>edc78e2b</tt></a> parallelism\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/fb63371482c981cc1ef73be35245f0b75b58e8de\"><tt>fb633714</tt></a> collect fields\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/08f02a2b149efb2c9d3fa1e5a090eecb07b8235e\"><tt>08f02a2b</tt></a> execs\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d70d16c4ebc4a9a8513ccab945b4e0ad77de6cfe\"><tt>d70d16c4</tt></a> added server example\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/6f9a89db8ecf538d72ece47158d2ef7f487d8a06\"><tt>6f9a89db</tt></a> separate example/starwars package\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/e4060db594dbd7ca6a98e7bb9cf967b6bc51e063\"><tt>e4060db5</tt></a> added support for directives\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/89b066523b38cdbed48f1b6df03ed87bac737caf\"><tt>89b06652</tt></a> added support for variables\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/78065ecbd8480e39506e7443141bad031caaf68b\"><tt>78065ecb</tt></a> added support for enums\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/18645e60bbc9a9124fba220912a482a1d3fc0238\"><tt>18645e60</tt></a> added support for query fragments\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/84f532b9b25363a224ddff3e415773d88de1b152\"><tt>84f532b9</tt></a> added support for aliases\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/59d2a619ad146e6ec34b96601d4c10e9689c0a77\"><tt>59d2a619</tt></a> improved support for arguments\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/edce4ec8712f3bf56252773292b1a22379e18e46\"><tt>edce4ec8</tt></a> proper star wars data\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/d6ffc01de6704abc68346c6a07abe8a25f504341\"><tt>d6ffc01d</tt></a> syntax support for full star wars schema\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/b582410448f091f9e2e8ad6975b2a8cf8cd09c01\"><tt>b5824104</tt></a> support for comments\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/2f9ce9b48c3a85f538a66a1a556f5a62d3c3a20a\"><tt>2f9ce9b4</tt></a> support for entry points\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/0b3d103849df9e267894eaf61d597887818d718d\"><tt>0b3d1038</tt></a> support for arguments\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/cff8b3020fc132fc493a7bffdd77ff46ef7253e5\"><tt>cff8b302</tt></a> support for arrays\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/565e59f53ab2e59f41c0eee010ab9525349c35a3\"><tt>565e59f5</tt></a> schema package\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/1ae71ba2d5990082bdff59622fb636ed6105ed8e\"><tt>1ae71ba2</tt></a> query package\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/42c13e7a09f05d98f6f7541199a66f140651ad1b\"><tt>42c13e7a</tt></a> named types, complex objects\n\n- <a href=\"https://github.com/99designs/gqlgen/commit/bf64e5dad2916d25a04a95d007cff263307b964a\"><tt>bf64e5da</tt></a> initial commit\n\n <!-- end of Commits -->\n<!-- end of Else -->\n\n<!-- end of If NoteGroups -->\n<!-- end of Versions -->\n<!-- end of If Versions -->\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "# Contribution Guidelines\n\nWant to contribute to gqlgen? Here are some guidelines for how we accept help.\n\n## Getting in Touch\n\nOur [discord](https://discord.gg/DYEq3EMs4U) server is the best place to ask questions or get advice on using gqlgen.\n\n## Reporting Bugs and Issues\n\n We use [GitHub Issues](https://github.com/99designs/gqlgen/issues) to track bugs, so please do a search before submitting to ensure your problem isn't already tracked.\n\n### New Issues\n\nPlease provide the expected and observed behaviours in your issue. A minimal GraphQL schema or configuration file should be provided where appropriate.\n\n## Proposing a Change\n\nIf you intend to implement a feature for gqlgen, or make a non-trivial change to the current implementation, we recommend [first filing an issue](https://github.com/99designs/gqlgen/issues/new) marked with the `proposal` tag, so that the engineering team can provide guidance and feedback on the direction of an implementation.  This also help ensure that other people aren't also working on the same thing.\n\nBug fixes are welcome and should come with appropriate test coverage.\n\nNew features should be made against the `next` branch.\n\n### License\n\nBy contributing to gqlgen, you agree that your contributions will be licensed under its MIT license.\n"
  },
  {
    "path": "LICENSE",
    "content": "Copyright (c) 2025 gqlgen authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "![gqlgen](https://user-images.githubusercontent.com/980499/133180111-d064b38c-6eb9-444b-a60f-7005a6e68222.png)\n\n# gqlgen [![Integration](https://github.com/99designs/gqlgen/actions/workflows/integration.yml/badge.svg)](https://github.com/99designs/gqlgen/actions) [![Coverage Status](https://coveralls.io/repos/github/99designs/gqlgen/badge.svg?branch=master)](https://coveralls.io/github/99designs/gqlgen?branch=master) [![Go Report Card](https://goreportcard.com/badge/github.com/99designs/gqlgen)](https://goreportcard.com/report/github.com/99designs/gqlgen) [![Go Reference](https://pkg.go.dev/badge/github.com/99designs/gqlgen.svg)](https://pkg.go.dev/github.com/99designs/gqlgen) [![Read the Docs](https://badgen.net/badge/docs/available/green)](http://gqlgen.com/)\n\n## What is gqlgen?\n\n[gqlgen](https://github.com/99designs/gqlgen) is a Go library for building GraphQL servers without any fuss.<br/>\n\n- **gqlgen is based on a Schema first approach** — You get to Define your API using the GraphQL [Schema Definition Language](http://graphql.org/learn/schema/).\n- **gqlgen prioritizes Type safety** — You should never see `map[string]interface{}` here.\n- **gqlgen enables Codegen** — We generate the boring bits, so you can focus on building your app quickly.\n\nStill not convinced enough to use **gqlgen**? Compare **gqlgen** with other Go graphql [implementations](https://gqlgen.com/feature-comparison/)\n\n## Quick start\n\n1. [Initialise a new go module](https://golang.org/doc/tutorial/create-module)\n\n```shell\nmkdir example\ncd example\ngo mod init example\n```\n\n2. Add `github.com/99designs/gqlgen` to your project, as a [tool dependency](https://go.dev/doc/modules/managing-dependencies#tools)\n\n```shell\ngo get -tool github.com/99designs/gqlgen\n```\n\n3. Initialise gqlgen config and generate models\n\n```shell\ngo tool gqlgen init\n```\n\n4. Start the graphql server\n\n```shell\ngo run server.go\n```\n\nMore help to get started:\n\n- [Getting started tutorial](https://gqlgen.com/getting-started/) - a comprehensive guide to help you get started\n- [Real-world examples](https://github.com/99designs/gqlgen/tree/master/_examples) show how to create GraphQL applications\n- [Reference docs](https://pkg.go.dev/github.com/99designs/gqlgen) for the APIs\n\n## Reporting Issues\n\nIf you think you've found a bug, or something isn't behaving the way you think it should, please raise an [issue](https://github.com/99designs/gqlgen/issues) on GitHub.\n\n## Contributing\n\nWe welcome contributions, Read our [Contribution Guidelines](https://github.com/99designs/gqlgen/blob/master/CONTRIBUTING.md) to learn more about contributing to **gqlgen**\n\n## Frequently asked questions\n\n### How do I prevent fetching child objects that might not be used?\n\nWhen you have nested or recursive schema like this:\n\n```graphql\ntype User {\n\tid: ID!\n\tname: String!\n\tfriends: [User!]!\n}\n```\n\nYou need to tell gqlgen that it should only fetch friends if the user requested it. There are two ways to do this:\n\n### Using Custom Models\n\nWrite a custom model that omits the friends field:\n\n```go\ntype User struct {\n  ID int\n  Name string\n}\n```\n\nAnd reference the model in `gqlgen.yml`:\n\n```yaml\n# gqlgen.yml\nmodels:\n  User:\n    model: github.com/you/pkg/model.User # go import path to the User struct above\n```\n\n### Using Explicit Resolvers\n\nIf you want to keep using the generated model, mark the field as requiring a resolver explicitly in `gqlgen.yml` like this:\n\n```yaml\n# gqlgen.yml\nmodels:\n  User:\n    fields:\n      friends:\n        resolver: true # force a resolver to be generated\n```\n\nAfter doing either of the above and running generate we will need to provide a resolver for friends:\n\n```go\nfunc (r *userResolver) Friends(ctx context.Context, obj *User) ([]*User, error) {\n  // select * from user where friendid = obj.ID\n  return friends,  nil\n}\n```\n\nYou can also use inline config with directives to achieve the same result\n\n```graphql\ndirective @goModel(\n\tmodel: String\n\tmodels: [String!]\n) on OBJECT | INPUT_OBJECT | SCALAR | ENUM | INTERFACE | UNION\n\ndirective @goField(\n\tforceResolver: Boolean\n\tname: String\n\tomittable: Boolean\n\ttype: String\n  autoBindGetterHaser: Boolean\n  forceGenerate: Boolean\n\tbatch: Boolean\n) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION\n\ntype User @goModel(model: \"github.com/you/pkg/model.User\") {\n\tid: ID! @goField(name: \"todoId\")\n\tfriends: [User!]! @goField(forceResolver: true)\n\t# When omit_resolver_fields is enabled, this field will still be generated in the struct\n\tdata: String! @goField(forceResolver: true, forceGenerate: true)\n}\n```\n\nThe field resolvers will be executed concurrently in separate goroutines. The degree of concurrency can be customized with the [`worker_limit` configuration attribute](https://gqlgen.com/config/).\n\n### Can I change the type of the ID from type String to Type Int?\n\nYes! You can by remapping it in config as seen below:\n\n```yaml\nmodels:\n  ID: # The GraphQL type ID is backed by\n    model:\n      - github.com/99designs/gqlgen/graphql.IntID # a go integer\n      - github.com/99designs/gqlgen/graphql.ID # or a go string\n      - github.com/99designs/gqlgen/graphql.UintID # or a go uint\n```\n\nThis means gqlgen will be able to automatically bind to strings or ints for models you have written yourself, but the\nfirst model in this list is used as the default type and it will always be used when:\n\n- Generating models based on schema\n- As arguments in resolvers\n\nThere isn't any way around this, gqlgen has no way to know what you want in a given context.\n\n### Why do my interfaces have getters? Can I disable these?\n\nThese were added in v0.17.14 to allow accessing common interface fields without casting to a concrete type.\nHowever, certain fields, like Relay-style Connections, cannot be implemented with simple getters.\n\nIf you'd prefer to not have getters generated in your interfaces, you can add the following in your `gqlgen.yml`:\n\n```yaml\n# gqlgen.yml\nomit_getters: true\n```\n\n## Other Resources\n\n- [Christopher Biscardi @ Gophercon UK 2018](https://youtu.be/FdURVezcdcw)\n- [Introducing gqlgen: a GraphQL Server Generator for Go](https://99designs.com.au/blog/engineering/gqlgen-a-graphql-server-generator-for-go/)\n- [Dive into GraphQL by Iván Corrales Solera](https://medium.com/@ivan.corrales.solera/dive-into-graphql-9bfedf22e1a)\n- [Sample Project built on gqlgen with Postgres by Oleg Shalygin](https://github.com/oshalygin/gqlgen-pg-todo-example)\n- [Hackernews GraphQL Server with gqlgen by Shayegan Hooshyari](https://www.howtographql.com/graphql-go/0-introduction/)\n"
  },
  {
    "path": "RELEASE-CHECKLIST.md",
    "content": "# When gqlgen gets released, the following things need to happen\nAssuming the next version is $NEW_VERSION=v0.16.0 or something like that.\n\n1. Run the https://github.com/99designs/gqlgen/blob/master/bin/release:\n```\n./bin/release $NEW_VERSION\n```\n2. git-chglog -o CHANGELOG.md\n3. go generate ./...\n4. git commit and push the CHANGELOG.md\n5. Go to https://github.com/99designs/gqlgen/releases and draft new release, autogenerate the release notes, and Create a discussion for this release\n6. Comment on the release discussion with any really important notes (breaking changes)\n\nI used https://github.com/git-chglog/git-chglog to automate the changelog maintenance process for now. We could just as easily use go releaser to make the whole thing automated.\n"
  },
  {
    "path": "TESTING.md",
    "content": "How to write tests for gqlgen\n===\n\nTesting generated code is a little tricky, here's how its currently set up.\n\n### Testing responses from a server\n\nThere is a server in `codegen/testserver` that is generated as part\nof `go generate ./...`, and tests written against it.\n\nThere are also a bunch of tests in against the examples, feel free to take examples from there.\n\n\n### Testing the errors generated by the binary\n\nThese tests are **really** slow, because they need to run the whole codegen step. Use them very sparingly. If you can, find a way to unit test it instead.\n\nTake a look at `codegen/testserver/input_test.go` for an example.\n\n### Testing introspection\n\nIntrospection is tested by diffing the output of `graphql get-schema` against an expected output.\n\nSetting up the integration environment is a little tricky:\n```bash\ncd integration\ngo generate ./...\ngo run ./server/cmd/integration/server.go\n```\nin another terminal\n```bash\ncd integration\nnpm install\n./node_modules/.bin/graphql-codegen\n```\n\nwill write the schema to `integration/schema-fetched.graphql`, compare that with `schema-expected.graphql`\n\nCI will run this and fail the build if the two files don't match.\n"
  },
  {
    "path": "_examples/batchresolver/batchresolver_test.go",
    "content": "package batchresolver\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"sort\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/codegen/config\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\ntype gqlError struct {\n\tMessage string `json:\"message\"`\n\tPath    []any  `json:\"path\"`\n}\n\nfunc newTestClient(r *Resolver) *client.Client {\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: r}))\n\tsrv.AddTransport(transport.POST{})\n\treturn client.New(srv)\n}\n\nfunc marshalJSON(t *testing.T, v any) string {\n\tt.Helper()\n\tblob, err := json.Marshal(v)\n\trequire.NoError(t, err)\n\treturn string(blob)\n}\n\nfunc requireErrorJSON(t *testing.T, err error, expected string) {\n\tt.Helper()\n\trequire.Error(t, err)\n\tactual := normalizeErrorJSON(t, err.Error())\n\texpectedNorm := normalizeErrorJSON(t, expected)\n\trequire.Equal(t, expectedNorm, actual)\n}\n\nfunc normalizeErrorJSON(t *testing.T, jsonStr string) string {\n\tt.Helper()\n\tif jsonStr == \"\" {\n\t\treturn \"\"\n\t}\n\tvar list []gqlError\n\trequire.NoError(t, json.Unmarshal([]byte(jsonStr), &list))\n\tsort.Slice(list, func(i, j int) bool {\n\t\treturn errorKey(t, list[i]) < errorKey(t, list[j])\n\t})\n\tblob, err := json.Marshal(list)\n\trequire.NoError(t, err)\n\treturn string(blob)\n}\n\nfunc errorKey(t *testing.T, err gqlError) string {\n\tt.Helper()\n\tblob, marshalErr := json.Marshal(err.Path)\n\trequire.NoError(t, marshalErr)\n\treturn err.Message + \"|\" + string(blob)\n}\n\nfunc TestBatchResolver_Parity_NoError(t *testing.T) {\n\tresolver := &Resolver{\n\t\tusers:         []*User{{}, {}},\n\t\tprofiles:      []*Profile{{ID: \"p1\"}, {ID: \"p2\"}},\n\t\tprofileErrIdx: -1,\n\t}\n\n\tc := newTestClient(resolver)\n\tvar resp struct {\n\t\tUsers []struct {\n\t\t\tNullableBatch *struct {\n\t\t\t\tID string `json:\"id\"`\n\t\t\t} `json:\"nullableBatch\"`\n\t\t\tNullableNonBatch *struct {\n\t\t\t\tID string `json:\"id\"`\n\t\t\t} `json:\"nullableNonBatch\"`\n\t\t} `json:\"users\"`\n\t}\n\n\terr := c.Post(`query { users { nullableBatch { id } nullableNonBatch { id } } }`, &resp)\n\trequire.NoError(t, err)\n\trequire.JSONEq(\n\t\tt,\n\t\t`{\"users\":[{\"nullableBatch\":{\"id\":\"p1\"},\"nullableNonBatch\":{\"id\":\"p1\"}},{\"nullableBatch\":{\"id\":\"p2\"},\"nullableNonBatch\":{\"id\":\"p2\"}}]}`,\n\t\tmarshalJSON(t, resp),\n\t)\n}\n\nfunc TestBatchResolver_Parity_WithArgs(t *testing.T) {\n\tresolver := &Resolver{\n\t\tusers:         []*User{{}, {}},\n\t\tprofiles:      []*Profile{{ID: \"p1\"}, {ID: \"p2\"}, {ID: \"p3\"}},\n\t\tprofileErrIdx: -1,\n\t}\n\n\tc := newTestClient(resolver)\n\tvar resp struct {\n\t\tUsers []struct {\n\t\t\tNullableBatchWithArg *struct {\n\t\t\t\tID string `json:\"id\"`\n\t\t\t} `json:\"nullableBatchWithArg\"`\n\t\t\tNullableNonBatchWithArg *struct {\n\t\t\t\tID string `json:\"id\"`\n\t\t\t} `json:\"nullableNonBatchWithArg\"`\n\t\t} `json:\"users\"`\n\t}\n\n\terr := c.Post(`\nquery {\n  users {\n    nullableBatchWithArg(offset: 1) { id }\n    nullableNonBatchWithArg(offset: 1) { id }\n  }\n}`, &resp)\n\trequire.NoError(t, err)\n\trequire.JSONEq(\n\t\tt,\n\t\t`{\"users\":[{\"nullableBatchWithArg\":{\"id\":\"p2\"},\"nullableNonBatchWithArg\":{\"id\":\"p2\"}},{\"nullableBatchWithArg\":{\"id\":\"p3\"},\"nullableNonBatchWithArg\":{\"id\":\"p3\"}}]}`,\n\t\tmarshalJSON(t, resp),\n\t)\n}\n\nfunc TestBatchResolver_Parity_Error(t *testing.T) {\n\tresolver := &Resolver{\n\t\tusers:         []*User{{}, {}},\n\t\tprofiles:      []*Profile{{ID: \"p1\"}, {ID: \"p2\"}},\n\t\tprofileErrIdx: 1,\n\t}\n\n\tc := newTestClient(resolver)\n\tvar resp struct {\n\t\tUsers []struct {\n\t\t\tNullableBatch *struct {\n\t\t\t\tID string `json:\"id\"`\n\t\t\t} `json:\"nullableBatch\"`\n\t\t\tNullableNonBatch *struct {\n\t\t\t\tID string `json:\"id\"`\n\t\t\t} `json:\"nullableNonBatch\"`\n\t\t} `json:\"users\"`\n\t}\n\n\terr := c.Post(`query { users { nullableBatch { id } nullableNonBatch { id } } }`, &resp)\n\trequireErrorJSON(t, err, `[\n\t\t{\"message\":\"profile error at index 1\",\"path\":[\"users\",1,\"nullableBatch\"]},\n\t\t{\"message\":\"profile error at index 1\",\"path\":[\"users\",1,\"nullableNonBatch\"]}\n\t]`)\n\trequire.JSONEq(\n\t\tt,\n\t\t`{\"users\":[{\"nullableBatch\":{\"id\":\"p1\"},\"nullableNonBatch\":{\"id\":\"p1\"}},{\"nullableBatch\":null,\"nullableNonBatch\":null}]}`,\n\t\tmarshalJSON(t, resp),\n\t)\n}\n\nfunc TestBatchResolver_Parity_GqlErrorList(t *testing.T) {\n\tresolver := &Resolver{\n\t\tusers:              []*User{{}, {}},\n\t\tprofiles:           []*Profile{{ID: \"p1\"}, {ID: \"p2\"}},\n\t\tprofileErrListIdxs: map[int]struct{}{0: {}},\n\t\tprofileErrIdx:      -1,\n\t}\n\n\tc := newTestClient(resolver)\n\tvar resp struct {\n\t\tUsers []struct {\n\t\t\tNullableBatch *struct {\n\t\t\t\tID string `json:\"id\"`\n\t\t\t} `json:\"nullableBatch\"`\n\t\t\tNullableNonBatch *struct {\n\t\t\t\tID string `json:\"id\"`\n\t\t\t} `json:\"nullableNonBatch\"`\n\t\t} `json:\"users\"`\n\t}\n\n\terr := c.Post(`query { users { nullableBatch { id } nullableNonBatch { id } } }`, &resp)\n\trequireErrorJSON(t, err, `[\n\t\t{\"message\":\"profile list error 1 at index 0\",\"path\":[\"users\",0,\"nullableBatch\"]},\n\t\t{\"message\":\"profile list error 2 at index 0\",\"path\":[\"users\",0,\"nullableBatch\"]},\n\t\t{\"message\":\"profile list error 1 at index 0\",\"path\":[\"users\",0,\"nullableNonBatch\"]},\n\t\t{\"message\":\"profile list error 2 at index 0\",\"path\":[\"users\",0,\"nullableNonBatch\"]}\n\t]`)\n\trequire.JSONEq(\n\t\tt,\n\t\t`{\"users\":[{\"nullableBatch\":null,\"nullableNonBatch\":null},{\"nullableBatch\":{\"id\":\"p2\"},\"nullableNonBatch\":{\"id\":\"p2\"}}]}`,\n\t\tmarshalJSON(t, resp),\n\t)\n}\n\nfunc TestBatchResolver_Parity_GqlErrorPathNil(t *testing.T) {\n\tresolver := &Resolver{\n\t\tusers:                   []*User{{}, {}},\n\t\tprofiles:                []*Profile{{ID: \"p1\"}, {ID: \"p2\"}},\n\t\tprofileGqlErrNoPathIdxs: map[int]struct{}{0: {}},\n\t\tprofileErrIdx:           -1,\n\t}\n\n\tc := newTestClient(resolver)\n\tvar resp struct {\n\t\tUsers []struct {\n\t\t\tNullableBatch *struct {\n\t\t\t\tID string `json:\"id\"`\n\t\t\t} `json:\"nullableBatch\"`\n\t\t\tNullableNonBatch *struct {\n\t\t\t\tID string `json:\"id\"`\n\t\t\t} `json:\"nullableNonBatch\"`\n\t\t} `json:\"users\"`\n\t}\n\n\terr := c.Post(`query { users { nullableBatch { id } nullableNonBatch { id } } }`, &resp)\n\trequireErrorJSON(t, err, `[\n\t\t{\"message\":\"profile gqlerror path nil at index 0\",\"path\":[\"users\",0,\"nullableBatch\"]},\n\t\t{\"message\":\"profile gqlerror path nil at index 0\",\"path\":[\"users\",0,\"nullableNonBatch\"]}\n\t]`)\n\trequire.JSONEq(\n\t\tt,\n\t\t`{\"users\":[{\"nullableBatch\":null,\"nullableNonBatch\":null},{\"nullableBatch\":{\"id\":\"p2\"},\"nullableNonBatch\":{\"id\":\"p2\"}}]}`,\n\t\tmarshalJSON(t, resp),\n\t)\n}\n\nfunc TestBatchResolver_Parity_GqlErrorPathSet(t *testing.T) {\n\tresolver := &Resolver{\n\t\tusers:                 []*User{{}, {}},\n\t\tprofiles:              []*Profile{{ID: \"p1\"}, {ID: \"p2\"}},\n\t\tprofileGqlErrPathIdxs: map[int]struct{}{0: {}},\n\t\tprofileErrIdx:         -1,\n\t}\n\n\tc := newTestClient(resolver)\n\tvar resp struct {\n\t\tUsers []struct {\n\t\t\tNullableBatch *struct {\n\t\t\t\tID string `json:\"id\"`\n\t\t\t} `json:\"nullableBatch\"`\n\t\t\tNullableNonBatch *struct {\n\t\t\t\tID string `json:\"id\"`\n\t\t\t} `json:\"nullableNonBatch\"`\n\t\t} `json:\"users\"`\n\t}\n\n\terr := c.Post(`query { users { nullableBatch { id } nullableNonBatch { id } } }`, &resp)\n\trequireErrorJSON(t, err, `[\n\t\t{\"message\":\"profile gqlerror path set at index 0\",\"path\":[\"custom\",0]},\n\t\t{\"message\":\"profile gqlerror path set at index 0\",\"path\":[\"custom\",0]}\n\t]`)\n\trequire.JSONEq(\n\t\tt,\n\t\t`{\"users\":[{\"nullableBatch\":null,\"nullableNonBatch\":null},{\"nullableBatch\":{\"id\":\"p2\"},\"nullableNonBatch\":{\"id\":\"p2\"}}]}`,\n\t\tmarshalJSON(t, resp),\n\t)\n}\n\nfunc TestBatchResolver_Parity_PartialResponseWithErrValue(t *testing.T) {\n\tresolver := &Resolver{\n\t\tusers:                   []*User{{}, {}},\n\t\tprofiles:                []*Profile{{ID: \"p1\"}, {ID: \"p2\"}},\n\t\tprofileErrWithValueIdxs: map[int]struct{}{0: {}},\n\t\tprofileErrIdx:           -1,\n\t}\n\n\tc := newTestClient(resolver)\n\tvar resp struct {\n\t\tUsers []struct {\n\t\t\tNullableBatch *struct {\n\t\t\t\tID string `json:\"id\"`\n\t\t\t} `json:\"nullableBatch\"`\n\t\t\tNullableNonBatch *struct {\n\t\t\t\tID string `json:\"id\"`\n\t\t\t} `json:\"nullableNonBatch\"`\n\t\t} `json:\"users\"`\n\t}\n\n\terr := c.Post(`query { users { nullableBatch { id } nullableNonBatch { id } } }`, &resp)\n\trequireErrorJSON(t, err, `[\n\t\t{\"message\":\"profile error with value at index 0\",\"path\":[\"users\",0,\"nullableBatch\"]},\n\t\t{\"message\":\"profile error with value at index 0\",\"path\":[\"users\",0,\"nullableNonBatch\"]}\n\t]`)\n\trequire.JSONEq(\n\t\tt,\n\t\t`{\"users\":[{\"nullableBatch\":null,\"nullableNonBatch\":null},{\"nullableBatch\":{\"id\":\"p2\"},\"nullableNonBatch\":{\"id\":\"p2\"}}]}`,\n\t\tmarshalJSON(t, resp),\n\t)\n}\n\nfunc TestBatchResolver_Parity_NonNullPropagation(t *testing.T) {\n\tresolver := &Resolver{\n\t\tusers:         []*User{{}, {}},\n\t\tprofiles:      []*Profile{{ID: \"p1\"}, {ID: \"p2\"}},\n\t\tprofileErrIdx: 0,\n\t}\n\n\tc := newTestClient(resolver)\n\tvar resp struct {\n\t\tUsers []struct {\n\t\t\tNonNullableBatch *struct {\n\t\t\t\tID string `json:\"id\"`\n\t\t\t} `json:\"nonNullableBatch\"`\n\t\t\tNonNullableNonBatch *struct {\n\t\t\t\tID string `json:\"id\"`\n\t\t\t} `json:\"nonNullableNonBatch\"`\n\t\t} `json:\"users\"`\n\t}\n\n\terr := c.Post(`query { users { nonNullableBatch { id } nonNullableNonBatch { id } } }`, &resp)\n\trequireErrorJSON(t, err, `[\n\t\t{\"message\":\"profile error at index 0\",\"path\":[\"users\",0,\"nonNullableBatch\"]},\n\t\t{\"message\":\"profile error at index 0\",\"path\":[\"users\",0,\"nonNullableNonBatch\"]}\n\t]`)\n\trequire.JSONEq(\n\t\tt,\n\t\t`{\"users\":null}`,\n\t\tmarshalJSON(t, resp),\n\t)\n}\n\nfunc TestBatchResolver_InvalidLen_AddsErrorPerParent(t *testing.T) {\n\tresolver := &Resolver{\n\t\tusers:           []*User{{}, {}},\n\t\tprofiles:        []*Profile{{ID: \"p1\"}, {ID: \"p2\"}},\n\t\tprofileErrIdx:   -1,\n\t\tprofileWrongLen: true,\n\t}\n\n\tc := newTestClient(resolver)\n\tvar resp struct {\n\t\tUsers []struct {\n\t\t\tNullableBatch *struct {\n\t\t\t\tID string `json:\"id\"`\n\t\t\t} `json:\"nullableBatch\"`\n\t\t} `json:\"users\"`\n\t}\n\n\terr := c.Post(`query { users { nullableBatch { id } } }`, &resp)\n\trequireErrorJSON(t, err, `[\n\t\t{\"message\":\"index 0: batch resolver User.nullableBatch returned 1 results for 2 parents\",\"path\":[\"users\",0,\"nullableBatch\"]},\n\t\t{\"message\":\"index 1: batch resolver User.nullableBatch returned 1 results for 2 parents\",\"path\":[\"users\",1,\"nullableBatch\"]}\n\t]`)\n\trequire.JSONEq(\n\t\tt,\n\t\t`{\"users\":[{\"nullableBatch\":null},{\"nullableBatch\":null}]}`,\n\t\tmarshalJSON(t, resp),\n\t)\n}\n\nfunc TestBatchResolver_BatchErrors_ErrLenMismatch_AddsErrorPerParent(t *testing.T) {\n\tcases := []struct {\n\t\tname   string\n\t\terrLen int\n\t}{\n\t\t{name: \"len1\", errLen: 1},\n\t\t{name: \"len0\", errLen: 0},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tresolver := &Resolver{\n\t\t\t\tusers:             []*User{{}, {}},\n\t\t\t\tprofiles:          []*Profile{{ID: \"p1\"}, {ID: \"p2\"}},\n\t\t\t\tprofileErrIdx:     -1,\n\t\t\t\tbatchErrsWrongLen: true,\n\t\t\t\tbatchErrsLen:      tc.errLen,\n\t\t\t}\n\n\t\t\tc := newTestClient(resolver)\n\t\t\tvar resp struct {\n\t\t\t\tUsers []struct {\n\t\t\t\t\tNullableBatch *struct {\n\t\t\t\t\t\tID string `json:\"id\"`\n\t\t\t\t\t} `json:\"nullableBatch\"`\n\t\t\t\t} `json:\"users\"`\n\t\t\t}\n\n\t\t\terr := c.Post(`query { users { nullableBatch { id } } }`, &resp)\n\t\t\trequireErrorJSON(t, err, fmt.Sprintf(`[\n\t\t\t\t{\"message\":\"index 0: batch resolver User.nullableBatch returned %d errors for 2 parents\",\"path\":[\"users\",0,\"nullableBatch\"]},\n\t\t\t\t{\"message\":\"index 1: batch resolver User.nullableBatch returned %d errors for 2 parents\",\"path\":[\"users\",1,\"nullableBatch\"]}\n\t\t\t]`, tc.errLen, tc.errLen))\n\t\t\trequire.JSONEq(\n\t\t\t\tt,\n\t\t\t\t`{\"users\":[{\"nullableBatch\":null},{\"nullableBatch\":null}]}`,\n\t\t\t\tmarshalJSON(t, resp),\n\t\t\t)\n\t\t})\n\t}\n}\n\nfunc TestBatchResolver_BatchErrors_ResultLenMismatch_AddsErrorPerParent(t *testing.T) {\n\tresolver := &Resolver{\n\t\tusers:                []*User{{}, {}},\n\t\tprofiles:             []*Profile{{ID: \"p1\"}, {ID: \"p2\"}},\n\t\tprofileErrIdx:        -1,\n\t\tbatchResultsWrongLen: true,\n\t\tbatchResultsLen:      1,\n\t}\n\n\tc := newTestClient(resolver)\n\tvar resp struct {\n\t\tUsers []struct {\n\t\t\tNullableBatch *struct {\n\t\t\t\tID string `json:\"id\"`\n\t\t\t} `json:\"nullableBatch\"`\n\t\t} `json:\"users\"`\n\t}\n\n\terr := c.Post(`query { users { nullableBatch { id } } }`, &resp)\n\trequireErrorJSON(t, err, `[\n\t\t{\"message\":\"index 0: batch resolver User.nullableBatch returned 1 results for 2 parents\",\"path\":[\"users\",0,\"nullableBatch\"]},\n\t\t{\"message\":\"index 1: batch resolver User.nullableBatch returned 1 results for 2 parents\",\"path\":[\"users\",1,\"nullableBatch\"]}\n\t]`)\n\trequire.JSONEq(\n\t\tt,\n\t\t`{\"users\":[{\"nullableBatch\":null},{\"nullableBatch\":null}]}`,\n\t\tmarshalJSON(t, resp),\n\t)\n}\n\nfunc TestBatchDirectiveConfig(t *testing.T) {\n\tcfg, err := config.LoadConfig(\"gqlgen.yml\")\n\trequire.NoError(t, err)\n\trequire.NoError(t, cfg.Init())\n\n\tuserFields := cfg.Models[\"User\"].Fields\n\n\t// YAML-configured fields\n\trequire.True(t, userFields[\"nullableBatch\"].Batch)\n\trequire.True(t, userFields[\"nullableBatchWithArg\"].Batch)\n\trequire.True(t, userFields[\"nonNullableBatch\"].Batch)\n\n\trequire.False(t, userFields[\"nullableNonBatch\"].Batch)\n\trequire.False(t, userFields[\"nullableNonBatchWithArg\"].Batch)\n\trequire.False(t, userFields[\"nonNullableNonBatch\"].Batch)\n\n\t// Directive-configured fields\n\trequire.True(t, userFields[\"directiveNullableBatch\"].Batch)\n\trequire.True(t, userFields[\"directiveNullableBatchWithArg\"].Batch)\n\trequire.True(t, userFields[\"directiveNonNullableBatch\"].Batch)\n\n\trequire.False(t, userFields[\"directiveNullableNonBatch\"].Batch)\n\trequire.False(t, userFields[\"directiveNullableNonBatchWithArg\"].Batch)\n\trequire.False(t, userFields[\"directiveNonNullableNonBatch\"].Batch)\n}\n\nfunc TestBatchResolver_BatchErrors_ListPerIndex_AddsMultipleErrors(t *testing.T) {\n\tresolver := &Resolver{\n\t\tusers:            []*User{{}, {}},\n\t\tprofiles:         []*Profile{{ID: \"p1\"}, {ID: \"p2\"}},\n\t\tprofileErrIdx:    -1,\n\t\tbatchErrListIdxs: map[int]struct{}{0: {}},\n\t}\n\n\tc := newTestClient(resolver)\n\tvar resp struct {\n\t\tUsers []struct {\n\t\t\tNullableBatch *struct {\n\t\t\t\tID string `json:\"id\"`\n\t\t\t} `json:\"nullableBatch\"`\n\t\t} `json:\"users\"`\n\t}\n\n\terr := c.Post(`query { users { nullableBatch { id } } }`, &resp)\n\trequireErrorJSON(t, err, `[\n\t\t{\"message\":\"batch list error 1 at index 0\",\"path\":[\"users\",0,\"nullableBatch\"]},\n\t\t{\"message\":\"batch list error 2 at index 0\",\"path\":[\"users\",0,\"nullableBatch\"]}\n\t]`)\n\trequire.JSONEq(\n\t\tt,\n\t\t`{\"users\":[{\"nullableBatch\":null},{\"nullableBatch\":{\"id\":\"p2\"}}]}`,\n\t\tmarshalJSON(t, resp),\n\t)\n}\n\nfunc TestBatchResolver_Nested_CallCount(t *testing.T) {\n\tconst n = 10\n\tusers := make([]*User, n)\n\tprofiles := make([]*Profile, n)\n\timages := make([]*Image, n)\n\tfor i := 0; i < n; i++ {\n\t\tusers[i] = &User{}\n\t\tprofiles[i] = &Profile{ID: fmt.Sprintf(\"p%d\", i)}\n\t\timages[i] = &Image{URL: fmt.Sprintf(\"https://img/%d\", i)}\n\t}\n\tresolver := &Resolver{\n\t\tusers:         users,\n\t\tprofiles:      profiles,\n\t\timages:        images,\n\t\tprofileErrIdx: -1,\n\t}\n\tclient := newTestClient(resolver)\n\n\ttype graphqlResp struct {\n\t\tUsers []struct {\n\t\t\tProfile *struct {\n\t\t\t\tID    string `json:\"id\"`\n\t\t\t\tCover *struct {\n\t\t\t\t\tURL string `json:\"url\"`\n\t\t\t\t} `json:\"cover\"`\n\t\t\t} `json:\"profile\"`\n\t\t} `json:\"users\"`\n\t}\n\n\tassertData := func(t *testing.T, resp graphqlResp, label string) {\n\t\tt.Helper()\n\t\trequire.Len(t, resp.Users, n)\n\t\tfor i, u := range resp.Users {\n\t\t\trequire.NotNil(t, u.Profile, \"%s user %d profile nil\", label, i)\n\t\t\trequire.Equal(t, fmt.Sprintf(\"p%d\", i), u.Profile.ID)\n\t\t\trequire.NotNil(t, u.Profile.Cover, \"%s user %d cover nil\", label, i)\n\t\t\trequire.Equal(t, fmt.Sprintf(\"https://img/%d\", i), u.Profile.Cover.URL)\n\t\t}\n\t}\n\n\t// --- Batch path ---\n\n\tvar batchResp graphqlResp\n\terr := client.Post(`query {\n\t\tusers {\n\t\t\tprofile: profileBatch {\n\t\t\t\tid\n\t\t\t\tcover: coverBatch {\n\t\t\t\t\turl\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}`, &batchResp)\n\trequire.NoError(t, err)\n\tassertData(t, batchResp, \"batch\")\n\trequire.Equal(\n\t\tt,\n\t\tint32(1),\n\t\tresolver.profileBatchCalls.Load(),\n\t\t\"profileBatch should be called once for all users\",\n\t)\n\t// TODO: coverBatch is called once per profile (not batched) because profiles\n\t// are resolved as individual values, not as a list. The batch parent context\n\t// for \"Profile\" is only set when marshalling a [Profile] list field.\n\t// Nested batching should propagate the batch parent context from batch\n\t// resolver results so coverBatchCalls == 1 here.\n\trequire.Equal(\n\t\tt,\n\t\tint32(n),\n\t\tresolver.coverBatchCalls.Load(),\n\t\t\"coverBatch called once per profile (no list parent context)\",\n\t)\n\n\t// --- Non-batch path ---\n\tvar nonBatchResp graphqlResp\n\terr = client.Post(`query {\n\t\tusers {\n\t\t\tprofile: profileNonBatch {\n\t\t\t\tid\n\t\t\t\tcover: coverNonBatch {\n\t\t\t\t\turl\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}`, &nonBatchResp)\n\trequire.NoError(t, err)\n\tassertData(t, nonBatchResp, \"non-batch\")\n\trequire.Equal(\n\t\tt,\n\t\tint32(n),\n\t\tresolver.profileNonBatchCalls.Load(),\n\t\t\"profileNonBatch should be called once per user\",\n\t)\n\trequire.Equal(\n\t\tt,\n\t\tint32(n),\n\t\tresolver.coverNonBatchCalls.Load(),\n\t\t\"coverNonBatch should be called once per profile\",\n\t)\n\n\t// --- Verify both paths produce identical data ---\n\trequire.Equal(\n\t\tt,\n\t\tmarshalJSON(t, batchResp),\n\t\tmarshalJSON(t, nonBatchResp),\n\t\t\"batch and non-batch should return identical data\",\n\t)\n}\n\nfunc TestBatchResolver_Nested_Connection_CallCount(t *testing.T) {\n\tconst n = 10\n\tusers := make([]*User, n)\n\tprofiles := make([]*Profile, n)\n\timages := make([]*Image, n)\n\tfor i := 0; i < n; i++ {\n\t\tusers[i] = &User{}\n\t\tprofiles[i] = &Profile{ID: fmt.Sprintf(\"p%d\", i)}\n\t\timages[i] = &Image{URL: fmt.Sprintf(\"https://img/%d\", i)}\n\t}\n\tresolver := &Resolver{\n\t\tusers:         users,\n\t\tprofiles:      profiles,\n\t\timages:        images,\n\t\tprofileErrIdx: -1,\n\t}\n\tclient := newTestClient(resolver)\n\n\ttype graphqlResp struct {\n\t\tUsers []struct {\n\t\t\tConn *struct {\n\t\t\t\tEdges []struct {\n\t\t\t\t\tNode *struct {\n\t\t\t\t\t\tID    string `json:\"id\"`\n\t\t\t\t\t\tCover *struct {\n\t\t\t\t\t\t\tURL string `json:\"url\"`\n\t\t\t\t\t\t} `json:\"cover\"`\n\t\t\t\t\t} `json:\"node\"`\n\t\t\t\t} `json:\"edges\"`\n\t\t\t} `json:\"conn\"`\n\t\t} `json:\"users\"`\n\t}\n\n\tassertData := func(t *testing.T, resp graphqlResp, label string) {\n\t\tt.Helper()\n\t\trequire.Len(t, resp.Users, n)\n\t\tfor i, u := range resp.Users {\n\t\t\trequire.NotNil(t, u.Conn, \"%s user %d connection nil\", label, i)\n\t\t\trequire.Len(t, u.Conn.Edges, 1, \"%s user %d edges\", label, i)\n\t\t\tnode := u.Conn.Edges[0].Node\n\t\t\trequire.NotNil(t, node, \"%s user %d node nil\", label, i)\n\t\t\trequire.Equal(t, fmt.Sprintf(\"p%d\", i), node.ID)\n\t\t\trequire.NotNil(t, node.Cover, \"%s user %d cover nil\", label, i)\n\t\t\trequire.Equal(t, fmt.Sprintf(\"https://img/%d\", i), node.Cover.URL)\n\t\t}\n\t}\n\n\t// --- Batch path ---\n\n\tvar batchResp graphqlResp\n\terr := client.Post(`query {\n\t\tusers {\n\t\t\tconn: profileConnectionBatch {\n\t\t\t\tedges {\n\t\t\t\t\tnode {\n\t\t\t\t\t\tid\n\t\t\t\t\t\tcover: coverBatch { url }\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}`, &batchResp)\n\trequire.NoError(t, err)\n\tassertData(t, batchResp, \"batch\")\n\trequire.Equal(\n\t\tt,\n\t\tint32(1),\n\t\tresolver.profileConnectionBatchCalls.Load(),\n\t\t\"profileConnectionBatch should be called once for all users\",\n\t)\n\t// TODO: coverBatch is not batched because the immediate parent (Profile)\n\t// and its edge are not batched — only the connection is. This should be 1\n\t// once nested batching propagates through non-batched intermediate types.\n\trequire.Equal(\n\t\tt,\n\t\tint32(n),\n\t\tresolver.coverBatchCalls.Load(),\n\t\t\"coverBatch called once per profile (immediate parent not batched)\",\n\t)\n\n\t// --- Non-batch path ---\n\n\tvar nonBatchResp graphqlResp\n\terr = client.Post(`query {\n\t\tusers {\n\t\t\tconn: profileConnectionNonBatch {\n\t\t\t\tedges {\n\t\t\t\t\tnode {\n\t\t\t\t\t\tid\n\t\t\t\t\t\tcover: coverNonBatch { url }\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}`, &nonBatchResp)\n\trequire.NoError(t, err)\n\tassertData(t, nonBatchResp, \"non-batch\")\n\trequire.Equal(\n\t\tt,\n\t\tint32(n),\n\t\tresolver.profileConnectionNonBatchCalls.Load(),\n\t\t\"profileConnectionNonBatch should be called once per user\",\n\t)\n\trequire.Equal(\n\t\tt,\n\t\tint32(n),\n\t\tresolver.coverNonBatchCalls.Load(),\n\t\t\"coverNonBatch should be called once per profile\",\n\t)\n\n\t// --- Verify both paths produce identical data ---\n\trequire.Equal(\n\t\tt,\n\t\tmarshalJSON(t, batchResp),\n\t\tmarshalJSON(t, nonBatchResp),\n\t\t\"batch and non-batch should return identical data\",\n\t)\n}\n\nfunc BenchmarkBatchResolver_SingleLevel(b *testing.B) {\n\tconst n = 100\n\tusers := make([]*User, n)\n\tprofiles := make([]*Profile, n)\n\tfor i := 0; i < n; i++ {\n\t\tusers[i] = &User{}\n\t\tprofiles[i] = &Profile{ID: fmt.Sprintf(\"p%d\", i)}\n\t}\n\n\tb.Run(\"batch\", func(b *testing.B) {\n\t\tresolver := &Resolver{\n\t\t\tusers:         users,\n\t\t\tprofiles:      profiles,\n\t\t\tprofileErrIdx: -1,\n\t\t}\n\t\tc := newTestClient(resolver)\n\t\tvar resp json.RawMessage\n\t\tfor b.Loop() {\n\t\t\t_ = c.Post(`query { users { nullableBatch { id } } }`, &resp)\n\t\t}\n\t})\n\n\tb.Run(\"non-batch\", func(b *testing.B) {\n\t\tresolver := &Resolver{\n\t\t\tusers:         users,\n\t\t\tprofiles:      profiles,\n\t\t\tprofileErrIdx: -1,\n\t\t}\n\t\tc := newTestClient(resolver)\n\t\tvar resp json.RawMessage\n\t\tfor b.Loop() {\n\t\t\t_ = c.Post(`query { users { nullableNonBatch { id } } }`, &resp)\n\t\t}\n\t})\n}\n\nfunc BenchmarkBatchResolver_Nested(b *testing.B) {\n\tconst n = 100\n\tusers := make([]*User, n)\n\tprofiles := make([]*Profile, n)\n\timages := make([]*Image, n)\n\tfor i := 0; i < n; i++ {\n\t\tusers[i] = &User{}\n\t\tprofiles[i] = &Profile{ID: fmt.Sprintf(\"p%d\", i)}\n\t\timages[i] = &Image{URL: fmt.Sprintf(\"https://img/%d\", i)}\n\t}\n\n\tb.Run(\"batch\", func(b *testing.B) {\n\t\tresolver := &Resolver{\n\t\t\tusers:         users,\n\t\t\tprofiles:      profiles,\n\t\t\timages:        images,\n\t\t\tprofileErrIdx: -1,\n\t\t}\n\t\tc := newTestClient(resolver)\n\t\tvar resp json.RawMessage\n\t\tfor b.Loop() {\n\t\t\t_ = c.Post(`query {\n\t\t\t\tusers {\n\t\t\t\t\tprofile: profileBatch {\n\t\t\t\t\t\tid\n\t\t\t\t\t\tcover: coverBatch { url }\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}`, &resp)\n\t\t}\n\t})\n\n\tb.Run(\"non-batch\", func(b *testing.B) {\n\t\tresolver := &Resolver{\n\t\t\tusers:         users,\n\t\t\tprofiles:      profiles,\n\t\t\timages:        images,\n\t\t\tprofileErrIdx: -1,\n\t\t}\n\t\tc := newTestClient(resolver)\n\t\tvar resp json.RawMessage\n\t\tfor b.Loop() {\n\t\t\t_ = c.Post(`query {\n\t\t\t\tusers {\n\t\t\t\t\tprofile: profileNonBatch {\n\t\t\t\t\t\tid\n\t\t\t\t\t\tcover: coverNonBatch { url }\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}`, &resp)\n\t\t}\n\t})\n}\n"
  },
  {
    "path": "_examples/batchresolver/generate.go",
    "content": "//go:generate go run ../../testdata/gqlgen.go\n\npackage batchresolver\n"
  },
  {
    "path": "_examples/batchresolver/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage batchresolver\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"embed\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n}\n\ntype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\ntype ResolverRoot interface {\n\tProfile() ProfileResolver\n\tQuery() QueryResolver\n\tUser() UserResolver\n}\n\ntype DirectiveRoot struct {\n}\n\ntype ComplexityRoot struct {\n\tImage struct {\n\t\tURL func(childComplexity int) int\n\t}\n\n\tProfile struct {\n\t\tCoverBatch    func(childComplexity int) int\n\t\tCoverNonBatch func(childComplexity int) int\n\t\tID            func(childComplexity int) int\n\t}\n\n\tProfileEdge struct {\n\t\tCursor func(childComplexity int) int\n\t\tNode   func(childComplexity int) int\n\t}\n\n\tProfilesConnection struct {\n\t\tEdges      func(childComplexity int) int\n\t\tTotalCount func(childComplexity int) int\n\t}\n\n\tQuery struct {\n\t\tUsers func(childComplexity int) int\n\t}\n\n\tUser struct {\n\t\tDirectiveNonNullableBatch        func(childComplexity int) int\n\t\tDirectiveNonNullableNonBatch     func(childComplexity int) int\n\t\tDirectiveNullableBatch           func(childComplexity int) int\n\t\tDirectiveNullableBatchWithArg    func(childComplexity int, offset int) int\n\t\tDirectiveNullableNonBatch        func(childComplexity int) int\n\t\tDirectiveNullableNonBatchWithArg func(childComplexity int, offset int) int\n\t\tNonNullableBatch                 func(childComplexity int) int\n\t\tNonNullableNonBatch              func(childComplexity int) int\n\t\tNullableBatch                    func(childComplexity int) int\n\t\tNullableBatchWithArg             func(childComplexity int, offset int) int\n\t\tNullableNonBatch                 func(childComplexity int) int\n\t\tNullableNonBatchWithArg          func(childComplexity int, offset int) int\n\t\tProfileBatch                     func(childComplexity int) int\n\t\tProfileConnectionBatch           func(childComplexity int) int\n\t\tProfileConnectionNonBatch        func(childComplexity int) int\n\t\tProfileNonBatch                  func(childComplexity int) int\n\t}\n}\n\ntype ProfileResolver interface {\n\tCoverBatch(ctx context.Context, objs []*Profile) ([]*Image, error)\n\tCoverNonBatch(ctx context.Context, obj *Profile) (*Image, error)\n}\ntype QueryResolver interface {\n\tUsers(ctx context.Context) ([]*User, error)\n}\ntype UserResolver interface {\n\tNullableBatch(ctx context.Context, objs []*User) ([]*Profile, error)\n\tNullableNonBatch(ctx context.Context, obj *User) (*Profile, error)\n\tNullableBatchWithArg(ctx context.Context, objs []*User, offset int) ([]*Profile, error)\n\tNullableNonBatchWithArg(ctx context.Context, obj *User, offset int) (*Profile, error)\n\tNonNullableBatch(ctx context.Context, objs []*User) ([]*Profile, error)\n\tNonNullableNonBatch(ctx context.Context, obj *User) (*Profile, error)\n\tDirectiveNullableBatch(ctx context.Context, objs []*User) ([]*Profile, error)\n\tDirectiveNullableNonBatch(ctx context.Context, obj *User) (*Profile, error)\n\tDirectiveNullableBatchWithArg(ctx context.Context, objs []*User, offset int) ([]*Profile, error)\n\tDirectiveNullableNonBatchWithArg(ctx context.Context, obj *User, offset int) (*Profile, error)\n\tDirectiveNonNullableBatch(ctx context.Context, objs []*User) ([]*Profile, error)\n\tDirectiveNonNullableNonBatch(ctx context.Context, obj *User) (*Profile, error)\n\tProfileBatch(ctx context.Context, objs []*User) ([]*Profile, error)\n\tProfileNonBatch(ctx context.Context, obj *User) (*Profile, error)\n\tProfileConnectionBatch(ctx context.Context, objs []*User) ([]*ProfilesConnection, error)\n\tProfileConnectionNonBatch(ctx context.Context, obj *User) (*ProfilesConnection, error)\n}\n\ntype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.SchemaData != nil {\n\t\treturn e.SchemaData\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := newExecutionContext(nil, e, nil)\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"Image.url\":\n\t\tif e.ComplexityRoot.Image.URL == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Image.URL(childComplexity), true\n\n\tcase \"Profile.coverBatch\":\n\t\tif e.ComplexityRoot.Profile.CoverBatch == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Profile.CoverBatch(childComplexity), true\n\tcase \"Profile.coverNonBatch\":\n\t\tif e.ComplexityRoot.Profile.CoverNonBatch == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Profile.CoverNonBatch(childComplexity), true\n\tcase \"Profile.id\":\n\t\tif e.ComplexityRoot.Profile.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Profile.ID(childComplexity), true\n\n\tcase \"ProfileEdge.cursor\":\n\t\tif e.ComplexityRoot.ProfileEdge.Cursor == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.ProfileEdge.Cursor(childComplexity), true\n\tcase \"ProfileEdge.node\":\n\t\tif e.ComplexityRoot.ProfileEdge.Node == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.ProfileEdge.Node(childComplexity), true\n\n\tcase \"ProfilesConnection.edges\":\n\t\tif e.ComplexityRoot.ProfilesConnection.Edges == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.ProfilesConnection.Edges(childComplexity), true\n\tcase \"ProfilesConnection.totalCount\":\n\t\tif e.ComplexityRoot.ProfilesConnection.TotalCount == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.ProfilesConnection.TotalCount(childComplexity), true\n\n\tcase \"Query.users\":\n\t\tif e.ComplexityRoot.Query.Users == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Users(childComplexity), true\n\n\tcase \"User.directiveNonNullableBatch\":\n\t\tif e.ComplexityRoot.User.DirectiveNonNullableBatch == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.DirectiveNonNullableBatch(childComplexity), true\n\tcase \"User.directiveNonNullableNonBatch\":\n\t\tif e.ComplexityRoot.User.DirectiveNonNullableNonBatch == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.DirectiveNonNullableNonBatch(childComplexity), true\n\tcase \"User.directiveNullableBatch\":\n\t\tif e.ComplexityRoot.User.DirectiveNullableBatch == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.DirectiveNullableBatch(childComplexity), true\n\tcase \"User.directiveNullableBatchWithArg\":\n\t\tif e.ComplexityRoot.User.DirectiveNullableBatchWithArg == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_User_directiveNullableBatchWithArg_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.DirectiveNullableBatchWithArg(childComplexity, args[\"offset\"].(int)), true\n\tcase \"User.directiveNullableNonBatch\":\n\t\tif e.ComplexityRoot.User.DirectiveNullableNonBatch == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.DirectiveNullableNonBatch(childComplexity), true\n\tcase \"User.directiveNullableNonBatchWithArg\":\n\t\tif e.ComplexityRoot.User.DirectiveNullableNonBatchWithArg == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_User_directiveNullableNonBatchWithArg_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.DirectiveNullableNonBatchWithArg(childComplexity, args[\"offset\"].(int)), true\n\tcase \"User.nonNullableBatch\":\n\t\tif e.ComplexityRoot.User.NonNullableBatch == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.NonNullableBatch(childComplexity), true\n\tcase \"User.nonNullableNonBatch\":\n\t\tif e.ComplexityRoot.User.NonNullableNonBatch == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.NonNullableNonBatch(childComplexity), true\n\tcase \"User.nullableBatch\":\n\t\tif e.ComplexityRoot.User.NullableBatch == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.NullableBatch(childComplexity), true\n\tcase \"User.nullableBatchWithArg\":\n\t\tif e.ComplexityRoot.User.NullableBatchWithArg == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_User_nullableBatchWithArg_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.NullableBatchWithArg(childComplexity, args[\"offset\"].(int)), true\n\tcase \"User.nullableNonBatch\":\n\t\tif e.ComplexityRoot.User.NullableNonBatch == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.NullableNonBatch(childComplexity), true\n\tcase \"User.nullableNonBatchWithArg\":\n\t\tif e.ComplexityRoot.User.NullableNonBatchWithArg == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_User_nullableNonBatchWithArg_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.NullableNonBatchWithArg(childComplexity, args[\"offset\"].(int)), true\n\tcase \"User.profileBatch\":\n\t\tif e.ComplexityRoot.User.ProfileBatch == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.ProfileBatch(childComplexity), true\n\tcase \"User.profileConnectionBatch\":\n\t\tif e.ComplexityRoot.User.ProfileConnectionBatch == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.ProfileConnectionBatch(childComplexity), true\n\tcase \"User.profileConnectionNonBatch\":\n\t\tif e.ComplexityRoot.User.ProfileConnectionNonBatch == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.ProfileConnectionNonBatch(childComplexity), true\n\tcase \"User.profileNonBatch\":\n\t\tif e.ComplexityRoot.User.ProfileNonBatch == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.ProfileNonBatch(childComplexity), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap()\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\n//go:embed \"schema.graphql\"\nvar sourcesFS embed.FS\n\nfunc sourceData(filename string) string {\n\tdata, err := sourcesFS.ReadFile(filename)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"codegen problem: %s not available\", filename))\n\t}\n\treturn string(data)\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"schema.graphql\", Input: sourceData(\"schema.graphql\"), BuiltIn: false},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_User_directiveNullableBatchWithArg_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"offset\", ec.unmarshalNInt2int)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"offset\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_User_directiveNullableNonBatchWithArg_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"offset\", ec.unmarshalNInt2int)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"offset\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_User_nullableBatchWithArg_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"offset\", ec.unmarshalNInt2int)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"offset\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_User_nullableNonBatchWithArg_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"offset\", ec.unmarshalNInt2int)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"offset\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Image_url(ctx context.Context, field graphql.CollectedField, obj *Image) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Image_url,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.URL, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Image_url(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Image\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Profile_id(ctx context.Context, field graphql.CollectedField, obj *Profile) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Profile_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Profile_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Profile\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Profile_coverBatch(ctx context.Context, field graphql.CollectedField, obj *Profile) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Profile_coverBatch,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.resolveBatch_Profile_coverBatch(ctx, field, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalOImage2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋbatchresolverᚐImage,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Profile_coverBatch(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Profile\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"url\":\n\t\t\t\treturn ec.fieldContext_Image_url(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Image\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\nfunc (ec *executionContext) resolveBatch_Profile_coverBatch(ctx context.Context, field graphql.CollectedField, obj *Profile) (any, error) {\n\tresolver := ec.Resolvers.Profile()\n\tgroup := graphql.GetBatchParentGroup(ctx, \"Profile\")\n\tif group != nil {\n\t\tparents, ok := group.Parents.([]*Profile)\n\t\tif ok {\n\t\t\tidx, ok := graphql.BatchParentIndex(ctx)\n\t\t\tif ok {\n\t\t\t\tkey := field.Alias\n\t\t\t\tif key == \"\" {\n\t\t\t\t\tkey = field.Name\n\t\t\t\t}\n\t\t\t\tresult := group.GetFieldResult(key, func() (any, error) {\n\t\t\t\t\treturn resolver.CoverBatch(ctx, parents)\n\t\t\t\t})\n\t\t\t\treturn graphql.ResolveBatchGroupResult[*Image](\n\t\t\t\t\tctx,\n\t\t\t\t\tidx,\n\t\t\t\t\tlen(parents),\n\t\t\t\t\tresult,\n\t\t\t\t\t\"Profile.coverBatch\",\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n\n\tresults, err := resolver.CoverBatch(ctx, []*Profile{obj})\n\treturn graphql.ResolveBatchSingleResult[*Image](\n\t\tctx,\n\t\tresults,\n\t\terr,\n\t\t\"Profile.coverBatch\",\n\t)\n}\n\nfunc (ec *executionContext) _Profile_coverNonBatch(ctx context.Context, field graphql.CollectedField, obj *Profile) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Profile_coverNonBatch,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Profile().CoverNonBatch(ctx, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalOImage2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋbatchresolverᚐImage,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Profile_coverNonBatch(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Profile\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"url\":\n\t\t\t\treturn ec.fieldContext_Image_url(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Image\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ProfileEdge_node(ctx context.Context, field graphql.CollectedField, obj *ProfileEdge) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ProfileEdge_node,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Node, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNProfile2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋbatchresolverᚐProfile,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ProfileEdge_node(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ProfileEdge\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Profile_id(ctx, field)\n\t\t\tcase \"coverBatch\":\n\t\t\t\treturn ec.fieldContext_Profile_coverBatch(ctx, field)\n\t\t\tcase \"coverNonBatch\":\n\t\t\t\treturn ec.fieldContext_Profile_coverNonBatch(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Profile\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ProfileEdge_cursor(ctx context.Context, field graphql.CollectedField, obj *ProfileEdge) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ProfileEdge_cursor,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Cursor, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ProfileEdge_cursor(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ProfileEdge\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ProfilesConnection_edges(ctx context.Context, field graphql.CollectedField, obj *ProfilesConnection) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ProfilesConnection_edges,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Edges, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNProfileEdge2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋbatchresolverᚐProfileEdgeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ProfilesConnection_edges(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ProfilesConnection\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"node\":\n\t\t\t\treturn ec.fieldContext_ProfileEdge_node(ctx, field)\n\t\t\tcase \"cursor\":\n\t\t\t\treturn ec.fieldContext_ProfileEdge_cursor(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type ProfileEdge\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ProfilesConnection_totalCount(ctx context.Context, field graphql.CollectedField, obj *ProfilesConnection) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ProfilesConnection_totalCount,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.TotalCount, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ProfilesConnection_totalCount(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ProfilesConnection\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_users(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_users,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Users(ctx)\n\t\t},\n\t\tnil,\n\t\tec.marshalNUser2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋbatchresolverᚐUserᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_users(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"nullableBatch\":\n\t\t\t\treturn ec.fieldContext_User_nullableBatch(ctx, field)\n\t\t\tcase \"nullableNonBatch\":\n\t\t\t\treturn ec.fieldContext_User_nullableNonBatch(ctx, field)\n\t\t\tcase \"nullableBatchWithArg\":\n\t\t\t\treturn ec.fieldContext_User_nullableBatchWithArg(ctx, field)\n\t\t\tcase \"nullableNonBatchWithArg\":\n\t\t\t\treturn ec.fieldContext_User_nullableNonBatchWithArg(ctx, field)\n\t\t\tcase \"nonNullableBatch\":\n\t\t\t\treturn ec.fieldContext_User_nonNullableBatch(ctx, field)\n\t\t\tcase \"nonNullableNonBatch\":\n\t\t\t\treturn ec.fieldContext_User_nonNullableNonBatch(ctx, field)\n\t\t\tcase \"directiveNullableBatch\":\n\t\t\t\treturn ec.fieldContext_User_directiveNullableBatch(ctx, field)\n\t\t\tcase \"directiveNullableNonBatch\":\n\t\t\t\treturn ec.fieldContext_User_directiveNullableNonBatch(ctx, field)\n\t\t\tcase \"directiveNullableBatchWithArg\":\n\t\t\t\treturn ec.fieldContext_User_directiveNullableBatchWithArg(ctx, field)\n\t\t\tcase \"directiveNullableNonBatchWithArg\":\n\t\t\t\treturn ec.fieldContext_User_directiveNullableNonBatchWithArg(ctx, field)\n\t\t\tcase \"directiveNonNullableBatch\":\n\t\t\t\treturn ec.fieldContext_User_directiveNonNullableBatch(ctx, field)\n\t\t\tcase \"directiveNonNullableNonBatch\":\n\t\t\t\treturn ec.fieldContext_User_directiveNonNullableNonBatch(ctx, field)\n\t\t\tcase \"profileBatch\":\n\t\t\t\treturn ec.fieldContext_User_profileBatch(ctx, field)\n\t\t\tcase \"profileNonBatch\":\n\t\t\t\treturn ec.fieldContext_User_profileNonBatch(ctx, field)\n\t\t\tcase \"profileConnectionBatch\":\n\t\t\t\treturn ec.fieldContext_User_profileConnectionBatch(ctx, field)\n\t\t\tcase \"profileConnectionNonBatch\":\n\t\t\t\treturn ec.fieldContext_User_profileConnectionNonBatch(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type User\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.IntrospectType(fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___schema,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.IntrospectSchema()\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_nullableBatch(ctx context.Context, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_nullableBatch,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.resolveBatch_User_nullableBatch(ctx, field, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalOProfile2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋbatchresolverᚐProfile,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_nullableBatch(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Profile_id(ctx, field)\n\t\t\tcase \"coverBatch\":\n\t\t\t\treturn ec.fieldContext_Profile_coverBatch(ctx, field)\n\t\t\tcase \"coverNonBatch\":\n\t\t\t\treturn ec.fieldContext_Profile_coverNonBatch(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Profile\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\nfunc (ec *executionContext) resolveBatch_User_nullableBatch(ctx context.Context, field graphql.CollectedField, obj *User) (any, error) {\n\tresolver := ec.Resolvers.User()\n\tgroup := graphql.GetBatchParentGroup(ctx, \"User\")\n\tif group != nil {\n\t\tparents, ok := group.Parents.([]*User)\n\t\tif ok {\n\t\t\tidx, ok := graphql.BatchParentIndex(ctx)\n\t\t\tif ok {\n\t\t\t\tkey := field.Alias\n\t\t\t\tif key == \"\" {\n\t\t\t\t\tkey = field.Name\n\t\t\t\t}\n\t\t\t\tresult := group.GetFieldResult(key, func() (any, error) {\n\t\t\t\t\treturn resolver.NullableBatch(ctx, parents)\n\t\t\t\t})\n\t\t\t\treturn graphql.ResolveBatchGroupResult[*Profile](\n\t\t\t\t\tctx,\n\t\t\t\t\tidx,\n\t\t\t\t\tlen(parents),\n\t\t\t\t\tresult,\n\t\t\t\t\t\"User.nullableBatch\",\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n\n\tresults, err := resolver.NullableBatch(ctx, []*User{obj})\n\treturn graphql.ResolveBatchSingleResult[*Profile](\n\t\tctx,\n\t\tresults,\n\t\terr,\n\t\t\"User.nullableBatch\",\n\t)\n}\n\nfunc (ec *executionContext) _User_nullableNonBatch(ctx context.Context, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_nullableNonBatch,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.User().NullableNonBatch(ctx, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalOProfile2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋbatchresolverᚐProfile,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_nullableNonBatch(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Profile_id(ctx, field)\n\t\t\tcase \"coverBatch\":\n\t\t\t\treturn ec.fieldContext_Profile_coverBatch(ctx, field)\n\t\t\tcase \"coverNonBatch\":\n\t\t\t\treturn ec.fieldContext_Profile_coverNonBatch(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Profile\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_nullableBatchWithArg(ctx context.Context, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_nullableBatchWithArg,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.resolveBatch_User_nullableBatchWithArg(ctx, field, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalOProfile2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋbatchresolverᚐProfile,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_nullableBatchWithArg(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Profile_id(ctx, field)\n\t\t\tcase \"coverBatch\":\n\t\t\t\treturn ec.fieldContext_Profile_coverBatch(ctx, field)\n\t\t\tcase \"coverNonBatch\":\n\t\t\t\treturn ec.fieldContext_Profile_coverNonBatch(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Profile\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_User_nullableBatchWithArg_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\nfunc (ec *executionContext) resolveBatch_User_nullableBatchWithArg(ctx context.Context, field graphql.CollectedField, obj *User) (any, error) {\n\tresolver := ec.Resolvers.User()\n\tfc := graphql.GetFieldContext(ctx)\n\tgroup := graphql.GetBatchParentGroup(ctx, \"User\")\n\tif group != nil {\n\t\tparents, ok := group.Parents.([]*User)\n\t\tif ok {\n\t\t\tidx, ok := graphql.BatchParentIndex(ctx)\n\t\t\tif ok {\n\t\t\t\tkey := field.Alias\n\t\t\t\tif key == \"\" {\n\t\t\t\t\tkey = field.Name\n\t\t\t\t}\n\t\t\t\tresult := group.GetFieldResult(key, func() (any, error) {\n\t\t\t\t\treturn resolver.NullableBatchWithArg(ctx, parents, fc.Args[\"offset\"].(int))\n\t\t\t\t})\n\t\t\t\treturn graphql.ResolveBatchGroupResult[*Profile](\n\t\t\t\t\tctx,\n\t\t\t\t\tidx,\n\t\t\t\t\tlen(parents),\n\t\t\t\t\tresult,\n\t\t\t\t\t\"User.nullableBatchWithArg\",\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n\n\tresults, err := resolver.NullableBatchWithArg(ctx, []*User{obj}, fc.Args[\"offset\"].(int))\n\treturn graphql.ResolveBatchSingleResult[*Profile](\n\t\tctx,\n\t\tresults,\n\t\terr,\n\t\t\"User.nullableBatchWithArg\",\n\t)\n}\n\nfunc (ec *executionContext) _User_nullableNonBatchWithArg(ctx context.Context, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_nullableNonBatchWithArg,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.User().NullableNonBatchWithArg(ctx, obj, fc.Args[\"offset\"].(int))\n\t\t},\n\t\tnil,\n\t\tec.marshalOProfile2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋbatchresolverᚐProfile,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_nullableNonBatchWithArg(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Profile_id(ctx, field)\n\t\t\tcase \"coverBatch\":\n\t\t\t\treturn ec.fieldContext_Profile_coverBatch(ctx, field)\n\t\t\tcase \"coverNonBatch\":\n\t\t\t\treturn ec.fieldContext_Profile_coverNonBatch(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Profile\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_User_nullableNonBatchWithArg_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_nonNullableBatch(ctx context.Context, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_nonNullableBatch,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.resolveBatch_User_nonNullableBatch(ctx, field, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalNProfile2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋbatchresolverᚐProfile,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_nonNullableBatch(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Profile_id(ctx, field)\n\t\t\tcase \"coverBatch\":\n\t\t\t\treturn ec.fieldContext_Profile_coverBatch(ctx, field)\n\t\t\tcase \"coverNonBatch\":\n\t\t\t\treturn ec.fieldContext_Profile_coverNonBatch(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Profile\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\nfunc (ec *executionContext) resolveBatch_User_nonNullableBatch(ctx context.Context, field graphql.CollectedField, obj *User) (any, error) {\n\tresolver := ec.Resolvers.User()\n\tgroup := graphql.GetBatchParentGroup(ctx, \"User\")\n\tif group != nil {\n\t\tparents, ok := group.Parents.([]*User)\n\t\tif ok {\n\t\t\tidx, ok := graphql.BatchParentIndex(ctx)\n\t\t\tif ok {\n\t\t\t\tkey := field.Alias\n\t\t\t\tif key == \"\" {\n\t\t\t\t\tkey = field.Name\n\t\t\t\t}\n\t\t\t\tresult := group.GetFieldResult(key, func() (any, error) {\n\t\t\t\t\treturn resolver.NonNullableBatch(ctx, parents)\n\t\t\t\t})\n\t\t\t\treturn graphql.ResolveBatchGroupResult[*Profile](\n\t\t\t\t\tctx,\n\t\t\t\t\tidx,\n\t\t\t\t\tlen(parents),\n\t\t\t\t\tresult,\n\t\t\t\t\t\"User.nonNullableBatch\",\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n\n\tresults, err := resolver.NonNullableBatch(ctx, []*User{obj})\n\treturn graphql.ResolveBatchSingleResult[*Profile](\n\t\tctx,\n\t\tresults,\n\t\terr,\n\t\t\"User.nonNullableBatch\",\n\t)\n}\n\nfunc (ec *executionContext) _User_nonNullableNonBatch(ctx context.Context, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_nonNullableNonBatch,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.User().NonNullableNonBatch(ctx, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalNProfile2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋbatchresolverᚐProfile,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_nonNullableNonBatch(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Profile_id(ctx, field)\n\t\t\tcase \"coverBatch\":\n\t\t\t\treturn ec.fieldContext_Profile_coverBatch(ctx, field)\n\t\t\tcase \"coverNonBatch\":\n\t\t\t\treturn ec.fieldContext_Profile_coverNonBatch(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Profile\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_directiveNullableBatch(ctx context.Context, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_directiveNullableBatch,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.resolveBatch_User_directiveNullableBatch(ctx, field, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalOProfile2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋbatchresolverᚐProfile,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_directiveNullableBatch(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Profile_id(ctx, field)\n\t\t\tcase \"coverBatch\":\n\t\t\t\treturn ec.fieldContext_Profile_coverBatch(ctx, field)\n\t\t\tcase \"coverNonBatch\":\n\t\t\t\treturn ec.fieldContext_Profile_coverNonBatch(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Profile\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\nfunc (ec *executionContext) resolveBatch_User_directiveNullableBatch(ctx context.Context, field graphql.CollectedField, obj *User) (any, error) {\n\tresolver := ec.Resolvers.User()\n\tgroup := graphql.GetBatchParentGroup(ctx, \"User\")\n\tif group != nil {\n\t\tparents, ok := group.Parents.([]*User)\n\t\tif ok {\n\t\t\tidx, ok := graphql.BatchParentIndex(ctx)\n\t\t\tif ok {\n\t\t\t\tkey := field.Alias\n\t\t\t\tif key == \"\" {\n\t\t\t\t\tkey = field.Name\n\t\t\t\t}\n\t\t\t\tresult := group.GetFieldResult(key, func() (any, error) {\n\t\t\t\t\treturn resolver.DirectiveNullableBatch(ctx, parents)\n\t\t\t\t})\n\t\t\t\treturn graphql.ResolveBatchGroupResult[*Profile](\n\t\t\t\t\tctx,\n\t\t\t\t\tidx,\n\t\t\t\t\tlen(parents),\n\t\t\t\t\tresult,\n\t\t\t\t\t\"User.directiveNullableBatch\",\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n\n\tresults, err := resolver.DirectiveNullableBatch(ctx, []*User{obj})\n\treturn graphql.ResolveBatchSingleResult[*Profile](\n\t\tctx,\n\t\tresults,\n\t\terr,\n\t\t\"User.directiveNullableBatch\",\n\t)\n}\n\nfunc (ec *executionContext) _User_directiveNullableNonBatch(ctx context.Context, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_directiveNullableNonBatch,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.User().DirectiveNullableNonBatch(ctx, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalOProfile2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋbatchresolverᚐProfile,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_directiveNullableNonBatch(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Profile_id(ctx, field)\n\t\t\tcase \"coverBatch\":\n\t\t\t\treturn ec.fieldContext_Profile_coverBatch(ctx, field)\n\t\t\tcase \"coverNonBatch\":\n\t\t\t\treturn ec.fieldContext_Profile_coverNonBatch(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Profile\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_directiveNullableBatchWithArg(ctx context.Context, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_directiveNullableBatchWithArg,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.resolveBatch_User_directiveNullableBatchWithArg(ctx, field, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalOProfile2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋbatchresolverᚐProfile,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_directiveNullableBatchWithArg(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Profile_id(ctx, field)\n\t\t\tcase \"coverBatch\":\n\t\t\t\treturn ec.fieldContext_Profile_coverBatch(ctx, field)\n\t\t\tcase \"coverNonBatch\":\n\t\t\t\treturn ec.fieldContext_Profile_coverNonBatch(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Profile\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_User_directiveNullableBatchWithArg_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\nfunc (ec *executionContext) resolveBatch_User_directiveNullableBatchWithArg(ctx context.Context, field graphql.CollectedField, obj *User) (any, error) {\n\tresolver := ec.Resolvers.User()\n\tfc := graphql.GetFieldContext(ctx)\n\tgroup := graphql.GetBatchParentGroup(ctx, \"User\")\n\tif group != nil {\n\t\tparents, ok := group.Parents.([]*User)\n\t\tif ok {\n\t\t\tidx, ok := graphql.BatchParentIndex(ctx)\n\t\t\tif ok {\n\t\t\t\tkey := field.Alias\n\t\t\t\tif key == \"\" {\n\t\t\t\t\tkey = field.Name\n\t\t\t\t}\n\t\t\t\tresult := group.GetFieldResult(key, func() (any, error) {\n\t\t\t\t\treturn resolver.DirectiveNullableBatchWithArg(ctx, parents, fc.Args[\"offset\"].(int))\n\t\t\t\t})\n\t\t\t\treturn graphql.ResolveBatchGroupResult[*Profile](\n\t\t\t\t\tctx,\n\t\t\t\t\tidx,\n\t\t\t\t\tlen(parents),\n\t\t\t\t\tresult,\n\t\t\t\t\t\"User.directiveNullableBatchWithArg\",\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n\n\tresults, err := resolver.DirectiveNullableBatchWithArg(ctx, []*User{obj}, fc.Args[\"offset\"].(int))\n\treturn graphql.ResolveBatchSingleResult[*Profile](\n\t\tctx,\n\t\tresults,\n\t\terr,\n\t\t\"User.directiveNullableBatchWithArg\",\n\t)\n}\n\nfunc (ec *executionContext) _User_directiveNullableNonBatchWithArg(ctx context.Context, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_directiveNullableNonBatchWithArg,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.User().DirectiveNullableNonBatchWithArg(ctx, obj, fc.Args[\"offset\"].(int))\n\t\t},\n\t\tnil,\n\t\tec.marshalOProfile2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋbatchresolverᚐProfile,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_directiveNullableNonBatchWithArg(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Profile_id(ctx, field)\n\t\t\tcase \"coverBatch\":\n\t\t\t\treturn ec.fieldContext_Profile_coverBatch(ctx, field)\n\t\t\tcase \"coverNonBatch\":\n\t\t\t\treturn ec.fieldContext_Profile_coverNonBatch(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Profile\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_User_directiveNullableNonBatchWithArg_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_directiveNonNullableBatch(ctx context.Context, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_directiveNonNullableBatch,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.resolveBatch_User_directiveNonNullableBatch(ctx, field, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalNProfile2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋbatchresolverᚐProfile,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_directiveNonNullableBatch(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Profile_id(ctx, field)\n\t\t\tcase \"coverBatch\":\n\t\t\t\treturn ec.fieldContext_Profile_coverBatch(ctx, field)\n\t\t\tcase \"coverNonBatch\":\n\t\t\t\treturn ec.fieldContext_Profile_coverNonBatch(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Profile\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\nfunc (ec *executionContext) resolveBatch_User_directiveNonNullableBatch(ctx context.Context, field graphql.CollectedField, obj *User) (any, error) {\n\tresolver := ec.Resolvers.User()\n\tgroup := graphql.GetBatchParentGroup(ctx, \"User\")\n\tif group != nil {\n\t\tparents, ok := group.Parents.([]*User)\n\t\tif ok {\n\t\t\tidx, ok := graphql.BatchParentIndex(ctx)\n\t\t\tif ok {\n\t\t\t\tkey := field.Alias\n\t\t\t\tif key == \"\" {\n\t\t\t\t\tkey = field.Name\n\t\t\t\t}\n\t\t\t\tresult := group.GetFieldResult(key, func() (any, error) {\n\t\t\t\t\treturn resolver.DirectiveNonNullableBatch(ctx, parents)\n\t\t\t\t})\n\t\t\t\treturn graphql.ResolveBatchGroupResult[*Profile](\n\t\t\t\t\tctx,\n\t\t\t\t\tidx,\n\t\t\t\t\tlen(parents),\n\t\t\t\t\tresult,\n\t\t\t\t\t\"User.directiveNonNullableBatch\",\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n\n\tresults, err := resolver.DirectiveNonNullableBatch(ctx, []*User{obj})\n\treturn graphql.ResolveBatchSingleResult[*Profile](\n\t\tctx,\n\t\tresults,\n\t\terr,\n\t\t\"User.directiveNonNullableBatch\",\n\t)\n}\n\nfunc (ec *executionContext) _User_directiveNonNullableNonBatch(ctx context.Context, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_directiveNonNullableNonBatch,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.User().DirectiveNonNullableNonBatch(ctx, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalNProfile2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋbatchresolverᚐProfile,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_directiveNonNullableNonBatch(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Profile_id(ctx, field)\n\t\t\tcase \"coverBatch\":\n\t\t\t\treturn ec.fieldContext_Profile_coverBatch(ctx, field)\n\t\t\tcase \"coverNonBatch\":\n\t\t\t\treturn ec.fieldContext_Profile_coverNonBatch(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Profile\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_profileBatch(ctx context.Context, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_profileBatch,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.resolveBatch_User_profileBatch(ctx, field, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalOProfile2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋbatchresolverᚐProfile,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_profileBatch(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Profile_id(ctx, field)\n\t\t\tcase \"coverBatch\":\n\t\t\t\treturn ec.fieldContext_Profile_coverBatch(ctx, field)\n\t\t\tcase \"coverNonBatch\":\n\t\t\t\treturn ec.fieldContext_Profile_coverNonBatch(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Profile\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\nfunc (ec *executionContext) resolveBatch_User_profileBatch(ctx context.Context, field graphql.CollectedField, obj *User) (any, error) {\n\tresolver := ec.Resolvers.User()\n\tgroup := graphql.GetBatchParentGroup(ctx, \"User\")\n\tif group != nil {\n\t\tparents, ok := group.Parents.([]*User)\n\t\tif ok {\n\t\t\tidx, ok := graphql.BatchParentIndex(ctx)\n\t\t\tif ok {\n\t\t\t\tkey := field.Alias\n\t\t\t\tif key == \"\" {\n\t\t\t\t\tkey = field.Name\n\t\t\t\t}\n\t\t\t\tresult := group.GetFieldResult(key, func() (any, error) {\n\t\t\t\t\treturn resolver.ProfileBatch(ctx, parents)\n\t\t\t\t})\n\t\t\t\treturn graphql.ResolveBatchGroupResult[*Profile](\n\t\t\t\t\tctx,\n\t\t\t\t\tidx,\n\t\t\t\t\tlen(parents),\n\t\t\t\t\tresult,\n\t\t\t\t\t\"User.profileBatch\",\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n\n\tresults, err := resolver.ProfileBatch(ctx, []*User{obj})\n\treturn graphql.ResolveBatchSingleResult[*Profile](\n\t\tctx,\n\t\tresults,\n\t\terr,\n\t\t\"User.profileBatch\",\n\t)\n}\n\nfunc (ec *executionContext) _User_profileNonBatch(ctx context.Context, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_profileNonBatch,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.User().ProfileNonBatch(ctx, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalOProfile2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋbatchresolverᚐProfile,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_profileNonBatch(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Profile_id(ctx, field)\n\t\t\tcase \"coverBatch\":\n\t\t\t\treturn ec.fieldContext_Profile_coverBatch(ctx, field)\n\t\t\tcase \"coverNonBatch\":\n\t\t\t\treturn ec.fieldContext_Profile_coverNonBatch(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Profile\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_profileConnectionBatch(ctx context.Context, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_profileConnectionBatch,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.resolveBatch_User_profileConnectionBatch(ctx, field, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalOProfilesConnection2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋbatchresolverᚐProfilesConnection,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_profileConnectionBatch(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"edges\":\n\t\t\t\treturn ec.fieldContext_ProfilesConnection_edges(ctx, field)\n\t\t\tcase \"totalCount\":\n\t\t\t\treturn ec.fieldContext_ProfilesConnection_totalCount(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type ProfilesConnection\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\nfunc (ec *executionContext) resolveBatch_User_profileConnectionBatch(ctx context.Context, field graphql.CollectedField, obj *User) (any, error) {\n\tresolver := ec.Resolvers.User()\n\tgroup := graphql.GetBatchParentGroup(ctx, \"User\")\n\tif group != nil {\n\t\tparents, ok := group.Parents.([]*User)\n\t\tif ok {\n\t\t\tidx, ok := graphql.BatchParentIndex(ctx)\n\t\t\tif ok {\n\t\t\t\tkey := field.Alias\n\t\t\t\tif key == \"\" {\n\t\t\t\t\tkey = field.Name\n\t\t\t\t}\n\t\t\t\tresult := group.GetFieldResult(key, func() (any, error) {\n\t\t\t\t\treturn resolver.ProfileConnectionBatch(ctx, parents)\n\t\t\t\t})\n\t\t\t\treturn graphql.ResolveBatchGroupResult[*ProfilesConnection](\n\t\t\t\t\tctx,\n\t\t\t\t\tidx,\n\t\t\t\t\tlen(parents),\n\t\t\t\t\tresult,\n\t\t\t\t\t\"User.profileConnectionBatch\",\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n\n\tresults, err := resolver.ProfileConnectionBatch(ctx, []*User{obj})\n\treturn graphql.ResolveBatchSingleResult[*ProfilesConnection](\n\t\tctx,\n\t\tresults,\n\t\terr,\n\t\t\"User.profileConnectionBatch\",\n\t)\n}\n\nfunc (ec *executionContext) _User_profileConnectionNonBatch(ctx context.Context, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_profileConnectionNonBatch,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.User().ProfileConnectionNonBatch(ctx, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalOProfilesConnection2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋbatchresolverᚐProfilesConnection,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_profileConnectionNonBatch(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"edges\":\n\t\t\t\treturn ec.fieldContext_ProfilesConnection_edges(ctx, field)\n\t\t\tcase \"totalCount\":\n\t\t\t\treturn ec.fieldContext_ProfilesConnection_totalCount(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type ProfilesConnection\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_isRepeatable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsRepeatable, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_locations,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Locations, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__DirectiveLocation2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_defaultValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DefaultValue, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_types,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Types(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_queryType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.QueryType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_mutationType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.MutationType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_subscriptionType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SubscriptionType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_directives,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Directives(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_kind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Kind(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__TypeKind2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_specifiedByURL,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SpecifiedByURL(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_fields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_interfaces,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Interfaces(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_possibleTypes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PossibleTypes(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_enumValues,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_inputFields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.InputFields(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_ofType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.OfType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_isOneOf,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsOneOf(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOBoolean2bool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar imageImplementors = []string{\"Image\"}\n\nfunc (ec *executionContext) _Image(ctx context.Context, sel ast.SelectionSet, obj *Image) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, imageImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Image\")\n\t\tcase \"url\":\n\t\t\tout.Values[i] = ec._Image_url(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar profileImplementors = []string{\"Profile\"}\n\nfunc (ec *executionContext) _Profile(ctx context.Context, sel ast.SelectionSet, obj *Profile) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, profileImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Profile\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._Profile_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"coverBatch\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Profile_coverBatch(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"coverNonBatch\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Profile_coverNonBatch(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar profileEdgeImplementors = []string{\"ProfileEdge\"}\n\nfunc (ec *executionContext) _ProfileEdge(ctx context.Context, sel ast.SelectionSet, obj *ProfileEdge) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, profileEdgeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"ProfileEdge\")\n\t\tcase \"node\":\n\t\t\tout.Values[i] = ec._ProfileEdge_node(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"cursor\":\n\t\t\tout.Values[i] = ec._ProfileEdge_cursor(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar profilesConnectionImplementors = []string{\"ProfilesConnection\"}\n\nfunc (ec *executionContext) _ProfilesConnection(ctx context.Context, sel ast.SelectionSet, obj *ProfilesConnection) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, profilesConnectionImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"ProfilesConnection\")\n\t\tcase \"edges\":\n\t\t\tout.Values[i] = ec._ProfilesConnection_edges(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"totalCount\":\n\t\t\tout.Values[i] = ec._ProfilesConnection_totalCount(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"users\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_users(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar userImplementors = []string{\"User\"}\n\nfunc (ec *executionContext) _User(ctx context.Context, sel ast.SelectionSet, obj *User) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, userImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"User\")\n\t\tcase \"nullableBatch\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._User_nullableBatch(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"nullableNonBatch\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._User_nullableNonBatch(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"nullableBatchWithArg\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._User_nullableBatchWithArg(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"nullableNonBatchWithArg\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._User_nullableNonBatchWithArg(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"nonNullableBatch\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._User_nonNullableBatch(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"nonNullableNonBatch\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._User_nonNullableNonBatch(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"directiveNullableBatch\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._User_directiveNullableBatch(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"directiveNullableNonBatch\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._User_directiveNullableNonBatch(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"directiveNullableBatchWithArg\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._User_directiveNullableBatchWithArg(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"directiveNullableNonBatchWithArg\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._User_directiveNullableNonBatchWithArg(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"directiveNonNullableBatch\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._User_directiveNonNullableBatch(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"directiveNonNullableNonBatch\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._User_directiveNonNullableNonBatch(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"profileBatch\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._User_profileBatch(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"profileNonBatch\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._User_profileNonBatch(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"profileConnectionBatch\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._User_profileConnectionBatch(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"profileConnectionNonBatch\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._User_profileConnectionNonBatch(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNID2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalID(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNID2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalID(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNInt2int(ctx context.Context, v any) (int, error) {\n\tres, err := graphql.UnmarshalInt(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNInt2int(ctx context.Context, sel ast.SelectionSet, v int) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalInt(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNProfile2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋbatchresolverᚐProfile(ctx context.Context, sel ast.SelectionSet, v Profile) graphql.Marshaler {\n\treturn ec._Profile(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNProfile2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋbatchresolverᚐProfile(ctx context.Context, sel ast.SelectionSet, v *Profile) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Profile(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNProfileEdge2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋbatchresolverᚐProfileEdgeᚄ(ctx context.Context, sel ast.SelectionSet, v []*ProfileEdge) graphql.Marshaler {\n\tctx = graphql.WithBatchParents(ctx, \"ProfileEdge\", v)\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNProfileEdge2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋbatchresolverᚐProfileEdge(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalNProfileEdge2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋbatchresolverᚐProfileEdge(ctx context.Context, sel ast.SelectionSet, v *ProfileEdge) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._ProfileEdge(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNUser2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋbatchresolverᚐUserᚄ(ctx context.Context, sel ast.SelectionSet, v []*User) graphql.Marshaler {\n\tctx = graphql.WithBatchParents(ctx, \"User\", v)\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋbatchresolverᚐUser(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalNUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋbatchresolverᚐUser(ctx context.Context, sel ast.SelectionSet, v *User) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._User(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tctx = graphql.WithBatchParents(ctx, \"__Directive\", v)\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tctx = graphql.WithBatchParents(ctx, \"__InputValue\", v)\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tctx = graphql.WithBatchParents(ctx, \"__Type\", v)\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalOImage2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋbatchresolverᚐImage(ctx context.Context, sel ast.SelectionSet, v *Image) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Image(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOProfile2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋbatchresolverᚐProfile(ctx context.Context, sel ast.SelectionSet, v *Profile) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Profile(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOProfilesConnection2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋbatchresolverᚐProfilesConnection(ctx context.Context, sel ast.SelectionSet, v *ProfilesConnection) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._ProfilesConnection(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithBatchParents(ctx, \"__EnumValue\", v)\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithBatchParents(ctx, \"__Field\", v)\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithBatchParents(ctx, \"__InputValue\", v)\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithBatchParents(ctx, \"__Type\", v)\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "_examples/batchresolver/gqlgen.yml",
    "content": "schema:\n  - schema.graphql\n\nexec:\n  filename: generated.go\n  package: batchresolver\n\nmodel:\n  filename: models_gen.go\n  package: batchresolver\n\nresolver:\n  dir: .\n  type: Resolver\n  layout: follow-schema\n\nmodels:\n  User:\n    fields:\n      nullableBatch:\n        resolver: true\n        batch: true\n      nullableNonBatch:\n        resolver: true\n      nullableBatchWithArg:\n        resolver: true\n        batch: true\n      nullableNonBatchWithArg:\n        resolver: true\n      nonNullableBatch:\n        resolver: true\n        batch: true\n      nonNullableNonBatch:\n        resolver: true\n      profileBatch:\n          resolver: true\n          batch: true\n      profileNonBatch:\n          resolver: true\n      profileConnectionBatch:\n          resolver: true\n          batch: true\n      profileConnectionNonBatch:\n          resolver: true\n  Profile:\n    fields:\n      coverBatch:\n          resolver: true\n          batch: true\n      coverNonBatch:\n          resolver: true\n"
  },
  {
    "path": "_examples/batchresolver/models_gen.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage batchresolver\n\ntype Image struct {\n\tURL string `json:\"url\"`\n}\n\ntype Profile struct {\n\tID            string `json:\"id\"`\n\tCoverBatch    *Image `json:\"coverBatch,omitempty\"`\n\tCoverNonBatch *Image `json:\"coverNonBatch,omitempty\"`\n}\n\ntype ProfileEdge struct {\n\tNode   *Profile `json:\"node\"`\n\tCursor string   `json:\"cursor\"`\n}\n\ntype ProfilesConnection struct {\n\tEdges      []*ProfileEdge `json:\"edges\"`\n\tTotalCount int            `json:\"totalCount\"`\n}\n\ntype Query struct {\n}\n\ntype User struct {\n\tNullableBatch                    *Profile            `json:\"nullableBatch,omitempty\"`\n\tNullableNonBatch                 *Profile            `json:\"nullableNonBatch,omitempty\"`\n\tNullableBatchWithArg             *Profile            `json:\"nullableBatchWithArg,omitempty\"`\n\tNullableNonBatchWithArg          *Profile            `json:\"nullableNonBatchWithArg,omitempty\"`\n\tNonNullableBatch                 *Profile            `json:\"nonNullableBatch\"`\n\tNonNullableNonBatch              *Profile            `json:\"nonNullableNonBatch\"`\n\tDirectiveNullableBatch           *Profile            `json:\"directiveNullableBatch,omitempty\"`\n\tDirectiveNullableNonBatch        *Profile            `json:\"directiveNullableNonBatch,omitempty\"`\n\tDirectiveNullableBatchWithArg    *Profile            `json:\"directiveNullableBatchWithArg,omitempty\"`\n\tDirectiveNullableNonBatchWithArg *Profile            `json:\"directiveNullableNonBatchWithArg,omitempty\"`\n\tDirectiveNonNullableBatch        *Profile            `json:\"directiveNonNullableBatch\"`\n\tDirectiveNonNullableNonBatch     *Profile            `json:\"directiveNonNullableNonBatch\"`\n\tProfileBatch                     *Profile            `json:\"profileBatch,omitempty\"`\n\tProfileNonBatch                  *Profile            `json:\"profileNonBatch,omitempty\"`\n\tProfileConnectionBatch           *ProfilesConnection `json:\"profileConnectionBatch,omitempty\"`\n\tProfileConnectionNonBatch        *ProfilesConnection `json:\"profileConnectionNonBatch,omitempty\"`\n}\n"
  },
  {
    "path": "_examples/batchresolver/readme.md",
    "content": "# Batch Resolver Example\n\nThis example demonstrates **batch field resolvers** in gqlgen — resolvers that receive a slice of parent objects and return results for all of them in a single call, instead of being invoked once per parent.\n\n## Schema\n\nA `User` type has six `Profile` fields covering the key variations:\n\n| Field                      | Nullable | Batch | Has Args |\n|----------------------------|----------|-------|----------|\n| `nullableBatch`            | yes      | yes   | no       |\n| `nullableNonBatch`         | yes      | no    | no       |\n| `nullableBatchWithArg`     | yes      | yes   | yes      |\n| `nullableNonBatchWithArg`  | yes      | no    | yes      |\n| `nonNullableBatch`         | no       | yes   | no       |\n| `nonNullableNonBatch`      | no       | no    | no       |\n\n## Configuration\n\nIn `gqlgen.yml`, batch resolvers are enabled per-field:\n\n```yaml\nmodels:\n  User:\n    fields:\n      nullableBatch:\n        resolver: true\n        batch: true\n```\n\nThis changes the generated resolver signature from the standard single-object form:\n\n```go\nNullableNonBatch(ctx context.Context, obj *User) (*Profile, error)\n```\n\nto a batch form that receives all parents at once:\n\n```go\nNullableBatch(ctx context.Context, objs []*User) ([]*Profile, error)\n```\n\n## Per-Item Errors\n\nBatch resolvers can return per-item errors using `graphql.BatchErrorList`:\n\n```go\nresults := make([]*Profile, len(objs))\nerrs := make([]error, len(objs))\nfor i, obj := range objs {\n    results[i], errs[i] = resolve(obj)\n}\nreturn results, graphql.BatchErrorList(errs)\n```\n\nEach entry in the error slice corresponds to the parent at the same index. Individual errors can also be `gqlerror.List` to report multiple errors for a single item.\n\n## Nested Batching\n\nThe schema also demonstrates **nested batch resolvers** through the path `User → Profile → Image`:\n\n| Parent    | Field             | Batch | Target  |\n|-----------|-------------------|-------|---------|\n| `User`    | `profileBatch`    | yes   | Profile |\n| `User`    | `profileNonBatch` | no    | Profile |\n| `Profile` | `coverBatch`      | yes   | Image   |\n| `Profile` | `coverNonBatch`   | no    | Image   |\n\nWith 10 users, the batch path resolves all profiles in **1 call** (vs 10 for non-batch). However, `coverBatch` is still called **once per profile** (10 calls) rather than once for all profiles. This happens because profiles returned by a batch resolver are marshalled as individual values, not as a list — the batch parent context for `Profile` is only set when marshalling a `[Profile]` list field. Ideally, nested batching should propagate the batch parent context from batch resolver results so that `coverBatch` is called only once for all 10 profiles. The `TestBatchResolver_Nested_CallCount` test documents these current call counts and confirms both paths return identical data.\n\n## Tests\n\nThe tests verify **parity** between batch and non-batch resolvers — both must produce identical data and errors for the same inputs. Covered scenarios include:\n\n- Successful resolution\n- Arguments passed through correctly\n- Errors at specific indices\n- `gqlerror.List` expansion\n- `gqlerror.Error` with and without a custom path\n- Non-null field error propagation (parent nulled out)\n- Wrong result/error slice lengths (produces per-parent error messages)\n- Nested batch call count verification (`User → Profile → Image`)\n\n## Benchmarks\n\n`BenchmarkBatchResolver_SingleLevel` and `BenchmarkBatchResolver_Nested` compare batch vs non-batch execution time. Note that these benchmarks use in-memory resolvers with no I/O, so they only measure the framework overhead of batching. In a real-world scenario the main benefit of batching is reducing the number of round-trips to external services (databases, APIs, etc.), which these benchmarks do not capture.\n"
  },
  {
    "path": "_examples/batchresolver/resolver.go",
    "content": "package batchresolver\n\n// This file will not be regenerated automatically.\n//\n// It serves as dependency injection for your app, add any dependencies you require\n// here.\n\nimport \"sync/atomic\"\n\ntype Resolver struct {\n\tusers                   []*User\n\tprofiles                []*Profile\n\timages                  []*Image\n\tprofileErrIdx           int\n\tprofileErrWithValueIdxs map[int]struct{}\n\tprofileErrListIdxs      map[int]struct{}\n\tprofileGqlErrNoPathIdxs map[int]struct{}\n\tprofileGqlErrPathIdxs   map[int]struct{}\n\tprofileWrongLen         bool\n\tbatchErrsWrongLen       bool\n\tbatchErrsLen            int\n\tbatchResultsWrongLen    bool\n\tbatchResultsLen         int\n\tbatchErrListIdxs        map[int]struct{}\n\n\t// Call counters for the nested batch performance test (atomic for -race safety)\n\tprofileBatchCalls              atomic.Int32\n\tprofileNonBatchCalls           atomic.Int32\n\tcoverBatchCalls                atomic.Int32\n\tcoverNonBatchCalls             atomic.Int32\n\tprofileConnectionBatchCalls    atomic.Int32\n\tprofileConnectionNonBatchCalls atomic.Int32\n}\n\nfunc (r *Resolver) userIndex(obj *User) int {\n\tif obj == nil {\n\t\treturn -1\n\t}\n\tfor i := range r.users {\n\t\tif r.users[i] == obj {\n\t\t\treturn i\n\t\t}\n\t}\n\treturn -1\n}\n\nfunc (r *Resolver) profileIndex(obj *Profile) int {\n\tif obj == nil {\n\t\treturn -1\n\t}\n\tfor i := range r.profiles {\n\t\tif r.profiles[i] == obj {\n\t\t\treturn i\n\t\t}\n\t}\n\treturn -1\n}\n"
  },
  {
    "path": "_examples/batchresolver/resolver_helpers.go",
    "content": "package batchresolver\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n)\n\nfunc resolveProfile(r *Resolver, idx int) (*Profile, error) {\n\tif r.profileGqlErrPathIdxs != nil {\n\t\tif _, ok := r.profileGqlErrPathIdxs[idx]; ok {\n\t\t\treturn nil, &gqlerror.Error{\n\t\t\t\tMessage: fmt.Sprintf(\"profile gqlerror path set at index %d\", idx),\n\t\t\t\tPath:    ast.Path{ast.PathName(\"custom\"), ast.PathIndex(idx)},\n\t\t\t}\n\t\t}\n\t}\n\tif r.profileGqlErrNoPathIdxs != nil {\n\t\tif _, ok := r.profileGqlErrNoPathIdxs[idx]; ok {\n\t\t\treturn nil, gqlerror.Errorf(\"profile gqlerror path nil at index %d\", idx)\n\t\t}\n\t}\n\tif r.profileErrListIdxs != nil {\n\t\tif _, ok := r.profileErrListIdxs[idx]; ok {\n\t\t\treturn nil, gqlerror.List{\n\t\t\t\tgqlerror.Errorf(\"profile list error 1 at index %d\", idx),\n\t\t\t\tgqlerror.Errorf(\"profile list error 2 at index %d\", idx),\n\t\t\t}\n\t\t}\n\t}\n\tif r.profileErrWithValueIdxs != nil {\n\t\tif _, ok := r.profileErrWithValueIdxs[idx]; ok {\n\t\t\tvar value *Profile\n\t\t\tif idx >= 0 && idx < len(r.profiles) {\n\t\t\t\tvalue = r.profiles[idx]\n\t\t\t}\n\t\t\treturn value, fmt.Errorf(\"profile error with value at index %d\", idx)\n\t\t}\n\t}\n\tif idx == r.profileErrIdx {\n\t\treturn nil, fmt.Errorf(\"profile error at index %d\", idx)\n\t}\n\tif idx < 0 || idx >= len(r.profiles) {\n\t\treturn nil, fmt.Errorf(\"profile not set at index %d\", idx)\n\t}\n\treturn r.profiles[idx], nil\n}\n\nfunc resolveImage(r *Resolver, idx int) (*Image, error) {\n\tif idx < 0 || idx >= len(r.images) {\n\t\treturn nil, fmt.Errorf(\"image not set at index %d\", idx)\n\t}\n\treturn r.images[idx], nil\n}\n"
  },
  {
    "path": "_examples/batchresolver/schema.graphql",
    "content": "directive @goField(\n\tforceResolver: Boolean\n\tname: String\n\tomittable: Boolean\n\tbatch: Boolean\n) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION\n\ntype Query {\n    users: [User!]!\n}\n\ntype User {\n    nullableBatch: Profile\n    nullableNonBatch: Profile\n    nullableBatchWithArg(offset: Int!): Profile\n    nullableNonBatchWithArg(offset: Int!): Profile\n    nonNullableBatch: Profile!\n    nonNullableNonBatch: Profile!\n\n    directiveNullableBatch: Profile @goField(batch: true)\n    directiveNullableNonBatch: Profile @goField(forceResolver: true)\n    directiveNullableBatchWithArg(offset: Int!): Profile @goField(batch: true)\n    directiveNullableNonBatchWithArg(offset: Int!): Profile @goField(forceResolver: true)\n    directiveNonNullableBatch: Profile! @goField(batch: true)\n    directiveNonNullableNonBatch: Profile! @goField(forceResolver: true)\n\n    profileBatch: Profile\n    profileNonBatch: Profile\n    profileConnectionBatch: ProfilesConnection\n    profileConnectionNonBatch: ProfilesConnection\n}\n\ntype Profile {\n    id: ID!\n    coverBatch: Image\n    coverNonBatch: Image\n}\n\n\ntype Image {\n    url: String!\n}\n\ntype ProfilesConnection {\n    edges: [ProfileEdge!]!\n    totalCount: Int!\n}\n\ntype ProfileEdge {\n    node: Profile!\n    cursor: ID!\n}\n"
  },
  {
    "path": "_examples/batchresolver/schema.resolvers.go",
    "content": "package batchresolver\n\n// This file will be automatically regenerated based on the schema, any resolver\n// implementations\n// will be copied through when generating and any unknown code will be moved to the end.\n// Code generated by github.com/99designs/gqlgen version v0.17.88-dev\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n)\n\n// CoverBatch is the batch resolver for the coverBatch field.\nfunc (r *profileResolver) CoverBatch(ctx context.Context, objs []*Profile) ([]*Image, error) {\n\tr.coverBatchCalls.Add(1)\n\tresults := make([]*Image, len(objs))\n\tfor i, obj := range objs {\n\t\tidx := r.profileIndex(obj)\n\t\tresults[i], _ = resolveImage(r.Resolver, idx)\n\t}\n\treturn results, nil\n}\n\n// CoverNonBatch is the resolver for the coverNonBatch field.\nfunc (r *profileResolver) CoverNonBatch(ctx context.Context, obj *Profile) (*Image, error) {\n\tr.coverNonBatchCalls.Add(1)\n\tidx := r.profileIndex(obj)\n\treturn resolveImage(r.Resolver, idx)\n}\n\n// Users is the resolver for the users field.\nfunc (r *queryResolver) Users(ctx context.Context) ([]*User, error) {\n\tif r.users == nil {\n\t\treturn nil, errors.New(\"users not set\")\n\t}\n\treturn r.users, nil\n}\n\n// NullableBatch is the batch resolver for the nullableBatch field.\nfunc (r *userResolver) NullableBatch(ctx context.Context, objs []*User) ([]*Profile, error) {\n\tif r.batchResultsWrongLen {\n\t\tresults := make([]*Profile, r.batchResultsLen)\n\t\terrs := make([]error, len(objs))\n\t\treturn results, graphql.BatchErrorList(errs)\n\t}\n\tif r.batchErrsWrongLen {\n\t\tresults := make([]*Profile, len(objs))\n\t\terrs := make([]error, r.batchErrsLen)\n\t\treturn results, graphql.BatchErrorList(errs)\n\t}\n\tif r.batchErrListIdxs != nil {\n\t\tresults := make([]*Profile, len(objs))\n\t\terrs := make([]error, len(objs))\n\t\tfor i, obj := range objs {\n\t\t\tidx := r.userIndex(obj)\n\t\t\tif idx >= 0 && idx < len(r.profiles) {\n\t\t\t\tresults[i] = r.profiles[idx]\n\t\t\t}\n\t\t\tif _, ok := r.batchErrListIdxs[idx]; ok {\n\t\t\t\terrs[i] = gqlerror.List{\n\t\t\t\t\tgqlerror.Errorf(\"batch list error 1 at index %d\", idx),\n\t\t\t\t\tgqlerror.Errorf(\"batch list error 2 at index %d\", idx),\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn results, graphql.BatchErrorList(errs)\n\t}\n\tif r.profileWrongLen {\n\t\tif len(objs) == 0 {\n\t\t\treturn nil, nil\n\t\t}\n\t\tidx := r.userIndex(objs[0])\n\t\tvalue, _ := resolveProfile(r.Resolver, idx)\n\t\treturn []*Profile{value}, nil\n\t}\n\n\tresults := make([]*Profile, len(objs))\n\terrs := make([]error, len(objs))\n\thasErr := false\n\tfor i, obj := range objs {\n\t\tidx := r.userIndex(obj)\n\t\tvalue, err := resolveProfile(r.Resolver, idx)\n\t\tresults[i] = value\n\t\terrs[i] = err\n\t\tif err != nil {\n\t\t\thasErr = true\n\t\t}\n\t}\n\tif hasErr {\n\t\treturn results, graphql.BatchErrorList(errs)\n\t}\n\treturn results, nil\n}\n\n// NullableNonBatch is the resolver for the nullableNonBatch field.\nfunc (r *userResolver) NullableNonBatch(ctx context.Context, obj *User) (*Profile, error) {\n\tidx := r.userIndex(obj)\n\treturn resolveProfile(r.Resolver, idx)\n}\n\n// NullableBatchWithArg is the batch resolver for the nullableBatchWithArg field.\nfunc (r *userResolver) NullableBatchWithArg(ctx context.Context, objs []*User, offset int) ([]*Profile, error) {\n\tif r.profileWrongLen {\n\t\tif len(objs) == 0 {\n\t\t\treturn nil, nil\n\t\t}\n\t\tidx := r.userIndex(objs[0]) + offset\n\t\tvalue, _ := resolveProfile(r.Resolver, idx)\n\t\treturn []*Profile{value}, nil\n\t}\n\n\tresults := make([]*Profile, len(objs))\n\terrs := make([]error, len(objs))\n\thasErr := false\n\tfor i, obj := range objs {\n\t\tidx := r.userIndex(obj) + offset\n\t\tvalue, err := resolveProfile(r.Resolver, idx)\n\t\tresults[i] = value\n\t\terrs[i] = err\n\t\tif err != nil {\n\t\t\thasErr = true\n\t\t}\n\t}\n\tif hasErr {\n\t\treturn results, graphql.BatchErrorList(errs)\n\t}\n\treturn results, nil\n}\n\n// NullableNonBatchWithArg is the resolver for the nullableNonBatchWithArg field.\nfunc (r *userResolver) NullableNonBatchWithArg(ctx context.Context, obj *User, offset int) (*Profile, error) {\n\tidx := r.userIndex(obj) + offset\n\treturn resolveProfile(r.Resolver, idx)\n}\n\n// NonNullableBatch is the batch resolver for the nonNullableBatch field.\nfunc (r *userResolver) NonNullableBatch(ctx context.Context, objs []*User) ([]*Profile, error) {\n\tif r.profileWrongLen {\n\t\tif len(objs) == 0 {\n\t\t\treturn nil, nil\n\t\t}\n\t\tidx := r.userIndex(objs[0])\n\t\tvalue, _ := resolveProfile(r.Resolver, idx)\n\t\treturn []*Profile{value}, nil\n\t}\n\n\tresults := make([]*Profile, len(objs))\n\terrs := make([]error, len(objs))\n\thasErr := false\n\tfor i, obj := range objs {\n\t\tidx := r.userIndex(obj)\n\t\tvalue, err := resolveProfile(r.Resolver, idx)\n\t\tresults[i] = value\n\t\terrs[i] = err\n\t\tif err != nil {\n\t\t\thasErr = true\n\t\t}\n\t}\n\tif hasErr {\n\t\treturn results, graphql.BatchErrorList(errs)\n\t}\n\treturn results, nil\n}\n\n// NonNullableNonBatch is the resolver for the nonNullableNonBatch field.\nfunc (r *userResolver) NonNullableNonBatch(ctx context.Context, obj *User) (*Profile, error) {\n\tidx := r.userIndex(obj)\n\treturn resolveProfile(r.Resolver, idx)\n}\n\n// DirectiveNullableBatch is the batch resolver for the directiveNullableBatch field.\nfunc (r *userResolver) DirectiveNullableBatch(ctx context.Context, objs []*User) ([]*Profile, error) {\n\treturn r.NullableBatch(ctx, objs)\n}\n\n// DirectiveNullableNonBatch is the resolver for the directiveNullableNonBatch field.\nfunc (r *userResolver) DirectiveNullableNonBatch(ctx context.Context, obj *User) (*Profile, error) {\n\treturn r.NullableNonBatch(ctx, obj)\n}\n\n// DirectiveNullableBatchWithArg is the batch resolver for the directiveNullableBatchWithArg field.\nfunc (r *userResolver) DirectiveNullableBatchWithArg(ctx context.Context, objs []*User, offset int) ([]*Profile, error) {\n\treturn r.NullableBatchWithArg(ctx, objs, offset)\n}\n\n// DirectiveNullableNonBatchWithArg is the resolver for the directiveNullableNonBatchWithArg field.\nfunc (r *userResolver) DirectiveNullableNonBatchWithArg(ctx context.Context, obj *User, offset int) (*Profile, error) {\n\treturn r.NullableNonBatchWithArg(ctx, obj, offset)\n}\n\n// DirectiveNonNullableBatch is the batch resolver for the directiveNonNullableBatch field.\nfunc (r *userResolver) DirectiveNonNullableBatch(ctx context.Context, objs []*User) ([]*Profile, error) {\n\treturn r.NonNullableBatch(ctx, objs)\n}\n\n// DirectiveNonNullableNonBatch is the resolver for the directiveNonNullableNonBatch field.\nfunc (r *userResolver) DirectiveNonNullableNonBatch(ctx context.Context, obj *User) (*Profile, error) {\n\treturn r.NonNullableNonBatch(ctx, obj)\n}\n\n// ProfileBatch is the batch resolver for the profileBatch field.\nfunc (r *userResolver) ProfileBatch(ctx context.Context, objs []*User) ([]*Profile, error) {\n\tr.profileBatchCalls.Add(1)\n\tresults := make([]*Profile, len(objs))\n\tfor i, obj := range objs {\n\t\tidx := r.userIndex(obj)\n\t\tif idx >= 0 && idx < len(r.profiles) {\n\t\t\tresults[i] = r.profiles[idx]\n\t\t}\n\t}\n\treturn results, nil\n}\n\n// ProfileNonBatch is the resolver for the profileNonBatch field.\nfunc (r *userResolver) ProfileNonBatch(ctx context.Context, obj *User) (*Profile, error) {\n\tr.profileNonBatchCalls.Add(1)\n\tidx := r.userIndex(obj)\n\tif idx < 0 || idx >= len(r.profiles) {\n\t\treturn nil, fmt.Errorf(\"profile not set at index %d\", idx)\n\t}\n\treturn r.profiles[idx], nil\n}\n\n// ProfileConnectionBatch is the batch resolver for the profileConnectionBatch field.\nfunc (r *userResolver) ProfileConnectionBatch(ctx context.Context, objs []*User) ([]*ProfilesConnection, error) {\n\tr.profileConnectionBatchCalls.Add(1)\n\tresults := make([]*ProfilesConnection, len(objs))\n\tfor i, obj := range objs {\n\t\tidx := r.userIndex(obj)\n\t\tvar profile *Profile\n\t\tif idx >= 0 && idx < len(r.profiles) {\n\t\t\tprofile = r.profiles[idx]\n\t\t}\n\t\tresults[i] = &ProfilesConnection{\n\t\t\tEdges:      []*ProfileEdge{{Node: profile, Cursor: fmt.Sprintf(\"cursor-%d\", idx)}},\n\t\t\tTotalCount: 1,\n\t\t}\n\t}\n\treturn results, nil\n}\n\n// ProfileConnectionNonBatch is the resolver for the profileConnectionNonBatch field.\nfunc (r *userResolver) ProfileConnectionNonBatch(ctx context.Context, obj *User) (*ProfilesConnection, error) {\n\tr.profileConnectionNonBatchCalls.Add(1)\n\tidx := r.userIndex(obj)\n\tvar profile *Profile\n\tif idx >= 0 && idx < len(r.profiles) {\n\t\tprofile = r.profiles[idx]\n\t}\n\treturn &ProfilesConnection{\n\t\tEdges:      []*ProfileEdge{{Node: profile, Cursor: fmt.Sprintf(\"cursor-%d\", idx)}},\n\t\tTotalCount: 1,\n\t}, nil\n}\n\n// Profile returns ProfileResolver implementation.\nfunc (r *Resolver) Profile() ProfileResolver { return &profileResolver{r} }\n\n// Query returns QueryResolver implementation.\nfunc (r *Resolver) Query() QueryResolver { return &queryResolver{r} }\n\n// User returns UserResolver implementation.\nfunc (r *Resolver) User() UserResolver { return &userResolver{r} }\n\ntype profileResolver struct{ *Resolver }\ntype queryResolver struct{ *Resolver }\ntype userResolver struct{ *Resolver }\n"
  },
  {
    "path": "_examples/chat/.gitignore",
    "content": "# See https://help.github.com/ignore-files/ for more about ignoring files.\n\n# dependencies\n/node_modules\n\n# testing\n/coverage\n/corpus\n\n# production\n/build\n\n# misc\n.DS_Store\n.env.local\n.env.development.local\n.env.test.local\n.env.production.local\n\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\n"
  },
  {
    "path": "_examples/chat/.gqlgen.yml",
    "content": "models:\n  Chatroom:\n    model: github.com/99designs/gqlgen/_examples/chat.Chatroom\n"
  },
  {
    "path": "_examples/chat/chat_test.go",
    "content": "package chat\n\nimport (\n\t\"fmt\"\n\t\"runtime\"\n\t\"sync\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestChatSubscriptions(t *testing.T) {\n\tsrv := handler.New(NewExecutableSchema(New()))\n\tsrv.AddTransport(transport.Websocket{\n\t\tKeepAlivePingInterval: time.Second,\n\t})\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tconst batchSize = 128\n\tvar wg sync.WaitGroup\n\tfor i := 0; i < batchSize*8; i++ {\n\t\twg.Add(1)\n\t\tgo func(i int) {\n\t\t\tdefer wg.Done()\n\t\t\tsub := c.Websocket(fmt.Sprintf(\n\t\t\t\t`subscription @user(username:\"vektah\") { messageAdded(roomName:\"#gophers%d\") { text createdBy } }`,\n\t\t\t\ti,\n\t\t\t))\n\t\t\tdefer sub.Close()\n\n\t\t\tvar msg struct {\n\t\t\t\tresp struct {\n\t\t\t\t\tMessageAdded struct {\n\t\t\t\t\t\tText      string\n\t\t\t\t\t\tCreatedBy string\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\terr error\n\t\t\t}\n\n\t\t\tmsg.err = sub.Next(&msg.resp)\n\t\t\tif !assert.NoError(t, msg.err, \"sub.Next\") {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tassert.Equal(t, \"You've joined the room\", msg.resp.MessageAdded.Text)\n\t\t\tassert.Equal(t, \"system\", msg.resp.MessageAdded.CreatedBy)\n\n\t\t\tgo func() {\n\t\t\t\tvar resp any\n\t\t\t\terr := c.Post(fmt.Sprintf(`mutation {\n\t\t\t\t\ta:post(text:\"Hello!\", roomName:\"#gophers%d\", username:\"vektah\") { id }\n\t\t\t\t\tb:post(text:\"Hello Vektah!\", roomName:\"#gophers%d\", username:\"andrey\") { id }\n\t\t\t\t\tc:post(text:\"Whats up?\", roomName:\"#gophers%d\", username:\"vektah\") { id }\n\t\t\t\t}`, i, i, i), &resp)\n\t\t\t\tassert.NoError(t, err)\n\t\t\t}()\n\n\t\t\tmsg.err = sub.Next(&msg.resp)\n\t\t\tif !assert.NoError(t, msg.err, \"sub.Next\") {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tassert.Equal(t, \"Hello!\", msg.resp.MessageAdded.Text)\n\t\t\tassert.Equal(t, \"vektah\", msg.resp.MessageAdded.CreatedBy)\n\n\t\t\tmsg.err = sub.Next(&msg.resp)\n\t\t\tif !assert.NoError(t, msg.err, \"sub.Next\") {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tassert.Equal(t, \"Whats up?\", msg.resp.MessageAdded.Text)\n\t\t\tassert.Equal(t, \"vektah\", msg.resp.MessageAdded.CreatedBy)\n\t\t}(i)\n\t\t// wait for goroutines to finish every N tests to not starve on CPU\n\t\tif (i+1)%batchSize == 0 {\n\t\t\twg.Wait()\n\t\t}\n\t}\n\twg.Wait()\n\n\t// 1 for the main thread, 1 for the testing package and remainder is reserved for the HTTP\n\t// server threads\n\t// TODO: use something like runtime.Stack to filter out HTTP server threads,\n\t// TODO: which is required for proper concurrency and leaks testing\n\trequire.Less(t, runtime.NumGoroutine(), 1+1+batchSize*2, \"goroutine leak\")\n}\n"
  },
  {
    "path": "_examples/chat/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage chat\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"embed\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n}\n\ntype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\ntype ResolverRoot interface {\n\tMutation() MutationResolver\n\tQuery() QueryResolver\n\tSubscription() SubscriptionResolver\n}\n\ntype DirectiveRoot struct {\n\tUser func(ctx context.Context, obj any, next graphql.Resolver, username string) (res any, err error)\n}\n\ntype ComplexityRoot struct {\n\tChatroom struct {\n\t\tMessages     func(childComplexity int) int\n\t\tName         func(childComplexity int) int\n\t\tSubscription func(childComplexity int) int\n\t}\n\n\tMessage struct {\n\t\tCreatedAt    func(childComplexity int) int\n\t\tCreatedBy    func(childComplexity int) int\n\t\tID           func(childComplexity int) int\n\t\tSubscription func(childComplexity int) int\n\t\tText         func(childComplexity int) int\n\t}\n\n\tMutation struct {\n\t\tPost func(childComplexity int, text string, username string, roomName string) int\n\t}\n\n\tQuery struct {\n\t\tRoom func(childComplexity int, name string) int\n\t}\n\n\tSubscription struct {\n\t\tMessageAdded func(childComplexity int, roomName string) int\n\t}\n}\n\ntype MutationResolver interface {\n\tPost(ctx context.Context, text string, username string, roomName string) (*Message, error)\n}\ntype QueryResolver interface {\n\tRoom(ctx context.Context, name string) (*Chatroom, error)\n}\ntype SubscriptionResolver interface {\n\tMessageAdded(ctx context.Context, roomName string) (<-chan *Message, error)\n}\n\ntype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.SchemaData != nil {\n\t\treturn e.SchemaData\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := newExecutionContext(nil, e, nil)\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"Chatroom.messages\":\n\t\tif e.ComplexityRoot.Chatroom.Messages == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Chatroom.Messages(childComplexity), true\n\tcase \"Chatroom.name\":\n\t\tif e.ComplexityRoot.Chatroom.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Chatroom.Name(childComplexity), true\n\tcase \"Chatroom.subscription\":\n\t\tif e.ComplexityRoot.Chatroom.Subscription == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Chatroom.Subscription(childComplexity), true\n\n\tcase \"Message.createdAt\":\n\t\tif e.ComplexityRoot.Message.CreatedAt == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Message.CreatedAt(childComplexity), true\n\tcase \"Message.createdBy\":\n\t\tif e.ComplexityRoot.Message.CreatedBy == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Message.CreatedBy(childComplexity), true\n\tcase \"Message.id\":\n\t\tif e.ComplexityRoot.Message.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Message.ID(childComplexity), true\n\tcase \"Message.subscription\":\n\t\tif e.ComplexityRoot.Message.Subscription == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Message.Subscription(childComplexity), true\n\tcase \"Message.text\":\n\t\tif e.ComplexityRoot.Message.Text == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Message.Text(childComplexity), true\n\n\tcase \"Mutation.post\":\n\t\tif e.ComplexityRoot.Mutation.Post == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Mutation_post_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Mutation.Post(childComplexity, args[\"text\"].(string), args[\"username\"].(string), args[\"roomName\"].(string)), true\n\n\tcase \"Query.room\":\n\t\tif e.ComplexityRoot.Query.Room == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_room_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Room(childComplexity, args[\"name\"].(string)), true\n\n\tcase \"Subscription.messageAdded\":\n\t\tif e.ComplexityRoot.Subscription.MessageAdded == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Subscription_messageAdded_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Subscription.MessageAdded(childComplexity, args[\"roomName\"].(string)), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap()\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\tcase ast.Mutation:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tif !first {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tfirst = false\n\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\tdata := ec._Mutation(ctx, opCtx.Operation.SelectionSet)\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\n\t\t\treturn &graphql.Response{\n\t\t\t\tData: buf.Bytes(),\n\t\t\t}\n\t\t}\n\tcase ast.Subscription:\n\t\tnext := ec._subscriptionMiddleware(ctx, opCtx.Operation, func(ctx context.Context) (any, error) {\n\t\t\treturn ec._Subscription(ctx, opCtx.Operation.SelectionSet), nil\n\t\t})\n\n\t\tvar buf bytes.Buffer\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tbuf.Reset()\n\t\t\tdata := next(ctx)\n\n\t\t\tif data == nil {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tdata.MarshalGQL(&buf)\n\n\t\t\treturn &graphql.Response{\n\t\t\t\tData: buf.Bytes(),\n\t\t\t}\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\n//go:embed \"schema.graphql\"\nvar sourcesFS embed.FS\n\nfunc sourceData(filename string) string {\n\tdata, err := sourcesFS.ReadFile(filename)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"codegen problem: %s not available\", filename))\n\t}\n\treturn string(data)\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"schema.graphql\", Input: sourceData(\"schema.graphql\"), BuiltIn: false},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) dir_user_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"username\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"username\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Mutation_post_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"text\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"text\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"username\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"username\"] = arg1\n\targ2, err := graphql.ProcessArgField(ctx, rawArgs, \"roomName\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"roomName\"] = arg2\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_room_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Subscription_messageAdded_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"roomName\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"roomName\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\nfunc (ec *executionContext) _subscriptionMiddleware(ctx context.Context, obj *ast.OperationDefinition, next func(ctx context.Context) (any, error)) func(ctx context.Context) graphql.Marshaler {\n\tfor _, d := range obj.Directives {\n\t\tswitch d.Name {\n\t\tcase \"user\":\n\t\t\trawArgs := d.ArgumentMap(ec.Variables)\n\t\t\targs, err := ec.dir_user_args(ctx, rawArgs)\n\t\t\tif err != nil {\n\t\t\t\tec.Error(ctx, err)\n\t\t\t\treturn func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn graphql.Null\n\t\t\t\t}\n\t\t\t}\n\t\t\tn := next\n\t\t\tnext = func(ctx context.Context) (any, error) {\n\t\t\t\tif ec.Directives.User == nil {\n\t\t\t\t\treturn nil, errors.New(\"directive user is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.User(ctx, obj, n, args[\"username\"].(string))\n\t\t\t}\n\t\t}\n\t}\n\ttmp, err := next(ctx)\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn func(ctx context.Context) graphql.Marshaler {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\tif data, ok := tmp.(func(ctx context.Context) graphql.Marshaler); ok {\n\t\treturn data\n\t}\n\tgraphql.AddErrorf(ctx, `unexpected type %T from directive, should be graphql.Marshaler`, tmp)\n\treturn func(ctx context.Context) graphql.Marshaler {\n\t\treturn graphql.Null\n\t}\n}\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Chatroom_name(ctx context.Context, field graphql.CollectedField, obj *Chatroom) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Chatroom_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Chatroom_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Chatroom\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Chatroom_messages(ctx context.Context, field graphql.CollectedField, obj *Chatroom) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Chatroom_messages,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Messages, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNMessage2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋchatᚐMessageᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Chatroom_messages(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Chatroom\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Message_id(ctx, field)\n\t\t\tcase \"text\":\n\t\t\t\treturn ec.fieldContext_Message_text(ctx, field)\n\t\t\tcase \"createdBy\":\n\t\t\t\treturn ec.fieldContext_Message_createdBy(ctx, field)\n\t\t\tcase \"createdAt\":\n\t\t\t\treturn ec.fieldContext_Message_createdAt(ctx, field)\n\t\t\tcase \"subscription\":\n\t\t\t\treturn ec.fieldContext_Message_subscription(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Message\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Chatroom_subscription(ctx context.Context, field graphql.CollectedField, obj *Chatroom) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Chatroom_subscription(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tres := Subscription{}\n\tfc.Result = res\n\treturn ec.marshalNSubscription2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋchatᚐSubscription(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Chatroom_subscription(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Chatroom\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"messageAdded\":\n\t\t\t\treturn ec.fieldContext_Subscription_messageAdded(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Subscription\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Message_id(ctx context.Context, field graphql.CollectedField, obj *Message) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Message_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Message_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Message\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Message_text(ctx context.Context, field graphql.CollectedField, obj *Message) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Message_text,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Text, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Message_text(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Message\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Message_createdBy(ctx context.Context, field graphql.CollectedField, obj *Message) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Message_createdBy,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.CreatedBy, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Message_createdBy(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Message\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Message_createdAt(ctx context.Context, field graphql.CollectedField, obj *Message) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Message_createdAt,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.CreatedAt, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNTime2timeᚐTime,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Message_createdAt(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Message\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Time does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Message_subscription(ctx context.Context, field graphql.CollectedField, obj *Message) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Message_subscription(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tres := &Subscription{}\n\tfc.Result = res\n\treturn ec.marshalNSubscription2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋchatᚐSubscription(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Message_subscription(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Message\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"messageAdded\":\n\t\t\t\treturn ec.fieldContext_Subscription_messageAdded(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Subscription\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Mutation_post(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Mutation_post,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Mutation().Post(ctx, fc.Args[\"text\"].(string), fc.Args[\"username\"].(string), fc.Args[\"roomName\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNMessage2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋchatᚐMessage,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Mutation_post(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Mutation\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Message_id(ctx, field)\n\t\t\tcase \"text\":\n\t\t\t\treturn ec.fieldContext_Message_text(ctx, field)\n\t\t\tcase \"createdBy\":\n\t\t\t\treturn ec.fieldContext_Message_createdBy(ctx, field)\n\t\t\tcase \"createdAt\":\n\t\t\t\treturn ec.fieldContext_Message_createdAt(ctx, field)\n\t\t\tcase \"subscription\":\n\t\t\t\treturn ec.fieldContext_Message_subscription(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Message\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Mutation_post_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_room(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_room,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().Room(ctx, fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalOChatroom2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋchatᚐChatroom,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_room(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_Chatroom_name(ctx, field)\n\t\t\tcase \"messages\":\n\t\t\t\treturn ec.fieldContext_Chatroom_messages(ctx, field)\n\t\t\tcase \"subscription\":\n\t\t\t\treturn ec.fieldContext_Chatroom_subscription(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Chatroom\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_room_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.IntrospectType(fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___schema,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.IntrospectSchema()\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Subscription_messageAdded(ctx context.Context, field graphql.CollectedField) (ret func(ctx context.Context) graphql.Marshaler) {\n\treturn graphql.ResolveFieldStream(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Subscription_messageAdded,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Subscription().MessageAdded(ctx, fc.Args[\"roomName\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNMessage2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋchatᚐMessage,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Subscription_messageAdded(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Subscription\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Message_id(ctx, field)\n\t\t\tcase \"text\":\n\t\t\t\treturn ec.fieldContext_Message_text(ctx, field)\n\t\t\tcase \"createdBy\":\n\t\t\t\treturn ec.fieldContext_Message_createdBy(ctx, field)\n\t\t\tcase \"createdAt\":\n\t\t\t\treturn ec.fieldContext_Message_createdAt(ctx, field)\n\t\t\tcase \"subscription\":\n\t\t\t\treturn ec.fieldContext_Message_subscription(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Message\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Subscription_messageAdded_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_isRepeatable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsRepeatable, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_locations,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Locations, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__DirectiveLocation2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_defaultValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DefaultValue, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_types,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Types(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_queryType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.QueryType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_mutationType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.MutationType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_subscriptionType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SubscriptionType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_directives,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Directives(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_kind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Kind(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__TypeKind2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_specifiedByURL,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SpecifiedByURL(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_fields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_interfaces,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Interfaces(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_possibleTypes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PossibleTypes(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_enumValues,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_inputFields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.InputFields(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_ofType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.OfType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_isOneOf,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsOneOf(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOBoolean2bool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar chatroomImplementors = []string{\"Chatroom\"}\n\nfunc (ec *executionContext) _Chatroom(ctx context.Context, sel ast.SelectionSet, obj *Chatroom) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, chatroomImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Chatroom\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._Chatroom_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"messages\":\n\t\t\tout.Values[i] = ec._Chatroom_messages(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"subscription\":\n\t\t\tout.Values[i] = ec._Chatroom_subscription(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar messageImplementors = []string{\"Message\"}\n\nfunc (ec *executionContext) _Message(ctx context.Context, sel ast.SelectionSet, obj *Message) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, messageImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Message\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._Message_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"text\":\n\t\t\tout.Values[i] = ec._Message_text(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"createdBy\":\n\t\t\tout.Values[i] = ec._Message_createdBy(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"createdAt\":\n\t\t\tout.Values[i] = ec._Message_createdAt(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"subscription\":\n\t\t\tout.Values[i] = ec._Message_subscription(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar mutationImplementors = []string{\"Mutation\"}\n\nfunc (ec *executionContext) _Mutation(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, mutationImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Mutation\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Mutation\")\n\t\tcase \"post\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Mutation_post(ctx, field)\n\t\t\t})\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"room\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_room(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar subscriptionImplementors = []string{\"Subscription\"}\n\nfunc (ec *executionContext) _Subscription(ctx context.Context, sel ast.SelectionSet) func(ctx context.Context) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, subscriptionImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Subscription\",\n\t})\n\tif len(fields) != 1 {\n\t\tgraphql.AddErrorf(ctx, \"must subscribe to exactly one stream\")\n\t\treturn nil\n\t}\n\n\tswitch fields[0].Name {\n\tcase \"messageAdded\":\n\t\treturn ec._Subscription_messageAdded(ctx, fields[0])\n\tdefault:\n\t\tpanic(\"unknown field \" + strconv.Quote(fields[0].Name))\n\t}\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNID2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalID(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNID2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalID(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNMessage2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋchatᚐMessage(ctx context.Context, sel ast.SelectionSet, v Message) graphql.Marshaler {\n\treturn ec._Message(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNMessage2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋchatᚐMessageᚄ(ctx context.Context, sel ast.SelectionSet, v []Message) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNMessage2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋchatᚐMessage(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalNMessage2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋchatᚐMessage(ctx context.Context, sel ast.SelectionSet, v *Message) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Message(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNSubscription2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋchatᚐSubscription(ctx context.Context, sel ast.SelectionSet, v Subscription) graphql.Marshaler {\n\tres := ec._Subscription(ctx, sel)\n\treturn res(ctx)\n}\n\nfunc (ec *executionContext) marshalNSubscription2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋchatᚐSubscription(ctx context.Context, sel ast.SelectionSet, v *Subscription) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := ec._Subscription(ctx, sel)\n\treturn res(ctx)\n}\n\nfunc (ec *executionContext) unmarshalNTime2timeᚐTime(ctx context.Context, v any) (time.Time, error) {\n\tres, err := graphql.UnmarshalTime(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNTime2timeᚐTime(ctx context.Context, sel ast.SelectionSet, v time.Time) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalTime(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalOChatroom2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋchatᚐChatroom(ctx context.Context, sel ast.SelectionSet, v *Chatroom) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Chatroom(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "_examples/chat/models_gen.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage chat\n\nimport (\n\t\"time\"\n)\n\ntype Message struct {\n\tID           string        `json:\"id\"`\n\tText         string        `json:\"text\"`\n\tCreatedBy    string        `json:\"createdBy\"`\n\tCreatedAt    time.Time     `json:\"createdAt\"`\n\tSubscription *Subscription `json:\"subscription\"`\n}\n\ntype Mutation struct {\n}\n\ntype Query struct {\n}\n\ntype Subscription struct {\n}\n"
  },
  {
    "path": "_examples/chat/package.json",
    "content": "{\n  \"name\": \"chat\",\n  \"version\": \"0.1.0\",\n  \"private\": true,\n  \"dependencies\": {\n    \"@apollo/client\": \"^4.0.0\",\n    \"apollo-utilities\": \"^1.0.26\",\n    \"graphql\": \"^16.8.1\",\n    \"graphql-sse\": \"^2.0.0\",\n    \"graphql-tag\": \"^2.10.0\",\n    \"graphql-ws\": \"^6.0.1\",\n    \"react\": \"^19.0.0\",\n    \"react-dom\": \"^19.0.0\",\n    \"react-scripts\": \"^5.0.1\",\n    \"styled-components\": \"^6.1.8\",\n    \"subscriptions-transport-ws\": \"^0.11.0\",\n    \"typescript\": \"^5.3.3\"\n  },\n  \"scripts\": {\n    \"start\": \"react-scripts start\",\n    \"start:graphql-transport-ws\": \"REACT_APP_WS_PROTOCOL=graphql-transport-ws npm run start\",\n    \"start:graphql-sse\": \"REACT_APP_SSE_PROTOCOL=true npm run start\",\n    \"build\": \"react-scripts build\",\n    \"test\": \"react-scripts test --env=jsdom\",\n    \"eject\": \"react-scripts eject\"\n  },\n  \"browserslist\": [\n    \">0.2%\",\n    \"not dead\",\n    \"not ie <= 11\",\n    \"not op_mini all\"\n  ]\n}\n"
  },
  {
    "path": "_examples/chat/public/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n    <meta name=\"theme-color\" content=\"#000000\">\n    <title>React App</title>\n  </head>\n  <body>\n    <noscript>\n      You need to enable JavaScript to run this app.\n    </noscript>\n    <div id=\"root\"></div>\n  </body>\n</html>\n"
  },
  {
    "path": "_examples/chat/readme.md",
    "content": "# Chat App\n\nExample app using subscriptions to build a chat room.\n\n### Server\n\n```bash\ngo run ./server/server.go\n```\n\n### Client\n\nThe react app uses two different implementation for the websocket link\n\n- [apollo-link-ws](https://www.apollographql.com/docs/react/api/link/apollo-link-ws) which uses the deprecated [subscriptions-transport-ws](https://github.com/apollographql/subscriptions-transport-ws) library\n- [graphql-ws](https://github.com/enisdenjo/graphql-ws)\n\nFirst you need to install the dependencies\n\n```bash\nnpm install\n```\n\nThen to run the app with the `apollo-link-ws` implementation do\n\n```bash\nnpm run start\n```\n\nor to run the app with the `graphql-ws` implementation (and the newer `graphql-transport-ws` protocol) do\n\n```bash\nnpm run start:graphql-transport-ws\n```\n\nor to run the app with the `graphql-sse` implementation do\n\n```bash\nnpm run start:graphql-sse\n```\n"
  },
  {
    "path": "_examples/chat/resolvers.go",
    "content": "//go:generate go run ../../testdata/gqlgen.go\n\npackage chat\n\nimport (\n\t\"context\"\n\t\"math/rand\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\ntype ckey string\n\ntype resolver struct {\n\tRooms sync.Map\n}\n\nfunc (r *resolver) Mutation() MutationResolver {\n\treturn &mutationResolver{r}\n}\n\nfunc (r *resolver) Query() QueryResolver {\n\treturn &queryResolver{r}\n}\n\nfunc (r *resolver) Subscription() SubscriptionResolver {\n\treturn &subscriptionResolver{r}\n}\n\nfunc New() Config {\n\treturn Config{\n\t\tResolvers: &resolver{\n\t\t\tRooms: sync.Map{},\n\t\t},\n\t\tDirectives: DirectiveRoot{\n\t\t\tUser: func(ctx context.Context, obj any, next graphql.Resolver, username string) (res any, err error) {\n\t\t\t\treturn next(context.WithValue(ctx, ckey(\"username\"), username))\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc getUsername(ctx context.Context) string {\n\tif username, ok := ctx.Value(ckey(\"username\")).(string); ok {\n\t\treturn username\n\t}\n\treturn \"\"\n}\n\ntype Observer struct {\n\tUsername string\n\tMessage  chan *Message\n}\n\ntype Chatroom struct {\n\tName      string\n\tMessages  []Message\n\tObservers sync.Map\n}\n\ntype mutationResolver struct{ *resolver }\n\nfunc (r *mutationResolver) Post(\n\tctx context.Context,\n\ttext, username, roomName string,\n) (*Message, error) {\n\troom := r.getRoom(roomName)\n\n\tmessage := &Message{\n\t\tID:        randString(8),\n\t\tCreatedAt: time.Now(),\n\t\tText:      text,\n\t\tCreatedBy: username,\n\t}\n\n\troom.Messages = append(room.Messages, *message)\n\troom.Observers.Range(func(_, v any) bool {\n\t\tobserver := v.(*Observer)\n\t\tif observer.Username == \"\" || observer.Username == message.CreatedBy {\n\t\t\tobserver.Message <- message\n\t\t}\n\t\treturn true\n\t})\n\treturn message, nil\n}\n\ntype queryResolver struct{ *resolver }\n\nfunc (r *resolver) getRoom(name string) *Chatroom {\n\troom, _ := r.Rooms.LoadOrStore(name, &Chatroom{\n\t\tName:      name,\n\t\tObservers: sync.Map{},\n\t})\n\treturn room.(*Chatroom)\n}\n\nfunc (r *queryResolver) Room(ctx context.Context, name string) (*Chatroom, error) {\n\treturn r.getRoom(name), nil\n}\n\ntype subscriptionResolver struct{ *resolver }\n\nfunc (r *subscriptionResolver) MessageAdded(\n\tctx context.Context,\n\troomName string,\n) (<-chan *Message, error) {\n\troom := r.getRoom(roomName)\n\n\tid := randString(8)\n\tevents := make(chan *Message, 1)\n\n\tgo func() {\n\t\t<-ctx.Done()\n\t\troom.Observers.Delete(id)\n\t}()\n\n\troom.Observers.Store(id, &Observer{\n\t\tUsername: getUsername(ctx),\n\t\tMessage:  events,\n\t})\n\n\tevents <- &Message{\n\t\tID:        randString(8),\n\t\tCreatedAt: time.Now(),\n\t\tText:      \"You've joined the room\",\n\t\tCreatedBy: \"system\",\n\t}\n\n\treturn events, nil\n}\n\nvar letterRunes = []rune(\"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\")\n\nfunc randString(n int) string {\n\tb := make([]rune, n)\n\tfor i := range b {\n\t\tb[i] = letterRunes[rand.Intn(len(letterRunes))]\n\t}\n\treturn string(b)\n}\n"
  },
  {
    "path": "_examples/chat/schema.graphql",
    "content": "type Chatroom {\n    name: String!\n    messages: [Message!]!\n    subscription: Subscription!\n}\n\ntype Message {\n    id: ID!\n    text: String!\n    createdBy: String!\n    createdAt: Time!\n    subscription: Subscription!\n}\n\ntype Query {\n    room(name: String!): Chatroom\n}\n\ntype Mutation {\n    post(text: String!, username: String!, roomName: String!): Message!\n}\n\ntype Subscription {\n    messageAdded(roomName: String!): Message!\n}\n\nscalar Time\n\ndirective @user(username: String!) on SUBSCRIPTION\n"
  },
  {
    "path": "_examples/chat/server/server.go",
    "content": "package main\n\nimport (\n\t\"log\"\n\t\"net/http\"\n\t\"time\"\n\n\t\"github.com/gorilla/websocket\"\n\t\"github.com/rs/cors\"\n\n\t\"github.com/99designs/gqlgen/_examples/chat\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/extension\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/graphql/playground\"\n)\n\nfunc main() {\n\tc := cors.New(cors.Options{\n\t\tAllowedOrigins:   []string{\"http://localhost:3000\"},\n\t\tAllowCredentials: true,\n\t})\n\n\tsrv := handler.New(chat.NewExecutableSchema(chat.New()))\n\n\tsrv.AddTransport(transport.SSE{})\n\tsrv.AddTransport(transport.POST{})\n\tsrv.AddTransport(transport.Websocket{\n\t\tKeepAlivePingInterval: 10 * time.Second,\n\t\tUpgrader: websocket.Upgrader{\n\t\t\tCheckOrigin: func(r *http.Request) bool {\n\t\t\t\treturn true\n\t\t\t},\n\t\t},\n\t})\n\tsrv.Use(extension.Introspection{})\n\n\thttp.Handle(\"/\", playground.Handler(\"Todo\", \"/query\"))\n\thttp.Handle(\"/query\", c.Handler(srv))\n\n\tlog.Fatal(http.ListenAndServe(\":8085\", nil))\n}\n"
  },
  {
    "path": "_examples/chat/src/App.js",
    "content": "import React, { useState } from 'react';\nimport styled from 'styled-components';\nimport { Room } from './Room';\n\nconst Input = styled.div`\n    padding: 4px;\n    margin: 0 0 4px;\n\n    input {\n        border: 1px solid #ccc;\n        padding: 2px;\n        font-size: 14px;\n    }\n`;\n\nexport const App = () => {\n    const [name, setName] = useState('tester');\n    const [channel, setChannel] = useState('#gophers');\n\n    return (\n        <>\n            <Input>\n                name: <input value={name} onChange={(e) => setName(e.target.value)} />\n            </Input>\n            <Input>\n                channel: <input value={channel} onChange={(e) => setChannel(e.target.value)} />\n            </Input>\n\n            <Room channel={channel} name={name} />\n        </>\n    );\n\n};\n"
  },
  {
    "path": "_examples/chat/src/Room.js",
    "content": "import React, { useState, useEffect, useRef } from 'react';\nimport gql from 'graphql-tag';\nimport { useQuery, useMutation } from '@apollo/client';\nimport { Chat, ChatContainer, Message, MessageReceived } from './components/room';\n\nlet queuedMessages = []\nexport const Room = ({ channel, name }) => {\n    const messagesEndRef = useRef(null)\n    const [ text, setText ] = useState('');\n\n    const [ addMessage ] = useMutation(MUTATION, {\n        onCompleted: () => {\n            setText('');\n        }\n    });\n\n    let { loading, error, data, subscribeToMore } = useQuery(QUERY, {\n        variables: {\n            channel\n        },\n    });\n\n    if (data && data.room) {\n        data = Object.assign({}, data, {\n            room: Object.assign({}, data.room, {\n                messages: [\n                    ...data.room.messages,\n                    ...queuedMessages.filter((queuedMessage) => (\n                        !data.room.messages.find((msg) => msg.id === queuedMessage.id)\n                    )),\n                ],\n            })\n        });\n    }\n\n    // subscribe to more messages\n    useEffect(() => {\n        const subscription = subscribeToMore({\n            document: SUBSCRIPTION,\n            variables: {\n                channel,\n            },\n            updateQuery: (prev, { subscriptionData }) => {\n\n                if (!subscriptionData.data) {\n                    return prev;\n                }\n                const newMessage = subscriptionData.data.messageAdded;\n                if (!prev.room) {\n                    queuedMessages.push(newMessage)\n                    return prev;\n                }\n\n                if (prev.room.messages.find((msg) => msg.id === newMessage.id)) {\n                    return prev\n                }\n\n                prev = Object.assign({}, prev, {\n                    room: Object.assign({}, prev.room, {\n                        messages: [\n                            ...prev.room.messages,\n                            ...queuedMessages.filter((queuedMessage) => (\n                                newMessage.id !== queuedMessage.id\n                                && !prev.room.messages.find((msg) => msg.id === queuedMessage.id)\n                            )),\n                            newMessage,\n                        ],\n                    }),\n                });\n                queuedMessages = [];\n                return prev;\n            },\n        });\n\n\n        return () => subscription();\n\n    }, [subscribeToMore, channel]);\n\n    // auto scroll down\n    useEffect(() => {\n        messagesEndRef && messagesEndRef.current && messagesEndRef.current.scrollIntoView({ behavior: 'smooth' })\n    }, [messagesEndRef, data]);\n\n    if (loading) {\n        return <div>loading</div>\n    }\n\n    if (error) {\n        return <div>error</div>\n    }\n\n    return (<>\n        <Chat>\n            <ChatContainer>\n                {data.room.messages.map((msg) =>\n                    msg.createdBy === name ? <Message key={msg.id}>\n                        {msg.text}\n                    </Message> : <MessageReceived key={msg.id}>\n                        <span>{msg.createdBy}</span>\n                        {msg.text}\n                    </MessageReceived>\n                )}\n            </ChatContainer>\n            <div ref={messagesEndRef} />\n        </Chat>\n\n        <input value={text} onChange={(e) => setText(e.target.value)} />\n\n        <p>\n            <button\n                onClick={() => addMessage({\n                    variables: {\n                        text: text,\n                        channel: channel,\n                        name: name,\n                    }\n                })}>\n                send\n            </button>\n        </p>\n    </>);\n\n}\n\nconst SUBSCRIPTION = gql`\n    subscription MoreMessages($channel: String!) {\n        messageAdded(roomName:$channel) {\n            id\n            text\n            createdBy\n        }\n    }\n`;\n\nconst QUERY = gql`\n    query Room($channel: String!) {\n        room(name: $channel) {\n            messages { id text createdBy }\n        }\n    }\n`;\n\nconst MUTATION = gql`\n    mutation sendMessage($text: String!, $channel: String!, $name: String!) {\n        post(text:$text, roomName:$channel, username:$name) { id }\n    }\n`;\n"
  },
  {
    "path": "_examples/chat/src/components/room.js",
    "content": "import styled from 'styled-components';\n\nexport const Chat = styled.div`\n    padding: 4px;\n    margin: 0 0 12px;\n    max-width: 400px;\n    max-height: 400px;\n    border: 1px solid #ccc;\n    background-color: #babdc6;\n    overflow-x: hidden;\n    overflow-y: scroll;\n    position: relative;\n    font: 14px verdana;\n`;\n\nexport const ChatContainer = styled.div`\n    &:after {\n        content: \"\";\n        display: table;\n        clear: both;\n    }\n`;\n\nconst ChatLine = styled.div`\n    color: #000;\n    clear: both;\n    line-height: 120%;\n    padding: 8px;\n    position: relative;\n    margin: 8px 0;\n    max-width: 85%;\n    word-wrap: break-word;\n    z-index: 1;\n\n  &:after {\n    position: absolute;\n    content: \"\";\n    width: 0;\n    height: 0;\n    border-style: solid;\n  }\n\n  span {\n    display: inline-block;\n    float: right;\n    padding: 0 0 0 7px;\n    position: relative;\n    bottom: -4px;\n  }\n\n}`;\n\nexport const MessageReceived = styled(ChatLine)`\n    background: #fff;\n    border-radius: 0px 5px 5px 5px;\n    float: left;\n\n    &:after {\n        border-width: 0px 10px 10px 0;\n        border-color: transparent #fff transparent transparent;\n        top: 0;\n        left: -4px;\n    }\n\n    span {\n        display: block;\n        color: #bbb;\n        font-size: 10px;\n    }\n`;\n\nexport const Message = styled(ChatLine)`\n    background: #e1ffc7;\n    border-radius: 5px 0px 5px 5px;\n    float: right;\n\n    &:after {\n        border-width: 0px 0 10px 10px;\n        border-color: transparent transparent transparent #e1ffc7;\n        top: 0;\n        right: -4px;\n    }\n`;\n"
  },
  {
    "path": "_examples/chat/src/graphql-sse.ts",
    "content": "import {\n    ApolloLink,\n    Operation,\n    FetchResult,\n    Observable,\n} from '@apollo/client/core';\nimport { print } from 'graphql';\nimport { createClient, ClientOptions, Client } from 'graphql-sse';\n\nexport class SSELink extends ApolloLink {\n    private client: Client;\n\n    constructor(options: ClientOptions) {\n        super();\n        this.client = createClient(options);\n    }\n\n    public request(operation: Operation): Observable<FetchResult> {\n        return new Observable((sink) => {\n            return this.client.subscribe<FetchResult>(\n                { ...operation, query: print(operation.query) },\n                    {\n                        next: sink.next.bind(sink),\n                        complete: sink.complete.bind(sink),\n                        error: sink.error.bind(sink),\n                    },\n            );\n        });\n    }\n}\n"
  },
  {
    "path": "_examples/chat/src/graphql-ws.js",
    "content": "import { createClient } from 'graphql-ws';\nimport { print } from 'graphql';\nimport { ApolloLink, Observable } from '@apollo/client';\n\nexport class WebSocketLink extends ApolloLink {\n  client;\n\n  constructor(options) {\n    super();\n    this.client = createClient(options);\n  }\n\n  request(operation) {\n    return new Observable((sink) => {\n      return this.client.subscribe(\n        { ...operation, query: print(operation.query) },\n        {\n          next: sink.next.bind(sink),\n          complete: sink.complete.bind(sink),\n          error: (err) => {\n            if (err instanceof Error) {\n              return sink.error(err);\n            }\n\n            if (err instanceof CloseEvent) {\n              return sink.error(\n                // reason will be available on clean closes\n                new Error(\n                  `Socket closed with event ${err.code} ${err.reason || ''}`,\n                ),\n              );\n            }\n\n            return sink.error(\n              new Error(\n                err\n                  .map(({ message }) => message)\n                  .join(', '),\n              ),\n            );\n          },\n        },\n      );\n    });\n  }\n}"
  },
  {
    "path": "_examples/chat/src/index.js",
    "content": "import React from 'react';\nimport ReactDOM from 'react-dom';\nimport {\n    ApolloClient,\n    ApolloProvider,\n    HttpLink,\n    split,\n    InMemoryCache,\n} from '@apollo/client';\nimport { WebSocketLink as ApolloWebSocketLink} from '@apollo/client/link/ws';\nimport { getMainDefinition } from 'apollo-utilities';\nimport { App } from './App';\nimport { WebSocketLink as GraphQLWSWebSocketLink } from './graphql-ws'\nimport { SSELink } from './graphql-sse';\n\nlet subscriptionLink;\nif (process.env.REACT_APP_SSE_PROTOCOL) {\n  subscriptionLink = new SSELink({ url: 'http://localhost:8085/query' });\n} else if (process.env.REACT_APP_WS_PROTOCOL === 'graphql-transport-ws') {\n    subscriptionLink = new GraphQLWSWebSocketLink({\n        url: `ws://localhost:8085/query`\n    });\n} else {\n    subscriptionLink = new ApolloWebSocketLink({\n        uri: `ws://localhost:8085/query`,\n        options: {\n            reconnect: true\n        }\n    });\n}\n\nconst httpLink = new HttpLink({ uri: 'http://localhost:8085/query' });\n\n\n// depending on what kind of operation is being sent\nconst link = split(\n    // split based on operation type\n    ({ query }) => {\n        const { kind, operation } = getMainDefinition(query);\n        return kind === 'OperationDefinition' && operation === 'subscription';\n    },\n    subscriptionLink,\n    httpLink,\n);\n\nconst apolloClient = new ApolloClient({\n    link: link,\n    cache: new InMemoryCache(),\n});\n\nif (module.hot) {\n    module.hot.accept('./App', () => {\n        const NextApp = import('./App').default;\n        render(<NextApp/>);\n    })\n}\n\nfunction render(component) {\n    ReactDOM.render(<ApolloProvider client={apolloClient}>\n        {component}\n    </ApolloProvider>, document.getElementById('root'));\n}\n\nrender(<App />);\n"
  },
  {
    "path": "_examples/chat/src/react-app-env.d.ts",
    "content": "/// <reference types=\"react-scripts\" />\n"
  },
  {
    "path": "_examples/chat/tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n    \"target\": \"es5\",\n    \"lib\": [\n      \"dom\",\n      \"dom.iterable\",\n      \"esnext\"\n    ],\n    \"allowJs\": true,\n    \"skipLibCheck\": true,\n    \"esModuleInterop\": true,\n    \"allowSyntheticDefaultImports\": true,\n    \"strict\": true,\n    \"forceConsistentCasingInFileNames\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"resolveJsonModule\": true,\n    \"isolatedModules\": true,\n    \"noEmit\": true,\n    \"jsx\": \"preserve\"\n  },\n  \"include\": [\n    \"src\"\n  ]\n}\n"
  },
  {
    "path": "_examples/config/.gqlgen.yml",
    "content": "# .gqlgen.yml _examples\n#\n# Refer to https://gqlgen.com/config/\n# for detailed .gqlgen.yml documentation.\n\nschema: \"*.graphql\"\nexec:\n  filename: generated.go\nmodel:\n  filename: models_gen.go\nresolver:\n  type: Resolver\n  layout: follow-schema\n  dir: .\n\nmodels:\n  Todo:    # Object\n    fields:\n      text:\n        fieldName: Description # Field\n  NewTodo: # Input\n    fields:\n      userId:\n        fieldName: UserID      # Field\n"
  },
  {
    "path": "_examples/config/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage config\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"embed\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n}\n\ntype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\ntype ResolverRoot interface {\n\tMutation() MutationResolver\n\tQuery() QueryResolver\n\tTodo() TodoResolver\n\tRole() RoleResolver\n}\n\ntype DirectiveRoot struct {\n}\n\ntype ComplexityRoot struct {\n\tMutation struct {\n\t\tCreateTodo func(childComplexity int, input NewTodo) int\n\t}\n\n\tQuery struct {\n\t\tTodos func(childComplexity int) int\n\t}\n\n\tTodo struct {\n\t\tDatabaseID  func(childComplexity int) int\n\t\tDescription func(childComplexity int) int\n\t\tDone        func(childComplexity int) int\n\t\tID          func(childComplexity int) int\n\t\tMutation    func(childComplexity int) int\n\t\tQuery       func(childComplexity int) int\n\t\tUser        func(childComplexity int) int\n\t}\n\n\tUser struct {\n\t\tFullName func(childComplexity int) int\n\t\tID       func(childComplexity int) int\n\t\tRole     func(childComplexity int) int\n\t}\n\n\tRole struct {\n\t\tName func(childComplexity int) int\n\t}\n}\n\ntype MutationResolver interface {\n\tCreateTodo(ctx context.Context, input NewTodo) (*Todo, error)\n}\ntype QueryResolver interface {\n\tTodos(ctx context.Context) ([]*Todo, error)\n}\ntype TodoResolver interface {\n\tID(ctx context.Context, obj *Todo) (string, error)\n}\ntype RoleResolver interface {\n\tName(ctx context.Context, obj *UserRole) (string, error)\n}\n\ntype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.SchemaData != nil {\n\t\treturn e.SchemaData\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := newExecutionContext(nil, e, nil)\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"Mutation.createTodo\":\n\t\tif e.ComplexityRoot.Mutation.CreateTodo == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Mutation_createTodo_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Mutation.CreateTodo(childComplexity, args[\"input\"].(NewTodo)), true\n\n\tcase \"Query.todos\":\n\t\tif e.ComplexityRoot.Query.Todos == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Todos(childComplexity), true\n\n\tcase \"Todo.databaseId\":\n\t\tif e.ComplexityRoot.Todo.DatabaseID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Todo.DatabaseID(childComplexity), true\n\tcase \"Todo.text\":\n\t\tif e.ComplexityRoot.Todo.Description == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Todo.Description(childComplexity), true\n\tcase \"Todo.done\":\n\t\tif e.ComplexityRoot.Todo.Done == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Todo.Done(childComplexity), true\n\tcase \"Todo.id\":\n\t\tif e.ComplexityRoot.Todo.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Todo.ID(childComplexity), true\n\tcase \"Todo.mutation\":\n\t\tif e.ComplexityRoot.Todo.Mutation == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Todo.Mutation(childComplexity), true\n\tcase \"Todo.query\":\n\t\tif e.ComplexityRoot.Todo.Query == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Todo.Query(childComplexity), true\n\tcase \"Todo.user\":\n\t\tif e.ComplexityRoot.Todo.User == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Todo.User(childComplexity), true\n\n\tcase \"User.name\":\n\t\tif e.ComplexityRoot.User.FullName == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.FullName(childComplexity), true\n\tcase \"User.id\":\n\t\tif e.ComplexityRoot.User.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.ID(childComplexity), true\n\tcase \"User.role\":\n\t\tif e.ComplexityRoot.User.Role == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.Role(childComplexity), true\n\n\tcase \"role.name\":\n\t\tif e.ComplexityRoot.Role.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Role.Name(childComplexity), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap(\n\t\tec.unmarshalInputNewTodo,\n\t)\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\tcase ast.Mutation:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tif !first {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tfirst = false\n\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\tdata := ec._Mutation(ctx, opCtx.Operation.SelectionSet)\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\n\t\t\treturn &graphql.Response{\n\t\t\t\tData: buf.Bytes(),\n\t\t\t}\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\n//go:embed \"schema.graphql\" \"todo.graphql\" \"user.graphql\"\nvar sourcesFS embed.FS\n\nfunc sourceData(filename string) string {\n\tdata, err := sourcesFS.ReadFile(filename)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"codegen problem: %s not available\", filename))\n\t}\n\treturn string(data)\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"schema.graphql\", Input: sourceData(\"schema.graphql\"), BuiltIn: false},\n\t{Name: \"todo.graphql\", Input: sourceData(\"todo.graphql\"), BuiltIn: false},\n\t{Name: \"user.graphql\", Input: sourceData(\"user.graphql\"), BuiltIn: false},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_Mutation_createTodo_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"input\", ec.unmarshalNNewTodo2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋconfigᚐNewTodo)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"input\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Mutation_createTodo(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Mutation_createTodo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Mutation().CreateTodo(ctx, fc.Args[\"input\"].(NewTodo))\n\t\t},\n\t\tnil,\n\t\tec.marshalNTodo2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋconfigᚐTodo,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Mutation_createTodo(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Mutation\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Todo_id(ctx, field)\n\t\t\tcase \"databaseId\":\n\t\t\t\treturn ec.fieldContext_Todo_databaseId(ctx, field)\n\t\t\tcase \"text\":\n\t\t\t\treturn ec.fieldContext_Todo_text(ctx, field)\n\t\t\tcase \"done\":\n\t\t\t\treturn ec.fieldContext_Todo_done(ctx, field)\n\t\t\tcase \"user\":\n\t\t\t\treturn ec.fieldContext_Todo_user(ctx, field)\n\t\t\tcase \"query\":\n\t\t\t\treturn ec.fieldContext_Todo_query(ctx, field)\n\t\t\tcase \"mutation\":\n\t\t\t\treturn ec.fieldContext_Todo_mutation(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Todo\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Mutation_createTodo_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_todos(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_todos,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Todos(ctx)\n\t\t},\n\t\tnil,\n\t\tec.marshalNTodo2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋconfigᚐTodoᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_todos(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Todo_id(ctx, field)\n\t\t\tcase \"databaseId\":\n\t\t\t\treturn ec.fieldContext_Todo_databaseId(ctx, field)\n\t\t\tcase \"text\":\n\t\t\t\treturn ec.fieldContext_Todo_text(ctx, field)\n\t\t\tcase \"done\":\n\t\t\t\treturn ec.fieldContext_Todo_done(ctx, field)\n\t\t\tcase \"user\":\n\t\t\t\treturn ec.fieldContext_Todo_user(ctx, field)\n\t\t\tcase \"query\":\n\t\t\t\treturn ec.fieldContext_Todo_query(ctx, field)\n\t\t\tcase \"mutation\":\n\t\t\t\treturn ec.fieldContext_Todo_mutation(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Todo\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.IntrospectType(fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___schema,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.IntrospectSchema()\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Todo_id(ctx context.Context, field graphql.CollectedField, obj *Todo) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Todo_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Todo().ID(ctx, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Todo_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Todo\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Todo_databaseId(ctx context.Context, field graphql.CollectedField, obj *Todo) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Todo_databaseId,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DatabaseID, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Todo_databaseId(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Todo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Todo_text(ctx context.Context, field graphql.CollectedField, obj *Todo) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Todo_text,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Todo_text(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Todo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Todo_done(ctx context.Context, field graphql.CollectedField, obj *Todo) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Todo_done,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Done, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Todo_done(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Todo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Todo_user(ctx context.Context, field graphql.CollectedField, obj *Todo) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Todo_user,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.User, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋconfigᚐUser,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Todo_user(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Todo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_User_id(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_User_name(ctx, field)\n\t\t\tcase \"role\":\n\t\t\t\treturn ec.fieldContext_User_role(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type User\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Todo_query(ctx context.Context, field graphql.CollectedField, obj *Todo) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Todo_query(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tres := &Query{}\n\tfc.Result = res\n\treturn ec.marshalNQuery2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋconfigᚐQuery(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Todo_query(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Todo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"todos\":\n\t\t\t\treturn ec.fieldContext_Query_todos(ctx, field)\n\t\t\tcase \"__schema\":\n\t\t\t\treturn ec.fieldContext_Query___schema(ctx, field)\n\t\t\tcase \"__type\":\n\t\t\t\treturn ec.fieldContext_Query___type(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Query\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Todo_mutation(ctx context.Context, field graphql.CollectedField, obj *Todo) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Todo_mutation(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tres := &Mutation{}\n\tfc.Result = res\n\treturn ec.marshalNMutation2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋconfigᚐMutation(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Todo_mutation(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Todo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"createTodo\":\n\t\t\t\treturn ec.fieldContext_Mutation_createTodo(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Mutation\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_id(ctx context.Context, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_name(ctx context.Context, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.FullName(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_role(ctx context.Context, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_role,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Role, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNrole2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋconfigᚐUserRole,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_role(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_role_name(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type role\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_isRepeatable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsRepeatable, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_locations,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Locations, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__DirectiveLocation2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_defaultValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DefaultValue, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_types,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Types(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_queryType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.QueryType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_mutationType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.MutationType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_subscriptionType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SubscriptionType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_directives,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Directives(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_kind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Kind(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__TypeKind2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_specifiedByURL,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SpecifiedByURL(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_fields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_interfaces,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Interfaces(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_possibleTypes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PossibleTypes(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_enumValues,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_inputFields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.InputFields(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_ofType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.OfType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_isOneOf,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsOneOf(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOBoolean2bool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _role_name(ctx context.Context, field graphql.CollectedField, obj *UserRole) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_role_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Role().Name(ctx, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_role_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"role\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalInputNewTodo(ctx context.Context, obj any) (NewTodo, error) {\n\tvar it NewTodo\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"text\", \"userId\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"text\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"text\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Text = data\n\t\tcase \"userId\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"userId\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.UserID = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar mutationImplementors = []string{\"Mutation\"}\n\nfunc (ec *executionContext) _Mutation(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, mutationImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Mutation\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Mutation\")\n\t\tcase \"createTodo\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Mutation_createTodo(ctx, field)\n\t\t\t})\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"todos\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_todos(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar todoImplementors = []string{\"Todo\"}\n\nfunc (ec *executionContext) _Todo(ctx context.Context, sel ast.SelectionSet, obj *Todo) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, todoImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Todo\")\n\t\tcase \"id\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Todo_id(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"databaseId\":\n\t\t\tout.Values[i] = ec._Todo_databaseId(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"text\":\n\t\t\tout.Values[i] = ec._Todo_text(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"done\":\n\t\t\tout.Values[i] = ec._Todo_done(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"user\":\n\t\t\tout.Values[i] = ec._Todo_user(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"query\":\n\t\t\tout.Values[i] = ec._Todo_query(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"mutation\":\n\t\t\tout.Values[i] = ec._Todo_mutation(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar userImplementors = []string{\"User\"}\n\nfunc (ec *executionContext) _User(ctx context.Context, sel ast.SelectionSet, obj *User) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, userImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"User\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._User_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._User_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"role\":\n\t\t\tout.Values[i] = ec._User_role(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar roleImplementors = []string{\"role\"}\n\nfunc (ec *executionContext) _role(ctx context.Context, sel ast.SelectionSet, obj *UserRole) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, roleImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"role\")\n\t\tcase \"name\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._role_name(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNID2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalID(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNID2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalID(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNInt2int(ctx context.Context, v any) (int, error) {\n\tres, err := graphql.UnmarshalInt(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNInt2int(ctx context.Context, sel ast.SelectionSet, v int) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalInt(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNMutation2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋconfigᚐMutation(ctx context.Context, sel ast.SelectionSet, v *Mutation) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Mutation(ctx, sel)\n}\n\nfunc (ec *executionContext) unmarshalNNewTodo2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋconfigᚐNewTodo(ctx context.Context, v any) (NewTodo, error) {\n\tres, err := ec.unmarshalInputNewTodo(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNQuery2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋconfigᚐQuery(ctx context.Context, sel ast.SelectionSet, v *Query) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Query(ctx, sel)\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNTodo2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋconfigᚐTodo(ctx context.Context, sel ast.SelectionSet, v Todo) graphql.Marshaler {\n\treturn ec._Todo(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNTodo2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋconfigᚐTodoᚄ(ctx context.Context, sel ast.SelectionSet, v []*Todo) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNTodo2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋconfigᚐTodo(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalNTodo2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋconfigᚐTodo(ctx context.Context, sel ast.SelectionSet, v *Todo) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Todo(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋconfigᚐUser(ctx context.Context, sel ast.SelectionSet, v *User) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._User(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNrole2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋconfigᚐUserRole(ctx context.Context, sel ast.SelectionSet, v UserRole) graphql.Marshaler {\n\treturn ec._role(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNString2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalOString2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNString2string(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "_examples/config/model.go",
    "content": "package config\n\nimport \"fmt\"\n\ntype User struct {\n\tID                  string\n\tFirstName, LastName string\n\tRole                UserRole\n}\n\nfunc (user *User) FullName() string {\n\treturn fmt.Sprintf(\"%s %s\", user.FirstName, user.LastName)\n}\n\ntype UserRole struct {\n\tRoleName string\n}\n"
  },
  {
    "path": "_examples/config/models_gen.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage config\n\ntype Mutation struct {\n}\n\ntype NewTodo struct {\n\tText   string `json:\"text\"`\n\tUserID string `json:\"userId\"`\n}\n\ntype Query struct {\n}\n\ntype Todo struct {\n\tID          string    `json:\"id\"`\n\tDatabaseID  int       `json:\"databaseId\"`\n\tDescription string    `json:\"text\"`\n\tDone        bool      `json:\"done\"`\n\tUser        *User     `json:\"user\"`\n\tQuery       *Query    `json:\"query\"`\n\tMutation    *Mutation `json:\"mutation\"`\n}\n"
  },
  {
    "path": "_examples/config/resolver.go",
    "content": "//go:generate go run ../../testdata/gqlgen.go\n\npackage config\n\nfunc New() Config {\n\tc := Config{\n\t\tResolvers: &Resolver{\n\t\t\ttodos: []*Todo{\n\t\t\t\t{DatabaseID: 1, Description: \"A todo not to forget\", Done: false},\n\t\t\t\t{DatabaseID: 2, Description: \"This is the most important\", Done: false},\n\t\t\t\t{DatabaseID: 3, Description: \"Please do this or else\", Done: false},\n\t\t\t},\n\t\t\tnextID: 3,\n\t\t},\n\t}\n\treturn c\n}\n\ntype Resolver struct {\n\ttodos  []*Todo\n\tnextID int\n}\n"
  },
  {
    "path": "_examples/config/schema.graphql",
    "content": "directive @goModel(\n    model: String\n    models: [String!]\n) on OBJECT | INPUT_OBJECT | SCALAR | ENUM | INTERFACE | UNION\ndirective @goField(\n    forceResolver: Boolean\n    name: String\n    omittable: Boolean\n    type: String\n) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION\n\ntype Query {\n    todos: [Todo!]!\n}\n\ntype Mutation {\n    createTodo(input: NewTodo!): Todo!\n}\n"
  },
  {
    "path": "_examples/config/schema.resolvers.go",
    "content": "package config\n\n// This file will be automatically regenerated based on the schema, any resolver\n// implementations\n// will be copied through when generating and any unknown code will be moved to the end.\n// Code generated by github.com/99designs/gqlgen version v0.17.88-dev\n\nimport (\n\t\"context\"\n)\n\n// CreateTodo is the resolver for the createTodo field.\nfunc (r *mutationResolver) CreateTodo(ctx context.Context, input NewTodo) (*Todo, error) {\n\tnewID := r.nextID\n\tr.nextID++\n\n\tnewTodo := &Todo{\n\t\tDatabaseID:  newID,\n\t\tDescription: input.Text,\n\t}\n\n\tr.todos = append(r.todos, newTodo)\n\n\treturn newTodo, nil\n}\n\n// Todos is the resolver for the todos field.\nfunc (r *queryResolver) Todos(ctx context.Context) ([]*Todo, error) {\n\treturn r.todos, nil\n}\n\n// Mutation returns MutationResolver implementation.\nfunc (r *Resolver) Mutation() MutationResolver { return &mutationResolver{r} }\n\n// Query returns QueryResolver implementation.\nfunc (r *Resolver) Query() QueryResolver { return &queryResolver{r} }\n\ntype mutationResolver struct{ *Resolver }\ntype queryResolver struct{ *Resolver }\n"
  },
  {
    "path": "_examples/config/server/server.go",
    "content": "package main\n\nimport (\n\t\"log\"\n\t\"net/http\"\n\n\ttodo \"github.com/99designs/gqlgen/_examples/config\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/graphql/playground\"\n)\n\nfunc main() {\n\tsrv := handler.New(\n\t\ttodo.NewExecutableSchema(todo.New()),\n\t)\n\tsrv.AddTransport(transport.GET{})\n\tsrv.AddTransport(transport.POST{})\n\n\thttp.Handle(\"/\", playground.Handler(\"Todo\", \"/query\"))\n\thttp.Handle(\"/query\", srv)\n\tlog.Fatal(http.ListenAndServe(\":8081\", nil))\n}\n"
  },
  {
    "path": "_examples/config/todo.graphql",
    "content": "type Todo {\n    id: ID! @goField(forceResolver: true)\n    databaseId: Int!\n    text: String!\n    done: Boolean!\n    user: User!\n    query: Query!\n    mutation: Mutation!\n}\n\ninput NewTodo {\n    text: String!\n    userId: String!\n}\n"
  },
  {
    "path": "_examples/config/todo.resolvers.go",
    "content": "package config\n\n// This file will be automatically regenerated based on the schema, any resolver\n// implementations\n// will be copied through when generating and any unknown code will be moved to the end.\n// Code generated by github.com/99designs/gqlgen version v0.17.88-dev\n\nimport (\n\t\"context\"\n\t\"fmt\"\n)\n\n// ID is the resolver for the id field.\nfunc (r *todoResolver) ID(ctx context.Context, obj *Todo) (string, error) {\n\tif obj.ID != \"\" {\n\t\treturn obj.ID, nil\n\t}\n\n\tobj.ID = fmt.Sprintf(\"TODO:%d\", obj.DatabaseID)\n\n\treturn obj.ID, nil\n}\n\n// Todo returns TodoResolver implementation.\nfunc (r *Resolver) Todo() TodoResolver { return &todoResolver{r} }\n\ntype todoResolver struct{ *Resolver }\n"
  },
  {
    "path": "_examples/config/user.graphql",
    "content": "type User\n@goModel(model:\"github.com/99designs/gqlgen/_examples/config.User\") {\n  id: ID!\n  name: String! @goField(name:\"FullName\")\n  role: role!\n}\n\ntype role\n@goModel(model:\"github.com/99designs/gqlgen/_examples/config.UserRole\") {\n    name: String!\n}\n"
  },
  {
    "path": "_examples/config/user.resolvers.go",
    "content": "package config\n\n// This file will be automatically regenerated based on the schema, any resolver\n// implementations\n// will be copied through when generating and any unknown code will be moved to the end.\n// Code generated by github.com/99designs/gqlgen version v0.17.88-dev\n\nimport (\n\t\"context\"\n)\n\n// Name is the resolver for the name field.\nfunc (r *roleResolver) Name(ctx context.Context, obj *UserRole) (string, error) {\n\tif obj == nil {\n\t\treturn \"\", nil\n\t}\n\treturn obj.RoleName, nil\n}\n\n// Role returns RoleResolver implementation.\nfunc (r *Resolver) Role() RoleResolver { return &roleResolver{r} }\n\ntype roleResolver struct{ *Resolver }\n"
  },
  {
    "path": "_examples/contextpropagation/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage contextpropagation\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"embed\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n}\n\ntype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\ntype ResolverRoot interface {\n\tQuery() QueryResolver\n\tTodoContext() TodoContextResolver\n}\n\ntype DirectiveRoot struct {\n\tWithContext func(ctx context.Context, obj any, next graphql.Resolver, value string) (res any, err error)\n}\n\ntype ComplexityRoot struct {\n\tQuery struct {\n\t\tTestTodo func(childComplexity int) int\n\t}\n\n\tTodo struct {\n\t\tContext func(childComplexity int) int\n\t\tText    func(childComplexity int) int\n\t}\n\n\tTodoContext struct {\n\t\tValue func(childComplexity int) int\n\t}\n}\n\ntype QueryResolver interface {\n\tTestTodo(ctx context.Context) (*Todo, error)\n}\ntype TodoContextResolver interface {\n\tValue(ctx context.Context, obj *TodoContext) (*string, error)\n}\n\ntype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.SchemaData != nil {\n\t\treturn e.SchemaData\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := newExecutionContext(nil, e, nil)\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"Query.testTodo\":\n\t\tif e.ComplexityRoot.Query.TestTodo == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.TestTodo(childComplexity), true\n\n\tcase \"Todo.context\":\n\t\tif e.ComplexityRoot.Todo.Context == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Todo.Context(childComplexity), true\n\tcase \"Todo.text\":\n\t\tif e.ComplexityRoot.Todo.Text == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Todo.Text(childComplexity), true\n\n\tcase \"TodoContext.value\":\n\t\tif e.ComplexityRoot.TodoContext.Value == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.TodoContext.Value(childComplexity), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap()\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\n//go:embed \"schema.graphql\"\nvar sourcesFS embed.FS\n\nfunc sourceData(filename string) string {\n\tdata, err := sourcesFS.ReadFile(filename)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"codegen problem: %s not available\", filename))\n\t}\n\treturn string(data)\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"schema.graphql\", Input: sourceData(\"schema.graphql\"), BuiltIn: false},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) dir_withContext_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"value\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"value\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Query_testTodo(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_testTodo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().TestTodo(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tvalue, err := ec.unmarshalNString2string(ctx, \"Some value\")\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal *Todo\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tif ec.Directives.WithContext == nil {\n\t\t\t\t\tvar zeroVal *Todo\n\t\t\t\t\treturn zeroVal, errors.New(\"directive withContext is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.WithContext(ctx, nil, directive0, value)\n\t\t\t}\n\n\t\t\tnext = directive1\n\t\t\treturn next\n\t\t},\n\t\tec.marshalNTodo2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋcontextpropagationᚐTodo,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_testTodo(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"text\":\n\t\t\t\treturn ec.fieldContext_Todo_text(ctx, field)\n\t\t\tcase \"context\":\n\t\t\t\treturn ec.fieldContext_Todo_context(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Todo\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.IntrospectType(fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___schema,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.IntrospectSchema()\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Todo_text(ctx context.Context, field graphql.CollectedField, obj *Todo) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Todo_text,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Text, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Todo_text(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Todo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Todo_context(ctx context.Context, field graphql.CollectedField, obj *Todo) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Todo_context,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Context, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNTodoContext2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋcontextpropagationᚐTodoContext,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Todo_context(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Todo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"value\":\n\t\t\t\treturn ec.fieldContext_TodoContext_value(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type TodoContext\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _TodoContext_value(ctx context.Context, field graphql.CollectedField, obj *TodoContext) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_TodoContext_value,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.TodoContext().Value(ctx, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_TodoContext_value(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"TodoContext\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_isRepeatable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsRepeatable, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_locations,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Locations, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__DirectiveLocation2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_defaultValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DefaultValue, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_types,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Types(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_queryType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.QueryType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_mutationType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.MutationType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_subscriptionType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SubscriptionType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_directives,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Directives(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_kind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Kind(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__TypeKind2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_specifiedByURL,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SpecifiedByURL(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_fields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_interfaces,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Interfaces(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_possibleTypes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PossibleTypes(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_enumValues,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_inputFields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.InputFields(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_ofType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.OfType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_isOneOf,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsOneOf(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOBoolean2bool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"testTodo\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_testTodo(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar todoImplementors = []string{\"Todo\"}\n\nfunc (ec *executionContext) _Todo(ctx context.Context, sel ast.SelectionSet, obj *Todo) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, todoImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Todo\")\n\t\tcase \"text\":\n\t\t\tout.Values[i] = ec._Todo_text(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"context\":\n\t\t\tout.Values[i] = ec._Todo_context(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar todoContextImplementors = []string{\"TodoContext\"}\n\nfunc (ec *executionContext) _TodoContext(ctx context.Context, sel ast.SelectionSet, obj *TodoContext) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, todoContextImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"TodoContext\")\n\t\tcase \"value\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._TodoContext_value(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNTodo2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋcontextpropagationᚐTodo(ctx context.Context, sel ast.SelectionSet, v Todo) graphql.Marshaler {\n\treturn ec._Todo(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNTodo2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋcontextpropagationᚐTodo(ctx context.Context, sel ast.SelectionSet, v *Todo) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Todo(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNTodoContext2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋcontextpropagationᚐTodoContext(ctx context.Context, sel ast.SelectionSet, v *TodoContext) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._TodoContext(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "_examples/contextpropagation/gqlgen.yml",
    "content": "exec:\n    filename: generated.go\nmodel:\n    filename: models_gen.go\n"
  },
  {
    "path": "_examples/contextpropagation/models_gen.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage contextpropagation\n\ntype Query struct {\n}\n\ntype Todo struct {\n\tText    string       `json:\"text\"`\n\tContext *TodoContext `json:\"context\"`\n}\n\ntype TodoContext struct {\n\tValue *string `json:\"value,omitempty\"`\n}\n"
  },
  {
    "path": "_examples/contextpropagation/schema.graphql",
    "content": "directive @goField(\n    forceResolver: Boolean\n    name: String\n    omittable: Boolean\n    type: String\n) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION\n\ndirective @withContext(value: String!) on FIELD_DEFINITION\n\ntype Query {\n    testTodo: Todo! @withContext(value: \"Some value\")\n}\n\ntype Todo {\n    text: String!\n    context: TodoContext!\n}\n\ntype TodoContext {\n    value: String @goField(forceResolver: true)\n}\n"
  },
  {
    "path": "_examples/contextpropagation/todo.go",
    "content": "//go:generate go run ../../testdata/gqlgen.go\n\npackage contextpropagation\n\nimport (\n\t\"context\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\ntype ctxKey string\n\nfunc getTodoContext(ctx context.Context) *string {\n\tif value, ok := ctx.Value(ctxKey(\"todoContext\")).(string); ok {\n\t\treturn &value\n\t}\n\treturn nil\n}\n\nfunc New() Config {\n\tc := Config{\n\t\tResolvers: new(Resolver),\n\t}\n\tc.Directives.WithContext = func(ctx context.Context, obj any, next graphql.Resolver, value string) (any, error) {\n\t\treturn next(context.WithValue(ctx, ctxKey(\"todoContext\"), value))\n\t}\n\treturn c\n}\n\ntype Resolver struct{}\n\nfunc (r *Resolver) Query() QueryResolver {\n\treturn r\n}\n\nfunc (r *Resolver) TodoContext() TodoContextResolver {\n\treturn r\n}\n\nfunc (r *Resolver) TestTodo(ctx context.Context) (*Todo, error) {\n\treturn &Todo{Text: \"Test\", Context: new(TodoContext)}, nil\n}\n\nfunc (r *Resolver) Value(ctx context.Context, obj *TodoContext) (*string, error) {\n\treturn getTodoContext(ctx), nil\n}\n"
  },
  {
    "path": "_examples/contextpropagation/todo_test.go",
    "content": "package contextpropagation\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/extension\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestTodo(t *testing.T) {\n\tsrv := handler.New(NewExecutableSchema(New()))\n\tsrv.AddTransport(transport.POST{})\n\tsrv.Use(extension.Introspection{})\n\tc := client.New(srv)\n\n\tvar resp struct {\n\t\tTestTodo struct {\n\t\t\tText    string\n\t\t\tContext struct {\n\t\t\t\tValue *string\n\t\t\t}\n\t\t}\n\t}\n\tc.MustPost(`{ testTodo { text context { value } } }`, &resp)\n\n\trequire.Equal(t, \"Test\", resp.TestTodo.Text)\n\trequire.NotNil(t, resp.TestTodo.Context.Value)\n\trequire.Equal(t, \"Some value\", *resp.TestTodo.Context.Value)\n}\n"
  },
  {
    "path": "_examples/dataloader/.gqlgen.yml",
    "content": "models:\n  Order:\n    model: github.com/99designs/gqlgen/_examples/dataloader.Order\n  Customer:\n    model: github.com/99designs/gqlgen/_examples/dataloader.Customer\n"
  },
  {
    "path": "_examples/dataloader/addressloader_gen.go",
    "content": "// Code generated by github.com/vektah/dataloaden, DO NOT EDIT.\n\npackage dataloader\n\nimport (\n\t\"sync\"\n\t\"time\"\n)\n\n// AddressLoaderConfig captures the config to create a new AddressLoader\ntype AddressLoaderConfig struct {\n\t// Fetch is a method that provides the data for the loader\n\tFetch func(keys []int) ([]*Address, []error)\n\n\t// Wait is how long wait before sending a batch\n\tWait time.Duration\n\n\t// MaxBatch will limit the maximum number of keys to send in one batch, 0 = not limit\n\tMaxBatch int\n}\n\n// NewAddressLoader creates a new AddressLoader given a fetch, wait, and maxBatch\nfunc NewAddressLoader(config AddressLoaderConfig) *AddressLoader {\n\treturn &AddressLoader{\n\t\tfetch:    config.Fetch,\n\t\twait:     config.Wait,\n\t\tmaxBatch: config.MaxBatch,\n\t}\n}\n\n// AddressLoader batches and caches requests\ntype AddressLoader struct {\n\t// this method provides the data for the loader\n\tfetch func(keys []int) ([]*Address, []error)\n\n\t// how long to done before sending a batch\n\twait time.Duration\n\n\t// this will limit the maximum number of keys to send in one batch, 0 = no limit\n\tmaxBatch int\n\n\t// INTERNAL\n\n\t// lazily created cache\n\tcache map[int]*Address\n\n\t// the current batch. keys will continue to be collected until timeout is hit,\n\t// then everything will be sent to the fetch method and out to the listeners\n\tbatch *addressLoaderBatch\n\n\t// mutex to prevent races\n\tmu sync.Mutex\n}\n\ntype addressLoaderBatch struct {\n\tkeys    []int\n\tdata    []*Address\n\terror   []error\n\tclosing bool\n\tdone    chan struct{}\n}\n\n// Load a Address by key, batching and caching will be applied automatically\nfunc (l *AddressLoader) Load(key int) (*Address, error) {\n\treturn l.LoadThunk(key)()\n}\n\n// LoadThunk returns a function that when called will block waiting for a Address.\n// This method should be used if you want one goroutine to make requests to many\n// different data loaders without blocking until the thunk is called.\nfunc (l *AddressLoader) LoadThunk(key int) func() (*Address, error) {\n\tl.mu.Lock()\n\tif it, ok := l.cache[key]; ok {\n\t\tl.mu.Unlock()\n\t\treturn func() (*Address, error) {\n\t\t\treturn it, nil\n\t\t}\n\t}\n\tif l.batch == nil {\n\t\tl.batch = &addressLoaderBatch{done: make(chan struct{})}\n\t}\n\tbatch := l.batch\n\tpos := batch.keyIndex(l, key)\n\tl.mu.Unlock()\n\n\treturn func() (*Address, error) {\n\t\t<-batch.done\n\n\t\tvar data *Address\n\t\tif pos < len(batch.data) {\n\t\t\tdata = batch.data[pos]\n\t\t}\n\n\t\tvar err error\n\t\t// its convenient to be able to return a single error for everything\n\t\tif len(batch.error) == 1 {\n\t\t\terr = batch.error[0]\n\t\t} else if batch.error != nil {\n\t\t\terr = batch.error[pos]\n\t\t}\n\n\t\tif err == nil {\n\t\t\tl.mu.Lock()\n\t\t\tl.unsafeSet(key, data)\n\t\t\tl.mu.Unlock()\n\t\t}\n\n\t\treturn data, err\n\t}\n}\n\n// LoadAll fetches many keys at once. It will be broken into appropriate sized\n// sub batches depending on how the loader is configured\nfunc (l *AddressLoader) LoadAll(keys []int) ([]*Address, []error) {\n\tresults := make([]func() (*Address, error), len(keys))\n\n\tfor i, key := range keys {\n\t\tresults[i] = l.LoadThunk(key)\n\t}\n\n\taddresss := make([]*Address, len(keys))\n\terrors := make([]error, len(keys))\n\tfor i, thunk := range results {\n\t\taddresss[i], errors[i] = thunk()\n\t}\n\treturn addresss, errors\n}\n\n// LoadAllThunk returns a function that when called will block waiting for a Addresss.\n// This method should be used if you want one goroutine to make requests to many\n// different data loaders without blocking until the thunk is called.\nfunc (l *AddressLoader) LoadAllThunk(keys []int) func() ([]*Address, []error) {\n\tresults := make([]func() (*Address, error), len(keys))\n\tfor i, key := range keys {\n\t\tresults[i] = l.LoadThunk(key)\n\t}\n\treturn func() ([]*Address, []error) {\n\t\taddresss := make([]*Address, len(keys))\n\t\terrors := make([]error, len(keys))\n\t\tfor i, thunk := range results {\n\t\t\taddresss[i], errors[i] = thunk()\n\t\t}\n\t\treturn addresss, errors\n\t}\n}\n\n// Prime the cache with the provided key and value. If the key already exists, no change is made\n// and false is returned.\n// (To forcefully prime the cache, clear the key first with loader.clear(key).prime(key, value).)\nfunc (l *AddressLoader) Prime(key int, value *Address) bool {\n\tl.mu.Lock()\n\tvar found bool\n\tif _, found = l.cache[key]; !found {\n\t\t// make a copy when writing to the cache, its easy to pass a pointer in from a loop var\n\t\t// and end up with the whole cache pointing to the same value.\n\t\tcpy := *value\n\t\tl.unsafeSet(key, &cpy)\n\t}\n\tl.mu.Unlock()\n\treturn !found\n}\n\n// Clear the value at key from the cache, if it exists\nfunc (l *AddressLoader) Clear(key int) {\n\tl.mu.Lock()\n\tdelete(l.cache, key)\n\tl.mu.Unlock()\n}\n\nfunc (l *AddressLoader) unsafeSet(key int, value *Address) {\n\tif l.cache == nil {\n\t\tl.cache = map[int]*Address{}\n\t}\n\tl.cache[key] = value\n}\n\n// keyIndex will return the location of the key in the batch, if its not found\n// it will add the key to the batch\nfunc (b *addressLoaderBatch) keyIndex(l *AddressLoader, key int) int {\n\tfor i, existingKey := range b.keys {\n\t\tif key == existingKey {\n\t\t\treturn i\n\t\t}\n\t}\n\n\tpos := len(b.keys)\n\tb.keys = append(b.keys, key)\n\tif pos == 0 {\n\t\tgo b.startTimer(l)\n\t}\n\n\tif l.maxBatch != 0 && pos >= l.maxBatch-1 {\n\t\tif !b.closing {\n\t\t\tb.closing = true\n\t\t\tl.batch = nil\n\t\t\tgo b.end(l)\n\t\t}\n\t}\n\n\treturn pos\n}\n\nfunc (b *addressLoaderBatch) startTimer(l *AddressLoader) {\n\ttime.Sleep(l.wait)\n\tl.mu.Lock()\n\n\t// we must have hit a batch limit and are already finalizing this batch\n\tif b.closing {\n\t\tl.mu.Unlock()\n\t\treturn\n\t}\n\n\tl.batch = nil\n\tl.mu.Unlock()\n\n\tb.end(l)\n}\n\nfunc (b *addressLoaderBatch) end(l *AddressLoader) {\n\tb.data, b.error = l.fetch(b.keys)\n\tclose(b.done)\n}\n"
  },
  {
    "path": "_examples/dataloader/dataloader_test.go",
    "content": "package dataloader\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/extension\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n)\n\nfunc TestTodo(t *testing.T) {\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: &Resolver{}}))\n\tsrv.AddTransport(transport.POST{})\n\tsrv.Use(extension.Introspection{})\n\tc := client.New(LoaderMiddleware(srv))\n\n\tt.Run(\"create a new todo\", func(t *testing.T) {\n\t\tvar resp any\n\t\tc.MustPost(`{\n\t\t  customers {\n\t\t\tname\n\t\t\taddress {\n\t\t\t  street\n\n\t\t\t}\n\t\t\torders {\n\t\t\t  id\n              amount\n\t\t\t  items {\n\t\t\t\tname\n\t\t\t  }\n\t\t\t}\n\t\t  }\n\t\t}`, &resp)\n\t})\n\n\tt.Run(\"2d array marshaling\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tTorture2d [][]Customer\n\t\t}\n\t\tc.MustPost(`{ torture2d(customerIds:[[1,2],[3,4,5]]) { id name } }`, &resp)\n\n\t\trequire.EqualValues(t, [][]Customer{\n\t\t\t{{ID: 1, Name: \"0 0\"}, {ID: 2, Name: \"0 1\"}},\n\t\t\t{{ID: 3, Name: \"1 0\"}, {ID: 4, Name: \"1 1\"}, {ID: 5, Name: \"1 2\"}},\n\t\t}, resp.Torture2d)\n\t})\n\n\t// Input coercion on arrays should convert non array values into an array of the appropriate\n\t// depth\n\t// http://facebook.github.io/graphql/June2018/#sec-Type-System.List\n\tt.Run(\"array coercion\", func(t *testing.T) {\n\t\tt.Run(\"1d\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tTorture1d []Customer\n\t\t\t}\n\t\t\tc.MustPost(`{ torture1d(customerIds: 1) { id name } }`, &resp)\n\n\t\t\trequire.EqualValues(t, []Customer{\n\t\t\t\t{ID: 1, Name: \"0\"},\n\t\t\t}, resp.Torture1d)\n\t\t})\n\n\t\tt.Run(\"2d\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tTorture2d [][]Customer\n\t\t\t}\n\t\t\tc.MustPost(`{ torture2d(customerIds: 1) { id name } }`, &resp)\n\n\t\t\trequire.EqualValues(t, [][]Customer{\n\t\t\t\t{{ID: 1, Name: \"0 0\"}},\n\t\t\t}, resp.Torture2d)\n\t\t})\n\t})\n\n\tt.Run(\"introspection\", func(t *testing.T) {\n\t\t// Make sure we can run the graphiql introspection query without errors\n\t\tvar resp any\n\t\tc.MustPost(introspection.Query, &resp)\n\t})\n\n\tt.Run(\"customer array torture malformed array query\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tTorture [][]Customer\n\t\t}\n\t\terr := c.Post(`{ torture2d(customerIds:{}) { id name } }`, &resp)\n\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t\"[{\\\"message\\\":\\\"map[string]interface {} is not an int\\\",\\\"path\\\":[\\\"torture2d\\\",\\\"customerIds\\\",0,0]}]\",\n\t\t)\n\t})\n}\n"
  },
  {
    "path": "_examples/dataloader/dataloaders.go",
    "content": "//go:generate go run github.com/vektah/dataloaden AddressLoader int *github.com/99designs/gqlgen/_examples/dataloader.Address\n//go:generate go run github.com/vektah/dataloaden OrderSliceLoader int []*github.com/99designs/gqlgen/_examples/dataloader.Order\n//go:generate go run github.com/vektah/dataloaden ItemSliceLoader int []*github.com/99designs/gqlgen/_examples/dataloader.Item\n\npackage dataloader\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"math/rand\"\n\t\"net/http\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n)\n\ntype ctxKeyType struct{ name string }\n\nvar ctxKey = ctxKeyType{\"userCtx\"}\n\ntype loaders struct {\n\taddressByID      *AddressLoader\n\tordersByCustomer *OrderSliceLoader\n\titemsByOrder     *ItemSliceLoader\n}\n\n//nolint:gosec\nfunc LoaderMiddleware(next http.Handler) http.Handler {\n\treturn http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {\n\t\tldrs := loaders{}\n\n\t\t// set this to zero what happens without dataloading\n\t\twait := 250 * time.Microsecond\n\n\t\t// simple 1:1 loader, fetch an address by its primary key\n\t\tldrs.addressByID = &AddressLoader{\n\t\t\twait:     wait,\n\t\t\tmaxBatch: 100,\n\t\t\tfetch: func(keys []int) ([]*Address, []error) {\n\t\t\t\tvar keySql []string\n\t\t\t\tfor _, key := range keys {\n\t\t\t\t\tkeySql = append(keySql, strconv.Itoa(key))\n\t\t\t\t}\n\n\t\t\t\tfmt.Printf(\"SELECT * FROM address WHERE id IN (%s)\\n\", strings.Join(keySql, \",\"))\n\t\t\t\ttime.Sleep(5 * time.Millisecond)\n\n\t\t\t\taddresses := make([]*Address, len(keys))\n\t\t\t\terrors := make([]error, len(keys))\n\t\t\t\tfor i, key := range keys {\n\t\t\t\t\taddresses[i] = &Address{\n\t\t\t\t\t\tStreet:  \"home street\",\n\t\t\t\t\t\tCountry: \"hometon \" + strconv.Itoa(key),\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn addresses, errors\n\t\t\t},\n\t\t}\n\n\t\t// 1:M loader\n\t\tldrs.ordersByCustomer = &OrderSliceLoader{\n\t\t\twait:     wait,\n\t\t\tmaxBatch: 100,\n\t\t\tfetch: func(keys []int) ([][]*Order, []error) {\n\t\t\t\tvar keySql []string\n\t\t\t\tfor _, key := range keys {\n\t\t\t\t\tkeySql = append(keySql, strconv.Itoa(key))\n\t\t\t\t}\n\n\t\t\t\tfmt.Printf(\n\t\t\t\t\t\"SELECT * FROM orders WHERE customer_id IN (%s)\\n\",\n\t\t\t\t\tstrings.Join(keySql, \",\"),\n\t\t\t\t)\n\t\t\t\ttime.Sleep(5 * time.Millisecond)\n\n\t\t\t\torders := make([][]*Order, len(keys))\n\t\t\t\terrors := make([]error, len(keys))\n\t\t\t\tfor i, key := range keys {\n\t\t\t\t\tid := 10 + rand.Int()%3\n\t\t\t\t\torders[i] = []*Order{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tID:     id,\n\t\t\t\t\t\t\tAmount: rand.Float64(),\n\t\t\t\t\t\t\tDate:   time.Now().Add(-time.Duration(key) * time.Hour),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tID:     id + 1,\n\t\t\t\t\t\t\tAmount: rand.Float64(),\n\t\t\t\t\t\t\tDate:   time.Now().Add(-time.Duration(key) * time.Hour),\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\n\t\t\t\t\t// if you had another customer loader you would prime its cache here\n\t\t\t\t\t// by calling `ldrs.ordersByID.Prime(id, orders[i])`\n\t\t\t\t}\n\n\t\t\t\treturn orders, errors\n\t\t\t},\n\t\t}\n\n\t\t// M:M loader\n\t\tldrs.itemsByOrder = &ItemSliceLoader{\n\t\t\twait:     wait,\n\t\t\tmaxBatch: 100,\n\t\t\tfetch: func(keys []int) ([][]*Item, []error) {\n\t\t\t\tvar keySql []string\n\t\t\t\tfor _, key := range keys {\n\t\t\t\t\tkeySql = append(keySql, strconv.Itoa(key))\n\t\t\t\t}\n\n\t\t\t\tfmt.Printf(\n\t\t\t\t\t\"SELECT * FROM items JOIN item_order WHERE item_order.order_id IN (%s)\\n\",\n\t\t\t\t\tstrings.Join(keySql, \",\"),\n\t\t\t\t)\n\t\t\t\ttime.Sleep(5 * time.Millisecond)\n\n\t\t\t\titems := make([][]*Item, len(keys))\n\t\t\t\terrors := make([]error, len(keys))\n\t\t\t\tfor i := range keys {\n\t\t\t\t\titems[i] = []*Item{\n\t\t\t\t\t\t{Name: \"item \" + strconv.Itoa(rand.Int()%20+20)},\n\t\t\t\t\t\t{Name: \"item \" + strconv.Itoa(rand.Int()%20+20)},\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn items, errors\n\t\t\t},\n\t\t}\n\n\t\tdlCtx := context.WithValue(r.Context(), ctxKey, ldrs)\n\t\tnext.ServeHTTP(w, r.WithContext(dlCtx))\n\t})\n}\n\nfunc ctxLoaders(ctx context.Context) loaders {\n\treturn ctx.Value(ctxKey).(loaders)\n}\n"
  },
  {
    "path": "_examples/dataloader/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage dataloader\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"embed\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n}\n\ntype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\ntype ResolverRoot interface {\n\tCustomer() CustomerResolver\n\tOrder() OrderResolver\n\tQuery() QueryResolver\n}\n\ntype DirectiveRoot struct {\n}\n\ntype ComplexityRoot struct {\n\tAddress struct {\n\t\tCountry func(childComplexity int) int\n\t\tID      func(childComplexity int) int\n\t\tStreet  func(childComplexity int) int\n\t}\n\n\tCustomer struct {\n\t\tAddress func(childComplexity int) int\n\t\tID      func(childComplexity int) int\n\t\tName    func(childComplexity int) int\n\t\tOrders  func(childComplexity int) int\n\t}\n\n\tItem struct {\n\t\tName func(childComplexity int) int\n\t}\n\n\tOrder struct {\n\t\tAmount func(childComplexity int) int\n\t\tDate   func(childComplexity int) int\n\t\tID     func(childComplexity int) int\n\t\tItems  func(childComplexity int) int\n\t}\n\n\tQuery struct {\n\t\tCustomers func(childComplexity int) int\n\t\tTorture1d func(childComplexity int, customerIds []int) int\n\t\tTorture2d func(childComplexity int, customerIds [][]int) int\n\t}\n}\n\ntype CustomerResolver interface {\n\tAddress(ctx context.Context, obj *Customer) (*Address, error)\n\tOrders(ctx context.Context, obj *Customer) ([]*Order, error)\n}\ntype OrderResolver interface {\n\tItems(ctx context.Context, obj *Order) ([]*Item, error)\n}\ntype QueryResolver interface {\n\tCustomers(ctx context.Context) ([]*Customer, error)\n\tTorture1d(ctx context.Context, customerIds []int) ([]*Customer, error)\n\tTorture2d(ctx context.Context, customerIds [][]int) ([][]*Customer, error)\n}\n\ntype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.SchemaData != nil {\n\t\treturn e.SchemaData\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := newExecutionContext(nil, e, nil)\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"Address.country\":\n\t\tif e.ComplexityRoot.Address.Country == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Address.Country(childComplexity), true\n\tcase \"Address.id\":\n\t\tif e.ComplexityRoot.Address.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Address.ID(childComplexity), true\n\tcase \"Address.street\":\n\t\tif e.ComplexityRoot.Address.Street == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Address.Street(childComplexity), true\n\n\tcase \"Customer.address\":\n\t\tif e.ComplexityRoot.Customer.Address == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Customer.Address(childComplexity), true\n\tcase \"Customer.id\":\n\t\tif e.ComplexityRoot.Customer.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Customer.ID(childComplexity), true\n\tcase \"Customer.name\":\n\t\tif e.ComplexityRoot.Customer.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Customer.Name(childComplexity), true\n\tcase \"Customer.orders\":\n\t\tif e.ComplexityRoot.Customer.Orders == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Customer.Orders(childComplexity), true\n\n\tcase \"Item.name\":\n\t\tif e.ComplexityRoot.Item.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Item.Name(childComplexity), true\n\n\tcase \"Order.amount\":\n\t\tif e.ComplexityRoot.Order.Amount == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Order.Amount(childComplexity), true\n\tcase \"Order.date\":\n\t\tif e.ComplexityRoot.Order.Date == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Order.Date(childComplexity), true\n\tcase \"Order.id\":\n\t\tif e.ComplexityRoot.Order.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Order.ID(childComplexity), true\n\tcase \"Order.items\":\n\t\tif e.ComplexityRoot.Order.Items == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Order.Items(childComplexity), true\n\n\tcase \"Query.customers\":\n\t\tif e.ComplexityRoot.Query.Customers == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Customers(childComplexity), true\n\n\tcase \"Query.torture1d\":\n\t\tif e.ComplexityRoot.Query.Torture1d == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_torture1d_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Torture1d(childComplexity, args[\"customerIds\"].([]int)), true\n\tcase \"Query.torture2d\":\n\t\tif e.ComplexityRoot.Query.Torture2d == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_torture2d_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Torture2d(childComplexity, args[\"customerIds\"].([][]int)), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap()\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\n//go:embed \"schema.graphql\"\nvar sourcesFS embed.FS\n\nfunc sourceData(filename string) string {\n\tdata, err := sourcesFS.ReadFile(filename)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"codegen problem: %s not available\", filename))\n\t}\n\treturn string(data)\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"schema.graphql\", Input: sourceData(\"schema.graphql\"), BuiltIn: false},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_torture1d_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"customerIds\", ec.unmarshalOInt2ᚕintᚄ)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"customerIds\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_torture2d_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"customerIds\", ec.unmarshalOInt2ᚕᚕint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"customerIds\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Address_id(ctx context.Context, field graphql.CollectedField, obj *Address) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Address_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Address_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Address\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Address_street(ctx context.Context, field graphql.CollectedField, obj *Address) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Address_street,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Street, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Address_street(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Address\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Address_country(ctx context.Context, field graphql.CollectedField, obj *Address) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Address_country,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Country, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Address_country(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Address\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Customer_id(ctx context.Context, field graphql.CollectedField, obj *Customer) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Customer_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Customer_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Customer\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Customer_name(ctx context.Context, field graphql.CollectedField, obj *Customer) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Customer_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Customer_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Customer\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Customer_address(ctx context.Context, field graphql.CollectedField, obj *Customer) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Customer_address,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Customer().Address(ctx, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalOAddress2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋdataloaderᚐAddress,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Customer_address(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Customer\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Address_id(ctx, field)\n\t\t\tcase \"street\":\n\t\t\t\treturn ec.fieldContext_Address_street(ctx, field)\n\t\t\tcase \"country\":\n\t\t\t\treturn ec.fieldContext_Address_country(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Address\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Customer_orders(ctx context.Context, field graphql.CollectedField, obj *Customer) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Customer_orders,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Customer().Orders(ctx, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalOOrder2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋdataloaderᚐOrderᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Customer_orders(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Customer\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Order_id(ctx, field)\n\t\t\tcase \"date\":\n\t\t\t\treturn ec.fieldContext_Order_date(ctx, field)\n\t\t\tcase \"amount\":\n\t\t\t\treturn ec.fieldContext_Order_amount(ctx, field)\n\t\t\tcase \"items\":\n\t\t\t\treturn ec.fieldContext_Order_items(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Order\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Item_name(ctx context.Context, field graphql.CollectedField, obj *Item) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Item_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Item_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Item\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Order_id(ctx context.Context, field graphql.CollectedField, obj *Order) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Order_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Order_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Order\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Order_date(ctx context.Context, field graphql.CollectedField, obj *Order) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Order_date,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Date, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNTime2timeᚐTime,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Order_date(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Order\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Time does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Order_amount(ctx context.Context, field graphql.CollectedField, obj *Order) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Order_amount,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Amount, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNFloat2float64,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Order_amount(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Order\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Float does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Order_items(ctx context.Context, field graphql.CollectedField, obj *Order) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Order_items,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Order().Items(ctx, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalOItem2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋdataloaderᚐItemᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Order_items(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Order\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_Item_name(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Item\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_customers(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_customers,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Customers(ctx)\n\t\t},\n\t\tnil,\n\t\tec.marshalOCustomer2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋdataloaderᚐCustomerᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_customers(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Customer_id(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_Customer_name(ctx, field)\n\t\t\tcase \"address\":\n\t\t\t\treturn ec.fieldContext_Customer_address(ctx, field)\n\t\t\tcase \"orders\":\n\t\t\t\treturn ec.fieldContext_Customer_orders(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Customer\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_torture1d(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_torture1d,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().Torture1d(ctx, fc.Args[\"customerIds\"].([]int))\n\t\t},\n\t\tnil,\n\t\tec.marshalOCustomer2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋdataloaderᚐCustomerᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_torture1d(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Customer_id(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_Customer_name(ctx, field)\n\t\t\tcase \"address\":\n\t\t\t\treturn ec.fieldContext_Customer_address(ctx, field)\n\t\t\tcase \"orders\":\n\t\t\t\treturn ec.fieldContext_Customer_orders(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Customer\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_torture1d_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_torture2d(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_torture2d,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().Torture2d(ctx, fc.Args[\"customerIds\"].([][]int))\n\t\t},\n\t\tnil,\n\t\tec.marshalOCustomer2ᚕᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋdataloaderᚐCustomer,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_torture2d(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Customer_id(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_Customer_name(ctx, field)\n\t\t\tcase \"address\":\n\t\t\t\treturn ec.fieldContext_Customer_address(ctx, field)\n\t\t\tcase \"orders\":\n\t\t\t\treturn ec.fieldContext_Customer_orders(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Customer\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_torture2d_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.IntrospectType(fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___schema,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.IntrospectSchema()\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_isRepeatable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsRepeatable, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_locations,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Locations, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__DirectiveLocation2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_defaultValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DefaultValue, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_types,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Types(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_queryType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.QueryType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_mutationType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.MutationType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_subscriptionType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SubscriptionType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_directives,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Directives(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_kind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Kind(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__TypeKind2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_specifiedByURL,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SpecifiedByURL(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_fields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_interfaces,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Interfaces(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_possibleTypes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PossibleTypes(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_enumValues,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_inputFields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.InputFields(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_ofType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.OfType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_isOneOf,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsOneOf(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOBoolean2bool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar addressImplementors = []string{\"Address\"}\n\nfunc (ec *executionContext) _Address(ctx context.Context, sel ast.SelectionSet, obj *Address) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, addressImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Address\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._Address_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"street\":\n\t\t\tout.Values[i] = ec._Address_street(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"country\":\n\t\t\tout.Values[i] = ec._Address_country(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar customerImplementors = []string{\"Customer\"}\n\nfunc (ec *executionContext) _Customer(ctx context.Context, sel ast.SelectionSet, obj *Customer) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, customerImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Customer\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._Customer_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._Customer_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"address\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Customer_address(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"orders\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Customer_orders(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar itemImplementors = []string{\"Item\"}\n\nfunc (ec *executionContext) _Item(ctx context.Context, sel ast.SelectionSet, obj *Item) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, itemImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Item\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._Item_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar orderImplementors = []string{\"Order\"}\n\nfunc (ec *executionContext) _Order(ctx context.Context, sel ast.SelectionSet, obj *Order) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, orderImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Order\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._Order_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"date\":\n\t\t\tout.Values[i] = ec._Order_date(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"amount\":\n\t\t\tout.Values[i] = ec._Order_amount(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"items\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Order_items(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"customers\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_customers(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"torture1d\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_torture1d(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"torture2d\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_torture2d(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNCustomer2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋdataloaderᚐCustomer(ctx context.Context, sel ast.SelectionSet, v *Customer) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Customer(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNFloat2float64(ctx context.Context, v any) (float64, error) {\n\tres, err := graphql.UnmarshalFloatContext(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNFloat2float64(ctx context.Context, sel ast.SelectionSet, v float64) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalFloatContext(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn graphql.WrapContextMarshaler(ctx, res)\n}\n\nfunc (ec *executionContext) unmarshalNInt2int(ctx context.Context, v any) (int, error) {\n\tres, err := graphql.UnmarshalInt(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNInt2int(ctx context.Context, sel ast.SelectionSet, v int) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalInt(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNItem2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋdataloaderᚐItem(ctx context.Context, sel ast.SelectionSet, v *Item) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Item(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNOrder2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋdataloaderᚐOrder(ctx context.Context, sel ast.SelectionSet, v *Order) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Order(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNTime2timeᚐTime(ctx context.Context, v any) (time.Time, error) {\n\tres, err := graphql.UnmarshalTime(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNTime2timeᚐTime(ctx context.Context, sel ast.SelectionSet, v time.Time) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalTime(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalOAddress2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋdataloaderᚐAddress(ctx context.Context, sel ast.SelectionSet, v *Address) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Address(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalOCustomer2ᚕᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋdataloaderᚐCustomer(ctx context.Context, sel ast.SelectionSet, v [][]*Customer) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalOCustomer2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋdataloaderᚐCustomerᚄ(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOCustomer2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋdataloaderᚐCustomerᚄ(ctx context.Context, sel ast.SelectionSet, v []*Customer) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNCustomer2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋdataloaderᚐCustomer(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalOInt2ᚕintᚄ(ctx context.Context, v any) ([]int, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]int, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNInt2int(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalOInt2ᚕintᚄ(ctx context.Context, sel ast.SelectionSet, v []int) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNInt2int(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalOInt2ᚕᚕint(ctx context.Context, v any) ([][]int, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([][]int, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalOInt2ᚕintᚄ(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalOInt2ᚕᚕint(ctx context.Context, sel ast.SelectionSet, v [][]int) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalOInt2ᚕintᚄ(ctx, sel, v[i])\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOItem2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋdataloaderᚐItemᚄ(ctx context.Context, sel ast.SelectionSet, v []*Item) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNItem2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋdataloaderᚐItem(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOOrder2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋdataloaderᚐOrderᚄ(ctx context.Context, sel ast.SelectionSet, v []*Order) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNOrder2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋdataloaderᚐOrder(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "_examples/dataloader/itemsliceloader_gen.go",
    "content": "// Code generated by github.com/vektah/dataloaden, DO NOT EDIT.\n\npackage dataloader\n\nimport (\n\t\"sync\"\n\t\"time\"\n)\n\n// ItemSliceLoaderConfig captures the config to create a new ItemSliceLoader\ntype ItemSliceLoaderConfig struct {\n\t// Fetch is a method that provides the data for the loader\n\tFetch func(keys []int) ([][]*Item, []error)\n\n\t// Wait is how long wait before sending a batch\n\tWait time.Duration\n\n\t// MaxBatch will limit the maximum number of keys to send in one batch, 0 = not limit\n\tMaxBatch int\n}\n\n// NewItemSliceLoader creates a new ItemSliceLoader given a fetch, wait, and maxBatch\nfunc NewItemSliceLoader(config ItemSliceLoaderConfig) *ItemSliceLoader {\n\treturn &ItemSliceLoader{\n\t\tfetch:    config.Fetch,\n\t\twait:     config.Wait,\n\t\tmaxBatch: config.MaxBatch,\n\t}\n}\n\n// ItemSliceLoader batches and caches requests\ntype ItemSliceLoader struct {\n\t// this method provides the data for the loader\n\tfetch func(keys []int) ([][]*Item, []error)\n\n\t// how long to done before sending a batch\n\twait time.Duration\n\n\t// this will limit the maximum number of keys to send in one batch, 0 = no limit\n\tmaxBatch int\n\n\t// INTERNAL\n\n\t// lazily created cache\n\tcache map[int][]*Item\n\n\t// the current batch. keys will continue to be collected until timeout is hit,\n\t// then everything will be sent to the fetch method and out to the listeners\n\tbatch *itemSliceLoaderBatch\n\n\t// mutex to prevent races\n\tmu sync.Mutex\n}\n\ntype itemSliceLoaderBatch struct {\n\tkeys    []int\n\tdata    [][]*Item\n\terror   []error\n\tclosing bool\n\tdone    chan struct{}\n}\n\n// Load a Item by key, batching and caching will be applied automatically\nfunc (l *ItemSliceLoader) Load(key int) ([]*Item, error) {\n\treturn l.LoadThunk(key)()\n}\n\n// LoadThunk returns a function that when called will block waiting for a Item.\n// This method should be used if you want one goroutine to make requests to many\n// different data loaders without blocking until the thunk is called.\nfunc (l *ItemSliceLoader) LoadThunk(key int) func() ([]*Item, error) {\n\tl.mu.Lock()\n\tif it, ok := l.cache[key]; ok {\n\t\tl.mu.Unlock()\n\t\treturn func() ([]*Item, error) {\n\t\t\treturn it, nil\n\t\t}\n\t}\n\tif l.batch == nil {\n\t\tl.batch = &itemSliceLoaderBatch{done: make(chan struct{})}\n\t}\n\tbatch := l.batch\n\tpos := batch.keyIndex(l, key)\n\tl.mu.Unlock()\n\n\treturn func() ([]*Item, error) {\n\t\t<-batch.done\n\n\t\tvar data []*Item\n\t\tif pos < len(batch.data) {\n\t\t\tdata = batch.data[pos]\n\t\t}\n\n\t\tvar err error\n\t\t// its convenient to be able to return a single error for everything\n\t\tif len(batch.error) == 1 {\n\t\t\terr = batch.error[0]\n\t\t} else if batch.error != nil {\n\t\t\terr = batch.error[pos]\n\t\t}\n\n\t\tif err == nil {\n\t\t\tl.mu.Lock()\n\t\t\tl.unsafeSet(key, data)\n\t\t\tl.mu.Unlock()\n\t\t}\n\n\t\treturn data, err\n\t}\n}\n\n// LoadAll fetches many keys at once. It will be broken into appropriate sized\n// sub batches depending on how the loader is configured\nfunc (l *ItemSliceLoader) LoadAll(keys []int) ([][]*Item, []error) {\n\tresults := make([]func() ([]*Item, error), len(keys))\n\n\tfor i, key := range keys {\n\t\tresults[i] = l.LoadThunk(key)\n\t}\n\n\titems := make([][]*Item, len(keys))\n\terrors := make([]error, len(keys))\n\tfor i, thunk := range results {\n\t\titems[i], errors[i] = thunk()\n\t}\n\treturn items, errors\n}\n\n// LoadAllThunk returns a function that when called will block waiting for a Items.\n// This method should be used if you want one goroutine to make requests to many\n// different data loaders without blocking until the thunk is called.\nfunc (l *ItemSliceLoader) LoadAllThunk(keys []int) func() ([][]*Item, []error) {\n\tresults := make([]func() ([]*Item, error), len(keys))\n\tfor i, key := range keys {\n\t\tresults[i] = l.LoadThunk(key)\n\t}\n\treturn func() ([][]*Item, []error) {\n\t\titems := make([][]*Item, len(keys))\n\t\terrors := make([]error, len(keys))\n\t\tfor i, thunk := range results {\n\t\t\titems[i], errors[i] = thunk()\n\t\t}\n\t\treturn items, errors\n\t}\n}\n\n// Prime the cache with the provided key and value. If the key already exists, no change is made\n// and false is returned.\n// (To forcefully prime the cache, clear the key first with loader.clear(key).prime(key, value).)\nfunc (l *ItemSliceLoader) Prime(key int, value []*Item) bool {\n\tl.mu.Lock()\n\tvar found bool\n\tif _, found = l.cache[key]; !found {\n\t\t// make a copy when writing to the cache, its easy to pass a pointer in from a loop var\n\t\t// and end up with the whole cache pointing to the same value.\n\t\tcpy := make([]*Item, len(value))\n\t\tcopy(cpy, value)\n\t\tl.unsafeSet(key, cpy)\n\t}\n\tl.mu.Unlock()\n\treturn !found\n}\n\n// Clear the value at key from the cache, if it exists\nfunc (l *ItemSliceLoader) Clear(key int) {\n\tl.mu.Lock()\n\tdelete(l.cache, key)\n\tl.mu.Unlock()\n}\n\nfunc (l *ItemSliceLoader) unsafeSet(key int, value []*Item) {\n\tif l.cache == nil {\n\t\tl.cache = map[int][]*Item{}\n\t}\n\tl.cache[key] = value\n}\n\n// keyIndex will return the location of the key in the batch, if its not found\n// it will add the key to the batch\nfunc (b *itemSliceLoaderBatch) keyIndex(l *ItemSliceLoader, key int) int {\n\tfor i, existingKey := range b.keys {\n\t\tif key == existingKey {\n\t\t\treturn i\n\t\t}\n\t}\n\n\tpos := len(b.keys)\n\tb.keys = append(b.keys, key)\n\tif pos == 0 {\n\t\tgo b.startTimer(l)\n\t}\n\n\tif l.maxBatch != 0 && pos >= l.maxBatch-1 {\n\t\tif !b.closing {\n\t\t\tb.closing = true\n\t\t\tl.batch = nil\n\t\t\tgo b.end(l)\n\t\t}\n\t}\n\n\treturn pos\n}\n\nfunc (b *itemSliceLoaderBatch) startTimer(l *ItemSliceLoader) {\n\ttime.Sleep(l.wait)\n\tl.mu.Lock()\n\n\t// we must have hit a batch limit and are already finalizing this batch\n\tif b.closing {\n\t\tl.mu.Unlock()\n\t\treturn\n\t}\n\n\tl.batch = nil\n\tl.mu.Unlock()\n\n\tb.end(l)\n}\n\nfunc (b *itemSliceLoaderBatch) end(l *ItemSliceLoader) {\n\tb.data, b.error = l.fetch(b.keys)\n\tclose(b.done)\n}\n"
  },
  {
    "path": "_examples/dataloader/models_gen.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage dataloader\n\ntype Address struct {\n\tID      int    `json:\"id\"`\n\tStreet  string `json:\"street\"`\n\tCountry string `json:\"country\"`\n}\n\ntype Item struct {\n\tName string `json:\"name\"`\n}\n\ntype Query struct {\n}\n"
  },
  {
    "path": "_examples/dataloader/ordersliceloader_gen.go",
    "content": "// Code generated by github.com/vektah/dataloaden, DO NOT EDIT.\n\npackage dataloader\n\nimport (\n\t\"sync\"\n\t\"time\"\n)\n\n// OrderSliceLoaderConfig captures the config to create a new OrderSliceLoader\ntype OrderSliceLoaderConfig struct {\n\t// Fetch is a method that provides the data for the loader\n\tFetch func(keys []int) ([][]*Order, []error)\n\n\t// Wait is how long wait before sending a batch\n\tWait time.Duration\n\n\t// MaxBatch will limit the maximum number of keys to send in one batch, 0 = not limit\n\tMaxBatch int\n}\n\n// NewOrderSliceLoader creates a new OrderSliceLoader given a fetch, wait, and maxBatch\nfunc NewOrderSliceLoader(config OrderSliceLoaderConfig) *OrderSliceLoader {\n\treturn &OrderSliceLoader{\n\t\tfetch:    config.Fetch,\n\t\twait:     config.Wait,\n\t\tmaxBatch: config.MaxBatch,\n\t}\n}\n\n// OrderSliceLoader batches and caches requests\ntype OrderSliceLoader struct {\n\t// this method provides the data for the loader\n\tfetch func(keys []int) ([][]*Order, []error)\n\n\t// how long to done before sending a batch\n\twait time.Duration\n\n\t// this will limit the maximum number of keys to send in one batch, 0 = no limit\n\tmaxBatch int\n\n\t// INTERNAL\n\n\t// lazily created cache\n\tcache map[int][]*Order\n\n\t// the current batch. keys will continue to be collected until timeout is hit,\n\t// then everything will be sent to the fetch method and out to the listeners\n\tbatch *orderSliceLoaderBatch\n\n\t// mutex to prevent races\n\tmu sync.Mutex\n}\n\ntype orderSliceLoaderBatch struct {\n\tkeys    []int\n\tdata    [][]*Order\n\terror   []error\n\tclosing bool\n\tdone    chan struct{}\n}\n\n// Load a Order by key, batching and caching will be applied automatically\nfunc (l *OrderSliceLoader) Load(key int) ([]*Order, error) {\n\treturn l.LoadThunk(key)()\n}\n\n// LoadThunk returns a function that when called will block waiting for a Order.\n// This method should be used if you want one goroutine to make requests to many\n// different data loaders without blocking until the thunk is called.\nfunc (l *OrderSliceLoader) LoadThunk(key int) func() ([]*Order, error) {\n\tl.mu.Lock()\n\tif it, ok := l.cache[key]; ok {\n\t\tl.mu.Unlock()\n\t\treturn func() ([]*Order, error) {\n\t\t\treturn it, nil\n\t\t}\n\t}\n\tif l.batch == nil {\n\t\tl.batch = &orderSliceLoaderBatch{done: make(chan struct{})}\n\t}\n\tbatch := l.batch\n\tpos := batch.keyIndex(l, key)\n\tl.mu.Unlock()\n\n\treturn func() ([]*Order, error) {\n\t\t<-batch.done\n\n\t\tvar data []*Order\n\t\tif pos < len(batch.data) {\n\t\t\tdata = batch.data[pos]\n\t\t}\n\n\t\tvar err error\n\t\t// its convenient to be able to return a single error for everything\n\t\tif len(batch.error) == 1 {\n\t\t\terr = batch.error[0]\n\t\t} else if batch.error != nil {\n\t\t\terr = batch.error[pos]\n\t\t}\n\n\t\tif err == nil {\n\t\t\tl.mu.Lock()\n\t\t\tl.unsafeSet(key, data)\n\t\t\tl.mu.Unlock()\n\t\t}\n\n\t\treturn data, err\n\t}\n}\n\n// LoadAll fetches many keys at once. It will be broken into appropriate sized\n// sub batches depending on how the loader is configured\nfunc (l *OrderSliceLoader) LoadAll(keys []int) ([][]*Order, []error) {\n\tresults := make([]func() ([]*Order, error), len(keys))\n\n\tfor i, key := range keys {\n\t\tresults[i] = l.LoadThunk(key)\n\t}\n\n\torders := make([][]*Order, len(keys))\n\terrors := make([]error, len(keys))\n\tfor i, thunk := range results {\n\t\torders[i], errors[i] = thunk()\n\t}\n\treturn orders, errors\n}\n\n// LoadAllThunk returns a function that when called will block waiting for a Orders.\n// This method should be used if you want one goroutine to make requests to many\n// different data loaders without blocking until the thunk is called.\nfunc (l *OrderSliceLoader) LoadAllThunk(keys []int) func() ([][]*Order, []error) {\n\tresults := make([]func() ([]*Order, error), len(keys))\n\tfor i, key := range keys {\n\t\tresults[i] = l.LoadThunk(key)\n\t}\n\treturn func() ([][]*Order, []error) {\n\t\torders := make([][]*Order, len(keys))\n\t\terrors := make([]error, len(keys))\n\t\tfor i, thunk := range results {\n\t\t\torders[i], errors[i] = thunk()\n\t\t}\n\t\treturn orders, errors\n\t}\n}\n\n// Prime the cache with the provided key and value. If the key already exists, no change is made\n// and false is returned.\n// (To forcefully prime the cache, clear the key first with loader.clear(key).prime(key, value).)\nfunc (l *OrderSliceLoader) Prime(key int, value []*Order) bool {\n\tl.mu.Lock()\n\tvar found bool\n\tif _, found = l.cache[key]; !found {\n\t\t// make a copy when writing to the cache, its easy to pass a pointer in from a loop var\n\t\t// and end up with the whole cache pointing to the same value.\n\t\tcpy := make([]*Order, len(value))\n\t\tcopy(cpy, value)\n\t\tl.unsafeSet(key, cpy)\n\t}\n\tl.mu.Unlock()\n\treturn !found\n}\n\n// Clear the value at key from the cache, if it exists\nfunc (l *OrderSliceLoader) Clear(key int) {\n\tl.mu.Lock()\n\tdelete(l.cache, key)\n\tl.mu.Unlock()\n}\n\nfunc (l *OrderSliceLoader) unsafeSet(key int, value []*Order) {\n\tif l.cache == nil {\n\t\tl.cache = map[int][]*Order{}\n\t}\n\tl.cache[key] = value\n}\n\n// keyIndex will return the location of the key in the batch, if its not found\n// it will add the key to the batch\nfunc (b *orderSliceLoaderBatch) keyIndex(l *OrderSliceLoader, key int) int {\n\tfor i, existingKey := range b.keys {\n\t\tif key == existingKey {\n\t\t\treturn i\n\t\t}\n\t}\n\n\tpos := len(b.keys)\n\tb.keys = append(b.keys, key)\n\tif pos == 0 {\n\t\tgo b.startTimer(l)\n\t}\n\n\tif l.maxBatch != 0 && pos >= l.maxBatch-1 {\n\t\tif !b.closing {\n\t\t\tb.closing = true\n\t\t\tl.batch = nil\n\t\t\tgo b.end(l)\n\t\t}\n\t}\n\n\treturn pos\n}\n\nfunc (b *orderSliceLoaderBatch) startTimer(l *OrderSliceLoader) {\n\ttime.Sleep(l.wait)\n\tl.mu.Lock()\n\n\t// we must have hit a batch limit and are already finalizing this batch\n\tif b.closing {\n\t\tl.mu.Unlock()\n\t\treturn\n\t}\n\n\tl.batch = nil\n\tl.mu.Unlock()\n\n\tb.end(l)\n}\n\nfunc (b *orderSliceLoaderBatch) end(l *OrderSliceLoader) {\n\tb.data, b.error = l.fetch(b.keys)\n\tclose(b.done)\n}\n"
  },
  {
    "path": "_examples/dataloader/readme.md",
    "content": "### dataloader\n\nThis example uses [dataloaden](https://github.com/vektah/dataloaden) to avoiding n+1 queries.  \n\n\nThere is also [nicksrandall/dataloader](https://github.com/nicksrandall/dataloader) if you wanted to avoid \ndoing more codegeneration. \n"
  },
  {
    "path": "_examples/dataloader/resolvers.go",
    "content": "//go:generate go run ../../testdata/gqlgen.go\n\npackage dataloader\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"math/rand\"\n\t\"strconv\"\n\t\"time\"\n)\n\ntype Customer struct {\n\tID        int    `json:\"id\"`\n\tName      string `json:\"name\"`\n\tAddressID int\n}\n\ntype Order struct {\n\tID     int       `json:\"id\"`\n\tDate   time.Time `json:\"date\"`\n\tAmount float64   `json:\"amount\"`\n}\n\ntype Resolver struct{}\n\nfunc (r *Resolver) Customer() CustomerResolver {\n\treturn &customerResolver{r}\n}\n\nfunc (r *Resolver) Order() OrderResolver {\n\treturn &orderResolver{r}\n}\n\nfunc (r *Resolver) Query() QueryResolver {\n\treturn &queryResolver{r}\n}\n\ntype customerResolver struct{ *Resolver }\n\nfunc (r *customerResolver) Address(ctx context.Context, obj *Customer) (*Address, error) {\n\treturn ctxLoaders(ctx).addressByID.Load(obj.AddressID)\n}\n\nfunc (r *customerResolver) Orders(ctx context.Context, obj *Customer) ([]*Order, error) {\n\treturn ctxLoaders(ctx).ordersByCustomer.Load(obj.ID)\n}\n\ntype orderResolver struct{ *Resolver }\n\nfunc (r *orderResolver) Items(ctx context.Context, obj *Order) ([]*Item, error) {\n\treturn ctxLoaders(ctx).itemsByOrder.Load(obj.ID)\n}\n\ntype queryResolver struct{ *Resolver }\n\nfunc (r *queryResolver) Customers(ctx context.Context) ([]*Customer, error) {\n\tfmt.Println(\"SELECT * FROM customer\")\n\n\ttime.Sleep(5 * time.Millisecond)\n\n\treturn []*Customer{\n\t\t{ID: 1, Name: \"Bob\", AddressID: 1},\n\t\t{ID: 2, Name: \"Alice\", AddressID: 3},\n\t\t{ID: 3, Name: \"Eve\", AddressID: 4},\n\t}, nil\n}\n\n// this method is here to test code generation of nested arrays\n//\n//nolint:gosec\nfunc (r *queryResolver) Torture1d(ctx context.Context, customerIds []int) ([]*Customer, error) {\n\tresult := make([]*Customer, len(customerIds))\n\tfor i, id := range customerIds {\n\t\tresult[i] = &Customer{ID: id, Name: strconv.Itoa(i), AddressID: rand.Int() % 10}\n\t}\n\treturn result, nil\n}\n\n// this method is here to test code generation of nested arrays\n//\n//nolint:gosec\nfunc (r *queryResolver) Torture2d(ctx context.Context, customerIds [][]int) ([][]*Customer, error) {\n\tresult := make([][]*Customer, len(customerIds))\n\tfor i := range customerIds {\n\t\tinner := make([]*Customer, len(customerIds[i]))\n\t\tfor j := range customerIds[i] {\n\t\t\tinner[j] = &Customer{\n\t\t\t\tID:        customerIds[i][j],\n\t\t\t\tName:      fmt.Sprintf(\"%d %d\", i, j),\n\t\t\t\tAddressID: rand.Int() % 10,\n\t\t\t}\n\t\t}\n\t\tresult[i] = inner\n\t}\n\treturn result, nil\n}\n"
  },
  {
    "path": "_examples/dataloader/schema.graphql",
    "content": "type Query {\n    customers: [Customer!]\n\n    # these methods are here to test code generation of nested arrays\n    torture1d(customerIds: [Int!]): [Customer!]\n    torture2d(customerIds: [[Int!]]): [[Customer!]]\n}\n\ntype Customer {\n    id: Int!\n    name: String!\n    address: Address\n    orders: [Order!]\n}\n\ntype Address {\n    id: Int!\n    street: String!\n    country: String!\n}\n\ntype Order {\n    id: Int!\n    date: Time!\n    amount: Float!\n    items: [Item!]\n}\n\ntype Item {\n    name: String!\n}\nscalar Time\n"
  },
  {
    "path": "_examples/dataloader/server/server.go",
    "content": "package main\n\nimport (\n\t\"log\"\n\t\"net/http\"\n\n\t\"github.com/99designs/gqlgen/_examples/dataloader\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/graphql/playground\"\n)\n\nfunc main() {\n\trouter := http.NewServeMux()\n\n\tsrv := handler.New(\n\t\tdataloader.NewExecutableSchema(dataloader.Config{Resolvers: &dataloader.Resolver{}}),\n\t)\n\tsrv.AddTransport(transport.GET{})\n\tsrv.AddTransport(transport.POST{})\n\n\trouter.Handle(\"/\", playground.Handler(\"Dataloader\", \"/query\"))\n\trouter.Handle(\"/query\", srv)\n\n\tlog.Println(\"connect to http://localhost:8082/ for graphql playground\")\n\tlog.Fatal(http.ListenAndServe(\":8082\", dataloader.LoaderMiddleware(router)))\n}\n"
  },
  {
    "path": "_examples/deferexample/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage deferexample\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"embed\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{\n\t\tschema:     cfg.Schema,\n\t\tresolvers:  cfg.Resolvers,\n\t\tdirectives: cfg.Directives,\n\t\tcomplexity: cfg.Complexity,\n\t}\n}\n\ntype Config struct {\n\tSchema     *ast.Schema\n\tResolvers  ResolverRoot\n\tDirectives DirectiveRoot\n\tComplexity ComplexityRoot\n}\n\ntype ResolverRoot interface {\n\tMutation() MutationResolver\n\tQuery() QueryResolver\n\tTodo() TodoResolver\n}\n\ntype DirectiveRoot struct {\n}\n\ntype ComplexityRoot struct {\n\tMutation struct {\n\t\tCreateTodo func(childComplexity int, input NewTodo) int\n\t}\n\n\tQuery struct {\n\t\tTodos func(childComplexity int) int\n\t}\n\n\tTodo struct {\n\t\tDone func(childComplexity int) int\n\t\tID   func(childComplexity int) int\n\t\tText func(childComplexity int) int\n\t\tUser func(childComplexity int) int\n\t}\n\n\tUser struct {\n\t\tID   func(childComplexity int) int\n\t\tName func(childComplexity int) int\n\t}\n}\n\ntype MutationResolver interface {\n\tCreateTodo(ctx context.Context, input NewTodo) (*Todo, error)\n}\ntype QueryResolver interface {\n\tTodos(ctx context.Context) ([]*Todo, error)\n}\ntype TodoResolver interface {\n\tUser(ctx context.Context, obj *Todo) (*User, error)\n}\n\ntype executableSchema struct {\n\tschema     *ast.Schema\n\tresolvers  ResolverRoot\n\tdirectives DirectiveRoot\n\tcomplexity ComplexityRoot\n}\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.schema != nil {\n\t\treturn e.schema\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := executionContext{nil, e, 0, 0, nil}\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"Mutation.createTodo\":\n\t\tif e.complexity.Mutation.CreateTodo == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Mutation_createTodo_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.complexity.Mutation.CreateTodo(childComplexity, args[\"input\"].(NewTodo)), true\n\n\tcase \"Query.todos\":\n\t\tif e.complexity.Query.Todos == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Query.Todos(childComplexity), true\n\n\tcase \"Todo.done\":\n\t\tif e.complexity.Todo.Done == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Todo.Done(childComplexity), true\n\n\tcase \"Todo.id\":\n\t\tif e.complexity.Todo.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Todo.ID(childComplexity), true\n\n\tcase \"Todo.text\":\n\t\tif e.complexity.Todo.Text == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Todo.Text(childComplexity), true\n\n\tcase \"Todo.user\":\n\t\tif e.complexity.Todo.User == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Todo.User(childComplexity), true\n\n\tcase \"User.id\":\n\t\tif e.complexity.User.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.User.ID(childComplexity), true\n\n\tcase \"User.name\":\n\t\tif e.complexity.User.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.User.Name(childComplexity), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := executionContext{opCtx, e, 0, 0, make(chan graphql.DeferredResult)}\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap(\n\t\tec.unmarshalInputNewTodo,\n\t)\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.pendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.deferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.pendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.pendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\tcase ast.Mutation:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tif !first {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tfirst = false\n\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\tdata := ec._Mutation(ctx, opCtx.Operation.SelectionSet)\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\n\t\t\treturn &graphql.Response{\n\t\t\t\tData: buf.Bytes(),\n\t\t\t}\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.OperationContext\n\t*executableSchema\n\tdeferred        int32\n\tpendingDeferred int32\n\tdeferredResults chan graphql.DeferredResult\n}\n\nfunc (ec *executionContext) processDeferredGroup(dg graphql.DeferredGroup) {\n\tatomic.AddInt32(&ec.pendingDeferred, 1)\n\tgo func() {\n\t\tctx := graphql.WithFreshResponseContext(dg.Context)\n\t\tdg.FieldSet.Dispatch(ctx)\n\t\tds := graphql.DeferredResult{\n\t\t\tPath:   dg.Path,\n\t\t\tLabel:  dg.Label,\n\t\t\tResult: dg.FieldSet,\n\t\t\tErrors: graphql.GetErrors(ctx),\n\t\t}\n\t\t// null fields should bubble up\n\t\tif dg.FieldSet.Invalids > 0 {\n\t\t\tds.Result = graphql.Null\n\t\t}\n\t\tec.deferredResults <- ds\n\t}()\n}\n\nfunc (ec *executionContext) introspectSchema() (*introspection.Schema, error) {\n\tif ec.DisableIntrospection {\n\t\treturn nil, errors.New(\"introspection disabled\")\n\t}\n\treturn introspection.WrapSchema(ec.Schema()), nil\n}\n\nfunc (ec *executionContext) introspectType(name string) (*introspection.Type, error) {\n\tif ec.DisableIntrospection {\n\t\treturn nil, errors.New(\"introspection disabled\")\n\t}\n\treturn introspection.WrapTypeFromDef(ec.Schema(), ec.Schema().Types[name]), nil\n}\n\n//go:embed \"schema.graphql\"\nvar sourcesFS embed.FS\n\nfunc sourceData(filename string) string {\n\tdata, err := sourcesFS.ReadFile(filename)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"codegen problem: %s not available\", filename))\n\t}\n\treturn string(data)\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"schema.graphql\", Input: sourceData(\"schema.graphql\"), BuiltIn: false},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_Mutation_createTodo_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field_Mutation_createTodo_argsInput(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"input\"] = arg0\n\treturn args, nil\n}\nfunc (ec *executionContext) field_Mutation_createTodo_argsInput(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (NewTodo, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"input\"))\n\tif tmp, ok := rawArgs[\"input\"]; ok {\n\t\treturn ec.unmarshalNNewTodo2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋdeferexampleᚐNewTodo(ctx, tmp)\n\t}\n\n\tvar zeroVal NewTodo\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field_Query___type_argsName(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\nfunc (ec *executionContext) field_Query___type_argsName(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (string, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"name\"))\n\tif tmp, ok := rawArgs[\"name\"]; ok {\n\t\treturn ec.unmarshalNString2string(ctx, tmp)\n\t}\n\n\tvar zeroVal string\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field___Directive_args_argsIncludeDeprecated(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\nfunc (ec *executionContext) field___Directive_args_argsIncludeDeprecated(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (*bool, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"includeDeprecated\"))\n\tif tmp, ok := rawArgs[\"includeDeprecated\"]; ok {\n\t\treturn ec.unmarshalOBoolean2ᚖbool(ctx, tmp)\n\t}\n\n\tvar zeroVal *bool\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field___Field_args_argsIncludeDeprecated(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\nfunc (ec *executionContext) field___Field_args_argsIncludeDeprecated(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (*bool, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"includeDeprecated\"))\n\tif tmp, ok := rawArgs[\"includeDeprecated\"]; ok {\n\t\treturn ec.unmarshalOBoolean2ᚖbool(ctx, tmp)\n\t}\n\n\tvar zeroVal *bool\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field___Type_enumValues_argsIncludeDeprecated(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\nfunc (ec *executionContext) field___Type_enumValues_argsIncludeDeprecated(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (bool, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"includeDeprecated\"))\n\tif tmp, ok := rawArgs[\"includeDeprecated\"]; ok {\n\t\treturn ec.unmarshalOBoolean2bool(ctx, tmp)\n\t}\n\n\tvar zeroVal bool\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field___Type_fields_argsIncludeDeprecated(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\nfunc (ec *executionContext) field___Type_fields_argsIncludeDeprecated(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (bool, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"includeDeprecated\"))\n\tif tmp, ok := rawArgs[\"includeDeprecated\"]; ok {\n\t\treturn ec.unmarshalOBoolean2bool(ctx, tmp)\n\t}\n\n\tvar zeroVal bool\n\treturn zeroVal, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Mutation_createTodo(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Mutation_createTodo(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.resolvers.Mutation().CreateTodo(rctx, fc.Args[\"input\"].(NewTodo))\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*Todo)\n\tfc.Result = res\n\treturn ec.marshalNTodo2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋdeferexampleᚐTodo(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Mutation_createTodo(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Mutation\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Todo_id(ctx, field)\n\t\t\tcase \"text\":\n\t\t\t\treturn ec.fieldContext_Todo_text(ctx, field)\n\t\t\tcase \"done\":\n\t\t\t\treturn ec.fieldContext_Todo_done(ctx, field)\n\t\t\tcase \"user\":\n\t\t\t\treturn ec.fieldContext_Todo_user(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Todo\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Mutation_createTodo_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_todos(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Query_todos(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.resolvers.Query().Todos(rctx)\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]*Todo)\n\tfc.Result = res\n\treturn ec.marshalNTodo2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋdeferexampleᚐTodoᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Query_todos(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Todo_id(ctx, field)\n\t\t\tcase \"text\":\n\t\t\t\treturn ec.fieldContext_Todo_text(ctx, field)\n\t\t\tcase \"done\":\n\t\t\t\treturn ec.fieldContext_Todo_done(ctx, field)\n\t\t\tcase \"user\":\n\t\t\t\treturn ec.fieldContext_Todo_user(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Todo\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Query___type(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.introspectType(fc.Args[\"name\"].(string))\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Query___schema(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.introspectSchema()\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Schema)\n\tfc.Result = res\n\treturn ec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Todo_id(ctx context.Context, field graphql.CollectedField, obj *Todo) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Todo_id(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.ID, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNID2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Todo_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Todo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Todo_text(ctx context.Context, field graphql.CollectedField, obj *Todo) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Todo_text(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Text, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Todo_text(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Todo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Todo_done(ctx context.Context, field graphql.CollectedField, obj *Todo) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Todo_done(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Done, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalNBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Todo_done(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Todo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Todo_user(ctx context.Context, field graphql.CollectedField, obj *Todo) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Todo_user(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.resolvers.Todo().User(rctx, obj)\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*User)\n\tfc.Result = res\n\treturn ec.marshalNUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋdeferexampleᚐUser(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Todo_user(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Todo\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_User_id(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_User_name(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type User\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_id(ctx context.Context, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_User_id(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.ID, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNID2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_User_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_name(ctx context.Context, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_User_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_User_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_isRepeatable(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.IsRepeatable, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalNBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_locations(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Locations, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]string)\n\tfc.Result = res\n\treturn ec.marshalN__DirectiveLocation2ᚕstringᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_args(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Args, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.InputValue)\n\tfc.Result = res\n\treturn ec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___EnumValue_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___EnumValue_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.IsDeprecated(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalNBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.DeprecationReason(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_args(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Args, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.InputValue)\n\tfc.Result = res\n\treturn ec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_type(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Type, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_isDeprecated(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.IsDeprecated(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalNBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_deprecationReason(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.DeprecationReason(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_type(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Type, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_defaultValue(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.DefaultValue, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.IsDeprecated(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalNBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.DeprecationReason(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_types(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Types(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_queryType(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.QueryType(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_mutationType(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.MutationType(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_subscriptionType(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.SubscriptionType(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_directives(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Directives(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Directive)\n\tfc.Result = res\n\treturn ec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_kind(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Kind(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalN__TypeKind2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_specifiedByURL(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.SpecifiedByURL(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_fields(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Field)\n\tfc.Result = res\n\treturn ec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_interfaces(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Interfaces(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_possibleTypes(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.PossibleTypes(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_enumValues(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.EnumValue)\n\tfc.Result = res\n\treturn ec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_inputFields(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.InputFields(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.InputValue)\n\tfc.Result = res\n\treturn ec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_ofType(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.OfType(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_isOneOf(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.IsOneOf(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalOBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalInputNewTodo(ctx context.Context, obj any) (NewTodo, error) {\n\tvar it NewTodo\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"text\", \"userId\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"text\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"text\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Text = data\n\t\tcase \"userId\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"userId\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.UserID = data\n\t\t}\n\t}\n\n\treturn it, nil\n}\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar mutationImplementors = []string{\"Mutation\"}\n\nfunc (ec *executionContext) _Mutation(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, mutationImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Mutation\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Mutation\")\n\t\tcase \"createTodo\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Mutation_createTodo(ctx, field)\n\t\t\t})\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"todos\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_todos(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar todoImplementors = []string{\"Todo\"}\n\nfunc (ec *executionContext) _Todo(ctx context.Context, sel ast.SelectionSet, obj *Todo) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, todoImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Todo\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._Todo_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"text\":\n\t\t\tout.Values[i] = ec._Todo_text(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"done\":\n\t\t\tout.Values[i] = ec._Todo_done(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"user\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Todo_user(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar userImplementors = []string{\"User\"}\n\nfunc (ec *executionContext) _User(ctx context.Context, sel ast.SelectionSet, obj *User) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, userImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"User\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._User_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._User_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNID2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalID(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNID2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\tres := graphql.MarshalID(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNNewTodo2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋdeferexampleᚐNewTodo(ctx context.Context, v any) (NewTodo, error) {\n\tres, err := ec.unmarshalInputNewTodo(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNTodo2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋdeferexampleᚐTodo(ctx context.Context, sel ast.SelectionSet, v Todo) graphql.Marshaler {\n\treturn ec._Todo(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNTodo2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋdeferexampleᚐTodoᚄ(ctx context.Context, sel ast.SelectionSet, v []*Todo) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalNTodo2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋdeferexampleᚐTodo(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalNTodo2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋdeferexampleᚐTodo(ctx context.Context, sel ast.SelectionSet, v *Todo) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Todo(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNUser2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋdeferexampleᚐUser(ctx context.Context, sel ast.SelectionSet, v User) graphql.Marshaler {\n\treturn ec._User(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋdeferexampleᚐUser(ctx context.Context, sel ast.SelectionSet, v *User) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._User(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "_examples/deferexample/gqlgen.yml",
    "content": "schema: \"*.graphql\"\n\nexec:\n  filename: generated.go\n\nmodel:\n  filename: models_gen.go\n\nresolver:\n  layout: follow-schema\n  dir: .\n  filename_template: \"{name}.resolvers.go\"\n\ncall_argument_directives_with_null: true\n\nmodels:\n  ID:\n    model:\n      - github.com/99designs/gqlgen/graphql.ID\n  Todo:\n    fields:\n      user:\n        resolver: true\n    extraFields:\n      userID:\n        type: \"string\"\n"
  },
  {
    "path": "_examples/deferexample/models_gen.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage deferexample\n\ntype Mutation struct {\n}\n\ntype NewTodo struct {\n\tText   string `json:\"text\"`\n\tUserID string `json:\"userId\"`\n}\n\ntype Query struct {\n}\n\ntype Todo struct {\n\tID     string `json:\"id\"`\n\tText   string `json:\"text\"`\n\tDone   bool   `json:\"done\"`\n\tUser   *User  `json:\"user\"`\n\tuserID string `json:\"-\"`\n}\n\ntype User struct {\n\tID   string `json:\"id\"`\n\tName string `json:\"name\"`\n}\n"
  },
  {
    "path": "_examples/deferexample/resolver.go",
    "content": "package deferexample\n\nimport \"sync\"\n\ntype Resolver struct {\n\tmu    sync.RWMutex\n\ttodos []*Todo\n}\n"
  },
  {
    "path": "_examples/deferexample/schema.graphql",
    "content": "# GraphQL schema example\n#\n# https://gqlgen.com/getting-started/\n\ntype Todo {\n  id: ID!\n  text: String!\n  done: Boolean!\n  user: User!\n}\n\ntype User {\n  id: ID!\n  name: String!\n}\n\ntype Query {\n  todos: [Todo!]!\n}\n\ninput NewTodo {\n  text: String!\n  userId: String!\n}\n\ntype Mutation {\n  createTodo(input: NewTodo!): Todo!\n}\n"
  },
  {
    "path": "_examples/deferexample/schema.resolvers.go",
    "content": "package deferexample\n\n// This file will be automatically regenerated based on the schema, any resolver implementations\n// will be copied through when generating and any unknown code will be moved to the end.\n// Code generated by github.com/99designs/gqlgen version v0.17.70-dev\n\nimport (\n\t\"context\"\n\t\"crypto/rand\"\n\t\"fmt\"\n\t\"math/big\"\n\t\"time\"\n)\n\n// CreateTodo is the resolver for the createTodo field.\nfunc (r *mutationResolver) CreateTodo(ctx context.Context, input NewTodo) (*Todo, error) {\n\trandNumber, _ := rand.Int(rand.Reader, big.NewInt(100))\n\ttodo := &Todo{\n\t\tText:   input.Text,\n\t\tID:     fmt.Sprintf(\"T%d\", randNumber),\n\t\tuserID: input.UserID,\n\t}\n\n\tr.mu.Lock()\n\tr.todos = append(r.todos, todo)\n\tr.mu.Unlock()\n\n\treturn todo, nil\n}\n\n// Todos is the resolver for the todos field.\nfunc (r *queryResolver) Todos(ctx context.Context) ([]*Todo, error) {\n\tr.mu.RLock()\n\tdefer r.mu.RUnlock()\n\treturn r.todos, nil\n}\n\n// User is the resolver for the user field on Todos. Having this\n// separate resolver makes the field \"deferrable,\" ie GQLGen will handle\n// an operation with an @defer directive applied to the given field as a\n// separately-delivered response, and depending on the logic applied in\n// the transport can deliver them in the same response or serially.\nfunc (r *todoResolver) User(ctx context.Context, t *Todo) (*User, error) {\n\ttime.Sleep(time.Millisecond * 10)\n\treturn &User{\n\t\tID:   t.userID,\n\t\tName: fmt.Sprintf(\"User %v\", t.userID),\n\t}, nil\n}\n\n// Mutation returns MutationResolver implementation.\nfunc (r *Resolver) Mutation() MutationResolver { return &mutationResolver{r} }\n\n// Query returns QueryResolver implementation.\nfunc (r *Resolver) Query() QueryResolver { return &queryResolver{r} }\n\n// Todo returns TodoResolver implementation.\nfunc (r *Resolver) Todo() TodoResolver { return &todoResolver{r} }\n\ntype (\n\tmutationResolver struct{ *Resolver }\n\tqueryResolver    struct{ *Resolver }\n\ttodoResolver     struct{ *Resolver }\n)\n"
  },
  {
    "path": "_examples/deferexample/server/server.go",
    "content": "package main\n\nimport (\n\t\"log\"\n\t\"net/http\"\n\t\"os\"\n\t\"time\"\n\n\t\"github.com/gorilla/websocket\"\n\t\"github.com/rs/cors\"\n\n\t\"github.com/99designs/gqlgen/_examples/deferexample\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/extension\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/graphql/playground\"\n)\n\nconst defaultPort = \"8080\"\n\nfunc main() {\n\tport := os.Getenv(\"PORT\")\n\tif port == \"\" {\n\t\tport = defaultPort\n\t}\n\n\tc := cors.New(cors.Options{\n\t\tAllowedOrigins:   []string{\"*\"},\n\t\tAllowCredentials: true,\n\t\tDebug:            false,\n\t})\n\n\tsrv := handler.New(\n\t\tdeferexample.NewExecutableSchema(\n\t\t\tdeferexample.Config{Resolvers: &deferexample.Resolver{}},\n\t\t),\n\t)\n\n\tsrv.AddTransport(transport.SSE{})\n\tsrv.AddTransport(transport.MultipartMixed{\n\t\tBoundary:        \"graphql\",\n\t\tDeliveryTimeout: time.Millisecond * 10,\n\t})\n\tsrv.AddTransport(transport.POST{})\n\tsrv.AddTransport(transport.Websocket{\n\t\tKeepAlivePingInterval: 10 * time.Second,\n\t\tUpgrader: websocket.Upgrader{\n\t\t\tCheckOrigin: func(r *http.Request) bool {\n\t\t\t\treturn true\n\t\t\t},\n\t\t},\n\t})\n\tsrv.Use(extension.Introspection{})\n\n\thttp.Handle(\"/\", playground.Handler(\"Todo\", \"/query\"))\n\thttp.Handle(\"/query\", c.Handler(srv))\n\n\tlog.Printf(\"connect to http://localhost:%s/ for GraphQL playground\", port)\n\tlog.Fatal(http.ListenAndServe(\":\"+port, nil))\n}\n"
  },
  {
    "path": "_examples/embedding/parent.graphqls",
    "content": "extend type Query {\n    parentdir: String!\n}\n"
  },
  {
    "path": "_examples/embedding/subdir/cfgdir/generate_in_gendir.yml",
    "content": "schema:\n  - schemadir/*.graphqls\n  - ../*.graphqls\n  - '*.graphqls'\nexec:\n  dir: gendir\n  filename: gendir/generated.go\n  package: gendir\n\nfederation:\n  filename: gendir/federation_gen.go\n  package: gendir\n\nmodel:\n  filename: gendir/model.go\n  package: gendir"
  },
  {
    "path": "_examples/embedding/subdir/cfgdir/generate_in_subdir.yml",
    "content": "schema:\n  - schemadir/*.graphqls\n  - ../*.graphqls\n  - '*.graphqls'\nexec:\n  layout: follow-schema\n  dir: .\n  package: subdir\n\nfederation:\n  filename: federation_gen.go\n  package: subdir\n\nmodel:\n  filename: model.go\n  package: subdir"
  },
  {
    "path": "_examples/embedding/subdir/directives.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage subdir\n\nimport (\n\t\"context\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalN_FieldSet2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN_FieldSet2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "_examples/embedding/subdir/embedding_test.go",
    "content": "package subdir\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/_examples/embedding/subdir/gendir\"\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestEmbeddingWorks(t *testing.T) {\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: &Resolver{}}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\tvar resp struct {\n\t\tInSchemadir string\n\t\tParentdir   string\n\t\tSubdir      string\n\t}\n\tc.MustPost(`{\n\t\t\t\tinSchemadir\n\t\t\t\tparentdir\n\t\t\t\tsubdir\n\t\t\t}\n\t\t`, &resp)\n\n\trequire.Equal(t, \"example\", resp.InSchemadir)\n\trequire.Equal(t, \"example\", resp.Parentdir)\n\trequire.Equal(t, \"example\", resp.Subdir)\n}\n\nfunc TestEmbeddingWorksInGendir(t *testing.T) {\n\tsrv := handler.New(gendir.NewExecutableSchema(gendir.Config{Resolvers: &GendirResolver{}}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\tvar resp struct {\n\t\tInSchemadir string\n\t\tParentdir   string\n\t\tSubdir      string\n\t}\n\tc.MustPost(`{\n\t\t\t\tinSchemadir\n\t\t\t\tparentdir\n\t\t\t\tsubdir\n\t\t\t}\n\t\t`, &resp)\n\n\trequire.Equal(t, \"example\", resp.InSchemadir)\n\trequire.Equal(t, \"example\", resp.Parentdir)\n\trequire.Equal(t, \"example\", resp.Subdir)\n}\n"
  },
  {
    "path": "_examples/embedding/subdir/entity.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage subdir\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/plugin/federation/fedruntime\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) __Service_sdl(ctx context.Context, field graphql.CollectedField, obj *fedruntime.Service) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext__Service_sdl,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SDL, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2string,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext__Service_sdl(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"_Service\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar _ServiceImplementors = []string{\"_Service\"}\n\nfunc (ec *executionContext) __Service(ctx context.Context, sel ast.SelectionSet, obj *fedruntime.Service) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, _ServiceImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"_Service\")\n\t\tcase \"sdl\":\n\t\t\tout.Values[i] = ec.__Service_sdl(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) marshalN_Service2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐService(ctx context.Context, sel ast.SelectionSet, v fedruntime.Service) graphql.Marshaler {\n\treturn ec.__Service(ctx, sel, &v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "_examples/embedding/subdir/federation_gen.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage subdir\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"strings\"\n\n\t\"github.com/99designs/gqlgen/plugin/federation/fedruntime\"\n)\n\nvar (\n\tErrUnknownType  = errors.New(\"unknown type\")\n\tErrTypeNotFound = errors.New(\"type not found\")\n)\n\nfunc (ec *executionContext) __resolve__service(ctx context.Context) (fedruntime.Service, error) {\n\tif ec.DisableIntrospection {\n\t\treturn fedruntime.Service{}, errors.New(\"federated introspection disabled\")\n\t}\n\n\tvar sdl []string\n\n\tfor _, src := range sources {\n\t\tif src.BuiltIn {\n\t\t\tcontinue\n\t\t}\n\t\tsdl = append(sdl, src.Input)\n\t}\n\n\treturn fedruntime.Service{\n\t\tSDL: strings.Join(sdl, \"\\n\"),\n\t}, nil\n}\n"
  },
  {
    "path": "_examples/embedding/subdir/gendir/federation_gen.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage gendir\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"strings\"\n\n\t\"github.com/99designs/gqlgen/plugin/federation/fedruntime\"\n)\n\nvar (\n\tErrUnknownType  = errors.New(\"unknown type\")\n\tErrTypeNotFound = errors.New(\"type not found\")\n)\n\nfunc (ec *executionContext) __resolve__service(ctx context.Context) (fedruntime.Service, error) {\n\tif ec.DisableIntrospection {\n\t\treturn fedruntime.Service{}, errors.New(\"federated introspection disabled\")\n\t}\n\n\tvar sdl []string\n\n\tfor _, src := range sources {\n\t\tif src.BuiltIn {\n\t\t\tcontinue\n\t\t}\n\t\tsdl = append(sdl, src.Input)\n\t}\n\n\treturn fedruntime.Service{\n\t\tSDL: strings.Join(sdl, \"\\n\"),\n\t}, nil\n}\n"
  },
  {
    "path": "_examples/embedding/subdir/gendir/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage gendir\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\t\"github.com/99designs/gqlgen/plugin/federation/fedruntime\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n}\n\ntype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\ntype ResolverRoot interface {\n\tQuery() QueryResolver\n}\n\ntype DirectiveRoot struct {\n}\n\ntype ComplexityRoot struct {\n\tQuery struct {\n\t\tInSchemadir        func(childComplexity int) int\n\t\tParentdir          func(childComplexity int) int\n\t\tSubdir             func(childComplexity int) int\n\t\t__resolve__service func(childComplexity int) int\n\t}\n\n\t_Service struct {\n\t\tSDL func(childComplexity int) int\n\t}\n}\n\ntype QueryResolver interface {\n\tInSchemadir(ctx context.Context) (string, error)\n\tParentdir(ctx context.Context) (string, error)\n\tSubdir(ctx context.Context) (string, error)\n}\n\ntype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.SchemaData != nil {\n\t\treturn e.SchemaData\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := newExecutionContext(nil, e, nil)\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"Query.inSchemadir\":\n\t\tif e.ComplexityRoot.Query.InSchemadir == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.InSchemadir(childComplexity), true\n\n\tcase \"Query.parentdir\":\n\t\tif e.ComplexityRoot.Query.Parentdir == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Parentdir(childComplexity), true\n\tcase \"Query.subdir\":\n\t\tif e.ComplexityRoot.Query.Subdir == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Subdir(childComplexity), true\n\tcase \"Query._service\":\n\t\tif e.ComplexityRoot.Query.__resolve__service == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.__resolve__service(childComplexity), true\n\n\tcase \"_Service.sdl\":\n\t\tif e.ComplexityRoot._Service.SDL == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot._Service.SDL(childComplexity), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap()\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"../schemadir/root.graphqls\", Input: `type Query {\n    inSchemadir: String!\n}\n`, BuiltIn: false},\n\t{Name: \"../../parent.graphqls\", Input: `extend type Query {\n    parentdir: String!\n}\n`, BuiltIn: false},\n\t{Name: \"../subdir.graphqls\", Input: `extend type Query {\n    subdir: String!\n}\n`, BuiltIn: false},\n\t{Name: \"../federation/directives.graphql\", Input: `\n\tdirective @key(fields: _FieldSet!) repeatable on OBJECT | INTERFACE\n\tdirective @requires(fields: _FieldSet!) on FIELD_DEFINITION\n\tdirective @provides(fields: _FieldSet!) on FIELD_DEFINITION\n\tdirective @extends on OBJECT | INTERFACE\n\tdirective @external on FIELD_DEFINITION\n\tscalar _Any\n\tscalar _FieldSet\n`, BuiltIn: true},\n\t{Name: \"../federation/entity.graphql\", Input: `\ntype _Service {\n  sdl: String\n}\n\nextend type Query {\n  _service: _Service!\n}\n`, BuiltIn: true},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Query_inSchemadir(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_inSchemadir,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().InSchemadir(ctx)\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_inSchemadir(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_parentdir(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_parentdir,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Parentdir(ctx)\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_parentdir(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_subdir(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_subdir,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Subdir(ctx)\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_subdir(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query__service(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query__service,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.__resolve__service(ctx)\n\t\t},\n\t\tnil,\n\t\tec.marshalN_Service2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐService,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query__service(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"sdl\":\n\t\t\t\treturn ec.fieldContext__Service_sdl(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type _Service\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.IntrospectType(fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___schema,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.IntrospectSchema()\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) __Service_sdl(ctx context.Context, field graphql.CollectedField, obj *fedruntime.Service) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext__Service_sdl,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SDL, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2string,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext__Service_sdl(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"_Service\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_isRepeatable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsRepeatable, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_locations,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Locations, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__DirectiveLocation2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_defaultValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DefaultValue, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_types,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Types(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_queryType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.QueryType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_mutationType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.MutationType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_subscriptionType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SubscriptionType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_directives,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Directives(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_kind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Kind(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__TypeKind2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_specifiedByURL,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SpecifiedByURL(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_fields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_interfaces,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Interfaces(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_possibleTypes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PossibleTypes(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_enumValues,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_inputFields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.InputFields(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_ofType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.OfType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_isOneOf,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsOneOf(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOBoolean2bool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"inSchemadir\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_inSchemadir(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"parentdir\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_parentdir(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"subdir\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_subdir(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"_service\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query__service(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar _ServiceImplementors = []string{\"_Service\"}\n\nfunc (ec *executionContext) __Service(ctx context.Context, sel ast.SelectionSet, obj *fedruntime.Service) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, _ServiceImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"_Service\")\n\t\tcase \"sdl\":\n\t\t\tout.Values[i] = ec.__Service_sdl(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN_FieldSet2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN_FieldSet2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalN_Service2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐService(ctx context.Context, sel ast.SelectionSet, v fedruntime.Service) graphql.Marshaler {\n\treturn ec.__Service(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "_examples/embedding/subdir/gendir/model.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage gendir\n\ntype Query struct {\n}\n"
  },
  {
    "path": "_examples/embedding/subdir/model.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage subdir\n\ntype Query struct {\n}\n"
  },
  {
    "path": "_examples/embedding/subdir/prelude.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage subdir\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) dir_defer_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"if\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"if\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"label\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"label\"] = arg1\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_isRepeatable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsRepeatable, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_locations,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Locations, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__DirectiveLocation2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_defaultValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DefaultValue, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_types,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Types(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_queryType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.QueryType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_mutationType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.MutationType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_subscriptionType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SubscriptionType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_directives,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Directives(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_kind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Kind(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__TypeKind2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_specifiedByURL,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SpecifiedByURL(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_fields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_interfaces,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Interfaces(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_possibleTypes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PossibleTypes(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_enumValues,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_inputFields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.InputFields(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_ofType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.OfType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_isOneOf,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsOneOf(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOBoolean2bool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "_examples/embedding/subdir/resolvers.go",
    "content": "//go:generate go run ../../../testdata/gqlgen.go -config cfgdir/generate_in_subdir.yml\n//go:generate go run ../../../testdata/gqlgen.go -config cfgdir/generate_in_gendir.yml\n\npackage subdir\n\nimport (\n\t\"context\"\n\n\t\"github.com/99designs/gqlgen/_examples/embedding/subdir/gendir\"\n)\n\ntype Resolver struct{ *Resolver }\n\nfunc (q *Resolver) Query() QueryResolver {\n\treturn q\n}\n\nfunc (q *Resolver) InSchemadir(ctx context.Context) (string, error) {\n\treturn \"example\", nil\n}\n\nfunc (q *Resolver) Parentdir(ctx context.Context) (string, error) {\n\treturn \"example\", nil\n}\n\nfunc (q *Resolver) Subdir(ctx context.Context) (string, error) {\n\treturn \"example\", nil\n}\n\ntype GendirResolver struct{ *Resolver }\n\nfunc (q *GendirResolver) Query() gendir.QueryResolver {\n\treturn &Resolver{}\n}\n"
  },
  {
    "path": "_examples/embedding/subdir/root.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage subdir\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\ntype QueryResolver interface {\n\tInSchemadir(ctx context.Context) (string, error)\n\tParentdir(ctx context.Context) (string, error)\n\tSubdir(ctx context.Context) (string, error)\n}\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Query_inSchemadir(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_inSchemadir,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().InSchemadir(ctx)\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_inSchemadir(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_parentdir(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_parentdir,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Parentdir(ctx)\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_parentdir(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_subdir(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_subdir,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Subdir(ctx)\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_subdir(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query__service(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query__service,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.__resolve__service(ctx)\n\t\t},\n\t\tnil,\n\t\tec.marshalN_Service2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐService,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query__service(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"sdl\":\n\t\t\t\treturn ec.fieldContext__Service_sdl(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type _Service\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.IntrospectType(fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___schema,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.IntrospectSchema()\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"inSchemadir\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_inSchemadir(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"parentdir\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_parentdir(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"subdir\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_subdir(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"_service\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query__service(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "_examples/embedding/subdir/root_.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage subdir\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"embed\"\n\t\"fmt\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n}\n\ntype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\ntype ResolverRoot interface {\n\tQuery() QueryResolver\n}\n\ntype DirectiveRoot struct {\n}\n\ntype ComplexityRoot struct {\n\tQuery struct {\n\t\tInSchemadir        func(childComplexity int) int\n\t\tParentdir          func(childComplexity int) int\n\t\tSubdir             func(childComplexity int) int\n\t\t__resolve__service func(childComplexity int) int\n\t}\n\n\t_Service struct {\n\t\tSDL func(childComplexity int) int\n\t}\n}\n\ntype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.SchemaData != nil {\n\t\treturn e.SchemaData\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := newExecutionContext(nil, e, nil)\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"Query.inSchemadir\":\n\t\tif e.ComplexityRoot.Query.InSchemadir == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.InSchemadir(childComplexity), true\n\n\tcase \"Query.parentdir\":\n\t\tif e.ComplexityRoot.Query.Parentdir == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Parentdir(childComplexity), true\n\n\tcase \"Query.subdir\":\n\t\tif e.ComplexityRoot.Query.Subdir == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Subdir(childComplexity), true\n\n\tcase \"Query._service\":\n\t\tif e.ComplexityRoot.Query.__resolve__service == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.__resolve__service(childComplexity), true\n\n\tcase \"_Service.sdl\":\n\t\tif e.ComplexityRoot._Service.SDL == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot._Service.SDL(childComplexity), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap()\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\n//go:embed \"schemadir/root.graphqls\" \"subdir.graphqls\"\nvar sourcesFS embed.FS\n\nfunc sourceData(filename string) string {\n\tdata, err := sourcesFS.ReadFile(filename)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"codegen problem: %s not available\", filename))\n\t}\n\treturn string(data)\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"schemadir/root.graphqls\", Input: sourceData(\"schemadir/root.graphqls\"), BuiltIn: false},\n\t{Name: \"../parent.graphqls\", Input: `extend type Query {\n    parentdir: String!\n}\n`, BuiltIn: false},\n\t{Name: \"subdir.graphqls\", Input: sourceData(\"subdir.graphqls\"), BuiltIn: false},\n\t{Name: \"federation/directives.graphql\", Input: `\n\tdirective @key(fields: _FieldSet!) repeatable on OBJECT | INTERFACE\n\tdirective @requires(fields: _FieldSet!) on FIELD_DEFINITION\n\tdirective @provides(fields: _FieldSet!) on FIELD_DEFINITION\n\tdirective @extends on OBJECT | INTERFACE\n\tdirective @external on FIELD_DEFINITION\n\tscalar _Any\n\tscalar _FieldSet\n`, BuiltIn: true},\n\t{Name: \"federation/entity.graphql\", Input: `\ntype _Service {\n  sdl: String\n}\n\nextend type Query {\n  _service: _Service!\n}\n`, BuiltIn: true},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n"
  },
  {
    "path": "_examples/embedding/subdir/schemadir/root.graphqls",
    "content": "type Query {\n    inSchemadir: String!\n}\n"
  },
  {
    "path": "_examples/embedding/subdir/subdir.graphqls",
    "content": "extend type Query {\n    subdir: String!\n}\n"
  },
  {
    "path": "_examples/enum/api/enum.go",
    "content": "package api\n\n// This file will be automatically regenerated based on the schema, any resolver\n// implementations\n// will be copied through when generating and any unknown code will be moved to the end.\n// Code generated by github.com/99designs/gqlgen version v0.17.88-dev\n\nimport (\n\t\"context\"\n\n\t\"github.com/99designs/gqlgen/_examples/enum/model\"\n)\n\n// IntTyped is the resolver for the intTyped field.\nfunc (r *queryResolver) IntTyped(ctx context.Context, arg model.IntTyped) (model.IntTyped, error) {\n\treturn arg, nil\n}\n\n// IntUntyped is the resolver for the intUntyped field.\nfunc (r *queryResolver) IntUntyped(ctx context.Context, arg int) (int, error) {\n\treturn arg, nil\n}\n\n// IntTypedN is the resolver for the intTypedN field.\nfunc (r *queryResolver) IntTypedN(ctx context.Context, arg *model.IntTyped) (*model.IntTyped, error) {\n\treturn arg, nil\n}\n\n// IntUntypedN is the resolver for the intUntypedN field.\nfunc (r *queryResolver) IntUntypedN(ctx context.Context, arg *int) (*int, error) {\n\treturn arg, nil\n}\n\n// StringTyped is the resolver for the stringTyped field.\nfunc (r *queryResolver) StringTyped(ctx context.Context, arg model.StringTyped) (model.StringTyped, error) {\n\treturn arg, nil\n}\n\n// StringUntyped is the resolver for the stringUntyped field.\nfunc (r *queryResolver) StringUntyped(ctx context.Context, arg string) (string, error) {\n\treturn arg, nil\n}\n\n// StringTypedN is the resolver for the stringTypedN field.\nfunc (r *queryResolver) StringTypedN(ctx context.Context, arg *model.StringTyped) (*model.StringTyped, error) {\n\treturn arg, nil\n}\n\n// StringUntypedN is the resolver for the stringUntypedN field.\nfunc (r *queryResolver) StringUntypedN(ctx context.Context, arg *string) (*string, error) {\n\treturn arg, nil\n}\n\n// BoolTyped is the resolver for the boolTyped field.\nfunc (r *queryResolver) BoolTyped(ctx context.Context, arg model.BoolTyped) (model.BoolTyped, error) {\n\treturn arg, nil\n}\n\n// BoolUntyped is the resolver for the boolUntyped field.\nfunc (r *queryResolver) BoolUntyped(ctx context.Context, arg bool) (bool, error) {\n\treturn arg, nil\n}\n\n// BoolTypedN is the resolver for the boolTypedN field.\nfunc (r *queryResolver) BoolTypedN(ctx context.Context, arg *model.BoolTyped) (*model.BoolTyped, error) {\n\treturn arg, nil\n}\n\n// BoolUntypedN is the resolver for the boolUntypedN field.\nfunc (r *queryResolver) BoolUntypedN(ctx context.Context, arg *bool) (*bool, error) {\n\treturn arg, nil\n}\n\n// VarTyped is the resolver for the varTyped field.\nfunc (r *queryResolver) VarTyped(ctx context.Context, arg model.VarTyped) (model.VarTyped, error) {\n\treturn arg, nil\n}\n\n// VarUntyped is the resolver for the varUntyped field.\nfunc (r *queryResolver) VarUntyped(ctx context.Context, arg bool) (bool, error) {\n\treturn arg, nil\n}\n\n// InPackage is the resolver for the inPackage field.\nfunc (r *queryResolver) InPackage(ctx context.Context, arg InPackage) (InPackage, error) {\n\treturn arg, nil\n}\n\n// Query returns QueryResolver implementation.\nfunc (r *Resolver) Query() QueryResolver { return &queryResolver{r} }\n\ntype queryResolver struct{ *Resolver }\n"
  },
  {
    "path": "_examples/enum/api/exec.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage api\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/_examples/enum/model\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n}\n\ntype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\ntype ResolverRoot interface {\n\tQuery() QueryResolver\n}\n\ntype DirectiveRoot struct {\n}\n\ntype ComplexityRoot struct {\n\tQuery struct {\n\t\tBoolTyped      func(childComplexity int, arg model.BoolTyped) int\n\t\tBoolTypedN     func(childComplexity int, arg *model.BoolTyped) int\n\t\tBoolUntyped    func(childComplexity int, arg bool) int\n\t\tBoolUntypedN   func(childComplexity int, arg *bool) int\n\t\tInPackage      func(childComplexity int, arg InPackage) int\n\t\tIntTyped       func(childComplexity int, arg model.IntTyped) int\n\t\tIntTypedN      func(childComplexity int, arg *model.IntTyped) int\n\t\tIntUntyped     func(childComplexity int, arg int) int\n\t\tIntUntypedN    func(childComplexity int, arg *int) int\n\t\tStringTyped    func(childComplexity int, arg model.StringTyped) int\n\t\tStringTypedN   func(childComplexity int, arg *model.StringTyped) int\n\t\tStringUntyped  func(childComplexity int, arg string) int\n\t\tStringUntypedN func(childComplexity int, arg *string) int\n\t\tVarTyped       func(childComplexity int, arg model.VarTyped) int\n\t\tVarUntyped     func(childComplexity int, arg bool) int\n\t}\n}\n\ntype QueryResolver interface {\n\tIntTyped(ctx context.Context, arg model.IntTyped) (model.IntTyped, error)\n\tIntUntyped(ctx context.Context, arg int) (int, error)\n\tIntTypedN(ctx context.Context, arg *model.IntTyped) (*model.IntTyped, error)\n\tIntUntypedN(ctx context.Context, arg *int) (*int, error)\n\tStringTyped(ctx context.Context, arg model.StringTyped) (model.StringTyped, error)\n\tStringUntyped(ctx context.Context, arg string) (string, error)\n\tStringTypedN(ctx context.Context, arg *model.StringTyped) (*model.StringTyped, error)\n\tStringUntypedN(ctx context.Context, arg *string) (*string, error)\n\tBoolTyped(ctx context.Context, arg model.BoolTyped) (model.BoolTyped, error)\n\tBoolUntyped(ctx context.Context, arg bool) (bool, error)\n\tBoolTypedN(ctx context.Context, arg *model.BoolTyped) (*model.BoolTyped, error)\n\tBoolUntypedN(ctx context.Context, arg *bool) (*bool, error)\n\tVarTyped(ctx context.Context, arg model.VarTyped) (model.VarTyped, error)\n\tVarUntyped(ctx context.Context, arg bool) (bool, error)\n\tInPackage(ctx context.Context, arg InPackage) (InPackage, error)\n}\n\ntype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.SchemaData != nil {\n\t\treturn e.SchemaData\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := newExecutionContext(nil, e, nil)\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"Query.boolTyped\":\n\t\tif e.ComplexityRoot.Query.BoolTyped == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_boolTyped_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.BoolTyped(childComplexity, args[\"arg\"].(model.BoolTyped)), true\n\tcase \"Query.boolTypedN\":\n\t\tif e.ComplexityRoot.Query.BoolTypedN == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_boolTypedN_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.BoolTypedN(childComplexity, args[\"arg\"].(*model.BoolTyped)), true\n\tcase \"Query.boolUntyped\":\n\t\tif e.ComplexityRoot.Query.BoolUntyped == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_boolUntyped_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.BoolUntyped(childComplexity, args[\"arg\"].(bool)), true\n\tcase \"Query.boolUntypedN\":\n\t\tif e.ComplexityRoot.Query.BoolUntypedN == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_boolUntypedN_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.BoolUntypedN(childComplexity, args[\"arg\"].(*bool)), true\n\tcase \"Query.inPackage\":\n\t\tif e.ComplexityRoot.Query.InPackage == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_inPackage_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.InPackage(childComplexity, args[\"arg\"].(InPackage)), true\n\tcase \"Query.intTyped\":\n\t\tif e.ComplexityRoot.Query.IntTyped == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_intTyped_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.IntTyped(childComplexity, args[\"arg\"].(model.IntTyped)), true\n\tcase \"Query.intTypedN\":\n\t\tif e.ComplexityRoot.Query.IntTypedN == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_intTypedN_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.IntTypedN(childComplexity, args[\"arg\"].(*model.IntTyped)), true\n\tcase \"Query.intUntyped\":\n\t\tif e.ComplexityRoot.Query.IntUntyped == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_intUntyped_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.IntUntyped(childComplexity, args[\"arg\"].(int)), true\n\tcase \"Query.intUntypedN\":\n\t\tif e.ComplexityRoot.Query.IntUntypedN == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_intUntypedN_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.IntUntypedN(childComplexity, args[\"arg\"].(*int)), true\n\n\tcase \"Query.stringTyped\":\n\t\tif e.ComplexityRoot.Query.StringTyped == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_stringTyped_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.StringTyped(childComplexity, args[\"arg\"].(model.StringTyped)), true\n\tcase \"Query.stringTypedN\":\n\t\tif e.ComplexityRoot.Query.StringTypedN == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_stringTypedN_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.StringTypedN(childComplexity, args[\"arg\"].(*model.StringTyped)), true\n\tcase \"Query.stringUntyped\":\n\t\tif e.ComplexityRoot.Query.StringUntyped == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_stringUntyped_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.StringUntyped(childComplexity, args[\"arg\"].(string)), true\n\tcase \"Query.stringUntypedN\":\n\t\tif e.ComplexityRoot.Query.StringUntypedN == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_stringUntypedN_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.StringUntypedN(childComplexity, args[\"arg\"].(*string)), true\n\tcase \"Query.varTyped\":\n\t\tif e.ComplexityRoot.Query.VarTyped == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_varTyped_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.VarTyped(childComplexity, args[\"arg\"].(model.VarTyped)), true\n\tcase \"Query.varUntyped\":\n\t\tif e.ComplexityRoot.Query.VarUntyped == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_varUntyped_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.VarUntyped(childComplexity, args[\"arg\"].(bool)), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap()\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"../enum.graphqls\", Input: `directive @goModel(\n    model: String\n    models: [String!]\n) on OBJECT | INPUT_OBJECT | SCALAR | ENUM | INTERFACE | UNION\n\ndirective @goEnum(\n    value: String\n) on ENUM_VALUE\n\ntype Query {\n    intTyped(arg: IntTyped!): IntTyped!\n    intUntyped(arg: IntUntyped!): IntUntyped!\n    intTypedN(arg: IntTyped): IntTyped\n    intUntypedN(arg: IntUntyped): IntUntyped\n\n    stringTyped(arg: StringTyped!): StringTyped!\n    stringUntyped(arg: StringUntyped!): StringUntyped!\n    stringTypedN(arg: StringTyped): StringTyped\n    stringUntypedN(arg: StringUntyped): StringUntyped\n\n    boolTyped(arg: BoolTyped!): BoolTyped!\n    boolUntyped(arg: BoolUntyped!): BoolUntyped!\n    boolTypedN(arg: BoolTyped): BoolTyped\n    boolUntypedN(arg: BoolUntyped): BoolUntyped\n\n    varTyped(arg: VarTyped!): VarTyped!\n    varUntyped(arg: VarUntyped!): VarUntyped!\n\n    inPackage(arg: InPackage!): InPackage!\n}\n\nenum IntTyped @goModel(model: \"github.com/99designs/gqlgen/_examples/enum/model.IntTyped\") {\n    ONE @goEnum(value: \"github.com/99designs/gqlgen/_examples/enum/model.IntTypedOne\")\n    TWO @goEnum(value: \"github.com/99designs/gqlgen/_examples/enum/model.IntTypedTwo\")\n}\n\nenum IntUntyped @goModel(model: \"github.com/99designs/gqlgen/graphql.Int\") {\n    ONE @goEnum(value: \"github.com/99designs/gqlgen/_examples/enum/model.IntUntypedOne\")\n    TWO @goEnum(value: \"github.com/99designs/gqlgen/_examples/enum/model.IntUntypedTwo\")\n}\n\nenum StringTyped @goModel(model: \"github.com/99designs/gqlgen/_examples/enum/model.StringTyped\") {\n    ONE @goEnum(value: \"github.com/99designs/gqlgen/_examples/enum/model.StringTypedOne\")\n    TWO @goEnum(value: \"github.com/99designs/gqlgen/_examples/enum/model.StringTypedTwo\")\n}\n\nenum StringUntyped @goModel(model: \"github.com/99designs/gqlgen/graphql.String\") {\n    ONE @goEnum(value: \"github.com/99designs/gqlgen/_examples/enum/model.StringUntypedOne\")\n    TWO @goEnum(value: \"github.com/99designs/gqlgen/_examples/enum/model.StringUntypedTwo\")\n}\n\nenum BoolTyped {\n    TRUE\n    FALSE\n}\n\nenum BoolUntyped {\n    TRUE\n    FALSE\n}\n\nenum VarTyped @goModel(model: \"github.com/99designs/gqlgen/_examples/enum/model.VarTyped\") {\n    TRUE @goEnum(value: \"github.com/99designs/gqlgen/_examples/enum/model.VarTypedTrue\")\n    FALSE @goEnum(value: \"github.com/99designs/gqlgen/_examples/enum/model.VarTypedFalse\")\n}\n\nenum VarUntyped @goModel(model: \"github.com/99designs/gqlgen/graphql.Boolean\") {\n    TRUE @goEnum(value: \"github.com/99designs/gqlgen/_examples/enum/model.VarUntypedTrue\")\n    FALSE @goEnum(value: \"github.com/99designs/gqlgen/_examples/enum/model.VarUntypedFalse\")\n}\n\nenum InPackage {\n    TRUE\n    FALSE\n}\n`, BuiltIn: false},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_boolTypedN_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"arg\", ec.unmarshalOBoolTyped2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐBoolTyped)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_boolTyped_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"arg\", ec.unmarshalNBoolTyped2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐBoolTyped)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_boolUntypedN_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"arg\", ec.unmarshalOBoolUntyped2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_boolUntyped_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"arg\", ec.unmarshalNBoolUntyped2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_inPackage_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"arg\", ec.unmarshalNInPackage2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋapiᚐInPackage)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_intTypedN_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"arg\", ec.unmarshalOIntTyped2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐIntTyped)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_intTyped_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"arg\", ec.unmarshalNIntTyped2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐIntTyped)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_intUntypedN_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"arg\", ec.unmarshalOIntUntyped2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_intUntyped_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"arg\", ec.unmarshalNIntUntyped2int)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_stringTypedN_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"arg\", ec.unmarshalOStringTyped2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐStringTyped)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_stringTyped_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"arg\", ec.unmarshalNStringTyped2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐStringTyped)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_stringUntypedN_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"arg\", ec.unmarshalOStringUntyped2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_stringUntyped_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"arg\", ec.unmarshalNStringUntyped2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_varTyped_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"arg\", ec.unmarshalNVarTyped2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐVarTyped)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_varUntyped_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"arg\", ec.unmarshalNVarUntyped2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Query_intTyped(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_intTyped,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().IntTyped(ctx, fc.Args[\"arg\"].(model.IntTyped))\n\t\t},\n\t\tnil,\n\t\tec.marshalNIntTyped2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐIntTyped,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_intTyped(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type IntTyped does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_intTyped_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_intUntyped(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_intUntyped,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().IntUntyped(ctx, fc.Args[\"arg\"].(int))\n\t\t},\n\t\tnil,\n\t\tec.marshalNIntUntyped2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_intUntyped(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type IntUntyped does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_intUntyped_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_intTypedN(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_intTypedN,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().IntTypedN(ctx, fc.Args[\"arg\"].(*model.IntTyped))\n\t\t},\n\t\tnil,\n\t\tec.marshalOIntTyped2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐIntTyped,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_intTypedN(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type IntTyped does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_intTypedN_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_intUntypedN(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_intUntypedN,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().IntUntypedN(ctx, fc.Args[\"arg\"].(*int))\n\t\t},\n\t\tnil,\n\t\tec.marshalOIntUntyped2ᚖint,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_intUntypedN(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type IntUntyped does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_intUntypedN_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_stringTyped(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_stringTyped,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().StringTyped(ctx, fc.Args[\"arg\"].(model.StringTyped))\n\t\t},\n\t\tnil,\n\t\tec.marshalNStringTyped2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐStringTyped,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_stringTyped(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type StringTyped does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_stringTyped_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_stringUntyped(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_stringUntyped,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().StringUntyped(ctx, fc.Args[\"arg\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNStringUntyped2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_stringUntyped(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type StringUntyped does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_stringUntyped_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_stringTypedN(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_stringTypedN,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().StringTypedN(ctx, fc.Args[\"arg\"].(*model.StringTyped))\n\t\t},\n\t\tnil,\n\t\tec.marshalOStringTyped2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐStringTyped,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_stringTypedN(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type StringTyped does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_stringTypedN_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_stringUntypedN(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_stringUntypedN,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().StringUntypedN(ctx, fc.Args[\"arg\"].(*string))\n\t\t},\n\t\tnil,\n\t\tec.marshalOStringUntyped2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_stringUntypedN(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type StringUntyped does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_stringUntypedN_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_boolTyped(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_boolTyped,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().BoolTyped(ctx, fc.Args[\"arg\"].(model.BoolTyped))\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolTyped2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐBoolTyped,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_boolTyped(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type BoolTyped does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_boolTyped_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_boolUntyped(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_boolUntyped,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().BoolUntyped(ctx, fc.Args[\"arg\"].(bool))\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolUntyped2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_boolUntyped(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type BoolUntyped does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_boolUntyped_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_boolTypedN(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_boolTypedN,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().BoolTypedN(ctx, fc.Args[\"arg\"].(*model.BoolTyped))\n\t\t},\n\t\tnil,\n\t\tec.marshalOBoolTyped2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐBoolTyped,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_boolTypedN(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type BoolTyped does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_boolTypedN_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_boolUntypedN(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_boolUntypedN,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().BoolUntypedN(ctx, fc.Args[\"arg\"].(*bool))\n\t\t},\n\t\tnil,\n\t\tec.marshalOBoolUntyped2ᚖbool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_boolUntypedN(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type BoolUntyped does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_boolUntypedN_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_varTyped(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_varTyped,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().VarTyped(ctx, fc.Args[\"arg\"].(model.VarTyped))\n\t\t},\n\t\tnil,\n\t\tec.marshalNVarTyped2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐVarTyped,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_varTyped(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type VarTyped does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_varTyped_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_varUntyped(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_varUntyped,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().VarUntyped(ctx, fc.Args[\"arg\"].(bool))\n\t\t},\n\t\tnil,\n\t\tec.marshalNVarUntyped2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_varUntyped(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type VarUntyped does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_varUntyped_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_inPackage(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_inPackage,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().InPackage(ctx, fc.Args[\"arg\"].(InPackage))\n\t\t},\n\t\tnil,\n\t\tec.marshalNInPackage2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋapiᚐInPackage,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_inPackage(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type InPackage does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_inPackage_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.IntrospectType(fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___schema,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.IntrospectSchema()\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_isRepeatable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsRepeatable, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_locations,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Locations, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__DirectiveLocation2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_defaultValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DefaultValue, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_types,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Types(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_queryType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.QueryType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_mutationType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.MutationType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_subscriptionType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SubscriptionType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_directives,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Directives(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_kind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Kind(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__TypeKind2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_specifiedByURL,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SpecifiedByURL(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_fields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_interfaces,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Interfaces(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_possibleTypes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PossibleTypes(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_enumValues,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_inputFields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.InputFields(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_ofType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.OfType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_isOneOf,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsOneOf(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOBoolean2bool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"intTyped\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_intTyped(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"intUntyped\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_intUntyped(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"intTypedN\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_intTypedN(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"intUntypedN\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_intUntypedN(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"stringTyped\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_stringTyped(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"stringUntyped\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_stringUntyped(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"stringTypedN\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_stringTypedN(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"stringUntypedN\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_stringUntypedN(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"boolTyped\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_boolTyped(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"boolUntyped\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_boolUntyped(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"boolTypedN\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_boolTypedN(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"boolUntypedN\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_boolUntypedN(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"varTyped\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_varTyped(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"varUntyped\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_varUntyped(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"inPackage\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_inPackage(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolTyped2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐBoolTyped(ctx context.Context, v any) (model.BoolTyped, error) {\n\ttmp, err := graphql.UnmarshalString(v)\n\tres := unmarshalNBoolTyped2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐBoolTyped[tmp]\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolTyped2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐBoolTyped(ctx context.Context, sel ast.SelectionSet, v model.BoolTyped) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(marshalNBoolTyped2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐBoolTyped[v])\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nvar (\n\tunmarshalNBoolTyped2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐBoolTyped = map[string]model.BoolTyped{\n\t\t\"TRUE\":  model.BoolTypedTrue,\n\t\t\"FALSE\": model.BoolTypedFalse,\n\t}\n\tmarshalNBoolTyped2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐBoolTyped = map[model.BoolTyped]string{\n\t\tmodel.BoolTypedTrue:  \"TRUE\",\n\t\tmodel.BoolTypedFalse: \"FALSE\",\n\t}\n)\n\nfunc (ec *executionContext) unmarshalNBoolUntyped2bool(ctx context.Context, v any) (bool, error) {\n\ttmp, err := graphql.UnmarshalString(v)\n\tres := unmarshalNBoolUntyped2bool[tmp]\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolUntyped2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(marshalNBoolUntyped2bool[v])\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nvar (\n\tunmarshalNBoolUntyped2bool = map[string]bool{\n\t\t\"TRUE\":  model.BoolUntypedTrue,\n\t\t\"FALSE\": model.BoolUntypedFalse,\n\t}\n\tmarshalNBoolUntyped2bool = map[bool]string{\n\t\tmodel.BoolUntypedTrue:  \"TRUE\",\n\t\tmodel.BoolUntypedFalse: \"FALSE\",\n\t}\n)\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNInPackage2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋapiᚐInPackage(ctx context.Context, v any) (InPackage, error) {\n\ttmp, err := graphql.UnmarshalString(v)\n\tres := unmarshalNInPackage2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋapiᚐInPackage[tmp]\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNInPackage2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋapiᚐInPackage(ctx context.Context, sel ast.SelectionSet, v InPackage) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(marshalNInPackage2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋapiᚐInPackage[v])\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nvar (\n\tunmarshalNInPackage2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋapiᚐInPackage = map[string]InPackage{\n\t\t\"TRUE\":  InPackageTrue,\n\t\t\"FALSE\": InPackageFalse,\n\t}\n\tmarshalNInPackage2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋapiᚐInPackage = map[InPackage]string{\n\t\tInPackageTrue:  \"TRUE\",\n\t\tInPackageFalse: \"FALSE\",\n\t}\n)\n\nfunc (ec *executionContext) unmarshalNIntTyped2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐIntTyped(ctx context.Context, v any) (model.IntTyped, error) {\n\ttmp, err := graphql.UnmarshalString(v)\n\tres := unmarshalNIntTyped2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐIntTyped[tmp]\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNIntTyped2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐIntTyped(ctx context.Context, sel ast.SelectionSet, v model.IntTyped) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(marshalNIntTyped2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐIntTyped[v])\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nvar (\n\tunmarshalNIntTyped2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐIntTyped = map[string]model.IntTyped{\n\t\t\"ONE\": model.IntTypedOne,\n\t\t\"TWO\": model.IntTypedTwo,\n\t}\n\tmarshalNIntTyped2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐIntTyped = map[model.IntTyped]string{\n\t\tmodel.IntTypedOne: \"ONE\",\n\t\tmodel.IntTypedTwo: \"TWO\",\n\t}\n)\n\nfunc (ec *executionContext) unmarshalNIntUntyped2int(ctx context.Context, v any) (int, error) {\n\ttmp, err := graphql.UnmarshalString(v)\n\tres := unmarshalNIntUntyped2int[tmp]\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNIntUntyped2int(ctx context.Context, sel ast.SelectionSet, v int) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(marshalNIntUntyped2int[v])\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nvar (\n\tunmarshalNIntUntyped2int = map[string]int{\n\t\t\"ONE\": model.IntUntypedOne,\n\t\t\"TWO\": model.IntUntypedTwo,\n\t}\n\tmarshalNIntUntyped2int = map[int]string{\n\t\tmodel.IntUntypedOne: \"ONE\",\n\t\tmodel.IntUntypedTwo: \"TWO\",\n\t}\n)\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNStringTyped2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐStringTyped(ctx context.Context, v any) (model.StringTyped, error) {\n\ttmp, err := graphql.UnmarshalString(v)\n\tres := unmarshalNStringTyped2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐStringTyped[tmp]\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNStringTyped2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐStringTyped(ctx context.Context, sel ast.SelectionSet, v model.StringTyped) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(marshalNStringTyped2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐStringTyped[v])\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nvar (\n\tunmarshalNStringTyped2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐStringTyped = map[string]model.StringTyped{\n\t\t\"ONE\": model.StringTypedOne,\n\t\t\"TWO\": model.StringTypedTwo,\n\t}\n\tmarshalNStringTyped2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐStringTyped = map[model.StringTyped]string{\n\t\tmodel.StringTypedOne: \"ONE\",\n\t\tmodel.StringTypedTwo: \"TWO\",\n\t}\n)\n\nfunc (ec *executionContext) unmarshalNStringUntyped2string(ctx context.Context, v any) (string, error) {\n\ttmp, err := graphql.UnmarshalString(v)\n\tres := unmarshalNStringUntyped2string[tmp]\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNStringUntyped2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(marshalNStringUntyped2string[v])\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nvar (\n\tunmarshalNStringUntyped2string = map[string]string{\n\t\t\"ONE\": model.StringUntypedOne,\n\t\t\"TWO\": model.StringUntypedTwo,\n\t}\n\tmarshalNStringUntyped2string = map[string]string{\n\t\tmodel.StringUntypedOne: \"ONE\",\n\t\tmodel.StringUntypedTwo: \"TWO\",\n\t}\n)\n\nfunc (ec *executionContext) unmarshalNVarTyped2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐVarTyped(ctx context.Context, v any) (model.VarTyped, error) {\n\ttmp, err := graphql.UnmarshalString(v)\n\tres := unmarshalNVarTyped2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐVarTyped[tmp]\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNVarTyped2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐVarTyped(ctx context.Context, sel ast.SelectionSet, v model.VarTyped) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(marshalNVarTyped2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐVarTyped[v])\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nvar (\n\tunmarshalNVarTyped2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐVarTyped = map[string]model.VarTyped{\n\t\t\"TRUE\":  model.VarTypedTrue,\n\t\t\"FALSE\": model.VarTypedFalse,\n\t}\n\tmarshalNVarTyped2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐVarTyped = map[model.VarTyped]string{\n\t\tmodel.VarTypedTrue:  \"TRUE\",\n\t\tmodel.VarTypedFalse: \"FALSE\",\n\t}\n)\n\nfunc (ec *executionContext) unmarshalNVarUntyped2bool(ctx context.Context, v any) (bool, error) {\n\ttmp, err := graphql.UnmarshalString(v)\n\tres := unmarshalNVarUntyped2bool[tmp]\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNVarUntyped2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(marshalNVarUntyped2bool[v])\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nvar (\n\tunmarshalNVarUntyped2bool = map[string]bool{\n\t\t\"TRUE\":  model.VarUntypedTrue,\n\t\t\"FALSE\": model.VarUntypedFalse,\n\t}\n\tmarshalNVarUntyped2bool = map[bool]string{\n\t\tmodel.VarUntypedTrue:  \"TRUE\",\n\t\tmodel.VarUntypedFalse: \"FALSE\",\n\t}\n)\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolTyped2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐBoolTyped(ctx context.Context, v any) (*model.BoolTyped, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\ttmp, err := graphql.UnmarshalString(v)\n\tres := unmarshalOBoolTyped2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐBoolTyped[tmp]\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolTyped2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐBoolTyped(ctx context.Context, sel ast.SelectionSet, v *model.BoolTyped) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(marshalOBoolTyped2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐBoolTyped[*v])\n\treturn res\n}\n\nvar (\n\tunmarshalOBoolTyped2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐBoolTyped = map[string]model.BoolTyped{\n\t\t\"TRUE\":  model.BoolTypedTrue,\n\t\t\"FALSE\": model.BoolTypedFalse,\n\t}\n\tmarshalOBoolTyped2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐBoolTyped = map[model.BoolTyped]string{\n\t\tmodel.BoolTypedTrue:  \"TRUE\",\n\t\tmodel.BoolTypedFalse: \"FALSE\",\n\t}\n)\n\nfunc (ec *executionContext) unmarshalOBoolUntyped2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\ttmp, err := graphql.UnmarshalString(v)\n\tres := unmarshalOBoolUntyped2ᚖbool[tmp]\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolUntyped2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(marshalOBoolUntyped2ᚖbool[*v])\n\treturn res\n}\n\nvar (\n\tunmarshalOBoolUntyped2ᚖbool = map[string]bool{\n\t\t\"TRUE\":  model.BoolUntypedTrue,\n\t\t\"FALSE\": model.BoolUntypedFalse,\n\t}\n\tmarshalOBoolUntyped2ᚖbool = map[bool]string{\n\t\tmodel.BoolUntypedTrue:  \"TRUE\",\n\t\tmodel.BoolUntypedFalse: \"FALSE\",\n\t}\n)\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOIntTyped2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐIntTyped(ctx context.Context, v any) (*model.IntTyped, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\ttmp, err := graphql.UnmarshalString(v)\n\tres := unmarshalOIntTyped2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐIntTyped[tmp]\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOIntTyped2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐIntTyped(ctx context.Context, sel ast.SelectionSet, v *model.IntTyped) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(marshalOIntTyped2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐIntTyped[*v])\n\treturn res\n}\n\nvar (\n\tunmarshalOIntTyped2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐIntTyped = map[string]model.IntTyped{\n\t\t\"ONE\": model.IntTypedOne,\n\t\t\"TWO\": model.IntTypedTwo,\n\t}\n\tmarshalOIntTyped2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐIntTyped = map[model.IntTyped]string{\n\t\tmodel.IntTypedOne: \"ONE\",\n\t\tmodel.IntTypedTwo: \"TWO\",\n\t}\n)\n\nfunc (ec *executionContext) unmarshalOIntUntyped2ᚖint(ctx context.Context, v any) (*int, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\ttmp, err := graphql.UnmarshalString(v)\n\tres := unmarshalOIntUntyped2ᚖint[tmp]\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOIntUntyped2ᚖint(ctx context.Context, sel ast.SelectionSet, v *int) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(marshalOIntUntyped2ᚖint[*v])\n\treturn res\n}\n\nvar (\n\tunmarshalOIntUntyped2ᚖint = map[string]int{\n\t\t\"ONE\": model.IntUntypedOne,\n\t\t\"TWO\": model.IntUntypedTwo,\n\t}\n\tmarshalOIntUntyped2ᚖint = map[int]string{\n\t\tmodel.IntUntypedOne: \"ONE\",\n\t\tmodel.IntUntypedTwo: \"TWO\",\n\t}\n)\n\nfunc (ec *executionContext) unmarshalOString2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNString2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalOString2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNString2string(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOStringTyped2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐStringTyped(ctx context.Context, v any) (*model.StringTyped, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\ttmp, err := graphql.UnmarshalString(v)\n\tres := unmarshalOStringTyped2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐStringTyped[tmp]\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOStringTyped2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐStringTyped(ctx context.Context, sel ast.SelectionSet, v *model.StringTyped) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(marshalOStringTyped2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐStringTyped[*v])\n\treturn res\n}\n\nvar (\n\tunmarshalOStringTyped2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐStringTyped = map[string]model.StringTyped{\n\t\t\"ONE\": model.StringTypedOne,\n\t\t\"TWO\": model.StringTypedTwo,\n\t}\n\tmarshalOStringTyped2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋenumᚋmodelᚐStringTyped = map[model.StringTyped]string{\n\t\tmodel.StringTypedOne: \"ONE\",\n\t\tmodel.StringTypedTwo: \"TWO\",\n\t}\n)\n\nfunc (ec *executionContext) unmarshalOStringUntyped2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\ttmp, err := graphql.UnmarshalString(v)\n\tres := unmarshalOStringUntyped2ᚖstring[tmp]\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOStringUntyped2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(marshalOStringUntyped2ᚖstring[*v])\n\treturn res\n}\n\nvar (\n\tunmarshalOStringUntyped2ᚖstring = map[string]string{\n\t\t\"ONE\": model.StringUntypedOne,\n\t\t\"TWO\": model.StringUntypedTwo,\n\t}\n\tmarshalOStringUntyped2ᚖstring = map[string]string{\n\t\tmodel.StringUntypedOne: \"ONE\",\n\t\tmodel.StringUntypedTwo: \"TWO\",\n\t}\n)\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "_examples/enum/api/model.go",
    "content": "package api\n\ntype InPackage bool\n\nconst (\n\tInPackageTrue  InPackage = true\n\tInPackageFalse InPackage = false\n)\n"
  },
  {
    "path": "_examples/enum/api/resolver.go",
    "content": "package api\n\n// This file will not be regenerated automatically.\n//\n// It serves as dependency injection for your app, add any dependencies you require here.\n\ntype Resolver struct{}\n"
  },
  {
    "path": "_examples/enum/cmd/main.go",
    "content": "package main\n\nimport (\n\t\"log\"\n\t\"net/http\"\n\n\t\"github.com/99designs/gqlgen/_examples/enum/api\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/graphql/playground\"\n)\n\nfunc main() {\n\tsrv := handler.New(\n\t\tapi.NewExecutableSchema(api.Config{Resolvers: &api.Resolver{}}),\n\t)\n\n\tsrv.AddTransport(transport.Options{})\n\tsrv.AddTransport(transport.GET{})\n\tsrv.AddTransport(transport.POST{})\n\n\thttp.Handle(\"/\", playground.Handler(\"Enum\", \"/query\"))\n\thttp.Handle(\"/query\", srv)\n\tlog.Fatal(http.ListenAndServe(\":8081\", nil))\n}\n"
  },
  {
    "path": "_examples/enum/enum.graphqls",
    "content": "directive @goModel(\n    model: String\n    models: [String!]\n) on OBJECT | INPUT_OBJECT | SCALAR | ENUM | INTERFACE | UNION\n\ndirective @goEnum(\n    value: String\n) on ENUM_VALUE\n\ntype Query {\n    intTyped(arg: IntTyped!): IntTyped!\n    intUntyped(arg: IntUntyped!): IntUntyped!\n    intTypedN(arg: IntTyped): IntTyped\n    intUntypedN(arg: IntUntyped): IntUntyped\n\n    stringTyped(arg: StringTyped!): StringTyped!\n    stringUntyped(arg: StringUntyped!): StringUntyped!\n    stringTypedN(arg: StringTyped): StringTyped\n    stringUntypedN(arg: StringUntyped): StringUntyped\n\n    boolTyped(arg: BoolTyped!): BoolTyped!\n    boolUntyped(arg: BoolUntyped!): BoolUntyped!\n    boolTypedN(arg: BoolTyped): BoolTyped\n    boolUntypedN(arg: BoolUntyped): BoolUntyped\n\n    varTyped(arg: VarTyped!): VarTyped!\n    varUntyped(arg: VarUntyped!): VarUntyped!\n\n    inPackage(arg: InPackage!): InPackage!\n}\n\nenum IntTyped @goModel(model: \"github.com/99designs/gqlgen/_examples/enum/model.IntTyped\") {\n    ONE @goEnum(value: \"github.com/99designs/gqlgen/_examples/enum/model.IntTypedOne\")\n    TWO @goEnum(value: \"github.com/99designs/gqlgen/_examples/enum/model.IntTypedTwo\")\n}\n\nenum IntUntyped @goModel(model: \"github.com/99designs/gqlgen/graphql.Int\") {\n    ONE @goEnum(value: \"github.com/99designs/gqlgen/_examples/enum/model.IntUntypedOne\")\n    TWO @goEnum(value: \"github.com/99designs/gqlgen/_examples/enum/model.IntUntypedTwo\")\n}\n\nenum StringTyped @goModel(model: \"github.com/99designs/gqlgen/_examples/enum/model.StringTyped\") {\n    ONE @goEnum(value: \"github.com/99designs/gqlgen/_examples/enum/model.StringTypedOne\")\n    TWO @goEnum(value: \"github.com/99designs/gqlgen/_examples/enum/model.StringTypedTwo\")\n}\n\nenum StringUntyped @goModel(model: \"github.com/99designs/gqlgen/graphql.String\") {\n    ONE @goEnum(value: \"github.com/99designs/gqlgen/_examples/enum/model.StringUntypedOne\")\n    TWO @goEnum(value: \"github.com/99designs/gqlgen/_examples/enum/model.StringUntypedTwo\")\n}\n\nenum BoolTyped {\n    TRUE\n    FALSE\n}\n\nenum BoolUntyped {\n    TRUE\n    FALSE\n}\n\nenum VarTyped @goModel(model: \"github.com/99designs/gqlgen/_examples/enum/model.VarTyped\") {\n    TRUE @goEnum(value: \"github.com/99designs/gqlgen/_examples/enum/model.VarTypedTrue\")\n    FALSE @goEnum(value: \"github.com/99designs/gqlgen/_examples/enum/model.VarTypedFalse\")\n}\n\nenum VarUntyped @goModel(model: \"github.com/99designs/gqlgen/graphql.Boolean\") {\n    TRUE @goEnum(value: \"github.com/99designs/gqlgen/_examples/enum/model.VarUntypedTrue\")\n    FALSE @goEnum(value: \"github.com/99designs/gqlgen/_examples/enum/model.VarUntypedFalse\")\n}\n\nenum InPackage {\n    TRUE\n    FALSE\n}\n"
  },
  {
    "path": "_examples/enum/gen.go",
    "content": "//go:generate go run ../../testdata/gqlgen.go\n\npackage enum\n"
  },
  {
    "path": "_examples/enum/gqlgen.yaml",
    "content": "schema: ./*.graphqls\n\nexec:\n  filename: ./api/exec.go\n  package: api\n\nresolver:\n  layout: follow-schema\n  package: api\n  dir: api\n  filename_template: \"{name}.go\"\n\nomit_slice_element_pointers: true\nresolvers_always_return_pointers: false\nstruct_fields_always_pointers: false\nomit_root_models: true\n\nmodels:\n  BoolTyped:\n    model: github.com/99designs/gqlgen/_examples/enum/model.BoolTyped\n    enum_values:\n      \"TRUE\":\n        value: github.com/99designs/gqlgen/_examples/enum/model.BoolTypedTrue\n      \"FALSE\":\n        value: github.com/99designs/gqlgen/_examples/enum/model.BoolTypedFalse\n  BoolUntyped:\n    model: github.com/99designs/gqlgen/graphql.Boolean\n    enum_values:\n      \"TRUE\":\n        value: github.com/99designs/gqlgen/_examples/enum/model.BoolUntypedTrue\n      \"FALSE\":\n        value: github.com/99designs/gqlgen/_examples/enum/model.BoolUntypedFalse\n  InPackage:\n    model: github.com/99designs/gqlgen/_examples/enum/api.InPackage\n    enum_values:\n      \"TRUE\":\n        value: github.com/99designs/gqlgen/_examples/enum/api.InPackageTrue\n      \"FALSE\":\n        value: github.com/99designs/gqlgen/_examples/enum/api.InPackageFalse\n"
  },
  {
    "path": "_examples/enum/model/model.go",
    "content": "package model\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n)\n\n// this file is provided as an example for int-based enums\n// but if you instead wanted to support arbitrary\n// english words for numbers to integers, consider\n// github.com/will-lol/numberconverter/etoi or a similar library\ntype IntTyped int\n\nconst (\n\tIntTypedOne IntTyped = iota + 1\n\tIntTypedTwo\n)\n\nconst (\n\tIntUntypedOne = iota + 1\n\tIntUntypedTwo\n)\n\nfunc (t IntTyped) String() string {\n\tswitch t {\n\tcase IntTypedOne:\n\t\treturn \"ONE\"\n\tcase IntTypedTwo:\n\t\treturn \"TWO\"\n\tdefault:\n\t\treturn \"UNKNOWN\"\n\t}\n}\n\nfunc (t IntTyped) MarshalJSON() ([]byte, error) {\n\treturn []byte(fmt.Sprintf(`\"%s\"`, t.String())), nil\n}\n\nfunc (t *IntTyped) UnmarshalJSON(b []byte) (err error) {\n\tvar s string\n\n\tif err = json.Unmarshal(b, &s); err != nil {\n\t\treturn err\n\t}\n\n\tswitch s {\n\tcase \"ONE\":\n\t\t*t = IntTypedOne\n\tcase \"TWO\":\n\t\t*t = IntTypedTwo\n\tdefault:\n\t\treturn fmt.Errorf(\"unexpected enum value %q\", s)\n\t}\n\n\treturn nil\n}\n\ntype StringTyped string\n\nconst (\n\tStringTypedOne StringTyped = \"ONE\"\n\tStringTypedTwo StringTyped = \"TWO\"\n)\n\nconst (\n\tStringUntypedOne = \"ONE\"\n\tStringUntypedTwo = \"TWO\"\n)\n\ntype BoolTyped bool\n\nconst (\n\tBoolTypedTrue  BoolTyped = true\n\tBoolTypedFalse BoolTyped = false\n)\n\nconst (\n\tBoolUntypedTrue  = true\n\tBoolUntypedFalse = false\n)\n\ntype VarTyped bool\n\nvar (\n\tVarTypedTrue  VarTyped = true\n\tVarTypedFalse VarTyped = false\n)\n\nvar (\n\tVarUntypedTrue  = true\n\tVarUntypedFalse = false\n)\n"
  },
  {
    "path": "_examples/federation/accounts/gqlgen.yml",
    "content": "# Where are all the schema files located? globs are supported eg  src/**/*.graphqls\nschema:\n  - graph/*.graphqls\n\n# Where should the generated server code go?\nexec:\n  filename: graph/generated.go\n  package: graph\n\nfederation:\n  filename: graph/federation.go\n  version: 2\n  package: graph\n\n# Where should any generated models go?\nmodel:\n  filename: graph/model/models_gen.go\n  package: model\n\n# Where should the resolver implementations go?\nresolver:\n  layout: follow-schema\n  dir: graph\n  package: graph\n\n# Optional: turn on use `gqlgen:\"fieldName\"` tags in your models\n# struct_tag: json\n\n# Optional: turn on to use []Thing instead of []*Thing\n# omit_slice_element_pointers: false\n\n# Optional: turn off to make struct-type struct fields not use pointers\n# e.g. type Thing struct { FieldA OtherThing } instead of { FieldA *OtherThing }\n# struct_fields_always_pointers: true\n\n# Optional: turn off to make resolvers return values instead of pointers for structs\n# resolvers_always_return_pointers: true\n\n# Optional: turn on to return pointers instead of values in unmarshalInput\n# return_pointers_in_unmarshalinput: false\n\n# Optional: wrap nullable input fields with Omittable\n# nullable_input_omittable: true\n\n# Optional: set to speed up generation time by not performing a final validation pass.\n# skip_validation: true\n\n# gqlgen will search for any type names in the schema in these go packages\n# if they match it will use them, otherwise it will generate them.\nautobind:\n  - \"github.com/99designs/gqlgen/_examples/federation/accounts/graph/model\"\n\n# This section declares type mapping between the GraphQL and go type systems\n#\n# The first line in each type will be used as defaults for resolver arguments and\n# modelgen, the others will be allowed when binding to fields. Configure them to\n# your liking\nmodels:\n  ID:\n    model:\n      - github.com/99designs/gqlgen/graphql.ID\n      - github.com/99designs/gqlgen/graphql.Int\n      - github.com/99designs/gqlgen/graphql.Int64\n      - github.com/99designs/gqlgen/graphql.Int32\n  Int:\n    model:\n      - github.com/99designs/gqlgen/graphql.Int\n      - github.com/99designs/gqlgen/graphql.Int64\n      - github.com/99designs/gqlgen/graphql.Int32\n"
  },
  {
    "path": "_examples/federation/accounts/graph/entity.resolvers.go",
    "content": "package graph\n\n// This file will be automatically regenerated based on the schema, any resolver\n// implementations\n// will be copied through when generating and any unknown code will be moved to the end.\n// Code generated by github.com/99designs/gqlgen version v0.17.88-dev\n\nimport (\n\t\"context\"\n\n\t\"github.com/99designs/gqlgen/_examples/federation/accounts/graph/model\"\n)\n\n// FindEmailHostByID is the resolver for the findEmailHostByID field.\nfunc (r *entityResolver) FindEmailHostByID(ctx context.Context, id string) (*model.EmailHost, error) {\n\treturn r.HostForUserID(id)\n}\n\n// FindUserByID is the resolver for the findUserByID field.\nfunc (r *entityResolver) FindUserByID(ctx context.Context, id string) (*model.User, error) {\n\tname := \"User \" + id\n\tif id == \"1234\" {\n\t\tname = \"Me\"\n\t}\n\n\treturn &model.User{\n\t\tID:       id,\n\t\tUsername: name,\n\t\tEmail:    id + \"@test.com\",\n\t}, nil\n}\n\n// Entity returns EntityResolver implementation.\nfunc (r *Resolver) Entity() EntityResolver { return &entityResolver{r} }\n\ntype entityResolver struct{ *Resolver }\n"
  },
  {
    "path": "_examples/federation/accounts/graph/federation.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage graph\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"github.com/99designs/gqlgen/plugin/federation/fedruntime\"\n)\n\nvar (\n\tErrUnknownType  = errors.New(\"unknown type\")\n\tErrTypeNotFound = errors.New(\"type not found\")\n)\n\nfunc (ec *executionContext) __resolve__service(ctx context.Context) (fedruntime.Service, error) {\n\tif ec.DisableIntrospection {\n\t\treturn fedruntime.Service{}, errors.New(\"federated introspection disabled\")\n\t}\n\n\tvar sdl []string\n\n\tfor _, src := range sources {\n\t\tif src.BuiltIn {\n\t\t\tcontinue\n\t\t}\n\t\tsdl = append(sdl, src.Input)\n\t}\n\n\treturn fedruntime.Service{\n\t\tSDL: strings.Join(sdl, \"\\n\"),\n\t}, nil\n}\n\nfunc (ec *executionContext) __resolve_entities(ctx context.Context, representations []map[string]any) []fedruntime.Entity {\n\tlist := make([]fedruntime.Entity, len(representations))\n\n\trepsMap := ec.buildRepresentationGroups(ctx, representations)\n\n\tswitch len(repsMap) {\n\tcase 0:\n\t\treturn list\n\tcase 1:\n\t\tfor typeName, reps := range repsMap {\n\t\t\tec.resolveEntityGroup(ctx, typeName, reps, list)\n\t\t}\n\t\treturn list\n\tdefault:\n\t\tvar g sync.WaitGroup\n\t\tg.Add(len(repsMap))\n\t\tfor typeName, reps := range repsMap {\n\t\t\tgo func(typeName string, reps []EntityWithIndex) {\n\t\t\t\tec.resolveEntityGroup(ctx, typeName, reps, list)\n\t\t\t\tg.Done()\n\t\t\t}(typeName, reps)\n\t\t}\n\t\tg.Wait()\n\t\treturn list\n\t}\n}\n\ntype EntityWithIndex struct {\n\t// The index in the original representation array\n\tindex  int\n\tentity EntityRepresentation\n}\n\n// EntityRepresentation is the JSON representation of an entity sent by the Router\n// used as the inputs for us to resolve.\n//\n// We make it a map because we know the top level JSON is always an object.\ntype EntityRepresentation map[string]any\n\n// We group entities by typename so that we can parallelize their resolution.\n// This is particularly helpful when there are entity groups in multi mode.\nfunc (ec *executionContext) buildRepresentationGroups(\n\tctx context.Context,\n\trepresentations []map[string]any,\n) map[string][]EntityWithIndex {\n\trepsMap := make(map[string][]EntityWithIndex)\n\tfor i, rep := range representations {\n\t\ttypeName, ok := rep[\"__typename\"].(string)\n\t\tif !ok {\n\t\t\t// If there is no __typename, we just skip the representation;\n\t\t\t// we just won't be resolving these unknown types.\n\t\t\tec.Error(ctx, errors.New(\"__typename must be an existing string\"))\n\t\t\tcontinue\n\t\t}\n\n\t\trepsMap[typeName] = append(repsMap[typeName], EntityWithIndex{\n\t\t\tindex:  i,\n\t\t\tentity: rep,\n\t\t})\n\t}\n\n\treturn repsMap\n}\n\nfunc (ec *executionContext) resolveEntityGroup(\n\tctx context.Context,\n\ttypeName string,\n\treps []EntityWithIndex,\n\tlist []fedruntime.Entity,\n) {\n\tif isMulti(typeName) {\n\t\terr := ec.resolveManyEntities(ctx, typeName, reps, list)\n\t\tif err != nil {\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t} else {\n\t\t// if there are multiple entities to resolve, parallelize (similar to\n\t\t// graphql.FieldSet.Dispatch)\n\t\tvar e sync.WaitGroup\n\t\te.Add(len(reps))\n\t\tfor i, rep := range reps {\n\t\t\ti, rep := i, rep\n\t\t\tgo func(i int, rep EntityWithIndex) {\n\t\t\t\tentity, err := ec.resolveEntity(ctx, typeName, rep.entity)\n\t\t\t\tif err != nil {\n\t\t\t\t\tec.Error(ctx, err)\n\t\t\t\t} else {\n\t\t\t\t\tlist[rep.index] = entity\n\t\t\t\t}\n\t\t\t\te.Done()\n\t\t\t}(i, rep)\n\t\t}\n\t\te.Wait()\n\t}\n}\n\nfunc isMulti(typeName string) bool {\n\tswitch typeName {\n\tdefault:\n\t\treturn false\n\t}\n}\n\nfunc (ec *executionContext) resolveEntity(\n\tctx context.Context,\n\ttypeName string,\n\trep EntityRepresentation,\n) (e fedruntime.Entity, err error) {\n\t// we need to do our own panic handling, because we may be called in a\n\t// goroutine, where the usual panic handling can't catch us\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t}\n\t}()\n\n\tswitch typeName {\n\tcase \"EmailHost\":\n\t\tresolverName, err := entityResolverNameForEmailHost(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"EmailHost\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findEmailHostByID\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"id\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findEmailHostByID(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindEmailHostByID(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"EmailHost\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"User\":\n\t\tresolverName, err := entityResolverNameForUser(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"User\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findUserByID\":\n\t\t\tid0, err := ec.unmarshalNID2string(ctx, rep[\"id\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findUserByID(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindUserByID(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"User\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\n\t}\n\treturn nil, fmt.Errorf(\"%w: %s\", ErrUnknownType, typeName)\n}\n\nfunc (ec *executionContext) resolveManyEntities(\n\tctx context.Context,\n\ttypeName string,\n\treps []EntityWithIndex,\n\tlist []fedruntime.Entity,\n) (err error) {\n\t// we need to do our own panic handling, because we may be called in a\n\t// goroutine, where the usual panic handling can't catch us\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t}\n\t}()\n\n\tswitch typeName {\n\n\tdefault:\n\t\treturn errors.New(\"unknown type: \" + typeName)\n\t}\n}\n\nfunc entityResolverNameForEmailHost(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"id\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"id\\\" for EmailHost\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for EmailHost\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findEmailHostByID\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for EmailHost due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForUser(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"id\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"id\\\" for User\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for User\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findUserByID\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for User due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n"
  },
  {
    "path": "_examples/federation/accounts/graph/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage graph\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"embed\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/_examples/federation/accounts/graph/model\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\t\"github.com/99designs/gqlgen/plugin/federation/fedruntime\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n}\n\ntype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\ntype ResolverRoot interface {\n\tEntity() EntityResolver\n\tQuery() QueryResolver\n\tUser() UserResolver\n}\n\ntype DirectiveRoot struct {\n}\n\ntype ComplexityRoot struct {\n\tEmailHost struct {\n\t\tID   func(childComplexity int) int\n\t\tName func(childComplexity int) int\n\t}\n\n\tEntity struct {\n\t\tFindEmailHostByID func(childComplexity int, id string) int\n\t\tFindUserByID      func(childComplexity int, id string) int\n\t}\n\n\tQuery struct {\n\t\tMe                 func(childComplexity int) int\n\t\t__resolve__service func(childComplexity int) int\n\t\t__resolve_entities func(childComplexity int, representations []map[string]any) int\n\t}\n\n\tUser struct {\n\t\tEmail    func(childComplexity int) int\n\t\tHost     func(childComplexity int) int\n\t\tID       func(childComplexity int) int\n\t\tUsername func(childComplexity int) int\n\t}\n\n\t_Service struct {\n\t\tSDL func(childComplexity int) int\n\t}\n}\n\ntype EntityResolver interface {\n\tFindEmailHostByID(ctx context.Context, id string) (*model.EmailHost, error)\n\tFindUserByID(ctx context.Context, id string) (*model.User, error)\n}\ntype QueryResolver interface {\n\tMe(ctx context.Context) (*model.User, error)\n}\ntype UserResolver interface {\n\tHost(ctx context.Context, obj *model.User) (*model.EmailHost, error)\n}\n\ntype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.SchemaData != nil {\n\t\treturn e.SchemaData\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := newExecutionContext(nil, e, nil)\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"EmailHost.id\":\n\t\tif e.ComplexityRoot.EmailHost.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.EmailHost.ID(childComplexity), true\n\tcase \"EmailHost.name\":\n\t\tif e.ComplexityRoot.EmailHost.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.EmailHost.Name(childComplexity), true\n\n\tcase \"Entity.findEmailHostByID\":\n\t\tif e.ComplexityRoot.Entity.FindEmailHostByID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Entity_findEmailHostByID_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindEmailHostByID(childComplexity, args[\"id\"].(string)), true\n\tcase \"Entity.findUserByID\":\n\t\tif e.ComplexityRoot.Entity.FindUserByID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Entity_findUserByID_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindUserByID(childComplexity, args[\"id\"].(string)), true\n\n\tcase \"Query.me\":\n\t\tif e.ComplexityRoot.Query.Me == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Me(childComplexity), true\n\tcase \"Query._service\":\n\t\tif e.ComplexityRoot.Query.__resolve__service == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.__resolve__service(childComplexity), true\n\tcase \"Query._entities\":\n\t\tif e.ComplexityRoot.Query.__resolve_entities == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query__entities_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.__resolve_entities(childComplexity, args[\"representations\"].([]map[string]any)), true\n\n\tcase \"User.email\":\n\t\tif e.ComplexityRoot.User.Email == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.Email(childComplexity), true\n\tcase \"User.host\":\n\t\tif e.ComplexityRoot.User.Host == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.Host(childComplexity), true\n\tcase \"User.id\":\n\t\tif e.ComplexityRoot.User.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.ID(childComplexity), true\n\tcase \"User.username\":\n\t\tif e.ComplexityRoot.User.Username == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.Username(childComplexity), true\n\n\tcase \"_Service.sdl\":\n\t\tif e.ComplexityRoot._Service.SDL == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot._Service.SDL(childComplexity), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap()\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\n//go:embed \"schema.graphqls\"\nvar sourcesFS embed.FS\n\nfunc sourceData(filename string) string {\n\tdata, err := sourcesFS.ReadFile(filename)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"codegen problem: %s not available\", filename))\n\t}\n\treturn string(data)\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"schema.graphqls\", Input: sourceData(\"schema.graphqls\"), BuiltIn: false},\n\t{Name: \"../federation/directives.graphql\", Input: `\n\tdirective @authenticated on FIELD_DEFINITION | OBJECT | INTERFACE | SCALAR | ENUM\n\tdirective @composeDirective(name: String!) repeatable on SCHEMA\n\tdirective @extends on OBJECT | INTERFACE\n\tdirective @external on OBJECT | FIELD_DEFINITION\n\tdirective @key(fields: FieldSet!, resolvable: Boolean = true) repeatable on OBJECT | INTERFACE\n\tdirective @inaccessible on\n\t  | ARGUMENT_DEFINITION\n\t  | ENUM\n\t  | ENUM_VALUE\n\t  | FIELD_DEFINITION\n\t  | INPUT_FIELD_DEFINITION\n\t  | INPUT_OBJECT\n\t  | INTERFACE\n\t  | OBJECT\n\t  | SCALAR\n\t  | UNION\n\tdirective @interfaceObject on OBJECT\n\tdirective @link(import: [String!], url: String!) repeatable on SCHEMA\n\tdirective @override(from: String!, label: String) on FIELD_DEFINITION\n\tdirective @policy(policies: [[federation__Policy!]!]!) on\n\t  | FIELD_DEFINITION\n\t  | OBJECT\n\t  | INTERFACE\n\t  | SCALAR\n\t  | ENUM\n\tdirective @provides(fields: FieldSet!) on FIELD_DEFINITION\n\tdirective @requires(fields: FieldSet!) on FIELD_DEFINITION\n\tdirective @requiresScopes(scopes: [[federation__Scope!]!]!) on\n\t  | FIELD_DEFINITION\n\t  | OBJECT\n\t  | INTERFACE\n\t  | SCALAR\n\t  | ENUM\n\tdirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\tdirective @tag(name: String!) repeatable on\n\t  | ARGUMENT_DEFINITION\n\t  | ENUM\n\t  | ENUM_VALUE\n\t  | FIELD_DEFINITION\n\t  | INPUT_FIELD_DEFINITION\n\t  | INPUT_OBJECT\n\t  | INTERFACE\n\t  | OBJECT\n\t  | SCALAR\n\t  | UNION\n\tscalar _Any\n\tscalar FieldSet\n\tscalar federation__Policy\n\tscalar federation__Scope\n`, BuiltIn: true},\n\t{Name: \"../federation/entity.graphql\", Input: `\n# a union of all types that use the @key directive\nunion _Entity = EmailHost | User\n\n# fake type to build resolver interfaces for users to implement\ntype Entity {\n\tfindEmailHostByID(id: String!,): EmailHost!\n\tfindUserByID(id: ID!,): User!\n}\n\ntype _Service {\n  sdl: String\n}\n\nextend type Query {\n  _entities(representations: [_Any!]!): [_Entity]!\n  _service: _Service!\n}\n`, BuiltIn: true},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_Entity_findEmailHostByID_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"id\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"id\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findUserByID_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"id\", ec.unmarshalNID2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"id\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query__entities_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"representations\", ec.unmarshalN_Any2ᚕmapᚄ)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"representations\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _EmailHost_id(ctx context.Context, field graphql.CollectedField, obj *model.EmailHost) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_EmailHost_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_EmailHost_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"EmailHost\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _EmailHost_name(ctx context.Context, field graphql.CollectedField, obj *model.EmailHost) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_EmailHost_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_EmailHost_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"EmailHost\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findEmailHostByID(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findEmailHostByID,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindEmailHostByID(ctx, fc.Args[\"id\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNEmailHost2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋaccountsᚋgraphᚋmodelᚐEmailHost,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findEmailHostByID(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_EmailHost_id(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_EmailHost_name(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type EmailHost\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findEmailHostByID_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findUserByID(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findUserByID,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindUserByID(ctx, fc.Args[\"id\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋaccountsᚋgraphᚋmodelᚐUser,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findUserByID(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_User_id(ctx, field)\n\t\t\tcase \"host\":\n\t\t\t\treturn ec.fieldContext_User_host(ctx, field)\n\t\t\tcase \"email\":\n\t\t\t\treturn ec.fieldContext_User_email(ctx, field)\n\t\t\tcase \"username\":\n\t\t\t\treturn ec.fieldContext_User_username(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type User\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findUserByID_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_me(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_me,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Me(ctx)\n\t\t},\n\t\tnil,\n\t\tec.marshalOUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋaccountsᚋgraphᚋmodelᚐUser,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_me(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_User_id(ctx, field)\n\t\t\tcase \"host\":\n\t\t\t\treturn ec.fieldContext_User_host(ctx, field)\n\t\t\tcase \"email\":\n\t\t\t\treturn ec.fieldContext_User_email(ctx, field)\n\t\t\tcase \"username\":\n\t\t\t\treturn ec.fieldContext_User_username(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type User\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query__entities(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query__entities,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.__resolve_entities(ctx, fc.Args[\"representations\"].([]map[string]any)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN_Entity2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query__entities(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type _Entity does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query__entities_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query__service(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query__service,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.__resolve__service(ctx)\n\t\t},\n\t\tnil,\n\t\tec.marshalN_Service2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐService,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query__service(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"sdl\":\n\t\t\t\treturn ec.fieldContext__Service_sdl(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type _Service\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.IntrospectType(fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___schema,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.IntrospectSchema()\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_id(ctx context.Context, field graphql.CollectedField, obj *model.User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_host(ctx context.Context, field graphql.CollectedField, obj *model.User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_host,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.User().Host(ctx, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalNEmailHost2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋaccountsᚋgraphᚋmodelᚐEmailHost,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_host(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_EmailHost_id(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_EmailHost_name(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type EmailHost\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_email(ctx context.Context, field graphql.CollectedField, obj *model.User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_email,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Email, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_email(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_username(ctx context.Context, field graphql.CollectedField, obj *model.User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_username,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Username, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_username(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) __Service_sdl(ctx context.Context, field graphql.CollectedField, obj *fedruntime.Service) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext__Service_sdl,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SDL, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2string,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext__Service_sdl(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"_Service\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_isRepeatable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsRepeatable, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_locations,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Locations, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__DirectiveLocation2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_defaultValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DefaultValue, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_types,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Types(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_queryType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.QueryType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_mutationType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.MutationType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_subscriptionType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SubscriptionType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_directives,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Directives(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_kind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Kind(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__TypeKind2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_specifiedByURL,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SpecifiedByURL(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_fields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_interfaces,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Interfaces(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_possibleTypes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PossibleTypes(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_enumValues,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_inputFields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.InputFields(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_ofType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.OfType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_isOneOf,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsOneOf(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOBoolean2bool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\nfunc (ec *executionContext) __Entity(ctx context.Context, sel ast.SelectionSet, obj fedruntime.Entity) graphql.Marshaler {\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\tcase model.User:\n\t\treturn ec._User(ctx, sel, &obj)\n\tcase *model.User:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._User(ctx, sel, obj)\n\tcase model.EmailHost:\n\t\treturn ec._EmailHost(ctx, sel, &obj)\n\tcase *model.EmailHost:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._EmailHost(ctx, sel, obj)\n\tdefault:\n\t\tif typedObj, ok := obj.(graphql.Marshaler); ok {\n\t\t\treturn typedObj\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T; non-generated variants of _Entity must implement graphql.Marshaler\", obj))\n\t\t}\n\t}\n}\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar emailHostImplementors = []string{\"EmailHost\", \"_Entity\"}\n\nfunc (ec *executionContext) _EmailHost(ctx context.Context, sel ast.SelectionSet, obj *model.EmailHost) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, emailHostImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"EmailHost\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._EmailHost_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._EmailHost_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar entityImplementors = []string{\"Entity\"}\n\nfunc (ec *executionContext) _Entity(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, entityImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Entity\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Entity\")\n\t\tcase \"findEmailHostByID\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findEmailHostByID(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findUserByID\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findUserByID(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"me\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_me(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"_entities\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query__entities(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"_service\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query__service(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar userImplementors = []string{\"User\", \"_Entity\"}\n\nfunc (ec *executionContext) _User(ctx context.Context, sel ast.SelectionSet, obj *model.User) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, userImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"User\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._User_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"host\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._User_host(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"email\":\n\t\t\tout.Values[i] = ec._User_email(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"username\":\n\t\t\tout.Values[i] = ec._User_username(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar _ServiceImplementors = []string{\"_Service\"}\n\nfunc (ec *executionContext) __Service(ctx context.Context, sel ast.SelectionSet, obj *fedruntime.Service) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, _ServiceImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"_Service\")\n\t\tcase \"sdl\":\n\t\t\tout.Values[i] = ec.__Service_sdl(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNEmailHost2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋaccountsᚋgraphᚋmodelᚐEmailHost(ctx context.Context, sel ast.SelectionSet, v model.EmailHost) graphql.Marshaler {\n\treturn ec._EmailHost(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNEmailHost2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋaccountsᚋgraphᚋmodelᚐEmailHost(ctx context.Context, sel ast.SelectionSet, v *model.EmailHost) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._EmailHost(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNFieldSet2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNFieldSet2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNID2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalID(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNID2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalID(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNUser2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋaccountsᚋgraphᚋmodelᚐUser(ctx context.Context, sel ast.SelectionSet, v model.User) graphql.Marshaler {\n\treturn ec._User(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋaccountsᚋgraphᚋmodelᚐUser(ctx context.Context, sel ast.SelectionSet, v *model.User) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._User(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN_Any2map(ctx context.Context, v any) (map[string]any, error) {\n\tres, err := graphql.UnmarshalMap(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN_Any2map(ctx context.Context, sel ast.SelectionSet, v map[string]any) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\tres := graphql.MarshalMap(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN_Any2ᚕmapᚄ(ctx context.Context, v any) ([]map[string]any, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]map[string]any, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN_Any2map(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN_Any2ᚕmapᚄ(ctx context.Context, sel ast.SelectionSet, v []map[string]any) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalN_Any2map(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN_Entity2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity(ctx context.Context, sel ast.SelectionSet, v []fedruntime.Entity) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalO_Entity2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN_Service2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐService(ctx context.Context, sel ast.SelectionSet, v fedruntime.Service) graphql.Marshaler {\n\treturn ec.__Service(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNfederation__Policy2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNfederation__Policy2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNfederation__Policy2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNfederation__Policy2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalNfederation__Policy2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNfederation__Policy2string(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalNfederation__Policy2ᚕᚕstringᚄ(ctx context.Context, v any) ([][]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([][]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNfederation__Policy2ᚕstringᚄ(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalNfederation__Policy2ᚕᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v [][]string) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNfederation__Policy2ᚕstringᚄ(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalNfederation__Scope2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNfederation__Scope2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNfederation__Scope2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNfederation__Scope2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalNfederation__Scope2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNfederation__Scope2string(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalNfederation__Scope2ᚕᚕstringᚄ(ctx context.Context, v any) ([][]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([][]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNfederation__Scope2ᚕstringᚄ(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalNfederation__Scope2ᚕᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v [][]string) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNfederation__Scope2ᚕstringᚄ(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNString2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalOString2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNString2string(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalOUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋaccountsᚋgraphᚋmodelᚐUser(ctx context.Context, sel ast.SelectionSet, v *model.User) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._User(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO_Entity2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity(ctx context.Context, sel ast.SelectionSet, v fedruntime.Entity) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.__Entity(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "_examples/federation/accounts/graph/model/model.go",
    "content": "package model\n"
  },
  {
    "path": "_examples/federation/accounts/graph/model/models_gen.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage model\n\ntype EmailHost struct {\n\tID   string `json:\"id\"`\n\tName string `json:\"name\"`\n}\n\nfunc (EmailHost) IsEntity() {}\n\ntype Query struct {\n}\n\ntype User struct {\n\tID       string     `json:\"id\"`\n\tHost     *EmailHost `json:\"host\"`\n\tEmail    string     `json:\"email\"`\n\tUsername string     `json:\"username\"`\n}\n\nfunc (User) IsEntity() {}\n"
  },
  {
    "path": "_examples/federation/accounts/graph/resolver.go",
    "content": "// This file will not be regenerated automatically.\n//\n// It serves as dependency injection for your app, add any dependencies you require here.\npackage graph\n\nimport \"github.com/99designs/gqlgen/_examples/federation/accounts/graph/model\"\n\ntype Resolver struct{}\n\nfunc (r *Resolver) HostForUserID(id string) (*model.EmailHost, error) {\n\treturn &model.EmailHost{\n\t\tID:   id,\n\t\tName: \"Email Host \" + id,\n\t}, nil\n}\n"
  },
  {
    "path": "_examples/federation/accounts/graph/schema.graphqls",
    "content": "directive @goField(\n    forceResolver: Boolean\n    name: String\n    omittable: Boolean\n    type: String\n) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION\n\nextend type Query {\n    me: User\n}\n\ntype EmailHost @key(fields: \"id\") {\n    id: String!\n    name: String!\n}\n\ntype User @key(fields: \"id\") {\n    id: ID!\n    host: EmailHost! @goField(forceResolver: true)\n    email: String!\n    username: String!\n}\n"
  },
  {
    "path": "_examples/federation/accounts/graph/schema.resolvers.go",
    "content": "package graph\n\n// This file will be automatically regenerated based on the schema, any resolver\n// implementations\n// will be copied through when generating and any unknown code will be moved to the end.\n// Code generated by github.com/99designs/gqlgen version v0.17.88-dev\n\nimport (\n\t\"context\"\n\n\t\"github.com/99designs/gqlgen/_examples/federation/accounts/graph/model\"\n)\n\n// Me is the resolver for the me field.\nfunc (r *queryResolver) Me(ctx context.Context) (*model.User, error) {\n\treturn &model.User{\n\t\tID: \"1234\",\n\t\tHost: &model.EmailHost{\n\t\t\tID:   \"4567\",\n\t\t\tName: \"Email Host 4567\",\n\t\t},\n\t\tEmail:    \"me@example.com\",\n\t\tUsername: \"Me\",\n\t}, nil\n}\n\n// Host is the resolver for the host field.\nfunc (r *userResolver) Host(ctx context.Context, obj *model.User) (*model.EmailHost, error) {\n\treturn r.HostForUserID(obj.ID)\n}\n\n// Query returns QueryResolver implementation.\nfunc (r *Resolver) Query() QueryResolver { return &queryResolver{r} }\n\n// User returns UserResolver implementation.\nfunc (r *Resolver) User() UserResolver { return &userResolver{r} }\n\ntype queryResolver struct{ *Resolver }\ntype userResolver struct{ *Resolver }\n"
  },
  {
    "path": "_examples/federation/accounts/schema/schema.go",
    "content": "package server\n\nimport (\n\t\"github.com/99designs/gqlgen/_examples/federation/accounts/graph\"\n)\n\nconst DefaultPort = \"4001\"\n\nvar Schema = graph.NewExecutableSchema(graph.Config{Resolvers: &graph.Resolver{}})\n"
  },
  {
    "path": "_examples/federation/accounts/server.go",
    "content": "//go:generate go run ../../../testdata/gqlgen.go\npackage main\n\nimport (\n\t\"log\"\n\t\"net/http\"\n\t\"os\"\n\n\t\"github.com/99designs/gqlgen/_examples/federation/accounts/graph\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/debug\"\n\t\"github.com/99designs/gqlgen/graphql/handler/extension\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/graphql/playground\"\n)\n\nconst defaultPort = \"4001\"\n\nfunc main() {\n\tport := os.Getenv(\"PORT\")\n\tif port == \"\" {\n\t\tport = defaultPort\n\t}\n\n\tsrv := handler.New(\n\t\tgraph.NewExecutableSchema(graph.Config{Resolvers: &graph.Resolver{}}),\n\t)\n\tsrv.AddTransport(transport.GET{})\n\tsrv.AddTransport(transport.POST{})\n\tsrv.Use(extension.Introspection{})\n\tsrv.Use(&debug.Tracer{})\n\n\thttp.Handle(\"/\", playground.Handler(\"GraphQL playground\", \"/query\"))\n\thttp.Handle(\"/query\", srv)\n\n\tlog.Printf(\"connect to http://localhost:%s/ for GraphQL playground\", port)\n\tlog.Fatal(http.ListenAndServe(\":\"+port, nil))\n}\n"
  },
  {
    "path": "_examples/federation/all/main.go",
    "content": "package main\n\nimport (\n\t\"context\"\n\t\"log\"\n\n\taccounts \"github.com/99designs/gqlgen/_examples/federation/accounts/schema\"\n\tproducts \"github.com/99designs/gqlgen/_examples/federation/products/schema\"\n\treviews \"github.com/99designs/gqlgen/_examples/federation/reviews/schema\"\n\t\"github.com/99designs/gqlgen/_examples/federation/subgraphs\"\n)\n\nfunc main() {\n\tctx := context.Background()\n\tsubgraphs, err := subgraphs.New(\n\t\tctx,\n\t\tsubgraphs.SubgraphConfig{\n\t\t\tName:   \"accounts\",\n\t\t\tSchema: accounts.Schema,\n\t\t\tPort:   accounts.DefaultPort,\n\t\t},\n\t\tsubgraphs.SubgraphConfig{\n\t\t\tName:   \"products\",\n\t\t\tSchema: products.Schema,\n\t\t\tPort:   products.DefaultPort,\n\t\t},\n\t\tsubgraphs.SubgraphConfig{\n\t\t\tName:   \"reviews\",\n\t\t\tSchema: reviews.Schema,\n\t\t\tPort:   reviews.DefaultPort,\n\t\t},\n\t)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tlog.Fatal(subgraphs.ListenAndServe(ctx))\n}\n"
  },
  {
    "path": "_examples/federation/package.json",
    "content": "{\n    \"name\": \"gateway\",\n    \"version\": \"1.0.1\",\n    \"description\": \"\",\n    \"main\": \"src/gateway/index.ts\",\n    \"type\": \"module\",\n    \"scripts\": {\n        \"start-gateway\": \"node src/gateway/index.ts\",\n        \"test\": \"vitest\"\n    },\n    \"author\": \"\",\n    \"license\": \"ISC\",\n    \"dependencies\": {\n        \"@apollo/gateway\": \"^2.11.2\",\n        \"@apollo/server\": \"^5.0.0\",\n        \"graphql\": \"^16.11.0\",\n        \"rxjs\": \"^7.8.2\"\n    },\n    \"devDependencies\": {\n        \"@apollo/client\": \"^4.0.4\",\n        \"cross-fetch\": \"^4.1.0\",\n        \"node-fetch\": \"^3.3.2\",\n        \"vitest\": \"^4.0.3\"\n    }\n}\n"
  },
  {
    "path": "_examples/federation/products/gqlgen.yml",
    "content": "# Where are all the schema files located? globs are supported eg  src/**/*.graphqls\nschema:\n  - graph/*.graphqls\n\n# Where should the generated server code go?\nexec:\n  filename: graph/generated.go\n  package: graph\n\nfederation:\n  filename: graph/federation.go\n  version: 2\n  package: graph\n\n# Where should any generated models go?\nmodel:\n  filename: graph/model/models_gen.go\n  package: model\n\n# Where should the resolver implementations go?\nresolver:\n  layout: follow-schema\n  dir: graph\n  package: graph\n\n# Optional: turn on use `gqlgen:\"fieldName\"` tags in your models\n# struct_tag: json\n\n# Optional: turn on to use []Thing instead of []*Thing\n# omit_slice_element_pointers: false\n\n# Optional: turn off to make struct-type struct fields not use pointers\n# e.g. type Thing struct { FieldA OtherThing } instead of { FieldA *OtherThing }\n# struct_fields_always_pointers: true\n\n# Optional: turn off to make resolvers return values instead of pointers for structs\n# resolvers_always_return_pointers: true\n\n# Optional: turn on to return pointers instead of values in unmarshalInput\n# return_pointers_in_unmarshalinput: false\n\n# Optional: wrap nullable input fields with Omittable\n# nullable_input_omittable: true\n\n# Optional: set to speed up generation time by not performing a final validation pass.\n# skip_validation: true\n\n# gqlgen will search for any type names in the schema in these go packages\n# if they match it will use them, otherwise it will generate them.\nautobind:\n  - \"github.com/99designs/gqlgen/_examples/federation/products/graph/model\"\n\n# This section declares type mapping between the GraphQL and go type systems\n#\n# The first line in each type will be used as defaults for resolver arguments and\n# modelgen, the others will be allowed when binding to fields. Configure them to\n# your liking\nmodels:\n  ID:\n    model:\n      - github.com/99designs/gqlgen/graphql.ID\n      - github.com/99designs/gqlgen/graphql.Int\n      - github.com/99designs/gqlgen/graphql.Int64\n      - github.com/99designs/gqlgen/graphql.Int32\n  Int:\n    model:\n      - github.com/99designs/gqlgen/graphql.Int\n      - github.com/99designs/gqlgen/graphql.Int64\n      - github.com/99designs/gqlgen/graphql.Int32\n\nomit_complexity: true\n"
  },
  {
    "path": "_examples/federation/products/graph/entity.resolvers.go",
    "content": "package graph\n\n// This file will be automatically regenerated based on the schema, any resolver\n// implementations\n// will be copied through when generating and any unknown code will be moved to the end.\n// Code generated by github.com/99designs/gqlgen version v0.17.88-dev\n\nimport (\n\t\"context\"\n\n\t\"github.com/99designs/gqlgen/_examples/federation/products/graph/model\"\n)\n\n// FindManufacturerByID is the resolver for the findManufacturerByID field.\nfunc (r *entityResolver) FindManufacturerByID(ctx context.Context, id string) (*model.Manufacturer, error) {\n\treturn &model.Manufacturer{\n\t\tID:   id,\n\t\tName: \"Millinery \" + id,\n\t}, nil\n}\n\n// FindProductByManufacturerIDAndID is the resolver for the findProductByManufacturerIDAndID field.\nfunc (r *entityResolver) FindProductByManufacturerIDAndID(ctx context.Context, manufacturerID string, id string) (*model.Product, error) {\n\tfor _, hat := range hats {\n\t\tif hat.ID == id && hat.Manufacturer.ID == manufacturerID {\n\t\t\treturn hat, nil\n\t\t}\n\t}\n\treturn nil, nil\n}\n\n// FindProductByUpc is the resolver for the findProductByUpc field.\nfunc (r *entityResolver) FindProductByUpc(ctx context.Context, upc string) (*model.Product, error) {\n\tfor _, hat := range hats {\n\t\tif hat.Upc == upc {\n\t\t\treturn hat, nil\n\t\t}\n\t}\n\treturn nil, nil\n}\n\n// Entity returns EntityResolver implementation.\nfunc (r *Resolver) Entity() EntityResolver { return &entityResolver{r} }\n\ntype entityResolver struct{ *Resolver }\n"
  },
  {
    "path": "_examples/federation/products/graph/federation.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage graph\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"github.com/99designs/gqlgen/plugin/federation/fedruntime\"\n)\n\nvar (\n\tErrUnknownType  = errors.New(\"unknown type\")\n\tErrTypeNotFound = errors.New(\"type not found\")\n)\n\nfunc (ec *executionContext) __resolve__service(ctx context.Context) (fedruntime.Service, error) {\n\tif ec.DisableIntrospection {\n\t\treturn fedruntime.Service{}, errors.New(\"federated introspection disabled\")\n\t}\n\n\tvar sdl []string\n\n\tfor _, src := range sources {\n\t\tif src.BuiltIn {\n\t\t\tcontinue\n\t\t}\n\t\tsdl = append(sdl, src.Input)\n\t}\n\n\treturn fedruntime.Service{\n\t\tSDL: strings.Join(sdl, \"\\n\"),\n\t}, nil\n}\n\nfunc (ec *executionContext) __resolve_entities(ctx context.Context, representations []map[string]any) []fedruntime.Entity {\n\tlist := make([]fedruntime.Entity, len(representations))\n\n\trepsMap := ec.buildRepresentationGroups(ctx, representations)\n\n\tswitch len(repsMap) {\n\tcase 0:\n\t\treturn list\n\tcase 1:\n\t\tfor typeName, reps := range repsMap {\n\t\t\tec.resolveEntityGroup(ctx, typeName, reps, list)\n\t\t}\n\t\treturn list\n\tdefault:\n\t\tvar g sync.WaitGroup\n\t\tg.Add(len(repsMap))\n\t\tfor typeName, reps := range repsMap {\n\t\t\tgo func(typeName string, reps []EntityWithIndex) {\n\t\t\t\tec.resolveEntityGroup(ctx, typeName, reps, list)\n\t\t\t\tg.Done()\n\t\t\t}(typeName, reps)\n\t\t}\n\t\tg.Wait()\n\t\treturn list\n\t}\n}\n\ntype EntityWithIndex struct {\n\t// The index in the original representation array\n\tindex  int\n\tentity EntityRepresentation\n}\n\n// EntityRepresentation is the JSON representation of an entity sent by the Router\n// used as the inputs for us to resolve.\n//\n// We make it a map because we know the top level JSON is always an object.\ntype EntityRepresentation map[string]any\n\n// We group entities by typename so that we can parallelize their resolution.\n// This is particularly helpful when there are entity groups in multi mode.\nfunc (ec *executionContext) buildRepresentationGroups(\n\tctx context.Context,\n\trepresentations []map[string]any,\n) map[string][]EntityWithIndex {\n\trepsMap := make(map[string][]EntityWithIndex)\n\tfor i, rep := range representations {\n\t\ttypeName, ok := rep[\"__typename\"].(string)\n\t\tif !ok {\n\t\t\t// If there is no __typename, we just skip the representation;\n\t\t\t// we just won't be resolving these unknown types.\n\t\t\tec.Error(ctx, errors.New(\"__typename must be an existing string\"))\n\t\t\tcontinue\n\t\t}\n\n\t\trepsMap[typeName] = append(repsMap[typeName], EntityWithIndex{\n\t\t\tindex:  i,\n\t\t\tentity: rep,\n\t\t})\n\t}\n\n\treturn repsMap\n}\n\nfunc (ec *executionContext) resolveEntityGroup(\n\tctx context.Context,\n\ttypeName string,\n\treps []EntityWithIndex,\n\tlist []fedruntime.Entity,\n) {\n\tif isMulti(typeName) {\n\t\terr := ec.resolveManyEntities(ctx, typeName, reps, list)\n\t\tif err != nil {\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t} else {\n\t\t// if there are multiple entities to resolve, parallelize (similar to\n\t\t// graphql.FieldSet.Dispatch)\n\t\tvar e sync.WaitGroup\n\t\te.Add(len(reps))\n\t\tfor i, rep := range reps {\n\t\t\ti, rep := i, rep\n\t\t\tgo func(i int, rep EntityWithIndex) {\n\t\t\t\tentity, err := ec.resolveEntity(ctx, typeName, rep.entity)\n\t\t\t\tif err != nil {\n\t\t\t\t\tec.Error(ctx, err)\n\t\t\t\t} else {\n\t\t\t\t\tlist[rep.index] = entity\n\t\t\t\t}\n\t\t\t\te.Done()\n\t\t\t}(i, rep)\n\t\t}\n\t\te.Wait()\n\t}\n}\n\nfunc isMulti(typeName string) bool {\n\tswitch typeName {\n\tdefault:\n\t\treturn false\n\t}\n}\n\nfunc (ec *executionContext) resolveEntity(\n\tctx context.Context,\n\ttypeName string,\n\trep EntityRepresentation,\n) (e fedruntime.Entity, err error) {\n\t// we need to do our own panic handling, because we may be called in a\n\t// goroutine, where the usual panic handling can't catch us\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t}\n\t}()\n\n\tswitch typeName {\n\tcase \"Manufacturer\":\n\t\tresolverName, err := entityResolverNameForManufacturer(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"Manufacturer\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findManufacturerByID\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"id\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findManufacturerByID(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindManufacturerByID(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"Manufacturer\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"Product\":\n\t\tresolverName, err := entityResolverNameForProduct(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"Product\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findProductByManufacturerIDAndID\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"manufacturer\"].(map[string]any)[\"id\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findProductByManufacturerIDAndID(): %w`, err)\n\t\t\t}\n\t\t\tid1, err := ec.unmarshalNString2string(ctx, rep[\"id\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 1 for findProductByManufacturerIDAndID(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindProductByManufacturerIDAndID(ctx, id0, id1)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"Product\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\tcase \"findProductByUpc\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"upc\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findProductByUpc(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindProductByUpc(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"Product\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\n\t}\n\treturn nil, fmt.Errorf(\"%w: %s\", ErrUnknownType, typeName)\n}\n\nfunc (ec *executionContext) resolveManyEntities(\n\tctx context.Context,\n\ttypeName string,\n\treps []EntityWithIndex,\n\tlist []fedruntime.Entity,\n) (err error) {\n\t// we need to do our own panic handling, because we may be called in a\n\t// goroutine, where the usual panic handling can't catch us\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t}\n\t}()\n\n\tswitch typeName {\n\n\tdefault:\n\t\treturn errors.New(\"unknown type: \" + typeName)\n\t}\n}\n\nfunc entityResolverNameForManufacturer(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"id\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"id\\\" for Manufacturer\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for Manufacturer\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findManufacturerByID\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for Manufacturer due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForProduct(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"manufacturer\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"manufacturer\\\" for Product\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif m, ok = val.(map[string]any); !ok {\n\t\t\t// nested field value is not a map[string]interface so don't use it\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to nested Key Field \\\"manufacturer\\\" value not matching map[string]any for Product\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tval, ok = m[\"id\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"id\\\" for Product\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tm = rep\n\t\tval, ok = m[\"id\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"id\\\" for Product\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for Product\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findProductByManufacturerIDAndID\", nil\n\t}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"upc\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"upc\\\" for Product\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for Product\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findProductByUpc\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for Product due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n"
  },
  {
    "path": "_examples/federation/products/graph/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage graph\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"embed\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/_examples/federation/products/graph/model\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\t\"github.com/99designs/gqlgen/plugin/federation/fedruntime\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n}\n\ntype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\ntype ResolverRoot interface {\n\tEntity() EntityResolver\n\tQuery() QueryResolver\n}\n\ntype DirectiveRoot struct {\n}\n\ntype ComplexityRoot struct {\n}\n\ntype EntityResolver interface {\n\tFindManufacturerByID(ctx context.Context, id string) (*model.Manufacturer, error)\n\tFindProductByManufacturerIDAndID(ctx context.Context, manufacturerID string, id string) (*model.Product, error)\n\tFindProductByUpc(ctx context.Context, upc string) (*model.Product, error)\n}\ntype QueryResolver interface {\n\tTopProducts(ctx context.Context, first *int) ([]*model.Product, error)\n}\n\ntype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.SchemaData != nil {\n\t\treturn e.SchemaData\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := newExecutionContext(nil, e, nil)\n\t_ = ec\n\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap()\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\n//go:embed \"schema.graphqls\"\nvar sourcesFS embed.FS\n\nfunc sourceData(filename string) string {\n\tdata, err := sourcesFS.ReadFile(filename)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"codegen problem: %s not available\", filename))\n\t}\n\treturn string(data)\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"schema.graphqls\", Input: sourceData(\"schema.graphqls\"), BuiltIn: false},\n\t{Name: \"../federation/directives.graphql\", Input: `\n\tdirective @authenticated on FIELD_DEFINITION | OBJECT | INTERFACE | SCALAR | ENUM\n\tdirective @composeDirective(name: String!) repeatable on SCHEMA\n\tdirective @extends on OBJECT | INTERFACE\n\tdirective @external on OBJECT | FIELD_DEFINITION\n\tdirective @key(fields: FieldSet!, resolvable: Boolean = true) repeatable on OBJECT | INTERFACE\n\tdirective @inaccessible on\n\t  | ARGUMENT_DEFINITION\n\t  | ENUM\n\t  | ENUM_VALUE\n\t  | FIELD_DEFINITION\n\t  | INPUT_FIELD_DEFINITION\n\t  | INPUT_OBJECT\n\t  | INTERFACE\n\t  | OBJECT\n\t  | SCALAR\n\t  | UNION\n\tdirective @interfaceObject on OBJECT\n\tdirective @link(import: [String!], url: String!) repeatable on SCHEMA\n\tdirective @override(from: String!, label: String) on FIELD_DEFINITION\n\tdirective @policy(policies: [[federation__Policy!]!]!) on\n\t  | FIELD_DEFINITION\n\t  | OBJECT\n\t  | INTERFACE\n\t  | SCALAR\n\t  | ENUM\n\tdirective @provides(fields: FieldSet!) on FIELD_DEFINITION\n\tdirective @requires(fields: FieldSet!) on FIELD_DEFINITION\n\tdirective @requiresScopes(scopes: [[federation__Scope!]!]!) on\n\t  | FIELD_DEFINITION\n\t  | OBJECT\n\t  | INTERFACE\n\t  | SCALAR\n\t  | ENUM\n\tdirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\tdirective @tag(name: String!) repeatable on\n\t  | ARGUMENT_DEFINITION\n\t  | ENUM\n\t  | ENUM_VALUE\n\t  | FIELD_DEFINITION\n\t  | INPUT_FIELD_DEFINITION\n\t  | INPUT_OBJECT\n\t  | INTERFACE\n\t  | OBJECT\n\t  | SCALAR\n\t  | UNION\n\tscalar _Any\n\tscalar FieldSet\n\tscalar federation__Policy\n\tscalar federation__Scope\n`, BuiltIn: true},\n\t{Name: \"../federation/entity.graphql\", Input: `\n# a union of all types that use the @key directive\nunion _Entity = Manufacturer | Product\n\n# fake type to build resolver interfaces for users to implement\ntype Entity {\n\tfindManufacturerByID(id: String!,): Manufacturer!\n\tfindProductByManufacturerIDAndID(manufacturerID: String!,id: String!,): Product!\n\tfindProductByUpc(upc: String!,): Product!\n}\n\ntype _Service {\n  sdl: String\n}\n\nextend type Query {\n  _entities(representations: [_Any!]!): [_Entity]!\n  _service: _Service!\n}\n`, BuiltIn: true},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_Entity_findManufacturerByID_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"id\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"id\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findProductByManufacturerIDAndID_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"manufacturerID\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"manufacturerID\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"id\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"id\"] = arg1\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findProductByUpc_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"upc\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"upc\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query__entities_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"representations\", ec.unmarshalN_Any2ᚕmapᚄ)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"representations\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_topProducts_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"first\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"first\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Entity_findManufacturerByID(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findManufacturerByID,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindManufacturerByID(ctx, fc.Args[\"id\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNManufacturer2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋproductsᚋgraphᚋmodelᚐManufacturer,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findManufacturerByID(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Manufacturer_id(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_Manufacturer_name(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Manufacturer\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findManufacturerByID_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findProductByManufacturerIDAndID(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findProductByManufacturerIDAndID,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindProductByManufacturerIDAndID(ctx, fc.Args[\"manufacturerID\"].(string), fc.Args[\"id\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNProduct2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋproductsᚋgraphᚋmodelᚐProduct,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findProductByManufacturerIDAndID(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Product_id(ctx, field)\n\t\t\tcase \"manufacturer\":\n\t\t\t\treturn ec.fieldContext_Product_manufacturer(ctx, field)\n\t\t\tcase \"upc\":\n\t\t\t\treturn ec.fieldContext_Product_upc(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_Product_name(ctx, field)\n\t\t\tcase \"price\":\n\t\t\t\treturn ec.fieldContext_Product_price(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Product\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findProductByManufacturerIDAndID_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findProductByUpc(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findProductByUpc,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindProductByUpc(ctx, fc.Args[\"upc\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNProduct2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋproductsᚋgraphᚋmodelᚐProduct,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findProductByUpc(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Product_id(ctx, field)\n\t\t\tcase \"manufacturer\":\n\t\t\t\treturn ec.fieldContext_Product_manufacturer(ctx, field)\n\t\t\tcase \"upc\":\n\t\t\t\treturn ec.fieldContext_Product_upc(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_Product_name(ctx, field)\n\t\t\tcase \"price\":\n\t\t\t\treturn ec.fieldContext_Product_price(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Product\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findProductByUpc_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Manufacturer_id(ctx context.Context, field graphql.CollectedField, obj *model.Manufacturer) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Manufacturer_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Manufacturer_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Manufacturer\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Manufacturer_name(ctx context.Context, field graphql.CollectedField, obj *model.Manufacturer) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Manufacturer_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Manufacturer_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Manufacturer\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Product_id(ctx context.Context, field graphql.CollectedField, obj *model.Product) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Product_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Product_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Product\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Product_manufacturer(ctx context.Context, field graphql.CollectedField, obj *model.Product) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Product_manufacturer,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Manufacturer, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNManufacturer2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋproductsᚋgraphᚋmodelᚐManufacturer,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Product_manufacturer(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Product\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Manufacturer_id(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_Manufacturer_name(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Manufacturer\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Product_upc(ctx context.Context, field graphql.CollectedField, obj *model.Product) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Product_upc,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Upc, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Product_upc(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Product\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Product_name(ctx context.Context, field graphql.CollectedField, obj *model.Product) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Product_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Product_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Product\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Product_price(ctx context.Context, field graphql.CollectedField, obj *model.Product) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Product_price,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Price, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Product_price(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Product\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_topProducts(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_topProducts,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().TopProducts(ctx, fc.Args[\"first\"].(*int))\n\t\t},\n\t\tnil,\n\t\tec.marshalOProduct2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋproductsᚋgraphᚋmodelᚐProduct,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_topProducts(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Product_id(ctx, field)\n\t\t\tcase \"manufacturer\":\n\t\t\t\treturn ec.fieldContext_Product_manufacturer(ctx, field)\n\t\t\tcase \"upc\":\n\t\t\t\treturn ec.fieldContext_Product_upc(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_Product_name(ctx, field)\n\t\t\tcase \"price\":\n\t\t\t\treturn ec.fieldContext_Product_price(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Product\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_topProducts_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query__entities(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query__entities,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.__resolve_entities(ctx, fc.Args[\"representations\"].([]map[string]any)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN_Entity2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query__entities(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type _Entity does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query__entities_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query__service(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query__service,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.__resolve__service(ctx)\n\t\t},\n\t\tnil,\n\t\tec.marshalN_Service2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐService,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query__service(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"sdl\":\n\t\t\t\treturn ec.fieldContext__Service_sdl(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type _Service\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.IntrospectType(fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___schema,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.IntrospectSchema()\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) __Service_sdl(ctx context.Context, field graphql.CollectedField, obj *fedruntime.Service) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext__Service_sdl,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SDL, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2string,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext__Service_sdl(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"_Service\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_isRepeatable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsRepeatable, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_locations,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Locations, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__DirectiveLocation2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_defaultValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DefaultValue, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_types,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Types(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_queryType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.QueryType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_mutationType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.MutationType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_subscriptionType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SubscriptionType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_directives,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Directives(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_kind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Kind(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__TypeKind2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_specifiedByURL,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SpecifiedByURL(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_fields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_interfaces,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Interfaces(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_possibleTypes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PossibleTypes(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_enumValues,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_inputFields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.InputFields(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_ofType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.OfType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_isOneOf,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsOneOf(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOBoolean2bool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\nfunc (ec *executionContext) __Entity(ctx context.Context, sel ast.SelectionSet, obj fedruntime.Entity) graphql.Marshaler {\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\tcase model.Product:\n\t\treturn ec._Product(ctx, sel, &obj)\n\tcase *model.Product:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Product(ctx, sel, obj)\n\tcase model.Manufacturer:\n\t\treturn ec._Manufacturer(ctx, sel, &obj)\n\tcase *model.Manufacturer:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Manufacturer(ctx, sel, obj)\n\tdefault:\n\t\tif typedObj, ok := obj.(graphql.Marshaler); ok {\n\t\t\treturn typedObj\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T; non-generated variants of _Entity must implement graphql.Marshaler\", obj))\n\t\t}\n\t}\n}\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar entityImplementors = []string{\"Entity\"}\n\nfunc (ec *executionContext) _Entity(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, entityImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Entity\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Entity\")\n\t\tcase \"findManufacturerByID\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findManufacturerByID(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findProductByManufacturerIDAndID\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findProductByManufacturerIDAndID(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findProductByUpc\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findProductByUpc(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar manufacturerImplementors = []string{\"Manufacturer\", \"_Entity\"}\n\nfunc (ec *executionContext) _Manufacturer(ctx context.Context, sel ast.SelectionSet, obj *model.Manufacturer) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, manufacturerImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Manufacturer\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._Manufacturer_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._Manufacturer_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar productImplementors = []string{\"Product\", \"_Entity\"}\n\nfunc (ec *executionContext) _Product(ctx context.Context, sel ast.SelectionSet, obj *model.Product) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, productImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Product\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._Product_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"manufacturer\":\n\t\t\tout.Values[i] = ec._Product_manufacturer(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"upc\":\n\t\t\tout.Values[i] = ec._Product_upc(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._Product_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"price\":\n\t\t\tout.Values[i] = ec._Product_price(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"topProducts\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_topProducts(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"_entities\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query__entities(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"_service\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query__service(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar _ServiceImplementors = []string{\"_Service\"}\n\nfunc (ec *executionContext) __Service(ctx context.Context, sel ast.SelectionSet, obj *fedruntime.Service) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, _ServiceImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"_Service\")\n\t\tcase \"sdl\":\n\t\t\tout.Values[i] = ec.__Service_sdl(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNFieldSet2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNFieldSet2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNInt2int(ctx context.Context, v any) (int, error) {\n\tres, err := graphql.UnmarshalInt(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNInt2int(ctx context.Context, sel ast.SelectionSet, v int) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalInt(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNManufacturer2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋproductsᚋgraphᚋmodelᚐManufacturer(ctx context.Context, sel ast.SelectionSet, v model.Manufacturer) graphql.Marshaler {\n\treturn ec._Manufacturer(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNManufacturer2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋproductsᚋgraphᚋmodelᚐManufacturer(ctx context.Context, sel ast.SelectionSet, v *model.Manufacturer) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Manufacturer(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNProduct2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋproductsᚋgraphᚋmodelᚐProduct(ctx context.Context, sel ast.SelectionSet, v model.Product) graphql.Marshaler {\n\treturn ec._Product(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNProduct2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋproductsᚋgraphᚋmodelᚐProduct(ctx context.Context, sel ast.SelectionSet, v *model.Product) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Product(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN_Any2map(ctx context.Context, v any) (map[string]any, error) {\n\tres, err := graphql.UnmarshalMap(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN_Any2map(ctx context.Context, sel ast.SelectionSet, v map[string]any) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\tres := graphql.MarshalMap(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN_Any2ᚕmapᚄ(ctx context.Context, v any) ([]map[string]any, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]map[string]any, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN_Any2map(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN_Any2ᚕmapᚄ(ctx context.Context, sel ast.SelectionSet, v []map[string]any) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalN_Any2map(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN_Entity2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity(ctx context.Context, sel ast.SelectionSet, v []fedruntime.Entity) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalO_Entity2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN_Service2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐService(ctx context.Context, sel ast.SelectionSet, v fedruntime.Service) graphql.Marshaler {\n\treturn ec.__Service(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNfederation__Policy2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNfederation__Policy2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNfederation__Policy2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNfederation__Policy2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalNfederation__Policy2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNfederation__Policy2string(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalNfederation__Policy2ᚕᚕstringᚄ(ctx context.Context, v any) ([][]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([][]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNfederation__Policy2ᚕstringᚄ(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalNfederation__Policy2ᚕᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v [][]string) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNfederation__Policy2ᚕstringᚄ(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalNfederation__Scope2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNfederation__Scope2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNfederation__Scope2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNfederation__Scope2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalNfederation__Scope2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNfederation__Scope2string(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalNfederation__Scope2ᚕᚕstringᚄ(ctx context.Context, v any) ([][]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([][]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNfederation__Scope2ᚕstringᚄ(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalNfederation__Scope2ᚕᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v [][]string) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNfederation__Scope2ᚕstringᚄ(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOInt2ᚖint(ctx context.Context, v any) (*int, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalInt(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOInt2ᚖint(ctx context.Context, sel ast.SelectionSet, v *int) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalInt(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalOProduct2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋproductsᚋgraphᚋmodelᚐProduct(ctx context.Context, sel ast.SelectionSet, v []*model.Product) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalOProduct2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋproductsᚋgraphᚋmodelᚐProduct(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOProduct2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋproductsᚋgraphᚋmodelᚐProduct(ctx context.Context, sel ast.SelectionSet, v *model.Product) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Product(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNString2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalOString2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNString2string(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalO_Entity2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity(ctx context.Context, sel ast.SelectionSet, v fedruntime.Entity) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.__Entity(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "_examples/federation/products/graph/model/model.go",
    "content": "package model\n"
  },
  {
    "path": "_examples/federation/products/graph/model/models_gen.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage model\n\ntype Manufacturer struct {\n\tID   string `json:\"id\"`\n\tName string `json:\"name\"`\n}\n\nfunc (Manufacturer) IsEntity() {}\n\ntype Product struct {\n\tID           string        `json:\"id\"`\n\tManufacturer *Manufacturer `json:\"manufacturer\"`\n\tUpc          string        `json:\"upc\"`\n\tName         string        `json:\"name\"`\n\tPrice        int           `json:\"price\"`\n}\n\nfunc (Product) IsEntity() {}\n\ntype Query struct {\n}\n"
  },
  {
    "path": "_examples/federation/products/graph/products.go",
    "content": "package graph\n\nimport \"github.com/99designs/gqlgen/_examples/federation/products/graph/model\"\n\nvar hats = []*model.Product{\n\t{\n\t\tID: \"111\",\n\t\tManufacturer: &model.Manufacturer{\n\t\t\tID:   \"1234\",\n\t\t\tName: \"Millinery 1234\",\n\t\t},\n\t\tUpc:   \"top-1\",\n\t\tName:  \"Trilby\",\n\t\tPrice: 11,\n\t},\n\t{\n\t\tID: \"222\",\n\t\tManufacturer: &model.Manufacturer{\n\t\t\tID:   \"2345\",\n\t\t\tName: \"Millinery 2345\",\n\t\t},\n\t\tUpc:   \"top-2\",\n\t\tName:  \"Fedora\",\n\t\tPrice: 22,\n\t},\n\t{\n\t\tID: \"333\",\n\t\tManufacturer: &model.Manufacturer{\n\t\t\tID:   \"2345\",\n\t\t\tName: \"Millinery 2345\",\n\t\t},\n\t\tUpc:   \"top-3\",\n\t\tName:  \"Boater\",\n\t\tPrice: 33,\n\t},\n}\n"
  },
  {
    "path": "_examples/federation/products/graph/resolver.go",
    "content": "// This file will not be regenerated automatically.\n//\n// It serves as dependency injection for your app, add any dependencies you require here.\npackage graph\n\ntype Resolver struct{}\n"
  },
  {
    "path": "_examples/federation/products/graph/schema.graphqls",
    "content": "extend type Query {\n    topProducts(first: Int = 5): [Product]\n}\n\ntype Manufacturer @key(fields: \"id\") {\n    id: String!\n    name: String!\n}\n\ntype Product @key(fields: \"manufacturer { id } id\") @key(fields: \"upc\") {\n    id: String!\n    manufacturer: Manufacturer!\n    upc: String!\n    name: String!\n    price: Int!\n}\n"
  },
  {
    "path": "_examples/federation/products/graph/schema.resolvers.go",
    "content": "package graph\n\n// This file will be automatically regenerated based on the schema, any resolver\n// implementations\n// will be copied through when generating and any unknown code will be moved to the end.\n// Code generated by github.com/99designs/gqlgen version v0.17.88-dev\n\nimport (\n\t\"context\"\n\n\t\"github.com/99designs/gqlgen/_examples/federation/products/graph/model\"\n)\n\n// TopProducts is the resolver for the topProducts field.\nfunc (r *queryResolver) TopProducts(ctx context.Context, first *int) ([]*model.Product, error) {\n\treturn hats, nil\n}\n\n// Query returns QueryResolver implementation.\nfunc (r *Resolver) Query() QueryResolver { return &queryResolver{r} }\n\ntype queryResolver struct{ *Resolver }\n"
  },
  {
    "path": "_examples/federation/products/schema/schema.go",
    "content": "package schema\n\nimport (\n\t\"github.com/99designs/gqlgen/_examples/federation/products/graph\"\n)\n\nconst DefaultPort = \"4002\"\n\nvar Schema = graph.NewExecutableSchema(graph.Config{Resolvers: &graph.Resolver{}})\n"
  },
  {
    "path": "_examples/federation/products/server.go",
    "content": "//go:generate go run ../../../testdata/gqlgen.go\npackage main\n\nimport (\n\t\"log\"\n\t\"net/http\"\n\t\"os\"\n\n\t\"github.com/99designs/gqlgen/_examples/federation/products/graph\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/debug\"\n\t\"github.com/99designs/gqlgen/graphql/handler/extension\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/graphql/playground\"\n)\n\nconst defaultPort = \"4002\"\n\nfunc main() {\n\tport := os.Getenv(\"PORT\")\n\tif port == \"\" {\n\t\tport = defaultPort\n\t}\n\n\tsrv := handler.New(\n\t\tgraph.NewExecutableSchema(graph.Config{Resolvers: &graph.Resolver{}}),\n\t)\n\tsrv.AddTransport(transport.GET{})\n\tsrv.AddTransport(transport.POST{})\n\tsrv.Use(extension.Introspection{})\n\tsrv.Use(&debug.Tracer{})\n\n\thttp.Handle(\"/\", playground.Handler(\"GraphQL playground\", \"/query\"))\n\thttp.Handle(\"/query\", srv)\n\n\tlog.Printf(\"connect to http://localhost:%s/ for GraphQL playground\", port)\n\tlog.Fatal(http.ListenAndServe(\":\"+port, nil))\n}\n"
  },
  {
    "path": "_examples/federation/readme.md",
    "content": "### Federation\n\n[Read the docs](https://gqlgen.com/recipes/federation/)\n\n## Testing\n\nIf you want to set breakpoints and debug the federation example, you can first run the subgraphs using:\n\n  $ go run ./all/main.go\n\nThen start the gateway using\n  $ npm run start-gateway\n\nYou can then connect your preferred Golang debugger to the Go process as you make requests to the router.\n"
  },
  {
    "path": "_examples/federation/reviews/gqlgen.yml",
    "content": "# Where are all the schema files located? globs are supported eg  src/**/*.graphqls\nschema:\n  - graph/*.graphqls\n\n# Where should the generated server code go?\nexec:\n  filename: graph/generated.go\n  package: graph\n\nfederation:\n  filename: graph/federation.go\n  package: graph\n  version: 2\n  options:\n    computed_requires: true\n\n# Where should any generated models go?\nmodel:\n  filename: graph/model/models_gen.go\n  package: model\n\n# Where should the resolver implementations go?\nresolver:\n  layout: follow-schema\n  dir: graph\n  package: graph\n\n# Optional: turn on use `gqlgen:\"fieldName\"` tags in your models\n# struct_tag: json\n\n# Optional: turn on to use []Thing instead of []*Thing\n# omit_slice_element_pointers: false\n\n# Optional: turn off to make struct-type struct fields not use pointers\n# e.g. type Thing struct { FieldA OtherThing } instead of { FieldA *OtherThing }\n# struct_fields_always_pointers: true\n\n# Optional: turn off to make resolvers return values instead of pointers for structs\n# resolvers_always_return_pointers: true\n\n# Optional: turn on to return pointers instead of values in unmarshalInput\n# return_pointers_in_unmarshalinput: false\n\n# Optional: wrap nullable input fields with Omittable\n# nullable_input_omittable: true\n\n# Optional: set to speed up generation time by not performing a final validation pass.\n# skip_validation: true\n\n# gqlgen will search for any type names in the schema in these go packages\n# if they match it will use them, otherwise it will generate them.\nautobind:\n  - \"github.com/99designs/gqlgen/_examples/federation/reviews/graph/model\"\n\n# This section declares type mapping between the GraphQL and go type systems\n#\n# The first line in each type will be used as defaults for resolver arguments and\n# modelgen, the others will be allowed when binding to fields. Configure them to\n# your liking\nmodels:\n  ID:\n    model:\n      - github.com/99designs/gqlgen/graphql.ID\n      - github.com/99designs/gqlgen/graphql.Int\n      - github.com/99designs/gqlgen/graphql.Int64\n      - github.com/99designs/gqlgen/graphql.Int32\n  Int:\n    model:\n      - github.com/99designs/gqlgen/graphql.Int\n      - github.com/99designs/gqlgen/graphql.Int64\n      - github.com/99designs/gqlgen/graphql.Int32\n\nomit_complexity: true\ncall_argument_directives_with_null: true\n"
  },
  {
    "path": "_examples/federation/reviews/graph/entity.resolvers.go",
    "content": "package graph\n\n// This file will be automatically regenerated based on the schema, any resolver\n// implementations\n// will be copied through when generating and any unknown code will be moved to the end.\n// Code generated by github.com/99designs/gqlgen version v0.17.88-dev\n\nimport (\n\t\"context\"\n\n\t\"github.com/99designs/gqlgen/_examples/federation/reviews/graph/model\"\n)\n\n// FindManyProductByManufacturerIDAndIDs is the resolver for the\n// findManyProductByManufacturerIDAndIDs field.\nfunc (r *entityResolver) FindManyProductByManufacturerIDAndIDs(ctx context.Context, reps []*model.ProductByManufacturerIDAndIDsInput) ([]*model.Product, error) {\n\tproducts := make([]*model.Product, 0, len(reps))\n\tfor idx := range reps {\n\t\trep := reps[len(reps)-idx-1]\n\t\tproduct, err := r.FindProductByManufacturerIDAndID(ctx, rep.ManufacturerID, rep.ID)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tproducts = append(products, product)\n\t}\n\n\treturn products, nil\n}\n\n// FindUserByID is the resolver for the findUserByID field.\nfunc (r *entityResolver) FindUserByID(ctx context.Context, id string) (*model.User, error) {\n\treturn &model.User{\n\t\tID:   id,\n\t\tHost: &model.EmailHost{},\n\t}, nil\n}\n\n// Entity returns EntityResolver implementation.\nfunc (r *Resolver) Entity() EntityResolver { return &entityResolver{r} }\n\ntype entityResolver struct{ *Resolver }\n"
  },
  {
    "path": "_examples/federation/reviews/graph/federation.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage graph\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"github.com/99designs/gqlgen/_examples/federation/reviews/graph/model\"\n\t\"github.com/99designs/gqlgen/plugin/federation/fedruntime\"\n)\n\nvar (\n\tErrUnknownType  = errors.New(\"unknown type\")\n\tErrTypeNotFound = errors.New(\"type not found\")\n)\n\nfunc (ec *executionContext) __resolve__service(ctx context.Context) (fedruntime.Service, error) {\n\tif ec.DisableIntrospection {\n\t\treturn fedruntime.Service{}, errors.New(\"federated introspection disabled\")\n\t}\n\n\tvar sdl []string\n\n\tfor _, src := range sources {\n\t\tif src.BuiltIn {\n\t\t\tcontinue\n\t\t}\n\t\tsdl = append(sdl, src.Input)\n\t}\n\n\treturn fedruntime.Service{\n\t\tSDL: strings.Join(sdl, \"\\n\"),\n\t}, nil\n}\n\nfunc (ec *executionContext) __resolve_entities(ctx context.Context, representations []map[string]any) []fedruntime.Entity {\n\tlist := make([]fedruntime.Entity, len(representations))\n\n\trepsMap := ec.buildRepresentationGroups(ctx, representations)\n\n\tswitch len(repsMap) {\n\tcase 0:\n\t\treturn list\n\tcase 1:\n\t\tfor typeName, reps := range repsMap {\n\t\t\tec.resolveEntityGroup(ctx, typeName, reps, list)\n\t\t}\n\t\treturn list\n\tdefault:\n\t\tvar g sync.WaitGroup\n\t\tg.Add(len(repsMap))\n\t\tfor typeName, reps := range repsMap {\n\t\t\tgo func(typeName string, reps []EntityWithIndex) {\n\t\t\t\tec.resolveEntityGroup(ctx, typeName, reps, list)\n\t\t\t\tg.Done()\n\t\t\t}(typeName, reps)\n\t\t}\n\t\tg.Wait()\n\t\treturn list\n\t}\n}\n\ntype EntityWithIndex struct {\n\t// The index in the original representation array\n\tindex  int\n\tentity EntityRepresentation\n}\n\n// EntityRepresentation is the JSON representation of an entity sent by the Router\n// used as the inputs for us to resolve.\n//\n// We make it a map because we know the top level JSON is always an object.\ntype EntityRepresentation map[string]any\n\n// We group entities by typename so that we can parallelize their resolution.\n// This is particularly helpful when there are entity groups in multi mode.\nfunc (ec *executionContext) buildRepresentationGroups(\n\tctx context.Context,\n\trepresentations []map[string]any,\n) map[string][]EntityWithIndex {\n\trepsMap := make(map[string][]EntityWithIndex)\n\tfor i, rep := range representations {\n\t\ttypeName, ok := rep[\"__typename\"].(string)\n\t\tif !ok {\n\t\t\t// If there is no __typename, we just skip the representation;\n\t\t\t// we just won't be resolving these unknown types.\n\t\t\tec.Error(ctx, errors.New(\"__typename must be an existing string\"))\n\t\t\tcontinue\n\t\t}\n\n\t\trepsMap[typeName] = append(repsMap[typeName], EntityWithIndex{\n\t\t\tindex:  i,\n\t\t\tentity: rep,\n\t\t})\n\t}\n\n\treturn repsMap\n}\n\nfunc (ec *executionContext) resolveEntityGroup(\n\tctx context.Context,\n\ttypeName string,\n\treps []EntityWithIndex,\n\tlist []fedruntime.Entity,\n) {\n\tif isMulti(typeName) {\n\t\terr := ec.resolveManyEntities(ctx, typeName, reps, list)\n\t\tif err != nil {\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t} else {\n\t\t// if there are multiple entities to resolve, parallelize (similar to\n\t\t// graphql.FieldSet.Dispatch)\n\t\tvar e sync.WaitGroup\n\t\te.Add(len(reps))\n\t\tfor i, rep := range reps {\n\t\t\ti, rep := i, rep\n\t\t\tgo func(i int, rep EntityWithIndex) {\n\t\t\t\tentity, err := ec.resolveEntity(ctx, typeName, rep.entity)\n\t\t\t\tif err != nil {\n\t\t\t\t\tec.Error(ctx, err)\n\t\t\t\t} else {\n\t\t\t\t\tlist[rep.index] = entity\n\t\t\t\t}\n\t\t\t\te.Done()\n\t\t\t}(i, rep)\n\t\t}\n\t\te.Wait()\n\t}\n}\n\nfunc isMulti(typeName string) bool {\n\tswitch typeName {\n\tcase \"Product\":\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\nfunc (ec *executionContext) resolveEntity(\n\tctx context.Context,\n\ttypeName string,\n\trep EntityRepresentation,\n) (e fedruntime.Entity, err error) {\n\t// we need to do our own panic handling, because we may be called in a\n\t// goroutine, where the usual panic handling can't catch us\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t}\n\t}()\n\n\tswitch typeName {\n\tcase \"User\":\n\t\tresolverName, err := entityResolverNameForUser(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"User\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findUserByID\":\n\t\t\tid0, err := ec.unmarshalNID2string(ctx, rep[\"id\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findUserByID(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindUserByID(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"User\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\n\t}\n\treturn nil, fmt.Errorf(\"%w: %s\", ErrUnknownType, typeName)\n}\n\nfunc (ec *executionContext) resolveManyEntities(\n\tctx context.Context,\n\ttypeName string,\n\treps []EntityWithIndex,\n\tlist []fedruntime.Entity,\n) (err error) {\n\t// we need to do our own panic handling, because we may be called in a\n\t// goroutine, where the usual panic handling can't catch us\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t}\n\t}()\n\n\tswitch typeName {\n\n\tcase \"Product\":\n\t\tresolverName, err := entityResolverNameForProduct(ctx, reps[0].entity)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(`finding resolver for Entity \"Product\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findManyProductByManufacturerIDAndIDs\":\n\t\t\ttypedReps := make([]*model.ProductByManufacturerIDAndIDsInput, len(reps))\n\n\t\t\tfor i, rep := range reps {\n\t\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep.entity[\"manufacturer\"].(map[string]any)[\"id\"])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn errors.New(fmt.Sprintf(\"Field %s undefined in schema.\", \"manufacturerID\"))\n\t\t\t\t}\n\t\t\t\tid1, err := ec.unmarshalNString2string(ctx, rep.entity[\"id\"])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn errors.New(fmt.Sprintf(\"Field %s undefined in schema.\", \"id\"))\n\t\t\t\t}\n\n\t\t\t\ttypedReps[i] = &model.ProductByManufacturerIDAndIDsInput{\n\t\t\t\t\tManufacturerID: id0,\n\t\t\t\t\tID:             id1,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tentities, err := ec.Resolvers.Entity().FindManyProductByManufacturerIDAndIDs(ctx, typedReps)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tfor i, entity := range entities {\n\n\t\t\t\tlist[reps[i].index] = entity\n\t\t\t}\n\t\t\treturn nil\n\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"unknown resolver: %s\", resolverName)\n\t\t}\n\n\tdefault:\n\t\treturn errors.New(\"unknown type: \" + typeName)\n\t}\n}\n\nfunc entityResolverNameForProduct(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"manufacturer\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"manufacturer\\\" for Product\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif m, ok = val.(map[string]any); !ok {\n\t\t\t// nested field value is not a map[string]interface so don't use it\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to nested Key Field \\\"manufacturer\\\" value not matching map[string]any for Product\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tval, ok = m[\"id\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"id\\\" for Product\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tm = rep\n\t\tval, ok = m[\"id\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"id\\\" for Product\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for Product\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findManyProductByManufacturerIDAndIDs\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for Product due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForUser(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"id\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"id\\\" for User\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for User\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findUserByID\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for User due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n"
  },
  {
    "path": "_examples/federation/reviews/graph/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage graph\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"embed\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/_examples/federation/reviews/graph/model\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\t\"github.com/99designs/gqlgen/plugin/federation/fedruntime\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n}\n\ntype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\ntype ResolverRoot interface {\n\tEntity() EntityResolver\n\tProduct() ProductResolver\n\tUser() UserResolver\n}\n\ntype DirectiveRoot struct {\n}\n\ntype ComplexityRoot struct {\n}\n\ntype EntityResolver interface {\n\tFindManyProductByManufacturerIDAndIDs(ctx context.Context, reps []*model.ProductByManufacturerIDAndIDsInput) ([]*model.Product, error)\n\tFindUserByID(ctx context.Context, id string) (*model.User, error)\n}\ntype ProductResolver interface {\n\tManufacturerID(ctx context.Context, obj *model.Product, federationRequires map[string]any) (*string, error)\n}\ntype UserResolver interface {\n\tUsername(ctx context.Context, obj *model.User) (string, error)\n\tReviews(ctx context.Context, obj *model.User, federationRequires map[string]any) ([]*model.Review, error)\n}\n\nvar (\n\tbuiltInDirectivePopulateFromRepresentations = func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error) {\n\t\tfc := graphql.GetFieldContext(ctx)\n\n\t\t// We get the Federation representations argument from the _entities resolver\n\t\trepresentations, ok := fc.Parent.Parent.Args[\"representations\"].([]map[string]any)\n\t\tif !ok {\n\t\t\treturn nil, errors.New(\"must be called from within _entities\")\n\t\t}\n\n\t\t// Get the index of the current entity in the representations list. This is\n\t\t// set by the execution context after the _entities resolver is called.\n\t\tindex := fc.Parent.Index\n\t\tif index == nil {\n\t\t\treturn nil, errors.New(\"couldn't find input index for entity\")\n\t\t}\n\n\t\tif len(representations) < *index {\n\t\t\treturn nil, errors.New(\"representation not found\")\n\t\t}\n\n\t\treturn representations[*index], nil\n\t}\n)\n\ntype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.SchemaData != nil {\n\t\treturn e.SchemaData\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := newExecutionContext(nil, e, nil)\n\t_ = ec\n\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap(\n\t\tec.unmarshalInputProductByManufacturerIDAndIDsInput,\n\t)\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\n//go:embed \"schema.graphqls\"\nvar sourcesFS embed.FS\n\nfunc sourceData(filename string) string {\n\tdata, err := sourcesFS.ReadFile(filename)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"codegen problem: %s not available\", filename))\n\t}\n\treturn string(data)\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"schema.graphqls\", Input: sourceData(\"schema.graphqls\"), BuiltIn: false},\n\t{Name: \"../federation/directives.graphql\", Input: `\n\tdirective @authenticated on FIELD_DEFINITION | OBJECT | INTERFACE | SCALAR | ENUM\n\tdirective @composeDirective(name: String!) repeatable on SCHEMA\n\tdirective @extends on OBJECT | INTERFACE\n\tdirective @external on OBJECT | FIELD_DEFINITION\n\tdirective @key(fields: FieldSet!, resolvable: Boolean = true) repeatable on OBJECT | INTERFACE\n\tdirective @inaccessible on\n\t  | ARGUMENT_DEFINITION\n\t  | ENUM\n\t  | ENUM_VALUE\n\t  | FIELD_DEFINITION\n\t  | INPUT_FIELD_DEFINITION\n\t  | INPUT_OBJECT\n\t  | INTERFACE\n\t  | OBJECT\n\t  | SCALAR\n\t  | UNION\n\tdirective @interfaceObject on OBJECT\n\tdirective @link(import: [String!], url: String!) repeatable on SCHEMA\n\tdirective @override(from: String!, label: String) on FIELD_DEFINITION\n\tdirective @policy(policies: [[federation__Policy!]!]!) on\n\t  | FIELD_DEFINITION\n\t  | OBJECT\n\t  | INTERFACE\n\t  | SCALAR\n\t  | ENUM\n\tdirective @provides(fields: FieldSet!) on FIELD_DEFINITION\n\tdirective @requires(fields: FieldSet!) on FIELD_DEFINITION\n\tdirective @requiresScopes(scopes: [[federation__Scope!]!]!) on\n\t  | FIELD_DEFINITION\n\t  | OBJECT\n\t  | INTERFACE\n\t  | SCALAR\n\t  | ENUM\n\tdirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\tdirective @tag(name: String!) repeatable on\n\t  | ARGUMENT_DEFINITION\n\t  | ENUM\n\t  | ENUM_VALUE\n\t  | FIELD_DEFINITION\n\t  | INPUT_FIELD_DEFINITION\n\t  | INPUT_OBJECT\n\t  | INTERFACE\n\t  | OBJECT\n\t  | SCALAR\n\t  | UNION\n\tscalar _Any\n\tscalar FieldSet\n\tscalar federation__Policy\n\tscalar federation__Scope\n`, BuiltIn: true},\n\t{Name: \"../federation/entity.graphql\", Input: `\n# a union of all types that use the @key directive\nunion _Entity = EmailHost | Manufacturer | Product | User\n\ninput ProductByManufacturerIDAndIDsInput {\n\tManufacturerID: String!\n\tID: String!\n}\n\n# fake type to build resolver interfaces for users to implement\ntype Entity {\n\tfindManyProductByManufacturerIDAndIDs(reps: [ProductByManufacturerIDAndIDsInput]!): [Product]\n\tfindUserByID(id: ID!,): User!\n}\n\ntype _Service {\n  sdl: String\n}\n\nextend type Query {\n  _entities(representations: [_Any!]!): [_Entity]!\n  _service: _Service!\n}\n`, BuiltIn: true},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_Entity_findManyProductByManufacturerIDAndIDs_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"reps\", ec.unmarshalNProductByManufacturerIDAndIDsInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋreviewsᚋgraphᚋmodelᚐProductByManufacturerIDAndIDsInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"reps\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findUserByID_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"id\", ec.unmarshalNID2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"id\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Product_manufacturerID_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\n\targ0, err := ec.field_Product_manufacturerID_argsFederationRequires(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"_federationRequires\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Product_manufacturerID_argsFederationRequires(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (map[string]any, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"_federationRequires\"))\n\tdirective0 := func(ctx context.Context) (any, error) {\n\t\ttmp, ok := rawArgs[\"_federationRequires\"]\n\t\tif !ok {\n\t\t\tvar zeroVal map[string]any\n\t\t\treturn zeroVal, nil\n\t\t}\n\t\treturn ec.unmarshalO_RequiresMap2map(ctx, tmp)\n\t}\n\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\treturn builtInDirectivePopulateFromRepresentations(ctx, rawArgs, directive0)\n\t}\n\n\ttmp, err := directive1(ctx)\n\tif err != nil {\n\t\tvar zeroVal map[string]any\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(map[string]any); ok {\n\t\treturn data, nil\n\t} else if tmp == nil {\n\t\tvar zeroVal map[string]any\n\t\treturn zeroVal, nil\n\t} else {\n\t\tvar zeroVal map[string]any\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from directive, should be map[string]any`, tmp))\n\t}\n}\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query__entities_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"representations\", ec.unmarshalN_Any2ᚕmapᚄ)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"representations\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_User_reviews_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\n\targ0, err := ec.field_User_reviews_argsFederationRequires(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"_federationRequires\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_User_reviews_argsFederationRequires(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (map[string]any, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"_federationRequires\"))\n\tdirective0 := func(ctx context.Context) (any, error) {\n\t\ttmp, ok := rawArgs[\"_federationRequires\"]\n\t\tif !ok {\n\t\t\tvar zeroVal map[string]any\n\t\t\treturn zeroVal, nil\n\t\t}\n\t\treturn ec.unmarshalO_RequiresMap2map(ctx, tmp)\n\t}\n\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\treturn builtInDirectivePopulateFromRepresentations(ctx, rawArgs, directive0)\n\t}\n\n\ttmp, err := directive1(ctx)\n\tif err != nil {\n\t\tvar zeroVal map[string]any\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(map[string]any); ok {\n\t\treturn data, nil\n\t} else if tmp == nil {\n\t\tvar zeroVal map[string]any\n\t\treturn zeroVal, nil\n\t} else {\n\t\tvar zeroVal map[string]any\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from directive, should be map[string]any`, tmp))\n\t}\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _EmailHost_id(ctx context.Context, field graphql.CollectedField, obj *model.EmailHost) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_EmailHost_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_EmailHost_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"EmailHost\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findManyProductByManufacturerIDAndIDs(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findManyProductByManufacturerIDAndIDs,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindManyProductByManufacturerIDAndIDs(ctx, fc.Args[\"reps\"].([]*model.ProductByManufacturerIDAndIDsInput))\n\t\t},\n\t\tnil,\n\t\tec.marshalOProduct2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋreviewsᚋgraphᚋmodelᚐProduct,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findManyProductByManufacturerIDAndIDs(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Product_id(ctx, field)\n\t\t\tcase \"manufacturer\":\n\t\t\t\treturn ec.fieldContext_Product_manufacturer(ctx, field)\n\t\t\tcase \"manufacturerID\":\n\t\t\t\treturn ec.fieldContext_Product_manufacturerID(ctx, field)\n\t\t\tcase \"reviews\":\n\t\t\t\treturn ec.fieldContext_Product_reviews(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Product\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findManyProductByManufacturerIDAndIDs_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findUserByID(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findUserByID,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindUserByID(ctx, fc.Args[\"id\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋreviewsᚋgraphᚋmodelᚐUser,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findUserByID(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_User_id(ctx, field)\n\t\t\tcase \"host\":\n\t\t\t\treturn ec.fieldContext_User_host(ctx, field)\n\t\t\tcase \"email\":\n\t\t\t\treturn ec.fieldContext_User_email(ctx, field)\n\t\t\tcase \"username\":\n\t\t\t\treturn ec.fieldContext_User_username(ctx, field)\n\t\t\tcase \"reviews\":\n\t\t\t\treturn ec.fieldContext_User_reviews(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type User\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findUserByID_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Manufacturer_id(ctx context.Context, field graphql.CollectedField, obj *model.Manufacturer) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Manufacturer_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Manufacturer_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Manufacturer\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Product_id(ctx context.Context, field graphql.CollectedField, obj *model.Product) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Product_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Product_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Product\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Product_manufacturer(ctx context.Context, field graphql.CollectedField, obj *model.Product) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Product_manufacturer,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Manufacturer, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNManufacturer2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋreviewsᚋgraphᚋmodelᚐManufacturer,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Product_manufacturer(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Product\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Manufacturer_id(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Manufacturer\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Product_manufacturerID(ctx context.Context, field graphql.CollectedField, obj *model.Product) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Product_manufacturerID,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Product().ManufacturerID(ctx, obj, fc.Args[\"_federationRequires\"].(map[string]any))\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Product_manufacturerID(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Product\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Product_manufacturerID_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Product_reviews(ctx context.Context, field graphql.CollectedField, obj *model.Product) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Product_reviews,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Reviews, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOReview2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋreviewsᚋgraphᚋmodelᚐReview,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Product_reviews(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Product\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"body\":\n\t\t\t\treturn ec.fieldContext_Review_body(ctx, field)\n\t\t\tcase \"author\":\n\t\t\t\treturn ec.fieldContext_Review_author(ctx, field)\n\t\t\tcase \"product\":\n\t\t\t\treturn ec.fieldContext_Review_product(ctx, field)\n\t\t\tcase \"hostIDEmail\":\n\t\t\t\treturn ec.fieldContext_Review_hostIDEmail(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Review\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query__entities(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query__entities,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.__resolve_entities(ctx, fc.Args[\"representations\"].([]map[string]any)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN_Entity2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query__entities(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type _Entity does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query__entities_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query__service(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query__service,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.__resolve__service(ctx)\n\t\t},\n\t\tnil,\n\t\tec.marshalN_Service2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐService,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query__service(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"sdl\":\n\t\t\t\treturn ec.fieldContext__Service_sdl(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type _Service\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.IntrospectType(fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___schema,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.IntrospectSchema()\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Review_body(ctx context.Context, field graphql.CollectedField, obj *model.Review) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Review_body,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Body, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Review_body(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Review\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Review_author(ctx context.Context, field graphql.CollectedField, obj *model.Review) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Review_author,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Author, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋreviewsᚋgraphᚋmodelᚐUser,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Review_author(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Review\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_User_id(ctx, field)\n\t\t\tcase \"host\":\n\t\t\t\treturn ec.fieldContext_User_host(ctx, field)\n\t\t\tcase \"email\":\n\t\t\t\treturn ec.fieldContext_User_email(ctx, field)\n\t\t\tcase \"username\":\n\t\t\t\treturn ec.fieldContext_User_username(ctx, field)\n\t\t\tcase \"reviews\":\n\t\t\t\treturn ec.fieldContext_User_reviews(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type User\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Review_product(ctx context.Context, field graphql.CollectedField, obj *model.Review) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Review_product,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Product, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNProduct2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋreviewsᚋgraphᚋmodelᚐProduct,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Review_product(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Review\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Product_id(ctx, field)\n\t\t\tcase \"manufacturer\":\n\t\t\t\treturn ec.fieldContext_Product_manufacturer(ctx, field)\n\t\t\tcase \"manufacturerID\":\n\t\t\t\treturn ec.fieldContext_Product_manufacturerID(ctx, field)\n\t\t\tcase \"reviews\":\n\t\t\t\treturn ec.fieldContext_Product_reviews(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Product\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Review_hostIDEmail(ctx context.Context, field graphql.CollectedField, obj *model.Review) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Review_hostIDEmail,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.HostIDEmail, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2string,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Review_hostIDEmail(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Review\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_id(ctx context.Context, field graphql.CollectedField, obj *model.User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_host(ctx context.Context, field graphql.CollectedField, obj *model.User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_host,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Host, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNEmailHost2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋreviewsᚋgraphᚋmodelᚐEmailHost,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_host(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_EmailHost_id(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type EmailHost\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_email(ctx context.Context, field graphql.CollectedField, obj *model.User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_email,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Email, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_email(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_username(ctx context.Context, field graphql.CollectedField, obj *model.User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_username,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.User().Username(ctx, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_username(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_reviews(ctx context.Context, field graphql.CollectedField, obj *model.User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_reviews,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.User().Reviews(ctx, obj, fc.Args[\"_federationRequires\"].(map[string]any))\n\t\t},\n\t\tnil,\n\t\tec.marshalOReview2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋreviewsᚋgraphᚋmodelᚐReview,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_reviews(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"body\":\n\t\t\t\treturn ec.fieldContext_Review_body(ctx, field)\n\t\t\tcase \"author\":\n\t\t\t\treturn ec.fieldContext_Review_author(ctx, field)\n\t\t\tcase \"product\":\n\t\t\t\treturn ec.fieldContext_Review_product(ctx, field)\n\t\t\tcase \"hostIDEmail\":\n\t\t\t\treturn ec.fieldContext_Review_hostIDEmail(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Review\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_User_reviews_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) __Service_sdl(ctx context.Context, field graphql.CollectedField, obj *fedruntime.Service) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext__Service_sdl,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SDL, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2string,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext__Service_sdl(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"_Service\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_isRepeatable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsRepeatable, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_locations,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Locations, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__DirectiveLocation2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_defaultValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DefaultValue, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_types,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Types(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_queryType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.QueryType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_mutationType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.MutationType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_subscriptionType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SubscriptionType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_directives,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Directives(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_kind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Kind(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__TypeKind2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_specifiedByURL,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SpecifiedByURL(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_fields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_interfaces,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Interfaces(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_possibleTypes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PossibleTypes(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_enumValues,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_inputFields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.InputFields(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_ofType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.OfType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_isOneOf,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsOneOf(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOBoolean2bool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalInputProductByManufacturerIDAndIDsInput(ctx context.Context, obj any) (model.ProductByManufacturerIDAndIDsInput, error) {\n\tvar it model.ProductByManufacturerIDAndIDsInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"ManufacturerID\", \"ID\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"ManufacturerID\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"ManufacturerID\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.ManufacturerID = data\n\t\tcase \"ID\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"ID\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.ID = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\nfunc (ec *executionContext) __Entity(ctx context.Context, sel ast.SelectionSet, obj fedruntime.Entity) graphql.Marshaler {\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\tcase model.User:\n\t\treturn ec._User(ctx, sel, &obj)\n\tcase *model.User:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._User(ctx, sel, obj)\n\tcase model.Product:\n\t\treturn ec._Product(ctx, sel, &obj)\n\tcase *model.Product:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Product(ctx, sel, obj)\n\tcase model.Manufacturer:\n\t\treturn ec._Manufacturer(ctx, sel, &obj)\n\tcase *model.Manufacturer:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Manufacturer(ctx, sel, obj)\n\tcase model.EmailHost:\n\t\treturn ec._EmailHost(ctx, sel, &obj)\n\tcase *model.EmailHost:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._EmailHost(ctx, sel, obj)\n\tdefault:\n\t\tif typedObj, ok := obj.(graphql.Marshaler); ok {\n\t\t\treturn typedObj\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T; non-generated variants of _Entity must implement graphql.Marshaler\", obj))\n\t\t}\n\t}\n}\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar emailHostImplementors = []string{\"EmailHost\", \"_Entity\"}\n\nfunc (ec *executionContext) _EmailHost(ctx context.Context, sel ast.SelectionSet, obj *model.EmailHost) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, emailHostImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"EmailHost\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._EmailHost_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar entityImplementors = []string{\"Entity\"}\n\nfunc (ec *executionContext) _Entity(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, entityImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Entity\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Entity\")\n\t\tcase \"findManyProductByManufacturerIDAndIDs\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findManyProductByManufacturerIDAndIDs(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findUserByID\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findUserByID(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar manufacturerImplementors = []string{\"Manufacturer\", \"_Entity\"}\n\nfunc (ec *executionContext) _Manufacturer(ctx context.Context, sel ast.SelectionSet, obj *model.Manufacturer) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, manufacturerImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Manufacturer\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._Manufacturer_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar productImplementors = []string{\"Product\", \"_Entity\"}\n\nfunc (ec *executionContext) _Product(ctx context.Context, sel ast.SelectionSet, obj *model.Product) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, productImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Product\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._Product_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"manufacturer\":\n\t\t\tout.Values[i] = ec._Product_manufacturer(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"manufacturerID\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Product_manufacturerID(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"reviews\":\n\t\t\tout.Values[i] = ec._Product_reviews(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"_entities\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query__entities(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"_service\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query__service(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar reviewImplementors = []string{\"Review\"}\n\nfunc (ec *executionContext) _Review(ctx context.Context, sel ast.SelectionSet, obj *model.Review) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, reviewImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Review\")\n\t\tcase \"body\":\n\t\t\tout.Values[i] = ec._Review_body(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"author\":\n\t\t\tout.Values[i] = ec._Review_author(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"product\":\n\t\t\tout.Values[i] = ec._Review_product(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"hostIDEmail\":\n\t\t\tout.Values[i] = ec._Review_hostIDEmail(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar userImplementors = []string{\"User\", \"_Entity\"}\n\nfunc (ec *executionContext) _User(ctx context.Context, sel ast.SelectionSet, obj *model.User) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, userImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"User\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._User_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"host\":\n\t\t\tout.Values[i] = ec._User_host(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"email\":\n\t\t\tout.Values[i] = ec._User_email(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"username\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._User_username(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"reviews\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._User_reviews(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar _ServiceImplementors = []string{\"_Service\"}\n\nfunc (ec *executionContext) __Service(ctx context.Context, sel ast.SelectionSet, obj *fedruntime.Service) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, _ServiceImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"_Service\")\n\t\tcase \"sdl\":\n\t\t\tout.Values[i] = ec.__Service_sdl(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNEmailHost2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋreviewsᚋgraphᚋmodelᚐEmailHost(ctx context.Context, sel ast.SelectionSet, v *model.EmailHost) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._EmailHost(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNFieldSet2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNFieldSet2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNID2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalID(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNID2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalID(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNManufacturer2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋreviewsᚋgraphᚋmodelᚐManufacturer(ctx context.Context, sel ast.SelectionSet, v *model.Manufacturer) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Manufacturer(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNProduct2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋreviewsᚋgraphᚋmodelᚐProduct(ctx context.Context, sel ast.SelectionSet, v *model.Product) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Product(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNProductByManufacturerIDAndIDsInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋreviewsᚋgraphᚋmodelᚐProductByManufacturerIDAndIDsInput(ctx context.Context, v any) ([]*model.ProductByManufacturerIDAndIDsInput, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]*model.ProductByManufacturerIDAndIDsInput, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalOProductByManufacturerIDAndIDsInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋreviewsᚋgraphᚋmodelᚐProductByManufacturerIDAndIDsInput(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNUser2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋreviewsᚋgraphᚋmodelᚐUser(ctx context.Context, sel ast.SelectionSet, v model.User) graphql.Marshaler {\n\treturn ec._User(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋreviewsᚋgraphᚋmodelᚐUser(ctx context.Context, sel ast.SelectionSet, v *model.User) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._User(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN_Any2map(ctx context.Context, v any) (map[string]any, error) {\n\tres, err := graphql.UnmarshalMap(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN_Any2map(ctx context.Context, sel ast.SelectionSet, v map[string]any) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\tres := graphql.MarshalMap(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN_Any2ᚕmapᚄ(ctx context.Context, v any) ([]map[string]any, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]map[string]any, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN_Any2map(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN_Any2ᚕmapᚄ(ctx context.Context, sel ast.SelectionSet, v []map[string]any) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalN_Any2map(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN_Entity2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity(ctx context.Context, sel ast.SelectionSet, v []fedruntime.Entity) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalO_Entity2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN_Service2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐService(ctx context.Context, sel ast.SelectionSet, v fedruntime.Service) graphql.Marshaler {\n\treturn ec.__Service(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNfederation__Policy2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNfederation__Policy2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNfederation__Policy2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNfederation__Policy2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalNfederation__Policy2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNfederation__Policy2string(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalNfederation__Policy2ᚕᚕstringᚄ(ctx context.Context, v any) ([][]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([][]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNfederation__Policy2ᚕstringᚄ(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalNfederation__Policy2ᚕᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v [][]string) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNfederation__Policy2ᚕstringᚄ(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalNfederation__Scope2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNfederation__Scope2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNfederation__Scope2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNfederation__Scope2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalNfederation__Scope2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNfederation__Scope2string(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalNfederation__Scope2ᚕᚕstringᚄ(ctx context.Context, v any) ([][]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([][]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNfederation__Scope2ᚕstringᚄ(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalNfederation__Scope2ᚕᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v [][]string) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNfederation__Scope2ᚕstringᚄ(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalOProduct2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋreviewsᚋgraphᚋmodelᚐProduct(ctx context.Context, sel ast.SelectionSet, v []*model.Product) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalOProduct2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋreviewsᚋgraphᚋmodelᚐProduct(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOProduct2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋreviewsᚋgraphᚋmodelᚐProduct(ctx context.Context, sel ast.SelectionSet, v *model.Product) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Product(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOProductByManufacturerIDAndIDsInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋreviewsᚋgraphᚋmodelᚐProductByManufacturerIDAndIDsInput(ctx context.Context, v any) (*model.ProductByManufacturerIDAndIDsInput, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputProductByManufacturerIDAndIDsInput(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOReview2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋreviewsᚋgraphᚋmodelᚐReview(ctx context.Context, sel ast.SelectionSet, v []*model.Review) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalOReview2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋreviewsᚋgraphᚋmodelᚐReview(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOReview2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfederationᚋreviewsᚋgraphᚋmodelᚐReview(ctx context.Context, sel ast.SelectionSet, v *model.Review) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Review(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNString2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalOString2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNString2string(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalO_Entity2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity(ctx context.Context, sel ast.SelectionSet, v fedruntime.Entity) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.__Entity(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalO_RequiresMap2map(ctx context.Context, v any) (map[string]any, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalMap(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalO_RequiresMap2map(ctx context.Context, sel ast.SelectionSet, v map[string]any) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalMap(v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "_examples/federation/reviews/graph/model/models.go",
    "content": "package model\n\ntype Product struct {\n\tID           string        `json:\"id\"`\n\tManufacturer *Manufacturer `json:\"manufacturer\"`\n\tReviews      []*Review     `json:\"reviews\"`\n}\n\nfunc (Product) IsEntity() {}\n\ntype Review struct {\n\tBody        string\n\tAuthor      *User\n\tProduct     *Product\n\tHostIDEmail string\n}\n\ntype User struct {\n\tID    string     `json:\"id\"`\n\tHost  *EmailHost `json:\"host\"`\n\tEmail string     `json:\"email\"`\n}\n\nfunc (User) IsEntity() {}\n"
  },
  {
    "path": "_examples/federation/reviews/graph/model/models_gen.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage model\n\ntype EmailHost struct {\n\tID string `json:\"id\"`\n}\n\nfunc (EmailHost) IsEntity() {}\n\ntype Manufacturer struct {\n\tID string `json:\"id\"`\n}\n\nfunc (Manufacturer) IsEntity() {}\n\ntype ProductByManufacturerIDAndIDsInput struct {\n\tManufacturerID string `json:\"ManufacturerID\"`\n\tID             string `json:\"ID\"`\n}\n\ntype Query struct {\n}\n"
  },
  {
    "path": "_examples/federation/reviews/graph/resolver.go",
    "content": "// This file will not be regenerated automatically.\n//\n// It serves as dependency injection for your app, add any dependencies you require here.\npackage graph\n\nimport (\n\t\"context\"\n\n\t\"github.com/99designs/gqlgen/_examples/federation/reviews/graph/model\"\n)\n\ntype Resolver struct{}\n\nfunc (r *entityResolver) FindProductByManufacturerIDAndID(\n\tctx context.Context,\n\tmanufacturerID, id string,\n) (*model.Product, error) {\n\tvar productReviews []*model.Review\n\n\tfor _, review := range reviews {\n\t\tif review.Product.ID == id && review.Product.Manufacturer.ID == manufacturerID {\n\t\t\tproductReviews = append(productReviews, review)\n\t\t}\n\t}\n\treturn &model.Product{\n\t\tID: id,\n\t\tManufacturer: &model.Manufacturer{\n\t\t\tID: manufacturerID,\n\t\t},\n\t\tReviews: productReviews,\n\t}, nil\n}\n"
  },
  {
    "path": "_examples/federation/reviews/graph/reviews.go",
    "content": "package graph\n\nimport \"github.com/99designs/gqlgen/_examples/federation/reviews/graph/model\"\n\nvar reviews = []*model.Review{\n\t{\n\t\tBody:    \"A highly effective form of birth control.\",\n\t\tProduct: &model.Product{ID: \"111\", Manufacturer: &model.Manufacturer{ID: \"1234\"}},\n\t\tAuthor:  &model.User{ID: \"1234\"},\n\t},\n\t{\n\t\tBody:    \"Fedoras are one of the most fashionable hats around and can look great with a variety of outfits.\",\n\t\tProduct: &model.Product{ID: \"222\", Manufacturer: &model.Manufacturer{ID: \"2345\"}},\n\t\tAuthor:  &model.User{ID: \"1234\"},\n\t},\n\t{\n\t\tBody:    \"This is the last straw. Hat you will wear. 11/10\",\n\t\tProduct: &model.Product{ID: \"333\", Manufacturer: &model.Manufacturer{ID: \"2345\"}},\n\t\tAuthor:  &model.User{ID: \"7777\"},\n\t},\n}\n"
  },
  {
    "path": "_examples/federation/reviews/graph/schema.graphqls",
    "content": "directive @entityResolver(multi: Boolean) on OBJECT\n\nextend type EmailHost @key(fields: \"id\") {\n    id: String! @external\n}\n\nextend type Manufacturer @key(fields: \"id\") {\n    id: String! @external\n}\n\nextend type Product @key(fields: \"manufacturer { id } id\") @entityResolver(multi: true) {\n    id: String! @external\n    manufacturer: Manufacturer! @external\n    manufacturerID: String @requires(fields: \"manufacturer { id }\")\n    reviews: [Review]\n}\n\nextend type User @key(fields: \"id\") {\n    id: ID! @external\n    host: EmailHost! @external\n    email: String! @external\n    username: String! @external\n    reviews: [Review] @requires(fields: \"host { id } email\")\n}\n\ntype Review {\n    body: String!\n    author: User! @provides(fields: \"username\")\n    product: Product!\n    hostIDEmail: String\n}\n"
  },
  {
    "path": "_examples/federation/reviews/graph/schema.resolvers.go",
    "content": "package graph\n\n// This file will be automatically regenerated based on the schema, any resolver\n// implementations\n// will be copied through when generating and any unknown code will be moved to the end.\n// Code generated by github.com/99designs/gqlgen version v0.17.88-dev\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/99designs/gqlgen/_examples/federation/reviews/graph/model\"\n)\n\n// ManufacturerID is the resolver for the manufacturerID field.\nfunc (r *productResolver) ManufacturerID(ctx context.Context, obj *model.Product, federationRequires map[string]any) (*string, error) {\n\tmanufacturer, ok := federationRequires[\"manufacturer\"].(map[string]any)\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"manufacturer not provided or not an object\")\n\t}\n\n\tmanufacturerID, ok := manufacturer[\"id\"].(string)\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"manufacturer.id not provided or not a string\")\n\t}\n\n\treturn &manufacturerID, nil\n}\n\n// Username is the resolver for the username field.\nfunc (r *userResolver) Username(ctx context.Context, obj *model.User) (string, error) {\n\tpanic(fmt.Errorf(\"not implemented: Username - username\"))\n}\n\n// Reviews is the resolver for the reviews field.\nfunc (r *userResolver) Reviews(ctx context.Context, obj *model.User, federationRequires map[string]any) ([]*model.Review, error) {\n\tvar productReviews []*model.Review\n\tfor _, review := range reviews {\n\t\tif review.Author.ID == obj.ID {\n\t\t\thost, ok := federationRequires[\"host\"].(map[string]any)\n\t\t\tif !ok {\n\t\t\t\treturn nil, fmt.Errorf(\"host not provided or not an object\")\n\t\t\t}\n\n\t\t\thostID, ok := host[\"id\"].(string)\n\t\t\tif !ok {\n\t\t\t\treturn nil, fmt.Errorf(\"host.id not provided or not a string\")\n\t\t\t}\n\n\t\t\temail, ok := federationRequires[\"email\"].(string)\n\t\t\tif !ok {\n\t\t\t\treturn nil, fmt.Errorf(\"email not provided or not a string\")\n\t\t\t}\n\n\t\t\tproductReviews = append(productReviews, &model.Review{\n\t\t\t\tBody:        review.Body,\n\t\t\t\tAuthor:      review.Author,\n\t\t\t\tProduct:     review.Product,\n\t\t\t\tHostIDEmail: hostID + \":\" + email,\n\t\t\t})\n\t\t}\n\t}\n\treturn productReviews, nil\n}\n\n// Product returns ProductResolver implementation.\nfunc (r *Resolver) Product() ProductResolver { return &productResolver{r} }\n\n// User returns UserResolver implementation.\nfunc (r *Resolver) User() UserResolver { return &userResolver{r} }\n\ntype productResolver struct{ *Resolver }\ntype userResolver struct{ *Resolver }\n"
  },
  {
    "path": "_examples/federation/reviews/schema/schema.go",
    "content": "package schema\n\nimport (\n\t\"github.com/99designs/gqlgen/_examples/federation/reviews/graph\"\n)\n\nconst DefaultPort = \"4003\"\n\nvar Schema = graph.NewExecutableSchema(graph.Config{Resolvers: &graph.Resolver{}})\n"
  },
  {
    "path": "_examples/federation/reviews/server.go",
    "content": "//go:generate go run ../../../testdata/gqlgen.go\npackage main\n\nimport (\n\t\"log\"\n\t\"net/http\"\n\t\"os\"\n\n\t\"github.com/99designs/gqlgen/_examples/federation/reviews/graph\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/debug\"\n\t\"github.com/99designs/gqlgen/graphql/handler/extension\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/graphql/playground\"\n)\n\nconst defaultPort = \"4003\"\n\nfunc main() {\n\tport := os.Getenv(\"PORT\")\n\tif port == \"\" {\n\t\tport = defaultPort\n\t}\n\n\tsrv := handler.New(\n\t\tgraph.NewExecutableSchema(graph.Config{Resolvers: &graph.Resolver{}}),\n\t)\n\tsrv.AddTransport(transport.GET{})\n\tsrv.AddTransport(transport.POST{})\n\tsrv.Use(extension.Introspection{})\n\tsrv.Use(&debug.Tracer{})\n\n\thttp.Handle(\"/\", playground.Handler(\"GraphQL playground\", \"/query\"))\n\thttp.Handle(\"/query\", srv)\n\n\tlog.Printf(\"connect to http://localhost:%s/ for GraphQL playground\", port)\n\tlog.Fatal(http.ListenAndServe(\":\"+port, nil))\n}\n"
  },
  {
    "path": "_examples/federation/src/__test__/integration.spec.ts",
    "content": "import {describe, expect, it} from \"vitest\";\nimport {InMemoryCache, ApolloClient, HttpLink, gql} from '@apollo/client/core';\n\nconst uri = process.env.SERVER_URL || 'http://localhost:4000/';\n\nconst client = new ApolloClient({\n    link: new HttpLink({uri}),\n    cache: new InMemoryCache(),\n});\n\ndescribe('Json', () => {\n    it('can join across services', async () => {\n        console.log(uri)\n        let res = await client.query({\n            query: gql(`query {\n                me {\n                    username\n                    reviews {\n                        body\n                        product {\n                            name\n                            upc\n                        }\n                    }\n                }\n            }`),\n        });\n\n        expect(res.data).toEqual({\n            \"me\": {\n                \"__typename\": \"User\",\n                \"username\": \"Me\",\n                \"reviews\": [\n                    {\n                        \"__typename\": \"Review\",\n                        \"body\": \"A highly effective form of birth control.\",\n                        \"product\": {\n                            \"__typename\": \"Product\",\n                            \"name\": \"Trilby\",\n                            \"upc\": \"top-1\"\n                        }\n                    },\n                    {\n                        \"__typename\": \"Review\",\n                        \"body\": \"Fedoras are one of the most fashionable hats around and can look great with a variety of outfits.\",\n                        \"product\": {\n                            \"__typename\": \"Product\",\n                            \"name\": \"Fedora\",\n                            \"upc\": \"top-2\"\n                        }\n                    }\n                ]\n            }\n        });\n        expect(res.error).toBeUndefined();\n    });\n});\n\n"
  },
  {
    "path": "_examples/federation/src/gateway/index.ts",
    "content": "import {ApolloServer} from '@apollo/server';\nimport {startStandaloneServer} from '@apollo/server/standalone';\nimport {ApolloGateway, IntrospectAndCompose} from '@apollo/gateway';\n\nconst gateway = new ApolloGateway({\n    supergraphSdl: new IntrospectAndCompose({\n        subgraphs: [\n            {name: 'accounts', url: 'http://localhost:4001/query'},\n            {name: 'products', url: 'http://localhost:4002/query'},\n            {name: 'reviews', url: 'http://localhost:4003/query'}\n        ],\n    }),\n});\n\nconst server = new ApolloServer({gateway});\n\n// Note the top-level `await`!\nconst {url} = await startStandaloneServer(server);\nconsole.log(`🚀  Server ready at ${url}`);\n"
  },
  {
    "path": "_examples/federation/start.sh",
    "content": "#!/usr/bin/env bash\n\nfunction cleanup {\n    kill \"$ACCOUNTS_PID\"\n    kill \"$PRODUCTS_PID\"\n    kill \"$REVIEWS_PID\"\n}\ntrap cleanup EXIT\n\ngo build -o /tmp/srv-accounts ./accounts\ngo build -o /tmp/srv-products ./products\ngo build -o /tmp/srv-reviews ./reviews\n\n/tmp/srv-accounts &\nACCOUNTS_PID=$!\n\n/tmp/srv-products &\nPRODUCTS_PID=$!\n\n/tmp/srv-reviews &\nREVIEWS_PID=$!\n\nsleep 1\n\nnode src/gateway/index.ts\n"
  },
  {
    "path": "_examples/federation/subgraphs/subgraphs.go",
    "content": "package subgraphs\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"log\"\n\t\"net/http\"\n\n\t\"golang.org/x/sync/errgroup\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/debug\"\n\t\"github.com/99designs/gqlgen/graphql/handler/extension\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/graphql/playground\"\n)\n\ntype Config struct {\n\tEnableDebug bool\n}\n\ntype Subgraphs struct {\n\tservers []*http.Server\n}\n\ntype SubgraphConfig struct {\n\tName   string\n\tSchema graphql.ExecutableSchema\n\tPort   string\n}\n\nfunc (s *Subgraphs) Shutdown(ctx context.Context) error {\n\tfor _, srv := range s.servers {\n\t\tif err := srv.Shutdown(ctx); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (s *Subgraphs) ListenAndServe(ctx context.Context) error {\n\tgroup, _ := errgroup.WithContext(ctx)\n\tfor _, srv := range s.servers {\n\t\tgroup.Go(func() error {\n\t\t\terr := srv.ListenAndServe()\n\t\t\tif err != nil && !errors.Is(err, http.ErrServerClosed) {\n\t\t\t\tlog.Printf(\"error listening and serving: %v\", err)\n\t\t\t\treturn err\n\t\t\t}\n\t\t\treturn nil\n\t\t})\n\t}\n\treturn group.Wait()\n}\n\nfunc newServer(name, port string, schema graphql.ExecutableSchema) *http.Server {\n\tif port == \"\" {\n\t\tpanic(fmt.Errorf(\"port for %s is empty\", name))\n\t}\n\tsrv := handler.New(schema)\n\tsrv.AddTransport(transport.GET{})\n\tsrv.AddTransport(transport.POST{})\n\tsrv.Use(extension.Introspection{})\n\tsrv.Use(&debug.Tracer{})\n\tmux := http.NewServeMux()\n\tmux.Handle(\"/\", playground.Handler(\"GraphQL playground\", \"/query\"))\n\tmux.Handle(\"/query\", srv)\n\treturn &http.Server{\n\t\tAddr:    \":\" + port,\n\t\tHandler: mux,\n\t}\n}\n\nfunc New(ctx context.Context, subgraphs ...SubgraphConfig) (*Subgraphs, error) {\n\tservers := make([]*http.Server, len(subgraphs))\n\tfor i, config := range subgraphs {\n\t\tservers[i] = newServer(config.Name, config.Port, config.Schema)\n\t}\n\n\treturn &Subgraphs{\n\t\tservers: servers,\n\t}, nil\n}\n"
  },
  {
    "path": "_examples/federation/tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n    \"target\": \"ES2020\",\n    \"useDefineForClassFields\": true,\n    \"module\": \"ESNext\",\n    \"lib\": [\"ES2020\", \"DOM\", \"DOM.Iterable\"],\n    \"skipLibCheck\": true,\n\n    /* Bundler mode */\n    \"moduleResolution\": \"bundler\",\n    \"allowImportingTsExtensions\": true,\n    \"resolveJsonModule\": true,\n    \"isolatedModules\": true,\n    \"noEmit\": true,\n\n    /* Linting */\n    \"strict\": true,\n    \"noUnusedLocals\": true,\n    \"noUnusedParameters\": true,\n    \"noFallthroughCasesInSwitch\": true\n  },\n  \"include\": [\"src\"]\n}\n"
  },
  {
    "path": "_examples/fileupload/.gqlgen.yml",
    "content": "model:\n  filename: model/generated.go\n"
  },
  {
    "path": "_examples/fileupload/fileupload_test.go",
    "content": "//go:generate go run ../../testdata/gqlgen.go -stub stubs.go\npackage fileupload\n\nimport (\n\t\"context\"\n\t\"io\"\n\t\"net/http/httptest\"\n\t\"os\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/_examples/fileupload/model\"\n\tgqlclient \"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestFileUpload(t *testing.T) {\n\tresolver := &Stub{}\n\th := handler.New(NewExecutableSchema(Config{Resolvers: resolver}))\n\th.AddTransport(transport.MultipartForm{})\n\tsrv := httptest.NewServer(h)\n\tdefer srv.Close()\n\tgql := gqlclient.New(srv.Config.Handler, gqlclient.Path(\"/graphql\"))\n\n\taTxtFile, err := os.CreateTemp(t.TempDir(), \"a.txt\")\n\trequire.NoError(t, err)\n\tdefer aTxtFile.Close()\n\taTxtFile.WriteString(`test`)\n\n\ta1TxtFile, err := os.CreateTemp(t.TempDir(), \"a.txt\")\n\trequire.NoError(t, err)\n\tdefer a1TxtFile.Close()\n\tb1TxtFile, err := os.CreateTemp(t.TempDir(), \"b.txt\")\n\trequire.NoError(t, err)\n\tdefer b1TxtFile.Close()\n\ta1TxtFile.WriteString(`test1`)\n\tb1TxtFile.WriteString(`test2`)\n\n\tt.Run(\"valid single file upload\", func(t *testing.T) {\n\t\tresolver.MutationResolver.SingleUpload = func(ctx context.Context, file graphql.Upload) (*model.File, error) {\n\t\t\trequire.NotNil(t, file)\n\t\t\trequire.NotNil(t, file.File)\n\t\t\tcontent, err := io.ReadAll(file.File)\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Equal(t, \"test\", string(content))\n\n\t\t\treturn &model.File{\n\t\t\t\tID:          1,\n\t\t\t\tName:        file.Filename,\n\t\t\t\tContent:     string(content),\n\t\t\t\tContentType: file.ContentType,\n\t\t\t}, nil\n\t\t}\n\n\t\tmutation := `mutation ($file: Upload!) {\n\t\t\tsingleUpload(file: $file) {\n\t\t\t\tid\n\t\t\t\tname\n\t\t\t\tcontent\n\t\t\t\tcontentType\n\t\t\t}\n\t\t}`\n\t\tvar result struct {\n\t\t\tSingleUpload *model.File\n\t\t}\n\n\t\terr := gql.Post(mutation, &result, gqlclient.Var(\"file\", aTxtFile), gqlclient.WithFiles())\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, 1, result.SingleUpload.ID)\n\t\trequire.Contains(t, result.SingleUpload.Name, \"a.txt\")\n\t\trequire.Equal(t, \"test\", result.SingleUpload.Content)\n\t\trequire.Equal(t, \"text/plain; charset=utf-8\", result.SingleUpload.ContentType)\n\t})\n\n\tt.Run(\"valid single file upload with payload\", func(t *testing.T) {\n\t\tresolver.MutationResolver.SingleUploadWithPayload = func(ctx context.Context, req model.UploadFile) (*model.File, error) {\n\t\t\trequire.Equal(t, 1, req.ID)\n\t\t\trequire.NotNil(t, req.File)\n\t\t\trequire.NotNil(t, req.File.File)\n\t\t\tcontent, err := io.ReadAll(req.File.File)\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Equal(t, \"test\", string(content))\n\n\t\t\treturn &model.File{\n\t\t\t\tID:          1,\n\t\t\t\tName:        req.File.Filename,\n\t\t\t\tContent:     string(content),\n\t\t\t\tContentType: req.File.ContentType,\n\t\t\t}, nil\n\t\t}\n\n\t\tmutation := `mutation ($req: UploadFile!) {\n\t\t\tsingleUploadWithPayload(req: $req) {\n\t\t\t\tid\n\t\t\t\tname\n\t\t\t\tcontent\n\t\t\t\tcontentType\n\t\t\t}\n\t\t}`\n\t\tvar result struct {\n\t\t\tSingleUploadWithPayload *model.File\n\t\t}\n\n\t\terr := gql.Post(\n\t\t\tmutation,\n\t\t\t&result,\n\t\t\tgqlclient.Var(\"req\", map[string]any{\"id\": 1, \"file\": aTxtFile}),\n\t\t\tgqlclient.WithFiles(),\n\t\t)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, 1, result.SingleUploadWithPayload.ID)\n\t\trequire.Contains(t, result.SingleUploadWithPayload.Name, \"a.txt\")\n\t\trequire.Equal(t, \"test\", result.SingleUploadWithPayload.Content)\n\t\trequire.Equal(t, \"text/plain; charset=utf-8\", result.SingleUploadWithPayload.ContentType)\n\t})\n\n\tt.Run(\"valid file list upload\", func(t *testing.T) {\n\t\tresolver.MutationResolver.MultipleUpload = func(ctx context.Context, files []*graphql.Upload) ([]*model.File, error) {\n\t\t\trequire.Len(t, files, 2)\n\t\t\tvar contents []string\n\t\t\tvar resp []*model.File\n\t\t\tfor i := range files {\n\t\t\t\trequire.NotNil(t, files[i].File)\n\t\t\t\tcontent, err := io.ReadAll(files[i].File)\n\t\t\t\trequire.NoError(t, err)\n\t\t\t\tcontents = append(contents, string(content))\n\t\t\t\tresp = append(resp, &model.File{\n\t\t\t\t\tID:          i + 1,\n\t\t\t\t\tName:        files[i].Filename,\n\t\t\t\t\tContent:     string(content),\n\t\t\t\t\tContentType: files[i].ContentType,\n\t\t\t\t})\n\t\t\t}\n\t\t\trequire.ElementsMatch(t, []string{\"test1\", \"test2\"}, contents)\n\t\t\treturn resp, nil\n\t\t}\n\n\t\tmutation := `mutation($files: [Upload!]!) {\n\t\t\tmultipleUpload(files: $files) {\n\t\t\t\tid\n\t\t\t\tname\n\t\t\t\tcontent\n\t\t\t\tcontentType\n\t\t\t}\n\t\t}`\n\t\tvar result struct {\n\t\t\tMultipleUpload []*model.File\n\t\t}\n\n\t\terr := gql.Post(\n\t\t\tmutation,\n\t\t\t&result,\n\t\t\tgqlclient.Var(\"files\", []*os.File{a1TxtFile, b1TxtFile}),\n\t\t\tgqlclient.WithFiles(),\n\t\t)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, 1, result.MultipleUpload[0].ID)\n\t\trequire.Equal(t, 2, result.MultipleUpload[1].ID)\n\t\tfor _, mu := range result.MultipleUpload {\n\t\t\tif mu.Name == \"a.txt\" {\n\t\t\t\trequire.Equal(t, \"test1\", mu.Content)\n\t\t\t}\n\t\t\tif mu.Name == \"b.txt\" {\n\t\t\t\trequire.Equal(t, \"test2\", mu.Content)\n\t\t\t}\n\t\t\trequire.Equal(t, \"text/plain; charset=utf-8\", mu.ContentType)\n\t\t}\n\t})\n\n\tt.Run(\"valid file list upload with payload\", func(t *testing.T) {\n\t\tresolver.MutationResolver.MultipleUploadWithPayload = func(ctx context.Context, req []*model.UploadFile) ([]*model.File, error) {\n\t\t\trequire.Len(t, req, 2)\n\t\t\tvar ids []int\n\t\t\tvar contents []string\n\t\t\tvar resp []*model.File\n\t\t\tfor i := range req {\n\t\t\t\trequire.NotNil(t, req[i].File)\n\t\t\t\trequire.NotNil(t, req[i].File.File)\n\t\t\t\tcontent, err := io.ReadAll(req[i].File.File)\n\t\t\t\trequire.NoError(t, err)\n\t\t\t\tids = append(ids, req[i].ID)\n\t\t\t\tcontents = append(contents, string(content))\n\t\t\t\tresp = append(resp, &model.File{\n\t\t\t\t\tID:          i + 1,\n\t\t\t\t\tName:        req[i].File.Filename,\n\t\t\t\t\tContent:     string(content),\n\t\t\t\t\tContentType: req[i].File.ContentType,\n\t\t\t\t})\n\t\t\t}\n\t\t\trequire.ElementsMatch(t, []int{1, 2}, ids)\n\t\t\trequire.ElementsMatch(t, []string{\"test1\", \"test2\"}, contents)\n\t\t\treturn resp, nil\n\t\t}\n\n\t\tmutation := `mutation($req: [UploadFile!]!) {\n\t\t\tmultipleUploadWithPayload(req: $req) {\n\t\t\t\tid\n\t\t\t\tname\n\t\t\t\tcontent\n\t\t\t\tcontentType\n\t\t\t}\n\t\t}`\n\t\tvar result struct {\n\t\t\tMultipleUploadWithPayload []*model.File\n\t\t}\n\n\t\terr := gql.Post(mutation, &result, gqlclient.Var(\"req\", []map[string]any{\n\t\t\t{\"id\": 1, \"file\": a1TxtFile},\n\t\t\t{\"id\": 2, \"file\": b1TxtFile},\n\t\t}), gqlclient.WithFiles())\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, 1, result.MultipleUploadWithPayload[0].ID)\n\t\trequire.Equal(t, 2, result.MultipleUploadWithPayload[1].ID)\n\t\tfor _, mu := range result.MultipleUploadWithPayload {\n\t\t\tif mu.Name == \"a.txt\" {\n\t\t\t\trequire.Equal(t, \"test1\", mu.Content)\n\t\t\t}\n\t\t\tif mu.Name == \"b.txt\" {\n\t\t\t\trequire.Equal(t, \"test2\", mu.Content)\n\t\t\t}\n\t\t\trequire.Equal(t, \"text/plain; charset=utf-8\", mu.ContentType)\n\t\t}\n\t})\n\n\tt.Run(\"valid file list upload with payload and file reuse\", func(t *testing.T) {\n\t\tresolver := &Stub{}\n\t\tresolver.MutationResolver.MultipleUploadWithPayload = func(ctx context.Context, req []*model.UploadFile) ([]*model.File, error) {\n\t\t\trequire.Len(t, req, 2)\n\t\t\tvar ids []int\n\t\t\tvar contents []string\n\t\t\tvar resp []*model.File\n\t\t\tfor i := range req {\n\t\t\t\trequire.NotNil(t, req[i].File)\n\t\t\t\trequire.NotNil(t, req[i].File.File)\n\t\t\t\tids = append(ids, req[i].ID)\n\n\t\t\t\tvar got []byte\n\t\t\t\tbuf := make([]byte, 2)\n\t\t\t\tfor {\n\t\t\t\t\tn, err := req[i].File.File.Read(buf)\n\t\t\t\t\tgot = append(got, buf[:n]...)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\tif err == io.EOF {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\trequire.Fail(t, \"unexpected error while reading\", err.Error())\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcontents = append(contents, string(got))\n\t\t\t\tresp = append(resp, &model.File{\n\t\t\t\t\tID:          i + 1,\n\t\t\t\t\tName:        req[i].File.Filename,\n\t\t\t\t\tContent:     string(got),\n\t\t\t\t\tContentType: req[i].File.ContentType,\n\t\t\t\t})\n\t\t\t}\n\t\t\trequire.ElementsMatch(t, []int{1, 2}, ids)\n\t\t\trequire.ElementsMatch(t, []string{\"test1\", \"test1\"}, contents)\n\t\t\treturn resp, nil\n\t\t}\n\n\t\ttest := func(uploadMaxMemory int64) {\n\t\t\thndlr := handler.New(NewExecutableSchema(Config{Resolvers: resolver}))\n\t\t\thndlr.AddTransport(transport.MultipartForm{MaxMemory: uploadMaxMemory})\n\n\t\t\tsrv := httptest.NewServer(hndlr)\n\t\t\tdefer srv.Close()\n\t\t\tgql := gqlclient.New(srv.Config.Handler, gqlclient.Path(\"/graphql\"))\n\n\t\t\tmutation := `mutation($req: [UploadFile!]!) {\n\t\t\t\tmultipleUploadWithPayload(req: $req) {\n\t\t\t\t\tid\n\t\t\t\t\tname\n\t\t\t\t\tcontent\n\t\t\t\t\tcontentType\n\t\t\t\t}\n\t\t\t}`\n\t\t\tvar result struct {\n\t\t\t\tMultipleUploadWithPayload []*model.File\n\t\t\t}\n\n\t\t\terr := gql.Post(mutation, &result, gqlclient.Var(\"req\", []map[string]any{\n\t\t\t\t{\"id\": 1, \"file\": a1TxtFile},\n\t\t\t\t{\"id\": 2, \"file\": a1TxtFile},\n\t\t\t}), gqlclient.WithFiles())\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Equal(t, 1, result.MultipleUploadWithPayload[0].ID)\n\t\t\trequire.Contains(t, result.MultipleUploadWithPayload[0].Name, \"a.txt\")\n\t\t\trequire.Equal(t, \"test1\", result.MultipleUploadWithPayload[0].Content)\n\t\t\trequire.Equal(\n\t\t\t\tt,\n\t\t\t\t\"text/plain; charset=utf-8\",\n\t\t\t\tresult.MultipleUploadWithPayload[0].ContentType,\n\t\t\t)\n\t\t\trequire.Equal(t, 2, result.MultipleUploadWithPayload[1].ID)\n\t\t\trequire.Contains(t, result.MultipleUploadWithPayload[1].Name, \"a.txt\")\n\t\t\trequire.Equal(t, \"test1\", result.MultipleUploadWithPayload[1].Content)\n\t\t\trequire.Equal(\n\t\t\t\tt,\n\t\t\t\t\"text/plain; charset=utf-8\",\n\t\t\t\tresult.MultipleUploadWithPayload[1].ContentType,\n\t\t\t)\n\t\t}\n\n\t\tt.Run(\"payload smaller than UploadMaxMemory, stored in memory\", func(t *testing.T) {\n\t\t\ttest(5000)\n\t\t})\n\n\t\tt.Run(\"payload bigger than UploadMaxMemory, persisted to disk\", func(t *testing.T) {\n\t\t\ttest(2)\n\t\t})\n\t})\n}\n"
  },
  {
    "path": "_examples/fileupload/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage fileupload\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"embed\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/_examples/fileupload/model\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n}\n\ntype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\ntype ResolverRoot interface {\n\tMutation() MutationResolver\n\tQuery() QueryResolver\n}\n\ntype DirectiveRoot struct {\n}\n\ntype ComplexityRoot struct {\n\tFile struct {\n\t\tContent     func(childComplexity int) int\n\t\tContentType func(childComplexity int) int\n\t\tID          func(childComplexity int) int\n\t\tName        func(childComplexity int) int\n\t}\n\n\tMutation struct {\n\t\tMultipleUpload            func(childComplexity int, files []*graphql.Upload) int\n\t\tMultipleUploadWithPayload func(childComplexity int, req []*model.UploadFile) int\n\t\tSingleUpload              func(childComplexity int, file graphql.Upload) int\n\t\tSingleUploadWithPayload   func(childComplexity int, req model.UploadFile) int\n\t}\n\n\tQuery struct {\n\t\tEmpty func(childComplexity int) int\n\t}\n}\n\ntype MutationResolver interface {\n\tSingleUpload(ctx context.Context, file graphql.Upload) (*model.File, error)\n\tSingleUploadWithPayload(ctx context.Context, req model.UploadFile) (*model.File, error)\n\tMultipleUpload(ctx context.Context, files []*graphql.Upload) ([]*model.File, error)\n\tMultipleUploadWithPayload(ctx context.Context, req []*model.UploadFile) ([]*model.File, error)\n}\ntype QueryResolver interface {\n\tEmpty(ctx context.Context) (string, error)\n}\n\ntype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.SchemaData != nil {\n\t\treturn e.SchemaData\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := newExecutionContext(nil, e, nil)\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"File.content\":\n\t\tif e.ComplexityRoot.File.Content == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.File.Content(childComplexity), true\n\tcase \"File.contentType\":\n\t\tif e.ComplexityRoot.File.ContentType == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.File.ContentType(childComplexity), true\n\tcase \"File.id\":\n\t\tif e.ComplexityRoot.File.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.File.ID(childComplexity), true\n\tcase \"File.name\":\n\t\tif e.ComplexityRoot.File.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.File.Name(childComplexity), true\n\n\tcase \"Mutation.multipleUpload\":\n\t\tif e.ComplexityRoot.Mutation.MultipleUpload == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Mutation_multipleUpload_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Mutation.MultipleUpload(childComplexity, args[\"files\"].([]*graphql.Upload)), true\n\tcase \"Mutation.multipleUploadWithPayload\":\n\t\tif e.ComplexityRoot.Mutation.MultipleUploadWithPayload == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Mutation_multipleUploadWithPayload_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Mutation.MultipleUploadWithPayload(childComplexity, args[\"req\"].([]*model.UploadFile)), true\n\tcase \"Mutation.singleUpload\":\n\t\tif e.ComplexityRoot.Mutation.SingleUpload == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Mutation_singleUpload_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Mutation.SingleUpload(childComplexity, args[\"file\"].(graphql.Upload)), true\n\tcase \"Mutation.singleUploadWithPayload\":\n\t\tif e.ComplexityRoot.Mutation.SingleUploadWithPayload == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Mutation_singleUploadWithPayload_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Mutation.SingleUploadWithPayload(childComplexity, args[\"req\"].(model.UploadFile)), true\n\n\tcase \"Query.empty\":\n\t\tif e.ComplexityRoot.Query.Empty == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Empty(childComplexity), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap(\n\t\tec.unmarshalInputUploadFile,\n\t)\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\tcase ast.Mutation:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tif !first {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tfirst = false\n\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\tdata := ec._Mutation(ctx, opCtx.Operation.SelectionSet)\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\n\t\t\treturn &graphql.Response{\n\t\t\t\tData: buf.Bytes(),\n\t\t\t}\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\n//go:embed \"schema.graphql\"\nvar sourcesFS embed.FS\n\nfunc sourceData(filename string) string {\n\tdata, err := sourcesFS.ReadFile(filename)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"codegen problem: %s not available\", filename))\n\t}\n\treturn string(data)\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"schema.graphql\", Input: sourceData(\"schema.graphql\"), BuiltIn: false},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_Mutation_multipleUploadWithPayload_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"req\", ec.unmarshalNUploadFile2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfileuploadᚋmodelᚐUploadFileᚄ)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"req\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Mutation_multipleUpload_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"files\", ec.unmarshalNUpload2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚐUploadᚄ)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"files\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Mutation_singleUploadWithPayload_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"req\", ec.unmarshalNUploadFile2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfileuploadᚋmodelᚐUploadFile)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"req\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Mutation_singleUpload_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"file\", ec.unmarshalNUpload2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚐUpload)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"file\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _File_id(ctx context.Context, field graphql.CollectedField, obj *model.File) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_File_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_File_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"File\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _File_name(ctx context.Context, field graphql.CollectedField, obj *model.File) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_File_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_File_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"File\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _File_content(ctx context.Context, field graphql.CollectedField, obj *model.File) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_File_content,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Content, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_File_content(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"File\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _File_contentType(ctx context.Context, field graphql.CollectedField, obj *model.File) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_File_contentType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ContentType, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_File_contentType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"File\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Mutation_singleUpload(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Mutation_singleUpload,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Mutation().SingleUpload(ctx, fc.Args[\"file\"].(graphql.Upload))\n\t\t},\n\t\tnil,\n\t\tec.marshalNFile2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfileuploadᚋmodelᚐFile,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Mutation_singleUpload(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Mutation\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_File_id(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_File_name(ctx, field)\n\t\t\tcase \"content\":\n\t\t\t\treturn ec.fieldContext_File_content(ctx, field)\n\t\t\tcase \"contentType\":\n\t\t\t\treturn ec.fieldContext_File_contentType(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type File\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Mutation_singleUpload_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Mutation_singleUploadWithPayload(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Mutation_singleUploadWithPayload,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Mutation().SingleUploadWithPayload(ctx, fc.Args[\"req\"].(model.UploadFile))\n\t\t},\n\t\tnil,\n\t\tec.marshalNFile2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfileuploadᚋmodelᚐFile,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Mutation_singleUploadWithPayload(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Mutation\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_File_id(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_File_name(ctx, field)\n\t\t\tcase \"content\":\n\t\t\t\treturn ec.fieldContext_File_content(ctx, field)\n\t\t\tcase \"contentType\":\n\t\t\t\treturn ec.fieldContext_File_contentType(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type File\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Mutation_singleUploadWithPayload_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Mutation_multipleUpload(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Mutation_multipleUpload,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Mutation().MultipleUpload(ctx, fc.Args[\"files\"].([]*graphql.Upload))\n\t\t},\n\t\tnil,\n\t\tec.marshalNFile2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfileuploadᚋmodelᚐFileᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Mutation_multipleUpload(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Mutation\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_File_id(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_File_name(ctx, field)\n\t\t\tcase \"content\":\n\t\t\t\treturn ec.fieldContext_File_content(ctx, field)\n\t\t\tcase \"contentType\":\n\t\t\t\treturn ec.fieldContext_File_contentType(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type File\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Mutation_multipleUpload_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Mutation_multipleUploadWithPayload(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Mutation_multipleUploadWithPayload,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Mutation().MultipleUploadWithPayload(ctx, fc.Args[\"req\"].([]*model.UploadFile))\n\t\t},\n\t\tnil,\n\t\tec.marshalNFile2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfileuploadᚋmodelᚐFileᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Mutation_multipleUploadWithPayload(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Mutation\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_File_id(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_File_name(ctx, field)\n\t\t\tcase \"content\":\n\t\t\t\treturn ec.fieldContext_File_content(ctx, field)\n\t\t\tcase \"contentType\":\n\t\t\t\treturn ec.fieldContext_File_contentType(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type File\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Mutation_multipleUploadWithPayload_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_empty(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_empty,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Empty(ctx)\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_empty(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.IntrospectType(fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___schema,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.IntrospectSchema()\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_isRepeatable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsRepeatable, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_locations,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Locations, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__DirectiveLocation2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_defaultValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DefaultValue, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_types,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Types(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_queryType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.QueryType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_mutationType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.MutationType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_subscriptionType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SubscriptionType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_directives,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Directives(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_kind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Kind(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__TypeKind2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_specifiedByURL,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SpecifiedByURL(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_fields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_interfaces,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Interfaces(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_possibleTypes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PossibleTypes(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_enumValues,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_inputFields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.InputFields(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_ofType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.OfType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_isOneOf,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsOneOf(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOBoolean2bool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalInputUploadFile(ctx context.Context, obj any) (model.UploadFile, error) {\n\tvar it model.UploadFile\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"id\", \"file\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"id\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"id\"))\n\t\t\tdata, err := ec.unmarshalNInt2int(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.ID = data\n\t\tcase \"file\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"file\"))\n\t\t\tdata, err := ec.unmarshalNUpload2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚐUpload(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.File = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar fileImplementors = []string{\"File\"}\n\nfunc (ec *executionContext) _File(ctx context.Context, sel ast.SelectionSet, obj *model.File) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, fileImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"File\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._File_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._File_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"content\":\n\t\t\tout.Values[i] = ec._File_content(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"contentType\":\n\t\t\tout.Values[i] = ec._File_contentType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar mutationImplementors = []string{\"Mutation\"}\n\nfunc (ec *executionContext) _Mutation(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, mutationImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Mutation\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Mutation\")\n\t\tcase \"singleUpload\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Mutation_singleUpload(ctx, field)\n\t\t\t})\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"singleUploadWithPayload\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Mutation_singleUploadWithPayload(ctx, field)\n\t\t\t})\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"multipleUpload\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Mutation_multipleUpload(ctx, field)\n\t\t\t})\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"multipleUploadWithPayload\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Mutation_multipleUploadWithPayload(ctx, field)\n\t\t\t})\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"empty\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_empty(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNFile2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfileuploadᚋmodelᚐFile(ctx context.Context, sel ast.SelectionSet, v model.File) graphql.Marshaler {\n\treturn ec._File(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNFile2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfileuploadᚋmodelᚐFileᚄ(ctx context.Context, sel ast.SelectionSet, v []*model.File) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNFile2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfileuploadᚋmodelᚐFile(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalNFile2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfileuploadᚋmodelᚐFile(ctx context.Context, sel ast.SelectionSet, v *model.File) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._File(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNInt2int(ctx context.Context, v any) (int, error) {\n\tres, err := graphql.UnmarshalInt(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNInt2int(ctx context.Context, sel ast.SelectionSet, v int) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalInt(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNUpload2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚐUpload(ctx context.Context, v any) (graphql.Upload, error) {\n\tres, err := graphql.UnmarshalUpload(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNUpload2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚐUpload(ctx context.Context, sel ast.SelectionSet, v graphql.Upload) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalUpload(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNUpload2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚐUploadᚄ(ctx context.Context, v any) ([]*graphql.Upload, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]*graphql.Upload, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNUpload2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚐUpload(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalNUpload2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚐUploadᚄ(ctx context.Context, sel ast.SelectionSet, v []*graphql.Upload) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNUpload2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚐUpload(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalNUpload2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚐUpload(ctx context.Context, v any) (*graphql.Upload, error) {\n\tres, err := graphql.UnmarshalUpload(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNUpload2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚐUpload(ctx context.Context, sel ast.SelectionSet, v *graphql.Upload) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\tres := graphql.MarshalUpload(*v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNUploadFile2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfileuploadᚋmodelᚐUploadFile(ctx context.Context, v any) (model.UploadFile, error) {\n\tres, err := ec.unmarshalInputUploadFile(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalNUploadFile2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfileuploadᚋmodelᚐUploadFileᚄ(ctx context.Context, v any) ([]*model.UploadFile, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]*model.UploadFile, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNUploadFile2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfileuploadᚋmodelᚐUploadFile(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) unmarshalNUploadFile2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋfileuploadᚋmodelᚐUploadFile(ctx context.Context, v any) (*model.UploadFile, error) {\n\tres, err := ec.unmarshalInputUploadFile(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "_examples/fileupload/model/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage model\n\nimport (\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\n// The `File` type, represents the response of uploading a file.\ntype File struct {\n\tID          int    `json:\"id\"`\n\tName        string `json:\"name\"`\n\tContent     string `json:\"content\"`\n\tContentType string `json:\"contentType\"`\n}\n\n// The `Mutation` type, represents all updates we can make to our data.\ntype Mutation struct {\n}\n\n// The `Query` type, represents all of the entry points into our object graph.\ntype Query struct {\n}\n\n// The `UploadFile` type, represents the request for uploading a file with certain payload.\ntype UploadFile struct {\n\tID   int            `json:\"id\"`\n\tFile graphql.Upload `json:\"file\"`\n}\n"
  },
  {
    "path": "_examples/fileupload/readme.md",
    "content": "### fileupload example\n\nThis server demonstrates how to handle file upload\n\nto run this server\n```bash\ngo run ./server/server.go\n```\n\nand open http://localhost:8087 in your browser\n  \n\n### Single file\n\n#### Operations\n\n```\n{\n  query: `\n    mutation($file: Upload!) {\n      singleUpload(file: $file) {\n        id\n      }\n    }\n  `,\n  variables: {\n    file: File // a.txt\n  }\n}\n```\n\n#### cURL request\n\n```shell\ncurl localhost:8087/query \\\n  -F operations='{ \"query\": \"mutation ($file: Upload!) { singleUpload(file: $file) { id, name, content } }\", \"variables\": { \"file\": null } }' \\\n  -F map='{ \"0\": [\"variables.file\"] }' \\\n  -F 0=@./_examples/fileupload./testfiles/a.txt\n```\n\n#### Request payload\n\n```\n--------------------------e6b2b29561e71173\nContent-Disposition: form-data; name=\"operations\"\n\n{ \"query\": \"mutation ($file: Upload!) { singleUpload(file: $file) { id, name, content } }\", \"variables\": { \"file\": null } }\n--------------------------e6b2b29561e71173\nContent-Disposition: form-data; name=\"map\"\n\n{ \"0\": [\"variables.file\"] }\n--------------------------e6b2b29561e71173\nContent-Disposition: form-data; name=\"0\"; filename=\"a.txt\"\nContent-Type: text/plain\n\nAlpha file content.\n--------------------------e6b2b29561e71173--\n```\n\n### Single file with payload\n\n#### Operations\n\n```\n{\n  query: `\n    mutation($file: Upload!) {\n      singleUpload(file: $file) {\n        id\n      }\n    }\n  `,\n  variables: {\n    file: File // a.txt\n  }\n}\n```\n\n#### cURL request\n\n```shell\ncurl localhost:8087/query \\\n  -F operations='{ \"query\": \"mutation ($req: UploadFile!) { singleUploadWithPayload(req: $req) { id, name, content } }\", \"variables\": { \"req\": {\"file\": null, \"id\": 1 } } }' \\\n  -F map='{ \"0\": [\"variables.req.file\"] }' \\\n  -F 0=@./_examples/fileupload/testfiles/a.txt\n```\n\n#### Request payload\n\n```\n--------------------------38752760889d14aa\nContent-Disposition: form-data; name=\"operations\"\n\n{ \"query\": \"mutation ($req: UploadFile!) { singleUploadWithPayload(req: $req) { id, name, content } }\", \"variables\": { \"req\": {\"file\": null, \"id\": 1 } } }\n--------------------------38752760889d14aa\nContent-Disposition: form-data; name=\"map\"\n\n{ \"0\": [\"variables.req.file\"] }\n--------------------------38752760889d14aa\nContent-Disposition: form-data; name=\"0\"; filename=\"a.txt\"\nContent-Type: text/plain\n\nAlpha file content.\n--------------------------38752760889d14aa--\n```\n\n\n### File list\n\n#### Operations\n\n```\n{\n  query: `\n    mutation($files: [Upload!]!) {\n      multipleUpload(files: $files) {\n        id\n      }\n    }\n  `,\n  variables: {\n    files: [\n      File, // b.txt\n      File  // c.txt\n    ]\n  }\n}\n```\n\n#### cURL request\n\n```\ncurl localhost:8087/query \\\n  -F operations='{ \"query\": \"mutation($files: [Upload!]!) { multipleUpload(files: $files) { id, name, content } }\", \"variables\": { \"files\": [null, null] } }' \\\n  -F map='{ \"0\": [\"variables.files.0\"], \"1\": [\"variables.files.1\"] }' \\\n  -F 0=@./_examples/fileupload/testfiles/b.txt \\\n  -F 1=@./_examples/fileupload/testfiles/c.txt\n```\n\n#### Request payload\n\n```\n--------------------------d7aca2a93c3655e0\nContent-Disposition: form-data; name=\"operations\"\n\n{ \"query\": \"mutation($files: [Upload!]!) { multipleUpload(files: $files) { id, name, content } }\", \"variables\": { \"files\": [null, null] } }\n--------------------------d7aca2a93c3655e0\nContent-Disposition: form-data; name=\"map\"\n\n{ \"0\": [\"variables.files.0\"], \"1\": [\"variables.files.1\"] }\n--------------------------d7aca2a93c3655e0\nContent-Disposition: form-data; name=\"0\"; filename=\"b.txt\"\nContent-Type: text/plain\n\nBravo file content.\n--------------------------d7aca2a93c3655e0\nContent-Disposition: form-data; name=\"1\"; filename=\"c.txt\"\nContent-Type: text/plain\n\nCharlie file content.\n--------------------------d7aca2a93c3655e0--\n```\n\n\n\n### File list with payload\n\n#### Operations\n\n```\n{\n  query: `\n    mutation($req: [UploadFile!]!)\n      multipleUploadWithPayload(req: $req) {\n        id,\n        name,\n        content\n      }\n    }\n  `,\n  variables: {\n    req: [\n        {\n            id: 1,\n            File, // b.txt\n        },\n        {\n            id: 2,\n            File, // c.txt\n        }\n    ] \n  }\n}\n```\n\n#### cURL request\n\n```\ncurl localhost:8087/query \\\n  -F operations='{ \"query\": \"mutation($req: [UploadFile!]!) { multipleUploadWithPayload(req: $req) { id, name, content } }\", \"variables\": { \"req\": [ { \"id\": 1, \"file\": null }, { \"id\": 2, \"file\": null } ] } }' \\\n  -F map='{ \"0\": [\"variables.req.0.file\"], \"1\": [\"variables.req.1.file\"] }' \\\n  -F 0=@./_examples/fileupload/testfiles/b.txt \\\n  -F 1=@./_examples/fileupload/testfiles/c.txt\n```\n\n#### Request payload\n\n```\n--------------------------65aab09fb49ee66f\nContent-Disposition: form-data; name=\"operations\"\n\n{ \"query\": \"mutation($req: [UploadFile!]!) { multipleUploadWithPayload(req: $req) { id, name, content } }\", \"variables\": { \"req\": [ { \"id\": 1, \"file\": null }, { \"id\": 2, \"file\": null } ] } }\n--------------------------65aab09fb49ee66f\nContent-Disposition: form-data; name=\"map\"\n\n{ \"0\": [\"variables.req.0.file\"], \"1\": [\"variables.req.1.file\"] }\n--------------------------65aab09fb49ee66f\nContent-Disposition: form-data; name=\"0\"; filename=\"b.txt\"\nContent-Type: text/plain\n\nBravo file content.\n--------------------------65aab09fb49ee66f\nContent-Disposition: form-data; name=\"1\"; filename=\"c.txt\"\nContent-Type: text/plain\n\nCharlie file content.\n--------------------------65aab09fb49ee66f--\n```\n\n"
  },
  {
    "path": "_examples/fileupload/schema.graphql",
    "content": "\"The `Upload` scalar type represents a multipart file upload.\"\nscalar Upload\n\n\"The `File` type, represents the response of uploading a file.\"\ntype File {\n    id: Int!\n    name: String!\n    content: String!\n    contentType: String!\n}\n\n\"The `UploadFile` type, represents the request for uploading a file with certain payload.\"\ninput UploadFile {\n    id: Int!\n    file: Upload!\n}\n\n\"The `Query` type, represents all of the entry points into our object graph.\"\ntype Query {\n    empty: String!\n}\n\n\"The `Mutation` type, represents all updates we can make to our data.\"\ntype Mutation {\n    singleUpload(file: Upload!): File!\n    singleUploadWithPayload(req: UploadFile!): File!\n    multipleUpload(files: [Upload!]!): [File!]!\n    multipleUploadWithPayload(req: [UploadFile!]!): [File!]!\n}\n\n"
  },
  {
    "path": "_examples/fileupload/server/server.go",
    "content": "package main\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"io\"\n\t\"log\"\n\t\"net/http\"\n\n\t\"github.com/99designs/gqlgen/_examples/fileupload\"\n\t\"github.com/99designs/gqlgen/_examples/fileupload/model\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/extension\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/graphql/playground\"\n)\n\nfunc main() {\n\thttp.Handle(\"/\", playground.Handler(\"File Upload Demo\", \"/query\"))\n\tresolver := getResolver()\n\n\tvar mb int64 = 1 << 20\n\n\tsrv := handler.New(fileupload.NewExecutableSchema(fileupload.Config{Resolvers: resolver}))\n\tsrv.AddTransport(transport.POST{})\n\tsrv.AddTransport(transport.MultipartForm{\n\t\tMaxMemory:     32 * mb,\n\t\tMaxUploadSize: 50 * mb,\n\t})\n\tsrv.Use(extension.Introspection{})\n\n\thttp.Handle(\"/query\", srv)\n\tlog.Print(\"connect to http://localhost:8087/ for GraphQL playground\")\n\tlog.Fatal(http.ListenAndServe(\":8087\", nil))\n}\n\nfunc getResolver() *fileupload.Stub {\n\tresolver := &fileupload.Stub{}\n\n\tresolver.MutationResolver.SingleUpload = func(ctx context.Context, file graphql.Upload) (*model.File, error) {\n\t\tcontent, err := io.ReadAll(file.File)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn &model.File{\n\t\t\tID:      1,\n\t\t\tName:    file.Filename,\n\t\t\tContent: string(content),\n\t\t}, nil\n\t}\n\tresolver.MutationResolver.SingleUploadWithPayload = func(ctx context.Context, req model.UploadFile) (*model.File, error) {\n\t\tcontent, err := io.ReadAll(req.File.File)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn &model.File{\n\t\t\tID:      1,\n\t\t\tName:    req.File.Filename,\n\t\t\tContent: string(content),\n\t\t}, nil\n\t}\n\tresolver.MutationResolver.MultipleUpload = func(ctx context.Context, files []*graphql.Upload) ([]*model.File, error) {\n\t\tif len(files) == 0 {\n\t\t\treturn nil, errors.New(\"empty list\")\n\t\t}\n\t\tvar resp []*model.File\n\t\tfor i := range files {\n\t\t\tcontent, err := io.ReadAll(files[i].File)\n\t\t\tif err != nil {\n\t\t\t\treturn []*model.File{}, err\n\t\t\t}\n\t\t\tresp = append(resp, &model.File{\n\t\t\t\tID:      i + 1,\n\t\t\t\tName:    files[i].Filename,\n\t\t\t\tContent: string(content),\n\t\t\t})\n\t\t}\n\t\treturn resp, nil\n\t}\n\tresolver.MutationResolver.MultipleUploadWithPayload = func(ctx context.Context, req []*model.UploadFile) ([]*model.File, error) {\n\t\tif len(req) == 0 {\n\t\t\treturn nil, errors.New(\"empty list\")\n\t\t}\n\t\tvar resp []*model.File\n\t\tfor i := range req {\n\t\t\tcontent, err := io.ReadAll(req[i].File.File)\n\t\t\tif err != nil {\n\t\t\t\treturn []*model.File{}, err\n\t\t\t}\n\t\t\tresp = append(resp, &model.File{\n\t\t\t\tID:      i + 1,\n\t\t\t\tName:    req[i].File.Filename,\n\t\t\t\tContent: string(content),\n\t\t\t})\n\t\t}\n\t\treturn resp, nil\n\t}\n\treturn resolver\n}\n"
  },
  {
    "path": "_examples/fileupload/stubs.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage fileupload\n\nimport (\n\t\"context\"\n\n\t\"github.com/99designs/gqlgen/_examples/fileupload/model\"\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\ntype Stub struct {\n\tMutationResolver struct {\n\t\tSingleUpload              func(ctx context.Context, file graphql.Upload) (*model.File, error)\n\t\tSingleUploadWithPayload   func(ctx context.Context, req model.UploadFile) (*model.File, error)\n\t\tMultipleUpload            func(ctx context.Context, files []*graphql.Upload) ([]*model.File, error)\n\t\tMultipleUploadWithPayload func(ctx context.Context, req []*model.UploadFile) ([]*model.File, error)\n\t}\n\tQueryResolver struct {\n\t\tEmpty func(ctx context.Context) (string, error)\n\t}\n}\n\nfunc (r *Stub) Mutation() MutationResolver {\n\treturn &stubMutation{r}\n}\nfunc (r *Stub) Query() QueryResolver {\n\treturn &stubQuery{r}\n}\n\ntype stubMutation struct{ *Stub }\n\nfunc (r *stubMutation) SingleUpload(ctx context.Context, file graphql.Upload) (*model.File, error) {\n\treturn r.MutationResolver.SingleUpload(ctx, file)\n}\nfunc (r *stubMutation) SingleUploadWithPayload(ctx context.Context, req model.UploadFile) (*model.File, error) {\n\treturn r.MutationResolver.SingleUploadWithPayload(ctx, req)\n}\nfunc (r *stubMutation) MultipleUpload(ctx context.Context, files []*graphql.Upload) ([]*model.File, error) {\n\treturn r.MutationResolver.MultipleUpload(ctx, files)\n}\nfunc (r *stubMutation) MultipleUploadWithPayload(ctx context.Context, req []*model.UploadFile) ([]*model.File, error) {\n\treturn r.MutationResolver.MultipleUploadWithPayload(ctx, req)\n}\n\ntype stubQuery struct{ *Stub }\n\nfunc (r *stubQuery) Empty(ctx context.Context) (string, error) {\n\treturn r.QueryResolver.Empty(ctx)\n}\n"
  },
  {
    "path": "_examples/fileupload/testfiles/a.txt",
    "content": "Alpha file content\n"
  },
  {
    "path": "_examples/fileupload/testfiles/b.txt",
    "content": "Bravo file content\n"
  },
  {
    "path": "_examples/fileupload/testfiles/c.txt",
    "content": "Charlie file content\n"
  },
  {
    "path": "_examples/go.mod",
    "content": "module github.com/99designs/gqlgen/_examples\n\ngo 1.25.0\n\nreplace github.com/99designs/gqlgen => ../\n\nrequire (\n\tgithub.com/99designs/gqlgen v0.17.86\n\tgithub.com/go-viper/mapstructure/v2 v2.5.0\n\tgithub.com/goccy/go-yaml v1.19.2\n\tgithub.com/google/uuid v1.6.0\n\tgithub.com/gorilla/websocket v1.5.1\n\tgithub.com/rs/cors v1.11.1\n\tgithub.com/stretchr/testify v1.11.1\n\tgithub.com/vektah/dataloaden v0.3.0\n\tgithub.com/vektah/gqlparser/v2 v2.5.32\n\tgolang.org/x/sync v0.20.0\n)\n\nrequire (\n\tgithub.com/agnivade/levenshtein v1.2.1 // indirect\n\tgithub.com/davecgh/go-spew v1.1.1 // indirect\n\tgithub.com/hashicorp/golang-lru/v2 v2.0.7 // indirect\n\tgithub.com/logrusorgru/aurora/v4 v4.0.0 // indirect\n\tgithub.com/mattn/go-colorable v0.1.14 // indirect\n\tgithub.com/mattn/go-isatty v0.0.20 // indirect\n\tgithub.com/pmezard/go-difflib v1.0.0 // indirect\n\tgithub.com/sosodev/duration v1.4.0 // indirect\n\tgolang.org/x/mod v0.33.0 // indirect\n\tgolang.org/x/sys v0.42.0 // indirect\n\tgolang.org/x/tools v0.42.0 // indirect\n\tgopkg.in/yaml.v3 v3.0.1 // indirect\n)\n\nrequire (\n\tgithub.com/pkg/errors v0.9.1 // indirect\n\tgolang.org/x/text v0.34.0\n)\n\nreplace github.com/gorilla/websocket => github.com/gorilla/websocket v1.5.0\n"
  },
  {
    "path": "_examples/go.sum",
    "content": "github.com/PuerkitoBio/goquery v1.11.0 h1:jZ7pwMQXIITcUXNH83LLk+txlaEy6NVOfTuP43xxfqw=\ngithub.com/PuerkitoBio/goquery v1.11.0/go.mod h1:wQHgxUOU3JGuj3oD/QFfxUdlzW6xPHfqyHre6VMY4DQ=\ngithub.com/agnivade/levenshtein v1.2.1 h1:EHBY3UOn1gwdy/VbFwgo4cxecRznFk7fKWN1KOX7eoM=\ngithub.com/agnivade/levenshtein v1.2.1/go.mod h1:QVVI16kDrtSuwcpd0p1+xMC6Z/VfhtCyDIjcwga4/DU=\ngithub.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ=\ngithub.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=\ngithub.com/andybalholm/cascadia v1.3.3 h1:AG2YHrzJIm4BZ19iwJ/DAua6Btl3IwJX+VI4kktS1LM=\ngithub.com/andybalholm/cascadia v1.3.3/go.mod h1:xNd9bqTn98Ln4DwST8/nG+H0yuB8Hmgu1YHNnWw0GeA=\ngithub.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0 h1:jfIu9sQUG6Ig+0+Ap1h4unLjW6YQJpKZVmUzxsD4E/Q=\ngithub.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0/go.mod h1:t2tdKJDJF9BV14lnkjHmOQgcvEKgtqs5a1N3LNdJhGE=\ngithub.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=\ngithub.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/dgryski/trifles v0.0.0-20230903005119-f50d829f2e54 h1:SG7nF6SRlWhcT7cNTs5R6Hk4V2lcmLz2NsG2VnInyNo=\ngithub.com/dgryski/trifles v0.0.0-20230903005119-f50d829f2e54/go.mod h1:if7Fbed8SFyPtHLHbg49SI7NAdJiC5WIA09pe59rfAA=\ngithub.com/go-viper/mapstructure/v2 v2.5.0 h1:vM5IJoUAy3d7zRSVtIwQgBj7BiWtMPfmPEgAXnvj1Ro=\ngithub.com/go-viper/mapstructure/v2 v2.5.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=\ngithub.com/goccy/go-yaml v1.19.2 h1:PmFC1S6h8ljIz6gMRBopkjP1TVT7xuwrButHID66PoM=\ngithub.com/goccy/go-yaml v1.19.2/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA=\ngithub.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=\ngithub.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=\ngithub.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=\ngithub.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=\ngithub.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=\ngithub.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=\ngithub.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k=\ngithub.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM=\ngithub.com/logrusorgru/aurora/v4 v4.0.0 h1:sRjfPpun/63iADiSvGGjgA1cAYegEWMPCJdUpJYn9JA=\ngithub.com/logrusorgru/aurora/v4 v4.0.0/go.mod h1:lP0iIa2nrnT/qoFXcOZSrZQpJ1o6n2CUf/hyHi2Q4ZQ=\ngithub.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=\ngithub.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=\ngithub.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=\ngithub.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=\ngithub.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=\ngithub.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=\ngithub.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=\ngithub.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=\ngithub.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/rs/cors v1.11.1 h1:eU3gRzXLRK57F5rKMGMZURNdIG4EoAmX8k94r9wXWHA=\ngithub.com/rs/cors v1.11.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU=\ngithub.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8=\ngithub.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I=\ngithub.com/sosodev/duration v1.4.0 h1:35ed0KiVFriGHHzZZJaZLgmTEEICIyt8Sx0RQfj9IjE=\ngithub.com/sosodev/duration v1.4.0/go.mod h1:RQIBBX0+fMLc/D9+Jb/fwvVmo0eZvDDEERAikUR6SDg=\ngithub.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=\ngithub.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=\ngithub.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=\ngithub.com/vektah/dataloaden v0.3.0 h1:ZfVN2QD6swgvp+tDqdH/OIT/wu3Dhu0cus0k5gIZS84=\ngithub.com/vektah/dataloaden v0.3.0/go.mod h1:/HUdMve7rvxZma+2ZELQeNh88+003LL7Pf/CZ089j8U=\ngithub.com/vektah/gqlparser/v2 v2.5.32 h1:k9QPJd4sEDTL+qB4ncPLflqTJ3MmjB9SrVzJrawpFSc=\ngithub.com/vektah/gqlparser/v2 v2.5.32/go.mod h1:c1I28gSOVNzlfc4WuDlqU7voQnsqI6OG2amkBAFmgts=\ngolang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=\ngolang.org/x/mod v0.33.0 h1:tHFzIWbBifEmbwtGz65eaWyGiGZatSrT9prnU8DbVL8=\ngolang.org/x/mod v0.33.0/go.mod h1:swjeQEj+6r7fODbD2cqrnje9PnziFuw4bmLbBZFrQ5w=\ngolang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.51.0 h1:94R/GTO7mt3/4wIKpcR5gkGmRLOuE/2hNGeWq/GBIFo=\ngolang.org/x/net v0.51.0/go.mod h1:aamm+2QF5ogm02fjy5Bb7CQ0WMt1/WVM7FtyaTLlA9Y=\ngolang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4=\ngolang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=\ngolang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo=\ngolang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=\ngolang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=\ngolang.org/x/text v0.34.0 h1:oL/Qq0Kdaqxa1KbNeMKwQq0reLCCaFtqu2eNuSeNHbk=\ngolang.org/x/text v0.34.0/go.mod h1:homfLqTYRFyVYemLBFl5GgL/DWEiH5wcsQ5gSh1yziA=\ngolang.org/x/tools v0.0.0-20190515012406-7d7faa4812bd/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=\ngolang.org/x/tools v0.42.0 h1:uNgphsn75Tdz5Ji2q36v/nsFSfR/9BRFvqhGBaJGd5k=\ngolang.org/x/tools v0.42.0/go.mod h1:Ma6lCIwGZvHK6XtgbswSoWroEkhugApmsXyrUmBhfr0=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=\ngopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\n"
  },
  {
    "path": "_examples/large-project-structure/integration/go.mod",
    "content": "module github.com/99designs/gqlgen/_examples/large-project-structure/integration\n\ngo 1.25.0\n\nrequire github.com/99designs/gqlgen/_examples/large-project-structure/main v0.0.0\n\nreplace github.com/99designs/gqlgen/_examples/large-project-structure/main => ../main\n\nreplace github.com/99designs/gqlgen/_examples/large-project-structure/shared => ../shared\n"
  },
  {
    "path": "_examples/large-project-structure/integration/go.sum",
    "content": ""
  },
  {
    "path": "_examples/large-project-structure/integration/integration.go",
    "content": "package integration\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\n\t\"github.com/99designs/gqlgen/_examples/large-project-structure/main/graph/model\"\n)\n\ntype Resolver struct{}\n\n// Implement the Tezz method that is managed by another team\nfunc (r *Resolver) Tezz(ctx context.Context) (*model.Test, error) {\n\t// Can do whatever logic is needed...\n\treturn &model.Test{ID: \"external-1\"}, nil\n}\n\nfunc (r *Resolver) GetYaSome(\n\tctx context.Context,\n\tinput *model.CustomInput,\n) ([]*model.CustomZeekIntel, error) {\n\tintels := []*model.CustomZeekIntel{}\n\n\tif input.Error != nil && *input.Error {\n\t\treturn intels, errors.New(\"error as requested\")\n\t}\n\n\tif input.Limit != nil {\n\t\tcount := int(*input.Limit)\n\t\tfor i := 0; i < count; i++ {\n\t\t\tczi := &model.CustomZeekIntel{\n\t\t\t\tID:         fmt.Sprintf(\"%d\", i),\n\t\t\t\tName:       fmt.Sprintf(\"external-%d\", i),\n\t\t\t\tExtraField: \"let other teams resolve\",\n\t\t\t}\n\t\t\tintels = append(intels, czi)\n\t\t}\n\t}\n\n\treturn intels, nil\n}\n\nfunc (r *Resolver) AddIndicator(\n\tctx context.Context,\n\tinput model.IndicatorInput,\n) (*model.Indicator, error) {\n\treturn &model.Indicator{\n\t\tID:            \"1234\",\n\t\tIndicator:     input.Indicator,\n\t\tIndicatorType: input.IndicatorType,\n\t\tMetaSource:    input.MetaSource,\n\t}, nil\n}\n"
  },
  {
    "path": "_examples/large-project-structure/integration/schema.graphqls",
    "content": "type Test {\n    id: ID!\n}\n\ntype CustomZeekIntel implements ZeekIntel{\n  id: ID!\n  name: String!\n\n  extraField: String!\n}\n\ninput CustomInput {\n  limit: Int\n  error: Boolean\n}\n\nextend type Query {\n  tezz: Test!\n  getYaSome(input: CustomInput): [CustomZeekIntel!]!\n}\n\ntype Indicator {\n  id: ID!\n  indicator: String!\n  indicatorType: String!\n  metaSource: String!\n}\n\ninput IndicatorInput {\n  indicator: String!\n  indicatorType: String!\n  metaSource: String!\n}\n\nextend type Mutation {\n  addIndicator(input: IndicatorInput!): Indicator!\n}"
  },
  {
    "path": "_examples/large-project-structure/main/go.mod",
    "content": "module github.com/99designs/gqlgen/_examples/large-project-structure/main\n\ngo 1.25.0\n\nrequire (\n\tgithub.com/99designs/gqlgen v0.17.78\n\tgithub.com/99designs/gqlgen/_examples/large-project-structure/integration v0.0.0-00010101000000-000000000000\n\tgithub.com/99designs/gqlgen/_examples/large-project-structure/shared v0.0.0\n\tgithub.com/vektah/gqlparser/v2 v2.5.30\n)\n\nreplace github.com/99designs/gqlgen/_examples/large-project-structure/shared => ../shared\n\nreplace github.com/99designs/gqlgen/_examples/large-project-structure/integration => ../integration\n\nrequire (\n\tgithub.com/agnivade/levenshtein v1.2.1 // indirect\n\tgithub.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect\n\tgithub.com/go-viper/mapstructure/v2 v2.4.0 // indirect\n\tgithub.com/google/uuid v1.6.0 // indirect\n\tgithub.com/gorilla/websocket v1.5.0 // indirect\n\tgithub.com/hashicorp/golang-lru/v2 v2.0.7 // indirect\n\tgithub.com/russross/blackfriday/v2 v2.1.0 // indirect\n\tgithub.com/sosodev/duration v1.3.1 // indirect\n\tgithub.com/urfave/cli/v2 v2.27.7 // indirect\n\tgithub.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 // indirect\n\tgolang.org/x/mod v0.26.0 // indirect\n\tgolang.org/x/sync v0.16.0 // indirect\n\tgolang.org/x/text v0.27.0 // indirect\n\tgolang.org/x/tools v0.35.0 // indirect\n\tgopkg.in/yaml.v3 v3.0.1 // indirect\n)\n"
  },
  {
    "path": "_examples/large-project-structure/main/go.sum",
    "content": "github.com/99designs/gqlgen v0.17.78 h1:bhIi7ynrc3js2O8wu1sMQj1YHPENDt3jQGyifoBvoVI=\ngithub.com/99designs/gqlgen v0.17.78/go.mod h1:yI/o31IauG2kX0IsskM4R894OCCG1jXJORhtLQqB7Oc=\ngithub.com/PuerkitoBio/goquery v1.10.3 h1:pFYcNSqHxBD06Fpj/KsbStFRsgRATgnf3LeXiUkhzPo=\ngithub.com/PuerkitoBio/goquery v1.10.3/go.mod h1:tMUX0zDMHXYlAQk6p35XxQMqMweEKB7iK7iLNd4RH4Y=\ngithub.com/agnivade/levenshtein v1.2.1 h1:EHBY3UOn1gwdy/VbFwgo4cxecRznFk7fKWN1KOX7eoM=\ngithub.com/agnivade/levenshtein v1.2.1/go.mod h1:QVVI16kDrtSuwcpd0p1+xMC6Z/VfhtCyDIjcwga4/DU=\ngithub.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ=\ngithub.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=\ngithub.com/andybalholm/cascadia v1.3.3 h1:AG2YHrzJIm4BZ19iwJ/DAua6Btl3IwJX+VI4kktS1LM=\ngithub.com/andybalholm/cascadia v1.3.3/go.mod h1:xNd9bqTn98Ln4DwST8/nG+H0yuB8Hmgu1YHNnWw0GeA=\ngithub.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0 h1:jfIu9sQUG6Ig+0+Ap1h4unLjW6YQJpKZVmUzxsD4E/Q=\ngithub.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0/go.mod h1:t2tdKJDJF9BV14lnkjHmOQgcvEKgtqs5a1N3LNdJhGE=\ngithub.com/cpuguy83/go-md2man/v2 v2.0.7 h1:zbFlGlXEAKlwXpmvle3d8Oe3YnkKIK4xSRTd3sHPnBo=\ngithub.com/cpuguy83/go-md2man/v2 v2.0.7/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=\ngithub.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=\ngithub.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/dgryski/trifles v0.0.0-20230903005119-f50d829f2e54 h1:SG7nF6SRlWhcT7cNTs5R6Hk4V2lcmLz2NsG2VnInyNo=\ngithub.com/dgryski/trifles v0.0.0-20230903005119-f50d829f2e54/go.mod h1:if7Fbed8SFyPtHLHbg49SI7NAdJiC5WIA09pe59rfAA=\ngithub.com/go-viper/mapstructure/v2 v2.4.0 h1:EBsztssimR/CONLSZZ04E8qAkxNYq4Qp9LvH92wZUgs=\ngithub.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=\ngithub.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=\ngithub.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=\ngithub.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=\ngithub.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=\ngithub.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=\ngithub.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=\ngithub.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k=\ngithub.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM=\ngithub.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=\ngithub.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=\ngithub.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=\ngithub.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8=\ngithub.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I=\ngithub.com/sosodev/duration v1.3.1 h1:qtHBDMQ6lvMQsL15g4aopM4HEfOaYuhWBw3NPTtlqq4=\ngithub.com/sosodev/duration v1.3.1/go.mod h1:RQIBBX0+fMLc/D9+Jb/fwvVmo0eZvDDEERAikUR6SDg=\ngithub.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=\ngithub.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=\ngithub.com/urfave/cli/v2 v2.27.7 h1:bH59vdhbjLv3LAvIu6gd0usJHgoTTPhCFib8qqOwXYU=\ngithub.com/urfave/cli/v2 v2.27.7/go.mod h1:CyNAG/xg+iAOg0N4MPGZqVmv2rCoP267496AOXUZjA4=\ngithub.com/vektah/gqlparser/v2 v2.5.30 h1:EqLwGAFLIzt1wpx1IPpY67DwUujF1OfzgEyDsLrN6kE=\ngithub.com/vektah/gqlparser/v2 v2.5.30/go.mod h1:D1/VCZtV3LPnQrcPBeR/q5jkSQIPti0uYCP/RI0gIeo=\ngithub.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4=\ngithub.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM=\ngolang.org/x/mod v0.26.0 h1:EGMPT//Ezu+ylkCijjPc+f4Aih7sZvaAr+O3EHBxvZg=\ngolang.org/x/mod v0.26.0/go.mod h1:/j6NAhSk8iQ723BGAUyoAcn7SlD7s15Dp9Nd/SfeaFQ=\ngolang.org/x/net v0.42.0 h1:jzkYrhi3YQWD6MLBJcsklgQsoAcw89EcZbJw8Z614hs=\ngolang.org/x/net v0.42.0/go.mod h1:FF1RA5d3u7nAYA4z2TkclSCKh68eSXtiFwcWQpPXdt8=\ngolang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw=\ngolang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=\ngolang.org/x/text v0.27.0 h1:4fGWRpyh641NLlecmyl4LOe6yDdfaYNrGb2zdfo4JV4=\ngolang.org/x/text v0.27.0/go.mod h1:1D28KMCvyooCX9hBiosv5Tz/+YLxj0j7XhWjpSUF7CU=\ngolang.org/x/tools v0.35.0 h1:mBffYraMEf7aa0sB+NuKnuCy8qI/9Bughn8dC2Gu5r0=\ngolang.org/x/tools v0.35.0/go.mod h1:NKdj5HkL/73byiZSJjqJgKn3ep7KjFkBOkR/Hps3VPw=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=\ngopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\n"
  },
  {
    "path": "_examples/large-project-structure/main/gqlgen.yml",
    "content": "# Where are all the schema files located? globs are supported eg  src/**/*.graphqls\nschema:\n  - ../shared/schema.graphqls\n  - graph/*.graphqls\n  - ../integration/schema.graphqls\n\n# Where should the generated server code go?\nexec:\n  package: graph\n  layout: single-file # Only other option is \"follow-schema,\" ie multi-file.\n\n  # Only for single-file layout:\n  filename: graph/generated.go\n\n  # Only for follow-schema layout:\n  # dir: graph\n  # filename_template: \"{name}.generated.go\"\n\n  # Optional: Maximum number of goroutines in concurrency to use per child resolvers(default: unlimited)\n  # worker_limit: 1000\n\n# Uncomment to enable federation\n# federation:\n#   filename: graph/federation.go\n#   package: graph\n#   version: 2\n#   options:\n#     computed_requires: true\n\n# Where should any generated models go?\nmodel:\n  filename: graph/model/models_gen.go\n  package: model\n\n  # Optional: Pass in a path to a new gotpl template to use for generating the models\n  # model_template: [your/path/model.gotpl]\n\n# Where should the resolver implementations go?\n# resolver:\n#   package: graph\n#   layout: follow-schema # Only other option is \"single-file.\"\n\n#   # Only for single-file layout:\n#   # filename: graph/resolver.go\n\n#   # Only for follow-schema layout:\n#   dir: graph\n#   filename_template: \"{name}.resolvers.go\"\n\n  # Optional: turn on to not generate template comments above resolvers\n  # omit_template_comment: false\n  # Optional: Pass in a path to a new gotpl template to use for generating resolvers\n  # resolver_template: [your/path/resolver.gotpl]\n  # Optional: turn on to avoid rewriting existing resolver(s) when generating\n  # preserve_resolver: false\n\n# Optional: turn on use ` + \"`\" + `gqlgen:\"fieldName\"` + \"`\" + ` tags in your models\n# struct_tag: json\n\n# Optional: turn on to use []Thing instead of []*Thing\n# omit_slice_element_pointers: false\n\n# Optional: turn on to omit Is<Name>() methods to interface and unions\n# omit_interface_checks: true\n\n# Optional: turn on to skip generation of ComplexityRoot struct content and Complexity function\n# omit_complexity: false\n\n# Optional: turn on to not generate any file notice comments in generated files\n# omit_gqlgen_file_notice: false\n\n# Optional: turn on to exclude the gqlgen version in the generated file notice. No effect if `omit_gqlgen_file_notice` is true.\n# omit_gqlgen_version_in_file_notice: false\n\n# Optional: turn on to exclude root models such as Query and Mutation from the generated models file.\n# omit_root_models: false\n\n# Optional: turn on to exclude resolver fields from the generated models file.\n# omit_resolver_fields: false\n\n# Optional: turn off to make struct-type struct fields not use pointers\n# e.g. type Thing struct { FieldA OtherThing } instead of { FieldA *OtherThing }\n# struct_fields_always_pointers: true\n\n# Optional: turn off to make resolvers return values instead of pointers for structs\n# resolvers_always_return_pointers: true\n\n# Optional: turn on to return pointers instead of values in unmarshalInput\n# return_pointers_in_unmarshalinput: false\n\n# Optional: wrap nullable input fields with Omittable\n# nullable_input_omittable: true\n\n# Optional: set to speed up generation time by not performing a final validation pass.\n# skip_validation: true\n\n# Optional: set to skip running `go mod tidy` when generating server code\n# skip_mod_tidy: true\n\n# Optional: if this is set to true, argument directives that\n# decorate a field with a null value will still be called.\n#\n# This enables argumment directives to not just mutate\n# argument values but to set them even if they're null.\ncall_argument_directives_with_null: true\n\n# Optional: set build tags that will be used to load packages\n# go_build_tags:\n#  - private\n#  - enterprise\n\n# Optional: set to modify the initialisms regarded for Go names\n# go_initialisms:\n#   replace_defaults: false # if true, the default initialisms will get dropped in favor of the new ones instead of being added\n#   initialisms: # List of initialisms to for Go names\n#     - 'CC'\n#     - 'BCC'\n\n# gqlgen will search for any type names in the schema in these go packages\n# if they match it will use them, otherwise it will generate them.\nautobind:\n#  - \"github.com/99designs/gqlgen/_examples/large-project-structure/main/graph/model\"\n\n# This section declares type mapping between the GraphQL and go type systems\n#\n# The first line in each type will be used as defaults for resolver arguments and\n# modelgen, the others will be allowed when binding to fields. Configure them to\n# your liking\nmodels:\n  ID:\n    model:\n      - github.com/99designs/gqlgen/graphql.ID\n      - github.com/99designs/gqlgen/graphql.Int\n      - github.com/99designs/gqlgen/graphql.Int64\n      - github.com/99designs/gqlgen/graphql.Int32\n  # gqlgen provides a default GraphQL UUID convenience wrapper for github.com/google/uuid\n  # but you can override this to provide your own GraphQL UUID implementation\n  UUID:\n    model:\n      - github.com/99designs/gqlgen/graphql.UUID\n\n  # The GraphQL spec explicitly states that the Int type is a signed 32-bit\n  # integer. Using Go int or int64 to represent it can lead to unexpected\n  # behavior, and some GraphQL tools like Apollo Router will fail when\n  # communicating numbers that overflow 32-bits.\n  #\n  # You may choose to use the custom, built-in Int64 scalar to represent 64-bit\n  # integers, or ignore the spec and bind Int to graphql.Int / graphql.Int64\n  # (the default behavior of gqlgen). This is fine in simple use cases when you\n  # do not need to worry about interoperability and only expect small numbers.\n  Int:\n    model:\n      - github.com/99designs/gqlgen/graphql.Int32\n  Int64:\n    model:\n      - github.com/99designs/gqlgen/graphql.Int\n      - github.com/99designs/gqlgen/graphql.Int64\n"
  },
  {
    "path": "_examples/large-project-structure/main/graph/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage graph\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"embed\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/_examples/large-project-structure/main/graph/model\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{\n\t\tschema:     cfg.Schema,\n\t\tresolvers:  cfg.Resolvers,\n\t\tdirectives: cfg.Directives,\n\t\tcomplexity: cfg.Complexity,\n\t}\n}\n\ntype Config struct {\n\tSchema     *ast.Schema\n\tResolvers  ResolverRoot\n\tDirectives DirectiveRoot\n\tComplexity ComplexityRoot\n}\n\ntype ResolverRoot interface {\n\tMutation() MutationResolver\n\tQuery() QueryResolver\n}\n\ntype DirectiveRoot struct {\n}\n\ntype ComplexityRoot struct {\n\tCustomZeekIntel struct {\n\t\tExtraField func(childComplexity int) int\n\t\tID         func(childComplexity int) int\n\t\tName       func(childComplexity int) int\n\t}\n\n\tIndicator struct {\n\t\tID            func(childComplexity int) int\n\t\tIndicator     func(childComplexity int) int\n\t\tIndicatorType func(childComplexity int) int\n\t\tMetaSource    func(childComplexity int) int\n\t}\n\n\tMutation struct {\n\t\tAddIndicator func(childComplexity int, input model.IndicatorInput) int\n\t\tCreateTodo   func(childComplexity int, input model.NewTodo) int\n\t}\n\n\tQuery struct {\n\t\tGetYaSome func(childComplexity int, input *model.CustomInput) int\n\t\tTezz      func(childComplexity int) int\n\t\tTodos     func(childComplexity int) int\n\t}\n\n\tTest struct {\n\t\tID func(childComplexity int) int\n\t}\n\n\tTodo struct {\n\t\tDone func(childComplexity int) int\n\t\tID   func(childComplexity int) int\n\t\tText func(childComplexity int) int\n\t\tUser func(childComplexity int) int\n\t}\n\n\tUser struct {\n\t\tID   func(childComplexity int) int\n\t\tName func(childComplexity int) int\n\t}\n}\n\ntype MutationResolver interface {\n\tCreateTodo(ctx context.Context, input model.NewTodo) (*model.Todo, error)\n\tAddIndicator(ctx context.Context, input model.IndicatorInput) (*model.Indicator, error)\n}\ntype QueryResolver interface {\n\tTodos(ctx context.Context) ([]*model.Todo, error)\n\tTezz(ctx context.Context) (*model.Test, error)\n\tGetYaSome(ctx context.Context, input *model.CustomInput) ([]*model.CustomZeekIntel, error)\n}\n\ntype executableSchema struct {\n\tschema     *ast.Schema\n\tresolvers  ResolverRoot\n\tdirectives DirectiveRoot\n\tcomplexity ComplexityRoot\n}\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.schema != nil {\n\t\treturn e.schema\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := executionContext{nil, e, 0, 0, nil}\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"CustomZeekIntel.extraField\":\n\t\tif e.complexity.CustomZeekIntel.ExtraField == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.CustomZeekIntel.ExtraField(childComplexity), true\n\n\tcase \"CustomZeekIntel.id\":\n\t\tif e.complexity.CustomZeekIntel.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.CustomZeekIntel.ID(childComplexity), true\n\n\tcase \"CustomZeekIntel.name\":\n\t\tif e.complexity.CustomZeekIntel.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.CustomZeekIntel.Name(childComplexity), true\n\n\tcase \"Indicator.id\":\n\t\tif e.complexity.Indicator.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Indicator.ID(childComplexity), true\n\n\tcase \"Indicator.indicator\":\n\t\tif e.complexity.Indicator.Indicator == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Indicator.Indicator(childComplexity), true\n\n\tcase \"Indicator.indicatorType\":\n\t\tif e.complexity.Indicator.IndicatorType == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Indicator.IndicatorType(childComplexity), true\n\n\tcase \"Indicator.metaSource\":\n\t\tif e.complexity.Indicator.MetaSource == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Indicator.MetaSource(childComplexity), true\n\n\tcase \"Mutation.addIndicator\":\n\t\tif e.complexity.Mutation.AddIndicator == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Mutation_addIndicator_args(context.TODO(), rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.complexity.Mutation.AddIndicator(childComplexity, args[\"input\"].(model.IndicatorInput)), true\n\n\tcase \"Mutation.createTodo\":\n\t\tif e.complexity.Mutation.CreateTodo == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Mutation_createTodo_args(context.TODO(), rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.complexity.Mutation.CreateTodo(childComplexity, args[\"input\"].(model.NewTodo)), true\n\n\tcase \"Query.getYaSome\":\n\t\tif e.complexity.Query.GetYaSome == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_getYaSome_args(context.TODO(), rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.complexity.Query.GetYaSome(childComplexity, args[\"input\"].(*model.CustomInput)), true\n\n\tcase \"Query.tezz\":\n\t\tif e.complexity.Query.Tezz == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Query.Tezz(childComplexity), true\n\n\tcase \"Query.todos\":\n\t\tif e.complexity.Query.Todos == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Query.Todos(childComplexity), true\n\n\tcase \"Test.id\":\n\t\tif e.complexity.Test.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Test.ID(childComplexity), true\n\n\tcase \"Todo.done\":\n\t\tif e.complexity.Todo.Done == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Todo.Done(childComplexity), true\n\n\tcase \"Todo.id\":\n\t\tif e.complexity.Todo.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Todo.ID(childComplexity), true\n\n\tcase \"Todo.text\":\n\t\tif e.complexity.Todo.Text == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Todo.Text(childComplexity), true\n\n\tcase \"Todo.user\":\n\t\tif e.complexity.Todo.User == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Todo.User(childComplexity), true\n\n\tcase \"User.id\":\n\t\tif e.complexity.User.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.User.ID(childComplexity), true\n\n\tcase \"User.name\":\n\t\tif e.complexity.User.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.User.Name(childComplexity), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := executionContext{opCtx, e, 0, 0, make(chan graphql.DeferredResult)}\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap(\n\t\tec.unmarshalInputCustomInput,\n\t\tec.unmarshalInputIndicatorInput,\n\t\tec.unmarshalInputNewTodo,\n\t)\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.pendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.deferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.pendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.pendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\tcase ast.Mutation:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tif !first {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tfirst = false\n\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\tdata := ec._Mutation(ctx, opCtx.Operation.SelectionSet)\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\n\t\t\treturn &graphql.Response{\n\t\t\t\tData: buf.Bytes(),\n\t\t\t}\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.OperationContext\n\t*executableSchema\n\tdeferred        int32\n\tpendingDeferred int32\n\tdeferredResults chan graphql.DeferredResult\n}\n\nfunc (ec *executionContext) processDeferredGroup(dg graphql.DeferredGroup) {\n\tatomic.AddInt32(&ec.pendingDeferred, 1)\n\tgo func() {\n\t\tctx := graphql.WithFreshResponseContext(dg.Context)\n\t\tdg.FieldSet.Dispatch(ctx)\n\t\tds := graphql.DeferredResult{\n\t\t\tPath:   dg.Path,\n\t\t\tLabel:  dg.Label,\n\t\t\tResult: dg.FieldSet,\n\t\t\tErrors: graphql.GetErrors(ctx),\n\t\t}\n\t\t// null fields should bubble up\n\t\tif dg.FieldSet.Invalids > 0 {\n\t\t\tds.Result = graphql.Null\n\t\t}\n\t\tec.deferredResults <- ds\n\t}()\n}\n\nfunc (ec *executionContext) introspectSchema() (*introspection.Schema, error) {\n\tif ec.DisableIntrospection {\n\t\treturn nil, errors.New(\"introspection disabled\")\n\t}\n\treturn introspection.WrapSchema(ec.Schema()), nil\n}\n\nfunc (ec *executionContext) introspectType(name string) (*introspection.Type, error) {\n\tif ec.DisableIntrospection {\n\t\treturn nil, errors.New(\"introspection disabled\")\n\t}\n\treturn introspection.WrapTypeFromDef(ec.Schema(), ec.Schema().Types[name]), nil\n}\n\n//go:embed \"schema.graphqls\"\nvar sourcesFS embed.FS\n\nfunc sourceData(filename string) string {\n\tdata, err := sourcesFS.ReadFile(filename)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"codegen problem: %s not available\", filename))\n\t}\n\treturn string(data)\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"../../shared/schema.graphqls\", Input: `# GraphQL schema example\n#\n# https://gqlgen.com/getting-started/\n\ninterface ZeekIntel {\n  id: ID!\n  name: String!\n}\n`, BuiltIn: false},\n\t{Name: \"schema.graphqls\", Input: sourceData(\"schema.graphqls\"), BuiltIn: false},\n\t{Name: \"../../integration/schema.graphqls\", Input: `type Test {\n    id: ID!\n}\n\ntype CustomZeekIntel implements ZeekIntel{\n  id: ID!\n  name: String!\n\n  extraField: String!\n}\n\ninput CustomInput {\n  limit: Int\n  error: Boolean\n}\n\nextend type Query {\n  tezz: Test!\n  getYaSome(input: CustomInput): [CustomZeekIntel!]!\n}\n\ntype Indicator {\n  id: ID!\n  indicator: String!\n  indicatorType: String!\n  metaSource: String!\n}\n\ninput IndicatorInput {\n  indicator: String!\n  indicatorType: String!\n  metaSource: String!\n}\n\nextend type Mutation {\n  addIndicator(input: IndicatorInput!): Indicator!\n}`, BuiltIn: false},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_Mutation_addIndicator_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field_Mutation_addIndicator_argsInput(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"input\"] = arg0\n\treturn args, nil\n}\nfunc (ec *executionContext) field_Mutation_addIndicator_argsInput(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (model.IndicatorInput, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"input\"))\n\tif tmp, ok := rawArgs[\"input\"]; ok {\n\t\treturn ec.unmarshalNIndicatorInput2githubᚗcomᚋcorelightᚋmainᚋgraphᚋmodelᚐIndicatorInput(ctx, tmp)\n\t}\n\n\tvar zeroVal model.IndicatorInput\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field_Mutation_createTodo_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field_Mutation_createTodo_argsInput(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"input\"] = arg0\n\treturn args, nil\n}\nfunc (ec *executionContext) field_Mutation_createTodo_argsInput(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (model.NewTodo, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"input\"))\n\tif tmp, ok := rawArgs[\"input\"]; ok {\n\t\treturn ec.unmarshalNNewTodo2githubᚗcomᚋcorelightᚋmainᚋgraphᚋmodelᚐNewTodo(ctx, tmp)\n\t}\n\n\tvar zeroVal model.NewTodo\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field_Query___type_argsName(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\nfunc (ec *executionContext) field_Query___type_argsName(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (string, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"name\"))\n\tif tmp, ok := rawArgs[\"name\"]; ok {\n\t\treturn ec.unmarshalNString2string(ctx, tmp)\n\t}\n\n\tvar zeroVal string\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field_Query_getYaSome_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field_Query_getYaSome_argsInput(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"input\"] = arg0\n\treturn args, nil\n}\nfunc (ec *executionContext) field_Query_getYaSome_argsInput(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (*model.CustomInput, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"input\"))\n\tif tmp, ok := rawArgs[\"input\"]; ok {\n\t\treturn ec.unmarshalOCustomInput2ᚖgithubᚗcomᚋcorelightᚋmainᚋgraphᚋmodelᚐCustomInput(ctx, tmp)\n\t}\n\n\tvar zeroVal *model.CustomInput\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field___Directive_args_argsIncludeDeprecated(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\nfunc (ec *executionContext) field___Directive_args_argsIncludeDeprecated(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (*bool, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"includeDeprecated\"))\n\tif tmp, ok := rawArgs[\"includeDeprecated\"]; ok {\n\t\treturn ec.unmarshalOBoolean2ᚖbool(ctx, tmp)\n\t}\n\n\tvar zeroVal *bool\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field___Field_args_argsIncludeDeprecated(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\nfunc (ec *executionContext) field___Field_args_argsIncludeDeprecated(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (*bool, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"includeDeprecated\"))\n\tif tmp, ok := rawArgs[\"includeDeprecated\"]; ok {\n\t\treturn ec.unmarshalOBoolean2ᚖbool(ctx, tmp)\n\t}\n\n\tvar zeroVal *bool\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field___Type_enumValues_argsIncludeDeprecated(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\nfunc (ec *executionContext) field___Type_enumValues_argsIncludeDeprecated(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (bool, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"includeDeprecated\"))\n\tif tmp, ok := rawArgs[\"includeDeprecated\"]; ok {\n\t\treturn ec.unmarshalOBoolean2bool(ctx, tmp)\n\t}\n\n\tvar zeroVal bool\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field___Type_fields_argsIncludeDeprecated(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\nfunc (ec *executionContext) field___Type_fields_argsIncludeDeprecated(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (bool, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"includeDeprecated\"))\n\tif tmp, ok := rawArgs[\"includeDeprecated\"]; ok {\n\t\treturn ec.unmarshalOBoolean2bool(ctx, tmp)\n\t}\n\n\tvar zeroVal bool\n\treturn zeroVal, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _CustomZeekIntel_id(ctx context.Context, field graphql.CollectedField, obj *model.CustomZeekIntel) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_CustomZeekIntel_id(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.ID, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNID2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_CustomZeekIntel_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"CustomZeekIntel\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _CustomZeekIntel_name(ctx context.Context, field graphql.CollectedField, obj *model.CustomZeekIntel) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_CustomZeekIntel_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_CustomZeekIntel_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"CustomZeekIntel\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _CustomZeekIntel_extraField(ctx context.Context, field graphql.CollectedField, obj *model.CustomZeekIntel) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_CustomZeekIntel_extraField(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.ExtraField, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_CustomZeekIntel_extraField(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"CustomZeekIntel\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Indicator_id(ctx context.Context, field graphql.CollectedField, obj *model.Indicator) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Indicator_id(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.ID, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNID2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Indicator_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Indicator\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Indicator_indicator(ctx context.Context, field graphql.CollectedField, obj *model.Indicator) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Indicator_indicator(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Indicator, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Indicator_indicator(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Indicator\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Indicator_indicatorType(ctx context.Context, field graphql.CollectedField, obj *model.Indicator) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Indicator_indicatorType(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.IndicatorType, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Indicator_indicatorType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Indicator\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Indicator_metaSource(ctx context.Context, field graphql.CollectedField, obj *model.Indicator) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Indicator_metaSource(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.MetaSource, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Indicator_metaSource(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Indicator\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Mutation_createTodo(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Mutation_createTodo(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.resolvers.Mutation().CreateTodo(rctx, fc.Args[\"input\"].(model.NewTodo))\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*model.Todo)\n\tfc.Result = res\n\treturn ec.marshalNTodo2ᚖgithubᚗcomᚋcorelightᚋmainᚋgraphᚋmodelᚐTodo(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Mutation_createTodo(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Mutation\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Todo_id(ctx, field)\n\t\t\tcase \"text\":\n\t\t\t\treturn ec.fieldContext_Todo_text(ctx, field)\n\t\t\tcase \"done\":\n\t\t\t\treturn ec.fieldContext_Todo_done(ctx, field)\n\t\t\tcase \"user\":\n\t\t\t\treturn ec.fieldContext_Todo_user(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Todo\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Mutation_createTodo_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Mutation_addIndicator(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Mutation_addIndicator(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.resolvers.Mutation().AddIndicator(rctx, fc.Args[\"input\"].(model.IndicatorInput))\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*model.Indicator)\n\tfc.Result = res\n\treturn ec.marshalNIndicator2ᚖgithubᚗcomᚋcorelightᚋmainᚋgraphᚋmodelᚐIndicator(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Mutation_addIndicator(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Mutation\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Indicator_id(ctx, field)\n\t\t\tcase \"indicator\":\n\t\t\t\treturn ec.fieldContext_Indicator_indicator(ctx, field)\n\t\t\tcase \"indicatorType\":\n\t\t\t\treturn ec.fieldContext_Indicator_indicatorType(ctx, field)\n\t\t\tcase \"metaSource\":\n\t\t\t\treturn ec.fieldContext_Indicator_metaSource(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Indicator\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Mutation_addIndicator_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_todos(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Query_todos(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.resolvers.Query().Todos(rctx)\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]*model.Todo)\n\tfc.Result = res\n\treturn ec.marshalNTodo2ᚕᚖgithubᚗcomᚋcorelightᚋmainᚋgraphᚋmodelᚐTodoᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Query_todos(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Todo_id(ctx, field)\n\t\t\tcase \"text\":\n\t\t\t\treturn ec.fieldContext_Todo_text(ctx, field)\n\t\t\tcase \"done\":\n\t\t\t\treturn ec.fieldContext_Todo_done(ctx, field)\n\t\t\tcase \"user\":\n\t\t\t\treturn ec.fieldContext_Todo_user(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Todo\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_tezz(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Query_tezz(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.resolvers.Query().Tezz(rctx)\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*model.Test)\n\tfc.Result = res\n\treturn ec.marshalNTest2ᚖgithubᚗcomᚋcorelightᚋmainᚋgraphᚋmodelᚐTest(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Query_tezz(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Test_id(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Test\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_getYaSome(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Query_getYaSome(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.resolvers.Query().GetYaSome(rctx, fc.Args[\"input\"].(*model.CustomInput))\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]*model.CustomZeekIntel)\n\tfc.Result = res\n\treturn ec.marshalNCustomZeekIntel2ᚕᚖgithubᚗcomᚋcorelightᚋmainᚋgraphᚋmodelᚐCustomZeekIntelᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Query_getYaSome(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_CustomZeekIntel_id(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_CustomZeekIntel_name(ctx, field)\n\t\t\tcase \"extraField\":\n\t\t\t\treturn ec.fieldContext_CustomZeekIntel_extraField(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type CustomZeekIntel\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_getYaSome_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Query___type(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.introspectType(fc.Args[\"name\"].(string))\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Query___schema(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.introspectSchema()\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Schema)\n\tfc.Result = res\n\treturn ec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Test_id(ctx context.Context, field graphql.CollectedField, obj *model.Test) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Test_id(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.ID, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNID2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Test_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Test\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Todo_id(ctx context.Context, field graphql.CollectedField, obj *model.Todo) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Todo_id(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.ID, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNID2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Todo_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Todo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Todo_text(ctx context.Context, field graphql.CollectedField, obj *model.Todo) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Todo_text(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Text, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Todo_text(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Todo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Todo_done(ctx context.Context, field graphql.CollectedField, obj *model.Todo) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Todo_done(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Done, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalNBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Todo_done(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Todo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Todo_user(ctx context.Context, field graphql.CollectedField, obj *model.Todo) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Todo_user(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.User, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*model.User)\n\tfc.Result = res\n\treturn ec.marshalNUser2ᚖgithubᚗcomᚋcorelightᚋmainᚋgraphᚋmodelᚐUser(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Todo_user(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Todo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_User_id(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_User_name(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type User\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_id(ctx context.Context, field graphql.CollectedField, obj *model.User) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_User_id(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.ID, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNID2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_User_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_name(ctx context.Context, field graphql.CollectedField, obj *model.User) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_User_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_User_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_isRepeatable(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.IsRepeatable, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalNBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_locations(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Locations, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]string)\n\tfc.Result = res\n\treturn ec.marshalN__DirectiveLocation2ᚕstringᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_args(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Args, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.InputValue)\n\tfc.Result = res\n\treturn ec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___EnumValue_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___EnumValue_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.IsDeprecated(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalNBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.DeprecationReason(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_args(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Args, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.InputValue)\n\tfc.Result = res\n\treturn ec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_type(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Type, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_isDeprecated(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.IsDeprecated(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalNBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_deprecationReason(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.DeprecationReason(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_type(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Type, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_defaultValue(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.DefaultValue, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.IsDeprecated(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalNBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.DeprecationReason(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_types(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Types(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_queryType(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.QueryType(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_mutationType(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.MutationType(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_subscriptionType(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.SubscriptionType(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_directives(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Directives(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Directive)\n\tfc.Result = res\n\treturn ec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_kind(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Kind(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalN__TypeKind2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_specifiedByURL(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.SpecifiedByURL(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_fields(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Field)\n\tfc.Result = res\n\treturn ec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_interfaces(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Interfaces(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_possibleTypes(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.PossibleTypes(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_enumValues(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.EnumValue)\n\tfc.Result = res\n\treturn ec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_inputFields(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.InputFields(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.InputValue)\n\tfc.Result = res\n\treturn ec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_ofType(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.OfType(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_isOneOf(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.IsOneOf(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalOBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalInputCustomInput(ctx context.Context, obj any) (model.CustomInput, error) {\n\tvar it model.CustomInput\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"limit\", \"error\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"limit\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"limit\"))\n\t\t\tdata, err := ec.unmarshalOInt2ᚖint32(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Limit = data\n\t\tcase \"error\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"error\"))\n\t\t\tdata, err := ec.unmarshalOBoolean2ᚖbool(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Error = data\n\t\t}\n\t}\n\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputIndicatorInput(ctx context.Context, obj any) (model.IndicatorInput, error) {\n\tvar it model.IndicatorInput\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"indicator\", \"indicatorType\", \"metaSource\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"indicator\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"indicator\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Indicator = data\n\t\tcase \"indicatorType\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"indicatorType\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.IndicatorType = data\n\t\tcase \"metaSource\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"metaSource\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.MetaSource = data\n\t\t}\n\t}\n\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputNewTodo(ctx context.Context, obj any) (model.NewTodo, error) {\n\tvar it model.NewTodo\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"text\", \"userId\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"text\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"text\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Text = data\n\t\tcase \"userId\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"userId\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.UserID = data\n\t\t}\n\t}\n\n\treturn it, nil\n}\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\nfunc (ec *executionContext) _ZeekIntel(ctx context.Context, sel ast.SelectionSet, obj model.ZeekIntel) graphql.Marshaler {\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\tcase model.CustomZeekIntel:\n\t\treturn ec._CustomZeekIntel(ctx, sel, &obj)\n\tcase *model.CustomZeekIntel:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._CustomZeekIntel(ctx, sel, obj)\n\tdefault:\n\t\tpanic(fmt.Errorf(\"unexpected type %T\", obj))\n\t}\n}\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar customZeekIntelImplementors = []string{\"CustomZeekIntel\", \"ZeekIntel\"}\n\nfunc (ec *executionContext) _CustomZeekIntel(ctx context.Context, sel ast.SelectionSet, obj *model.CustomZeekIntel) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, customZeekIntelImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"CustomZeekIntel\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._CustomZeekIntel_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._CustomZeekIntel_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"extraField\":\n\t\t\tout.Values[i] = ec._CustomZeekIntel_extraField(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar indicatorImplementors = []string{\"Indicator\"}\n\nfunc (ec *executionContext) _Indicator(ctx context.Context, sel ast.SelectionSet, obj *model.Indicator) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, indicatorImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Indicator\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._Indicator_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"indicator\":\n\t\t\tout.Values[i] = ec._Indicator_indicator(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"indicatorType\":\n\t\t\tout.Values[i] = ec._Indicator_indicatorType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"metaSource\":\n\t\t\tout.Values[i] = ec._Indicator_metaSource(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar mutationImplementors = []string{\"Mutation\"}\n\nfunc (ec *executionContext) _Mutation(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, mutationImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Mutation\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Mutation\")\n\t\tcase \"createTodo\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Mutation_createTodo(ctx, field)\n\t\t\t})\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"addIndicator\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Mutation_addIndicator(ctx, field)\n\t\t\t})\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"todos\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_todos(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"tezz\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_tezz(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"getYaSome\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_getYaSome(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar testImplementors = []string{\"Test\"}\n\nfunc (ec *executionContext) _Test(ctx context.Context, sel ast.SelectionSet, obj *model.Test) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, testImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Test\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._Test_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar todoImplementors = []string{\"Todo\"}\n\nfunc (ec *executionContext) _Todo(ctx context.Context, sel ast.SelectionSet, obj *model.Todo) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, todoImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Todo\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._Todo_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"text\":\n\t\t\tout.Values[i] = ec._Todo_text(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"done\":\n\t\t\tout.Values[i] = ec._Todo_done(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"user\":\n\t\t\tout.Values[i] = ec._Todo_user(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar userImplementors = []string{\"User\"}\n\nfunc (ec *executionContext) _User(ctx context.Context, sel ast.SelectionSet, obj *model.User) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, userImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"User\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._User_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._User_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNCustomZeekIntel2ᚕᚖgithubᚗcomᚋcorelightᚋmainᚋgraphᚋmodelᚐCustomZeekIntelᚄ(ctx context.Context, sel ast.SelectionSet, v []*model.CustomZeekIntel) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalNCustomZeekIntel2ᚖgithubᚗcomᚋcorelightᚋmainᚋgraphᚋmodelᚐCustomZeekIntel(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalNCustomZeekIntel2ᚖgithubᚗcomᚋcorelightᚋmainᚋgraphᚋmodelᚐCustomZeekIntel(ctx context.Context, sel ast.SelectionSet, v *model.CustomZeekIntel) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._CustomZeekIntel(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNID2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalID(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNID2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\tres := graphql.MarshalID(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNIndicator2githubᚗcomᚋcorelightᚋmainᚋgraphᚋmodelᚐIndicator(ctx context.Context, sel ast.SelectionSet, v model.Indicator) graphql.Marshaler {\n\treturn ec._Indicator(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNIndicator2ᚖgithubᚗcomᚋcorelightᚋmainᚋgraphᚋmodelᚐIndicator(ctx context.Context, sel ast.SelectionSet, v *model.Indicator) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Indicator(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNIndicatorInput2githubᚗcomᚋcorelightᚋmainᚋgraphᚋmodelᚐIndicatorInput(ctx context.Context, v any) (model.IndicatorInput, error) {\n\tres, err := ec.unmarshalInputIndicatorInput(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalNNewTodo2githubᚗcomᚋcorelightᚋmainᚋgraphᚋmodelᚐNewTodo(ctx context.Context, v any) (model.NewTodo, error) {\n\tres, err := ec.unmarshalInputNewTodo(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNTest2githubᚗcomᚋcorelightᚋmainᚋgraphᚋmodelᚐTest(ctx context.Context, sel ast.SelectionSet, v model.Test) graphql.Marshaler {\n\treturn ec._Test(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNTest2ᚖgithubᚗcomᚋcorelightᚋmainᚋgraphᚋmodelᚐTest(ctx context.Context, sel ast.SelectionSet, v *model.Test) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Test(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNTodo2githubᚗcomᚋcorelightᚋmainᚋgraphᚋmodelᚐTodo(ctx context.Context, sel ast.SelectionSet, v model.Todo) graphql.Marshaler {\n\treturn ec._Todo(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNTodo2ᚕᚖgithubᚗcomᚋcorelightᚋmainᚋgraphᚋmodelᚐTodoᚄ(ctx context.Context, sel ast.SelectionSet, v []*model.Todo) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalNTodo2ᚖgithubᚗcomᚋcorelightᚋmainᚋgraphᚋmodelᚐTodo(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalNTodo2ᚖgithubᚗcomᚋcorelightᚋmainᚋgraphᚋmodelᚐTodo(ctx context.Context, sel ast.SelectionSet, v *model.Todo) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Todo(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNUser2ᚖgithubᚗcomᚋcorelightᚋmainᚋgraphᚋmodelᚐUser(ctx context.Context, sel ast.SelectionSet, v *model.User) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._User(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOCustomInput2ᚖgithubᚗcomᚋcorelightᚋmainᚋgraphᚋmodelᚐCustomInput(ctx context.Context, v any) (*model.CustomInput, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputCustomInput(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalOInt2ᚖint32(ctx context.Context, v any) (*int32, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalInt32(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOInt2ᚖint32(ctx context.Context, sel ast.SelectionSet, v *int32) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tres := graphql.MarshalInt32(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "_examples/large-project-structure/main/graph/model/models_gen.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage model\n\ntype ZeekIntel interface {\n\tIsZeekIntel()\n\tGetID() string\n\tGetName() string\n}\n\ntype CustomInput struct {\n\tLimit *int32 `json:\"limit,omitempty\"`\n\tError *bool  `json:\"error,omitempty\"`\n}\n\ntype CustomZeekIntel struct {\n\tID         string `json:\"id\"`\n\tName       string `json:\"name\"`\n\tExtraField string `json:\"extraField\"`\n}\n\nfunc (CustomZeekIntel) IsZeekIntel()         {}\nfunc (this CustomZeekIntel) GetID() string   { return this.ID }\nfunc (this CustomZeekIntel) GetName() string { return this.Name }\n\ntype Indicator struct {\n\tID            string `json:\"id\"`\n\tIndicator     string `json:\"indicator\"`\n\tIndicatorType string `json:\"indicatorType\"`\n\tMetaSource    string `json:\"metaSource\"`\n}\n\ntype IndicatorInput struct {\n\tIndicator     string `json:\"indicator\"`\n\tIndicatorType string `json:\"indicatorType\"`\n\tMetaSource    string `json:\"metaSource\"`\n}\n\ntype Mutation struct {\n}\n\ntype NewTodo struct {\n\tText   string `json:\"text\"`\n\tUserID string `json:\"userId\"`\n}\n\ntype Query struct {\n}\n\ntype Test struct {\n\tID string `json:\"id\"`\n}\n\ntype Todo struct {\n\tID   string `json:\"id\"`\n\tText string `json:\"text\"`\n\tDone bool   `json:\"done\"`\n\tUser *User  `json:\"user\"`\n}\n\ntype User struct {\n\tID   string `json:\"id\"`\n\tName string `json:\"name\"`\n}\n"
  },
  {
    "path": "_examples/large-project-structure/main/graph/resolver.go",
    "content": "package graph\n\nimport (\n\t\"context\"\n\n\t\"github.com/99designs/gqlgen/_examples/large-project-structure/main/graph/model\"\n)\n\n// This file will not be regenerated automatically.\n//\n// It serves as dependency injection for your app, add any dependencies you require here.\n\n// Define an interface for each resolver method\ntype ExternalQueryResolver interface {\n\t// Example query resolver\n\tTezz(ctx context.Context) (*model.Test, error)\n\t// Example query resolver with args\n\tGetYaSome(context.Context, *model.CustomInput) ([]*model.CustomZeekIntel, error)\n\n\t// Example mutation resolver with args\n\tAddIndicator(context.Context, model.IndicatorInput) (*model.Indicator, error)\n}\n\ntype Resolver struct {\n\tExternalQueryResolver\n}\n"
  },
  {
    "path": "_examples/large-project-structure/main/graph/schema.graphqls",
    "content": "# GraphQL schema example\n#\n# https://gqlgen.com/getting-started/\n\ntype Todo {\n  id: ID!\n  text: String!\n  done: Boolean!\n  user: User!\n}\n\ntype User {\n  id: ID!\n  name: String!\n}\n\ntype Query {\n  todos: [Todo!]!\n}\n\ninput NewTodo {\n  text: String!\n  userId: String!\n}\n\ntype Mutation {\n  createTodo(input: NewTodo!): Todo!\n}\n"
  },
  {
    "path": "_examples/large-project-structure/main/graph/schema.resolvers.go",
    "content": "package graph\n\n// This file will be automatically regenerated based on the schema, any resolver implementations\n// will be copied through when generating and any unknown code will be moved to the end.\n// Code generated by github.com/99designs/gqlgen version v0.17.70\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/99designs/gqlgen/_examples/large-project-structure/main/graph/model\"\n)\n\n// CreateTodo is the resolver for the createTodo field.\nfunc (r *mutationResolver) CreateTodo(\n\tctx context.Context,\n\tinput model.NewTodo,\n) (*model.Todo, error) {\n\tpanic(fmt.Errorf(\"not implemented: CreateTodo - createTodo\"))\n}\n\n// Todos is the resolver for the todos field.\nfunc (r *queryResolver) Todos(ctx context.Context) ([]*model.Todo, error) {\n\treturn []*model.Todo{\n\t\t{\n\t\t\tID:   \"1\",\n\t\t\tText: \"local todo\",\n\t\t},\n\t}, nil\n}\n\n// Mutation returns MutationResolver implementation.\nfunc (r *Resolver) Mutation() MutationResolver { return &mutationResolver{r} }\n\n// Query returns QueryResolver implementation.\nfunc (r *Resolver) Query() QueryResolver { return &queryResolver{r} }\n\ntype (\n\tmutationResolver struct{ *Resolver }\n\tqueryResolver    struct{ *Resolver }\n)\n"
  },
  {
    "path": "_examples/large-project-structure/main/server.go",
    "content": "package main\n\nimport (\n\t\"log\"\n\t\"net/http\"\n\t\"os\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\n\t\"github.com/99designs/gqlgen/_examples/large-project-structure/integration\"\n\t\"github.com/99designs/gqlgen/_examples/large-project-structure/main/graph\"\n\t_ \"github.com/99designs/gqlgen/_examples/large-project-structure/shared\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/extension\"\n\t\"github.com/99designs/gqlgen/graphql/handler/lru\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/graphql/playground\"\n)\n\nconst defaultPort = \"8080\"\n\nfunc main() {\n\tport := os.Getenv(\"PORT\")\n\tif port == \"\" {\n\t\tport = defaultPort\n\t}\n\n\t// Create a new executable schema with the composed resolver\n\tsrv := handler.NewDefaultServer(graph.NewExecutableSchema(graph.Config{\n\t\tResolvers: &graph.Resolver{\n\t\t\tExternalQueryResolver: &integration.Resolver{},\n\t\t\t// Add other team resolvers here\n\t\t},\n\t}))\n\n\tsrv.AddTransport(transport.Options{})\n\tsrv.AddTransport(transport.GET{})\n\tsrv.AddTransport(transport.POST{})\n\n\tsrv.SetQueryCache(lru.New[*ast.QueryDocument](1000))\n\n\tsrv.Use(extension.Introspection{})\n\tsrv.Use(extension.AutomaticPersistedQuery{\n\t\tCache: lru.New[string](100),\n\t})\n\n\thttp.Handle(\"/\", playground.Handler(\"GraphQL playground\", \"/query\"))\n\thttp.Handle(\"/query\", srv)\n\n\tlog.Printf(\"connect to http://localhost:%s/ for GraphQL playground\", port)\n\tlog.Fatal(http.ListenAndServe(\":\"+port, nil))\n}\n"
  },
  {
    "path": "_examples/large-project-structure/main/tools.go",
    "content": "//go:build tools\n\npackage tools\n\nimport (\n\t_ \"github.com/99designs/gqlgen\"\n)\n"
  },
  {
    "path": "_examples/large-project-structure/shared/go.mod",
    "content": "module github.com/99designs/gqlgen/_examples/large-project-structure/shared\n\ngo 1.25.0\n"
  },
  {
    "path": "_examples/large-project-structure/shared/go.sum",
    "content": ""
  },
  {
    "path": "_examples/large-project-structure/shared/schema.graphqls",
    "content": "# GraphQL schema example\n#\n# https://gqlgen.com/getting-started/\n\ninterface ZeekIntel {\n  id: ID!\n  name: String!\n}\n"
  },
  {
    "path": "_examples/large-project-structure/shared/shared.go",
    "content": "package shared\n\nimport \"embed\"\n\n//go:embed \"schema.graphqls\"\nvar sourcesFS embed.FS\n"
  },
  {
    "path": "_examples/mini-habr-with-subscriptions/Dockerfile",
    "content": "FROM golang:alpine \n\nWORKDIR /app\n\nCOPY . .\n\nRUN go build -o main ./cmd/main.go\n\nEXPOSE 8080\n\nCMD [\"./main\"]"
  },
  {
    "path": "_examples/mini-habr-with-subscriptions/README.md",
    "content": "# 📝 mini-habr-API\n\nThis project demonstrates how to implement GraphQL subscriptions and cursor-based pagination using gqlgen in a mini API similar to Habr. The implementation follows the official GraphQL documentation specifications and showcases real-time data exchange and efficient data fetching patterns.\n\n## Key GraphQL Features Demonstrated\n\n### GraphQL Subscriptions\nThe project provides a complete implementation of GraphQL subscriptions using WebSockets, allowing clients to receive real-time updates when new comments are added to posts. This follows the GraphQL subscription specification and shows how to:\n- Set up subscription resolvers in gqlgen\n- Manage WebSocket connections efficiently\n- Implement the publish-subscribe pattern for real-time updates\n- Handle connection lifecycle and cleanup\n\n### Cursor-based Pagination\nFollowing GraphQL's Relay Cursor Connections Specification, this project implements efficient cursor-based pagination for comments on posts. This approach:\n- Provides stable pagination that works reliably with changing datasets\n- Enables clients to navigate large result sets efficiently\n- Implements proper pageInfo with hasNextPage and cursor management\n- Demonstrates how to structure connection types in gqlgen schemas\n\nThis project implements an API for Ozon similar to Habr. It allows working with posts and comments using GraphQL. The system supports creating posts, adding comments, managing comment enabling/disabling for posts, as well as subscribing to new comment notifications.\n\n## 📡 Subscription System  (WebSockets)[1](./graph/subscription.go)[2](./graph/schema.resolvers.go#L317):\n- **Publish-Subscribe Pattern**: Implementation of Pub/Sub for real-time notifications about new comments, where components interact through a central channel mechanism\n- **Thread-safe subscription management**: Using mutexes for safe access to the subscriber list in a concurrent environment\n- **Automatic resource cleanup**: Proper closing of channels and removal of inactive subscribers to prevent memory leaks\n- **Asynchrony**: Using non-blocking Go channels for data transmission\n- **Error resistance**: Protection against panics when sending data to closed channels using deferred functions\n- **Scalability**: Ability to subscribe to events by specific post identifier, providing targeted notification delivery\n\n> **Note on patterns**: Unlike the classic Observer pattern, where observers directly register with the observed object, this project implements the Publish-Subscribe pattern, which introduces an intermediate layer (message broker) between publishers and subscribers. This provides a higher degree of decomposition: publishers don't know about specific subscribers, and subscribers don't know about publishers. Subscriptions are grouped by post identifier, which allows implementing event filtering at the broker level.\n\n\n## 🚀 Project Launch\n\nTo launch the project, follow these steps:\n\n### Prerequisites\n\n- Docker and Docker Compose installed on your system\n- Git for cloning the repository\n\n### Installation Steps\n\n1. **Clone the repository**\n   ```bash\n   git clone https://github.com/nabishec/ozon_habr_api.git\n   cd ozon_habr_api\n   ```\n\n2. **Launch in Docker containers**\n   ```bash\n   docker-compose up\n   ```\n\n3. **Using the API**\n\n   After launching, open your browser and go to:\n   ```\n   http://localhost:8080\n   ```\n\n### Choosing Data Storage\n\nBy default, the project uses PostgreSQL for data storage. If you want to use in-memory storage for testing, change the line in the Dockerfile:\n```\nRUN go build -o main ./cmd/main.go\n```\nand add the flag [`-s m`](Dockerfile#L7):\n```\nRUN go build -o main ./cmd/main.go -s m\n```\n\n## 📖 API Documentation\n\nInteractive GraphQL playground console is available at:\n* **http://localhost:8080**\n\n### GraphQL Query Examples\n\n<details>\n    <summary><b>Getting a list of all posts</b></summary>\n\n    query{\n        posts{\n            id\n            title\n            text\n            authorID\n            commentsEnabled\n            createDate\n        }\n    }\n\n</details>\n\n<details>\n    <summary><b>Getting a specific post with comments</b></summary>\n\n    query {\n        post(postID: 1) {\n            id\n            title\n            text\n            comments(first: 5) {\n                edges {\n                    node {\n                        id\n                        text\n                        authorID\n                        createDate\n                    }\n                    cursor\n                }\n                pageInfo {\n                    hasNextPage\n                    endCursor\n                }\n            }\n        }\n    }\n\n</details>\n\n<details>\n    <summary><b>Creating a new post</b></summary>\n\n    mutation {\n        addPost(postInput: {\n            authorID: \"a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11\"\n            title: \"New post\"\n            text: \"Post content\"\n            commentsEnabled: true\n        }) {\n            id\n            title\n            createDate\n        }\n    }\n\n</details>\n\n<details>\n    <summary><b>Creating a new comment</b></summary>\n\n    mutation {\n        addComment(commentInput: {\n            authorID: \"123e4567-e89b-12d3-a456-426614174000\",\n            postID: 1,\n            parentID: 1, # ID of existing comment\n            text: \"This is a reply to comment 1\"\n        }) {\n            id\n            text\n            parentID\n        }\n    }\n\n</details>\n\n\n<details>\n    <summary><b>Subscribing to new comments</b></summary>\n\n    subscription {\n        commentAdded(postID: 1) {\n            id\n            text\n            authorID\n            createDate\n        }\n    }\n\n</details>\n\nFor testing the API, you can use any GraphQL clients, such as Insomnia, Postman, or GraphiQL.\n\n## 📁 Project Structure\n<details>\n    <summary style=\"display: inline-flex; align-items: center;\">\n        <b>Show structure </b>\n    </summary>\n\n`ozon_habr_api/`<br>\n`├── cmd/`<br>\n`│   ├── db_connection/`<br>\n`│   │   ├──` [`cache.go`](./cmd/db_connection/cache.go)                (Redis connection and configuration for caching)<br>\n`│   │   └──` [`database.go`](./cmd/db_connection/database.go)              (PostgreSQL connection and configuration)<br>\n`│   ├── server/`<br>\n`│   │   └──` [`server.go`](./cmd/server/server.go)               (GraphQL server setup and launch)<br>\n`│   └──` [`main.go`](./cmd/main.go)                     (Main entry point, application setup and launch)<br>\n`├── graph/`<br>\n`│   ├── model/`<br>\n`│   │   └──` [`models_gen.go`](./graph/model/models_gen.go)           (Automatically generated GraphQL models)<br>\n`│   ├──` [`generated.go`](./graph/generated.go)                 (Generated GraphQL code (gqlgen))<br>\n`│   ├──` [`resolver.go`](./graph/resolver.go)                 (Main GraphQL resolvers)<br>\n`│   ├──` [`schema.graphqls`](./graph/schema.graphqls)             (GraphQL schema definition)<br>\n`│   ├──` [`schema.resolvers.go`](./graph/schema.resolvers.go)         (GraphQL resolvers implementation)<br>\n`│   └──` [`subscription.go`](./graph/subscription.go)         (Implementation of structures and methods for subscription management)<br>\n`├── internal/`<br>\n`│   ├── handlers/`<br>\n`│   │   ├── comment_mutation/`                (Comment mutations logic handlers)<br>\n`│   │   │   ├──` [`interface.go`](./internal/handlers/comment_mutation/interface.go)        (Interface for comment mutations)<br>\n`│   │   │   └──` [`mutations.go`](./internal/handlers/comment_mutation/mutations.go)        (Comment mutations implementation)<br>\n`│   │   ├── comment_query/`                (Comment queries logic handlers)<br>\n`│   │   │   ├──` [`interface.go`](./internal/handlers/comment_query/interface.go)        (Interface for comment queries)<br>\n`│   │   │   └──` [`query.go`](./internal/handlers/comment_query/query.go)        (Comment queries implementation)<br>\n`│   │   ├── post_mutation/`          (Post mutations logic handlers)<br>\n`│   │   │   ├──` [`interface.go`](./internal/handlers/post_mutation/interface.go)        (Interface for post mutations)<br>\n`│   │   │   └──` [`mutations.go`](./internal/handlers/post_mutation/mutations.go)        (Post mutations implementation)<br>\n`│   │   └── post_query/`          (Post queries logic handlers)<br>\n`│   │       ├──` [`interface.go`](./internal/handlers/post_query/interface.go)        (Interface for post queries)<br>\n`│   │       └──` [`query.go`](./internal/handlers/post_query/query.go)        (Post queries implementation)<br>\n`│   ├── pkg/`<br>\n`│   │   ├── cursor/`<br>\n`│   │   |   └──` [`cursor.go`](./internal/pkg/cursor/cursor.go)        (Functions for working with cursors in pagination)<br>\n`│   │   └── errs/`<br>\n`│   │       └──` [`errors.go`](./internal/pkg/errs/errors.go)        (Stores business logic errors)<br>\n`│   ├── model/`<br>\n`│   │   └──` [`model.go`](./internal/model/model.go)                (Internal data models)<br>\n`│   └── storage/`<br>\n`│       ├── db/` (Implementation of database storage) <br>\n`│       │   └──` [`resolvers.go`](./internal/storage/db/resolvers.go)        (Implementation of methods for working with PostgreSQL database)<br>\n`│       ├── in-memory/` (Implementation of in-memory data storage) <br>\n`│       │   └──` [`resolvers.go`](./internal/storage/in-memory/resolvers.go)        (Implementation of methods for working with in-memory data)<br>\n`│       └──` [`interface.go`](./internal/storage/interface.go)            (Interface for data storage (PostgreSQL, in-memory))<br>\n`├── migrations/`<br>\n`│   └──` [`001_create_tables.up.sql`](./migrations/001_create_tables.up.sql)    (SQL script for database migration (creating tables))<br>\n`├──` [`.env`](./.env)                            (Environment variables file (database settings, Redis, etc.))<br>\n`├──` [`.gitignore`](./.gitignore)                      (List of ignored files and directories for Git)<br>\n`├──` [`docker-compose.yml`](./docker-compose.yml)              (Docker Compose configuration for launching the application and dependencies)<br>\n`├──` [`Dockerfile`](./Dockerfile)                      (Instructions for building Docker image)<br>\n`├──` [`go.mod`](./go.mod)                          (Go dependencies file)<br>\n`├──` [`go.sum`](./go.sum)                          (Go dependencies checksums file)<br>\n`├──` [`gqlgen.yml`](./gqlgen.yml)                      (Configuration file for gqlgen)<br>\n`├──` [`LICENSE`](./LICENSE)                         (Project license)<br>\n`└──` [`README.md`](./README.md)                       (Project description file)<br>\n\n</details>\n\n\n## 🔧 Stack:\n  * Go 1.25\n  * GraphQL (gqlgen)\n  * PostgreSQL 17\n  * Redis 9\n  * Docker & Docker Compose\n"
  },
  {
    "path": "_examples/mini-habr-with-subscriptions/cmd/db_connection/cache.go",
    "content": "package dbconnection\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"os\"\n\t\"strconv\"\n\t\"time\"\n\n\t\"github.com/go-redis/cache/v9\"\n\t\"github.com/redis/go-redis/v9\"\n\t\"github.com/rs/zerolog/log\"\n)\n\ntype Cache struct {\n\tCache *cache.Cache\n}\n\nconst DefaultRedisDB = 0\n\nfunc NewCacheConnection() (*Cache, error) {\n\tconst op = \"cmd.dbconnection.NewCacheConnection()\"\n\n\tredisDB, err := strconv.Atoi(os.Getenv(\"REDIS_DB\"))\n\tif err != nil {\n\t\tlog.Warn().Msg(\"Failed get redis db from env\")\n\t\tredisDB = DefaultRedisDB\n\t}\n\tring := redis.NewRing(&redis.RingOptions{\n\t\tAddrs: map[string]string{\n\t\t\t\"shard1\": os.Getenv(\"REDIS_HOST1\") + \":\" + os.Getenv(\"REDIS_PORT1\"),\n\t\t\t\"shard2\": os.Getenv(\"REDIS_HOST2\") + \":\" + os.Getenv(\"REDIS_PORT2\"),\n\t\t},\n\n\t\tDB: redisDB,\n\n\t\tPassword: os.Getenv(\"REDIS_PASSWORD\"),\n\n\t\tMaxRetries: 3,\n\n\t\tDialTimeout: 50 * time.Millisecond,\n\t})\n\n\tif err := ring.Ping(context.TODO()).Err(); err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to ping Redis: %v\", err)\n\t}\n\n\tcache := &Cache{\n\t\tCache: cache.New(&cache.Options{\n\t\t\tRedis:      ring,\n\t\t\tLocalCache: cache.NewTinyLFU(1000, time.Minute),\n\t\t}),\n\t}\n\n\treturn cache, nil\n}\n"
  },
  {
    "path": "_examples/mini-habr-with-subscriptions/cmd/db_connection/database.go",
    "content": "package dbconnection\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\n\t_ \"github.com/jackc/pgx/v5/stdlib\"\n\t\"github.com/jmoiron/sqlx\"\n\t\"github.com/rs/zerolog/log\"\n)\n\ntype DatabaseConnection struct {\n\tdataSourceName string\n\tDB             *sqlx.DB\n}\n\nfunc NewDatabaseConnection() (*DatabaseConnection, error) {\n\tlog.Info().Msg(\"Connecting to database\")\n\n\tlog.Debug().Msg(\"Init database\")\n\tvar databaseCon DatabaseConnection\n\n\tconfig, err := newDSN()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\terr = databaseCon.connectDatabase(config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tlog.Info().Msg(\"Сonnection to the database is successful\")\n\treturn &databaseCon, err\n}\n\nfunc (db *DatabaseConnection) connectDatabase(config string) error {\n\tconst op = \"cmd.dbconnection.connectDatabase()\"\n\n\tlog.Debug().Msg(\"Attempting to connect to database\")\n\n\tdb.dataSourceName = config\n\n\tvar connectError error\n\tdb.DB, connectError = sqlx.Connect(\"pgx\", db.dataSourceName)\n\tif connectError != nil {\n\t\treturn fmt.Errorf(\"%s:%w\", op, connectError)\n\t}\n\n\tlog.Debug().Msg(\"Connecting to database is successfully\")\n\treturn nil\n}\n\nfunc (db *DatabaseConnection) PingDatabase() error {\n\tconst op = \"cmd.dbconnection.PingDatabase()\"\n\n\tlog.Info().Msg(\"Attempting to ping Database\")\n\tif db.DB == nil {\n\t\treturn fmt.Errorf(\"%s:%s\", op, \"database isn`t established\")\n\t}\n\n\tpingError := db.DB.Ping()\n\tif pingError != nil {\n\t\treturn fmt.Errorf(\"%s:%w\", op, pingError)\n\t}\n\n\tlog.Info().Msg(\"Ping database is successful\")\n\treturn nil\n}\n\nfunc (db *DatabaseConnection) CloseDatabase() error {\n\tconst op = \"cmd.dbconnection.CloseDatabase()\"\n\n\tlog.Info().Msg(\"Attempting to close database\")\n\tclosingError := db.DB.Close()\n\tif closingError != nil {\n\t\treturn fmt.Errorf(\"%s:%w\", op, closingError)\n\t}\n\tlog.Info().Msg(\"Successful closing of database\")\n\treturn nil\n}\n\nfunc newDSN() (string, error) {\n\tconst op = \"cmd.dbconnection.NewDSN()\"\n\n\tlog.Debug().Msg(\"Reading dsn from env variables\")\n\tdsnProtocol := os.Getenv(\"DB_PROTOCOL\")\n\tif dsnProtocol == \"\" {\n\t\treturn \"\", fmt.Errorf(\"%s:%s\", op, \"DB_PROTOCOL isn't set\")\n\t}\n\n\tdsnUserName := os.Getenv(\"DB_USER\")\n\tif dsnUserName == \"\" {\n\t\treturn \"\", fmt.Errorf(\"%s:%s\", op, \"DB_USER isn't set\")\n\t}\n\n\tdsnPassword := os.Getenv(\"DB_PASSWORD\")\n\tif dsnPassword == \"\" {\n\t\treturn \"\", fmt.Errorf(\"%s:%s\", op, \"DB_PASSWORD isn't set\")\n\t}\n\n\tdsnHost := os.Getenv(\"DB_HOST\")\n\tif dsnHost == \"\" {\n\t\treturn \"\", fmt.Errorf(\"%s:%s\", op, \"DB_HOST isn't set\")\n\t}\n\n\tdsnPort := os.Getenv(\"DB_PORT\")\n\tif dsnPort == \"\" {\n\t\treturn \"\", fmt.Errorf(\"%s:%s\", op, \"DB_PORT isn't set\")\n\t}\n\n\tdsnDBName := os.Getenv(\"DB_NAME\")\n\tif dsnDBName == \"\" {\n\t\treturn \"\", fmt.Errorf(\"%s:%s\", op, \"DB_NAME isn't set\")\n\t}\n\n\tdsnOptions := os.Getenv(\"DB_OPTIONS\")\n\tif dsnOptions == \"\" {\n\t\treturn \"\", fmt.Errorf(\"%s:%s\", op, \"DB_OPTIONS isn't set\")\n\t}\n\n\tdsn := dsnProtocol + \"://\" + dsnUserName + \":\" + dsnPassword + \"@\" +\n\t\tdsnHost + \":\" + dsnPort + \"/\" + dsnDBName + \"?\" + dsnOptions\n\n\tlog.Debug().Msgf(\"Reading dsn is successful dsn = %s\", dsn)\n\treturn dsn, nil\n}\n"
  },
  {
    "path": "_examples/mini-habr-with-subscriptions/cmd/main.go",
    "content": "package main\n\nimport (\n\t\"flag\"\n\t\"fmt\"\n\t\"os\"\n\n\tdbconnection \"github.com/gqlgen/_examples/mini-habr-with-subscriptions/cmd/db_connection\"\n\t\"github.com/gqlgen/_examples/mini-habr-with-subscriptions/cmd/server\"\n\t\"github.com/gqlgen/_examples/mini-habr-with-subscriptions/internal/storage\"\n\t\"github.com/gqlgen/_examples/mini-habr-with-subscriptions/internal/storage/db\"\n\tinmemory \"github.com/gqlgen/_examples/mini-habr-with-subscriptions/internal/storage/in-memory\"\n\t\"github.com/joho/godotenv\"\n\t\"github.com/rs/zerolog\"\n\t\"github.com/rs/zerolog/log\"\n)\n\nfunc main() {\n\tzerolog.TimeFieldFormat = zerolog.TimeFormatUnix\n\tdebug := flag.Bool(\"d\", false, \"set log level to debug\")\n\teasyReading := flag.Bool(\"r\", false, \"set console writer\")\n\n\tvar storageType string\n\tconst defaultStorageType = \"postgres\"\n\tflag.StringVar(\n\t\t&storageType,\n\t\t\"storage\",\n\t\t\"postgres\",\n\t\t\"set storage type 'memory'('m') or postgres('p')\",\n\t)\n\tflag.StringVar(&storageType, \"s\", \"p\", \"set storage type 'memory'('m') or postgres('p')\")\n\tflag.Parse()\n\n\tzerolog.SetGlobalLevel(zerolog.InfoLevel)\n\tif *debug {\n\t\tzerolog.SetGlobalLevel(zerolog.DebugLevel)\n\t}\n\n\t// for reading logs\n\tif *easyReading {\n\t\tlog.Logger = log.Output(zerolog.ConsoleWriter{Out: os.Stderr})\n\t}\n\n\tswitch storageType {\n\tcase \"postgres\":\n\tcase \"memory\":\n\tcase \"p\":\n\t\tstorageType = \"postgres\"\n\tcase \"m\":\n\t\tstorageType = \"memory\"\n\tdefault:\n\t\tlog.Error().Msg(\"Storage type is incorrectly selected\")\n\t\tstorageType = defaultStorageType\n\t\tlog.Warn().Msg(\"Default storage type is selected for further work\")\n\t}\n\n\t// load enviroments\n\terr := loadEnv()\n\tif err != nil {\n\t\tlog.Error().Err(err).Msg(\"Don't found configuration\")\n\t\tos.Exit(1)\n\t}\n\n\t// creating storage according to the settings of the parameters\n\tstorage, err := createStorage(storageType)\n\tif err != nil {\n\t\tlog.Error().Err(err).Msg(\"Failed init storage\")\n\t\tos.Exit(1)\n\t}\n\n\tserver.RunServer(storage)\n\t// TODO: RUN SERVER\n}\n\nfunc loadEnv() error {\n\tconst op = \"cmd.loadEnv()\"\n\terr := godotenv.Load(\".env\")\n\tif err != nil {\n\t\treturn fmt.Errorf(\"%s:%s\", op, \"failed load env file\")\n\t}\n\treturn nil\n}\n\nfunc createStorage(storageType string) (storage.StorageImp, error) {\n\tif storageType == \"memory\" {\n\t\treturn createResolverInMemory()\n\t} else {\n\t\treturn createResolverWithDB()\n\t}\n}\n\nfunc createResolverInMemory() (storage.StorageImp, error) {\n\tconst op = \"cmd.createResolverInMemory()\"\n\n\tinmemory := inmemory.NewStorage()\n\n\treturn inmemory, nil\n}\n\nfunc createResolverWithDB() (storage.StorageImp, error) {\n\tconst op = \"cmd.createDBStorage()\"\n\tdbConn, err := dbconnection.NewDatabaseConnection()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"%s:%w\", op, err)\n\t}\n\n\tcacheConn, err := dbconnection.NewCacheConnection()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"%s:%w\", op, err)\n\t}\n\n\tstorage := db.NewStorage(dbConn.DB, cacheConn.Cache)\n\n\treturn storage, nil\n}\n"
  },
  {
    "path": "_examples/mini-habr-with-subscriptions/cmd/server/server.go",
    "content": "package server\n\nimport (\n\t\"net/http\"\n\t\"os\"\n\t\"slices\"\n\t\"time\"\n\n\t\"github.com/gorilla/websocket\"\n\t\"github.com/gqlgen/_examples/mini-habr-with-subscriptions/graph\"\n\tcommentmutation \"github.com/gqlgen/_examples/mini-habr-with-subscriptions/internal/handlers/comment_mutation\"\n\tcommentquery \"github.com/gqlgen/_examples/mini-habr-with-subscriptions/internal/handlers/comment_query\"\n\tpostmutation \"github.com/gqlgen/_examples/mini-habr-with-subscriptions/internal/handlers/post_mutation\"\n\tpostquery \"github.com/gqlgen/_examples/mini-habr-with-subscriptions/internal/handlers/post_query\"\n\t\"github.com/gqlgen/_examples/mini-habr-with-subscriptions/internal/storage\"\n\t\"github.com/rs/zerolog/log\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/extension\"\n\t\"github.com/99designs/gqlgen/graphql/handler/lru\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/graphql/playground\"\n)\n\nconst defaultPort = \"8080\"\n\nfunc RunServer(storage storage.StorageImp) {\n\top := \"cmd.server.RunServer()\"\n\tport := os.Getenv(\"SERVER_PORT\")\n\tif port == \"\" {\n\t\tport = defaultPort\n\t}\n\n\tpostMutation := postmutation.NewPostMutation(storage)\n\tpostQuery := postquery.NewPostQuery(storage)\n\tcommentMutation := commentmutation.NewCommentMutation(storage)\n\tcommentQuery := commentquery.NewCommentQuery(storage)\n\n\tresolver := graph.NewResolver(postMutation, postQuery, commentMutation, commentQuery)\n\tc := graph.Config{Resolvers: resolver}\n\n\tcountComplexityComment := func(childComplexity int, first *int32, after *string) int {\n\t\treturn int(*first) * childComplexity\n\t}\n\tcountComplexityReplice := func(childComplexity int, first *int32, after *string) int {\n\t\treturn int(*first) * childComplexity\n\t}\n\n\tc.Complexity.Post.Comments = countComplexityComment\n\tc.Complexity.Comment.Replies = countComplexityReplice\n\n\tsrv := handler.New(graph.NewExecutableSchema(c))\n\n\tsrv.AddTransport(transport.Options{})\n\tsrv.AddTransport(transport.Websocket{\n\t\tKeepAlivePingInterval: 10 * time.Second,\n\t\tUpgrader: websocket.Upgrader{\n\t\t\tCheckOrigin: func(r *http.Request) bool {\n\t\t\t\torigin := r.Header.Get(\"Origin\")\n\t\t\t\tif origin == \"\" || origin == r.Header.Get(\"Host\") {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\treturn slices.Contains(\n\t\t\t\t\t[]string{\"http://localhost:8080\", \"https://ozonhabr.com\"},\n\t\t\t\t\torigin,\n\t\t\t\t)\n\t\t\t},\n\t\t},\n\t})\n\tsrv.AddTransport(transport.GET{})\n\tsrv.AddTransport(transport.POST{})\n\tsrv.AddTransport(transport.GRAPHQL{})\n\n\tsrv.SetQueryCache(lru.New[*ast.QueryDocument](1000))\n\tsrv.Use(extension.Introspection{})\n\tsrv.Use(extension.AutomaticPersistedQuery{\n\t\tCache: lru.New[string](100),\n\t})\n\tsrv.Use(\n\t\textension.FixedComplexityLimit(450),\n\t) // limit to +- 50 commments because there is not much space on web page\n\thttp.Handle(\"/\", playground.Handler(\"GraphQL playground\", \"/query\"))\n\thttp.Handle(\"/query\", srv)\n\n\tlog.Info().Msgf(\"Connect to http://localhost:%s/ for GraphQL playground\", port)\n\n\tif err := http.ListenAndServe(\":\"+port, nil); err != nil {\n\t\tlog.Error().AnErr(op, err).Msg(\"Failed to start server\")\n\t\tos.Exit(1)\n\t}\n\n\tlog.Error().Msg(\"Unknown error\")\n}\n"
  },
  {
    "path": "_examples/mini-habr-with-subscriptions/docker-compose.yml",
    "content": "services:\n  redis1:\n    image: redis:latest\n    container_name: redis1\n    ports: \n      - 127.0.0.1:6379:6379     \n    environment:\n      REDIS_PASSWORD: ${REDIS_PASSWORD} \n    restart: always\n    healthcheck:\n      test: [\"CMD\", \"redis-cli\", \"ping\"]\n      interval: 5s\n      timeout: 5s\n      retries: 5\n    volumes:\n      - redis_data1:/data\n    networks:\n      - mini_habr_network\n    env_file:\n      - .env \n  \n  redis2:\n    image: redis:latest\n    container_name: redis2\n    ports: \n      - 127.0.0.1:6380:6379\n    environment:\n      REDIS_PASSWORD: ${REDIS_PASSWORD}\n    restart: always\n    healthcheck:\n      test: [\"CMD\", \"redis-cli\", \"ping\"]\n      interval: 5s\n      timeout: 5s\n      retries: 5\n    volumes:\n      - redis_data2:/data\n    networks:\n      - mini_habr_network\n    env_file:\n      - .env\n\n  db:\n    image: postgres:17\n    container_name: mini_habr_db\n    environment:\n      POSTGRES_USER: ${DB_USER}\n      POSTGRES_PASSWORD: ${DB_PASSWORD}\n      POSTGRES_DB: ${DB_NAME}\n    ports:\n      - 127.0.0.1:5432:5432\n    healthcheck:\n      test: [\"CMD-SHELL\", \"pg_isready -U ${DB_USER} -d ${DB_NAME}\"]\n      interval: 5s\n      timeout: 5s\n      retries: 5\n      start_period: 10s\n    volumes:\n      - db_data:/var/lib/postgresql/data\n    networks:\n      - mini_habr_network\n    env_file:\n      - .env\n\n  app:\n    build:\n      context: .\n      dockerfile: Dockerfile\n    container_name: mini_habr_app\n    environment:\n      REDIS_HOST1: redis1\n      REDIS_PORT1: ${REDIS_PORT1}\n      REDIS_HOST2: redis2\n      REDIS_PORT2: ${REDIS_PORT2}\n      REDIS_DB: ${REDIS_DB}\n      TIMEOIUT: ${TIMEOUT}\n      IDLE_TIMEOUT: ${IDLE_TIMEOUT}\n      SERVER_PORT: ${SERVER_PORT}\n      DB_PROTOCOL: ${DB_PROTOCOL}\n      DB_HOST: ${DB_HOST}\n      DB_PORT: ${DB_PORT}\n      DB_USER: ${DB_USER}\n      DB_NAME: ${DB_NAME}\n      DB_PASSWORD: ${DB_PASSWORD}\n      DB_OPTIONS: ${DB_OPTIONS}\n    depends_on:\n      db:\n        condition: service_healthy\n      redis1:\n        condition: service_healthy\n      redis2:\n        condition: service_healthy\n    ports:\n      - 127.0.0.1:8080:8080\n    networks:\n      - mini_habr_network\n    env_file:\n      - .env\n\n  migrate:\n    image: ghcr.io/kukymbr/goose-docker:latest\n    container_name: mini_habr_migrate\n    environment:\n      GOOSE_DRIVER: ${DB_PROTOCOL}\n      GOOSE_DBSTRING: \"host=${DB_HOST} port=${DB_PORT} user=${DB_USER} dbname=${DB_NAME} password=${DB_PASSWORD} ${DB_OPTIONS}\"\n    depends_on:\n      db:\n        condition: service_healthy\n    volumes:\n      - ./migrations:/migrations\n    networks:\n\n      - mini_habr_network\n    env_file:\n      - .env\nvolumes:\n  redis_data1:\n  redis_data2:\n  db_data:\nnetworks:\n  mini_habr_network:\n    driver: bridge    "
  },
  {
    "path": "_examples/mini-habr-with-subscriptions/go.mod",
    "content": "module github.com/gqlgen/_examples/mini-habr-with-subscriptions\n\ngo 1.25.0\n\nrequire (\n\tgithub.com/99designs/gqlgen v0.17.66\n\tgithub.com/go-redis/cache/v9 v9.0.0\n\tgithub.com/google/uuid v1.6.0\n\tgithub.com/gorilla/websocket v1.5.0\n\tgithub.com/jackc/pgx/v5 v5.7.4\n\tgithub.com/jmoiron/sqlx v1.4.0\n\tgithub.com/joho/godotenv v1.5.1\n\tgithub.com/redis/go-redis/v9 v9.7.3\n\tgithub.com/rs/zerolog v1.33.0\n\tgithub.com/vektah/gqlparser/v2 v2.5.22\n)\n\nrequire (\n\tgithub.com/agnivade/levenshtein v1.2.0 // indirect\n\tgithub.com/cespare/xxhash/v2 v2.2.0 // indirect\n\tgithub.com/cpuguy83/go-md2man/v2 v2.0.5 // indirect\n\tgithub.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect\n\tgithub.com/go-viper/mapstructure/v2 v2.4.0 // indirect\n\tgithub.com/hashicorp/golang-lru/v2 v2.0.7 // indirect\n\tgithub.com/jackc/pgpassfile v1.0.0 // indirect\n\tgithub.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect\n\tgithub.com/jackc/puddle/v2 v2.2.2 // indirect\n\tgithub.com/klauspost/compress v1.13.6 // indirect\n\tgithub.com/mattn/go-colorable v0.1.14 // indirect\n\tgithub.com/mattn/go-isatty v0.0.20 // indirect\n\tgithub.com/russross/blackfriday/v2 v2.1.0 // indirect\n\tgithub.com/sosodev/duration v1.3.1 // indirect\n\tgithub.com/urfave/cli/v2 v2.27.5 // indirect\n\tgithub.com/vmihailenco/go-tinylfu v0.2.2 // indirect\n\tgithub.com/vmihailenco/msgpack/v5 v5.3.4 // indirect\n\tgithub.com/vmihailenco/tagparser/v2 v2.0.0 // indirect\n\tgithub.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 // indirect\n\tgolang.org/x/crypto v0.45.0 // indirect\n\tgolang.org/x/mod v0.29.0 // indirect\n\tgolang.org/x/sync v0.18.0 // indirect\n\tgolang.org/x/sys v0.38.0 // indirect\n\tgolang.org/x/text v0.31.0 // indirect\n\tgolang.org/x/tools v0.38.0 // indirect\n\tgopkg.in/yaml.v3 v3.0.1 // indirect\n)\n"
  },
  {
    "path": "_examples/mini-habr-with-subscriptions/go.sum",
    "content": "filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=\nfilippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=\ngithub.com/99designs/gqlgen v0.17.66 h1:2/SRc+h3115fCOZeTtsqrB5R5gTGm+8qCAwcrZa+CXA=\ngithub.com/99designs/gqlgen v0.17.66/go.mod h1:gucrb5jK5pgCKzAGuOMMVU9C8PnReecHEHd2UxLQwCg=\ngithub.com/PuerkitoBio/goquery v1.9.3 h1:mpJr/ikUA9/GNJB/DBZcGeFDXUtosHRyRrwh7KGdTG0=\ngithub.com/PuerkitoBio/goquery v1.9.3/go.mod h1:1ndLHPdTz+DyQPICCWYlYQMPl0oXZj0G6D4LCYA6u4U=\ngithub.com/agnivade/levenshtein v1.2.0 h1:U9L4IOT0Y3i0TIlUIDJ7rVUziKi/zPbrJGaFrtYH3SY=\ngithub.com/agnivade/levenshtein v1.2.0/go.mod h1:QVVI16kDrtSuwcpd0p1+xMC6Z/VfhtCyDIjcwga4/DU=\ngithub.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ=\ngithub.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=\ngithub.com/andybalholm/cascadia v1.3.2 h1:3Xi6Dw5lHF15JtdcmAHD3i1+T8plmv7BQ/nsViSLyss=\ngithub.com/andybalholm/cascadia v1.3.2/go.mod h1:7gtRlve5FxPPgIgX36uWBX58OdBsSS6lUvCFb+h7KvU=\ngithub.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0 h1:jfIu9sQUG6Ig+0+Ap1h4unLjW6YQJpKZVmUzxsD4E/Q=\ngithub.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0/go.mod h1:t2tdKJDJF9BV14lnkjHmOQgcvEKgtqs5a1N3LNdJhGE=\ngithub.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs=\ngithub.com/bsm/ginkgo/v2 v2.12.0/go.mod h1:SwYbGRRDovPVboqFv0tPTcG1sN61LM1Z4ARdbAV9g4c=\ngithub.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA=\ngithub.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0=\ngithub.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=\ngithub.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=\ngithub.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=\ngithub.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=\ngithub.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=\ngithub.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=\ngithub.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=\ngithub.com/cpuguy83/go-md2man/v2 v2.0.5 h1:ZtcqGrnekaHpVLArFSe4HK5DoKx1T0rq2DwVB0alcyc=\ngithub.com/cpuguy83/go-md2man/v2 v2.0.5/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=\ngithub.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=\ngithub.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=\ngithub.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=\ngithub.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=\ngithub.com/dgryski/trifles v0.0.0-20230903005119-f50d829f2e54 h1:SG7nF6SRlWhcT7cNTs5R6Hk4V2lcmLz2NsG2VnInyNo=\ngithub.com/dgryski/trifles v0.0.0-20230903005119-f50d829f2e54/go.mod h1:if7Fbed8SFyPtHLHbg49SI7NAdJiC5WIA09pe59rfAA=\ngithub.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=\ngithub.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=\ngithub.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=\ngithub.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=\ngithub.com/go-redis/cache/v9 v9.0.0 h1:0thdtFo0xJi0/WXbRVu8B066z8OvVymXTJGaXrVWnN0=\ngithub.com/go-redis/cache/v9 v9.0.0/go.mod h1:cMwi1N8ASBOufbIvk7cdXe2PbPjK/WMRL95FFHWsSgI=\ngithub.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y=\ngithub.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg=\ngithub.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=\ngithub.com/go-viper/mapstructure/v2 v2.4.0 h1:EBsztssimR/CONLSZZ04E8qAkxNYq4Qp9LvH92wZUgs=\ngithub.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=\ngithub.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=\ngithub.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngithub.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=\ngithub.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=\ngithub.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=\ngithub.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=\ngithub.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=\ngithub.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=\ngithub.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=\ngithub.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=\ngithub.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=\ngithub.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=\ngithub.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=\ngithub.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=\ngithub.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=\ngithub.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=\ngithub.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=\ngithub.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=\ngithub.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=\ngithub.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=\ngithub.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=\ngithub.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=\ngithub.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=\ngithub.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k=\ngithub.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM=\ngithub.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=\ngithub.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=\ngithub.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM=\ngithub.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg=\ngithub.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 h1:iCEnooe7UlwOQYpKFhBabPMi4aNAfoODPEFNiAnClxo=\ngithub.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM=\ngithub.com/jackc/pgx/v5 v5.7.4 h1:9wKznZrhWa2QiHL+NjTSPP6yjl3451BX3imWDnokYlg=\ngithub.com/jackc/pgx/v5 v5.7.4/go.mod h1:ncY89UGWxg82EykZUwSpUKEfccBGGYq1xjrOpsbsfGQ=\ngithub.com/jackc/puddle/v2 v2.2.2 h1:PR8nw+E/1w0GLuRFSmiioY6UooMp6KJv0/61nB7icHo=\ngithub.com/jackc/puddle/v2 v2.2.2/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4=\ngithub.com/jmoiron/sqlx v1.4.0 h1:1PLqN7S1UYp5t4SrVVnt4nUVNemrDAtxlulVe+Qgm3o=\ngithub.com/jmoiron/sqlx v1.4.0/go.mod h1:ZrZ7UsYB/weZdl2Bxg6jCRO9c3YHl8r3ahlKmRT4JLY=\ngithub.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0=\ngithub.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4=\ngithub.com/klauspost/compress v1.13.6 h1:P76CopJELS0TiO2mebmnzgWaajssP/EszplttgQxcgc=\ngithub.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=\ngithub.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=\ngithub.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0=\ngithub.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk=\ngithub.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=\ngithub.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=\ngithub.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=\ngithub.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=\ngithub.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw=\ngithub.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=\ngithub.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=\ngithub.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=\ngithub.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=\ngithub.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=\ngithub.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=\ngithub.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=\ngithub.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=\ngithub.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU=\ngithub.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=\ngithub.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=\ngithub.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=\ngithub.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=\ngithub.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=\ngithub.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=\ngithub.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0=\ngithub.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=\ngithub.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU=\ngithub.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c=\ngithub.com/onsi/ginkgo/v2 v2.1.4/go.mod h1:um6tUpWM/cxCK3/FK8BXqEiUMUwRgSM4JXG47RKZmLU=\ngithub.com/onsi/ginkgo/v2 v2.1.6/go.mod h1:MEH45j8TBi6u9BMogfbp0stKC5cdGjumZj5Y7AG4VIk=\ngithub.com/onsi/ginkgo/v2 v2.3.0/go.mod h1:Eew0uilEqZmIEZr8JrvYlvOM7Rr6xzTmMV8AyFNU9d0=\ngithub.com/onsi/ginkgo/v2 v2.4.0/go.mod h1:iHkDK1fKGcBoEHT5W7YBq4RFWaQulw+caOMkAt4OrFo=\ngithub.com/onsi/ginkgo/v2 v2.5.0/go.mod h1:Luc4sArBICYCS8THh8v3i3i5CuSZO+RaQRaJoeNwomw=\ngithub.com/onsi/ginkgo/v2 v2.7.0/go.mod h1:yjiuMwPokqY1XauOgju45q3sJt6VzQ/Fict1LFVcsAo=\ngithub.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=\ngithub.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=\ngithub.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY=\ngithub.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro=\ngithub.com/onsi/gomega v1.20.1/go.mod h1:DtrZpjmvpn2mPm4YWQa0/ALMDj9v4YxLgojwPeREyVo=\ngithub.com/onsi/gomega v1.21.1/go.mod h1:iYAIXgPSaDHak0LCMA+AWBpIKBr8WZicMxnE8luStNc=\ngithub.com/onsi/gomega v1.22.1/go.mod h1:x6n7VNe4hw0vkyYUM4mjIXx3JbLiPaBPNgB7PRQ1tuM=\ngithub.com/onsi/gomega v1.24.0/go.mod h1:Z/NWtiqwBrwUt4/2loMmHL63EDLnYHmVbuBpDr2vQAg=\ngithub.com/onsi/gomega v1.24.1/go.mod h1:3AOiACssS3/MajrniINInwbfOOtfZvplPzuRSmvt1jM=\ngithub.com/onsi/gomega v1.25.0 h1:Vw7br2PCDYijJHSfBOWhov+8cAnUf8MfMaIOV323l6Y=\ngithub.com/onsi/gomega v1.25.0/go.mod h1:r+zV744Re+DiYCIPRlYOTxn0YkOLcAnW8k1xXdMPGhM=\ngithub.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=\ngithub.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=\ngithub.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/redis/go-redis/v9 v9.0.0-rc.4/go.mod h1:Vo3EsyWnicKnSKCA7HhgnvnyA74wOA69Cd2Meli5mmA=\ngithub.com/redis/go-redis/v9 v9.7.3 h1:YpPyAayJV+XErNsatSElgRZZVCwXX9QzkKYNvO7x0wM=\ngithub.com/redis/go-redis/v9 v9.7.3/go.mod h1:bGUrSggJ9X9GUmZpZNEOQKaANxSGgOEBRltRTZHSvrA=\ngithub.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k=\ngithub.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=\ngithub.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg=\ngithub.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8=\ngithub.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss=\ngithub.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=\ngithub.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=\ngithub.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8=\ngithub.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I=\ngithub.com/sosodev/duration v1.3.1 h1:qtHBDMQ6lvMQsL15g4aopM4HEfOaYuhWBw3NPTtlqq4=\ngithub.com/sosodev/duration v1.3.1/go.mod h1:RQIBBX0+fMLc/D9+Jb/fwvVmo0eZvDDEERAikUR6SDg=\ngithub.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=\ngithub.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=\ngithub.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=\ngithub.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=\ngithub.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=\ngithub.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=\ngithub.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=\ngithub.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=\ngithub.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=\ngithub.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=\ngithub.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=\ngithub.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=\ngithub.com/urfave/cli/v2 v2.27.5 h1:WoHEJLdsXr6dDWoJgMq/CboDmyY/8HMMH1fTECbih+w=\ngithub.com/urfave/cli/v2 v2.27.5/go.mod h1:3Sevf16NykTbInEnD0yKkjDAeZDS0A6bzhBH5hrMvTQ=\ngithub.com/vektah/gqlparser/v2 v2.5.22 h1:yaaeJ0fu+nv1vUMW0Hl+aS1eiv1vMfapBNjpffAda1I=\ngithub.com/vektah/gqlparser/v2 v2.5.22/go.mod h1:xMl+ta8a5M1Yo1A1Iwt/k7gSpscwSnHZdw7tfhEGfTM=\ngithub.com/vmihailenco/go-tinylfu v0.2.2 h1:H1eiG6HM36iniK6+21n9LLpzx1G9R3DJa2UjUjbynsI=\ngithub.com/vmihailenco/go-tinylfu v0.2.2/go.mod h1:CutYi2Q9puTxfcolkliPq4npPuofg9N9t8JVrjzwa3Q=\ngithub.com/vmihailenco/msgpack/v5 v5.3.4 h1:qMKAwOV+meBw2Y8k9cVwAy7qErtYCwBzZ2ellBfvnqc=\ngithub.com/vmihailenco/msgpack/v5 v5.3.4/go.mod h1:7xyJ9e+0+9SaZT0Wt1RGleJXzli6Q/V5KbhBonMG9jc=\ngithub.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g=\ngithub.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds=\ngithub.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4=\ngithub.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM=\ngithub.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=\ngithub.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=\ngithub.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=\ngolang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=\ngolang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\ngolang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=\ngolang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=\ngolang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw=\ngolang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q=\ngolang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4=\ngolang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=\ngolang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY=\ngolang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=\ngolang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI=\ngolang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=\ngolang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA=\ngolang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w=\ngolang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=\ngolang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=\ngolang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=\ngolang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk=\ngolang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=\ngolang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=\ngolang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=\ngolang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=\ngolang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=\ngolang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=\ngolang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE=\ngolang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws=\ngolang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY=\ngolang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU=\ngolang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I=\ngolang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=\ngolang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.0.0-20220422013727-9388b58f7150/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc=\ngolang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=\ngolang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=\ngolang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=\ngolang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=\ngolang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=\ngolang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA=\ngolang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ=\ngolang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=\ngolang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=\ngolang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=\ngolang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=\ngolang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=\ngolang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=\ngolang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=\ngolang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM=\ngolang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM=\ngolang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=\ngolang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=\ngolang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E=\ngolang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=\ngolang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA=\ngolang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ=\ngolang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ=\ngolang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs=\ngolang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngolang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngolang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngolang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngoogle.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=\ngoogle.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=\ngoogle.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=\ngoogle.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=\ngoogle.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=\ngoogle.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=\ngoogle.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=\ngoogle.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=\ngoogle.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=\ngopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=\ngopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=\ngopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=\ngopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=\ngopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=\ngopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\ngopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\ngopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\ngopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=\ngopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\ngopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=\ngopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\n"
  },
  {
    "path": "_examples/mini-habr-with-subscriptions/gqlgen.yml",
    "content": "# Where are all the schema files located? globs are supported eg  src/**/*.graphqls\nschema:\n  - graph/*.graphqls\n\n# Where should the generated server code go?\nexec:\n  package: graph\n  layout: single-file # Only other option is \"follow-schema,\" ie multi-file.\n\n  # Only for single-file layout:\n  filename: graph/generated.go\n\n  # Only for follow-schema layout:\n  # dir: graph\n  # filename_template: \"{name}.generated.go\"\n\n  # Optional: Maximum number of goroutines in concurrency to use per child resolvers(default: unlimited)\n  # worker_limit: 1000\n\n# Uncomment to enable federation\n# federation:\n#   filename: graph/federation.go\n#   package: graph\n#   version: 2\n#   options:\n#     computed_requires: true\n\n# Where should any generated models go?\nmodel:\n  filename: graph/model/models_gen.go\n  package: model\n\n  # Optional: Pass in a path to a new gotpl template to use for generating the models\n  # model_template: [your/path/model.gotpl]\n\n# Where should the resolver implementations go?\nresolver:\n  package: graph\n  layout: follow-schema # Only other option is \"single-file.\"\n\n  # Only for single-file layout:\n  # filename: graph/resolver.go\n\n  # Only for follow-schema layout:\n  dir: graph\n  filename_template: \"{name}.resolvers.go\"\n\n  # Optional: turn on to not generate template comments above resolvers\n  # omit_template_comment: false\n  # Optional: Pass in a path to a new gotpl template to use for generating resolvers\n  # resolver_template: [your/path/resolver.gotpl]\n  # Optional: turn on to avoid rewriting existing resolver(s) when generating\n  # preserve_resolver: false\n\n# Optional: turn on use ` + \"`\" + `gqlgen:\"fieldName\"` + \"`\" + ` tags in your models\n# struct_tag: json\n\n# Optional: turn on to use []Thing instead of []*Thing\n# omit_slice_element_pointers: false\n\n# Optional: turn on to omit Is<Name>() methods to interface and unions\n# omit_interface_checks: true\n\n# Optional: turn on to skip generation of ComplexityRoot struct content and Complexity function\n# omit_complexity: false\n\n# Optional: turn on to not generate any file notice comments in generated files\n# omit_gqlgen_file_notice: false\n\n# Optional: turn on to exclude the gqlgen version in the generated file notice. No effect if `omit_gqlgen_file_notice` is true.\n# omit_gqlgen_version_in_file_notice: false\n\n# Optional: turn on to exclude root models such as Query and Mutation from the generated models file.\n# omit_root_models: false\n\n# Optional: turn on to exclude resolver fields from the generated models file.\n# omit_resolver_fields: false\n\n# Optional: turn off to make struct-type struct fields not use pointers\n# e.g. type Thing struct { FieldA OtherThing } instead of { FieldA *OtherThing }\n# struct_fields_always_pointers: true\n\n# Optional: turn off to make resolvers return values instead of pointers for structs\n# resolvers_always_return_pointers: true\n\n# Optional: turn on to return pointers instead of values in unmarshalInput\n# return_pointers_in_unmarshalinput: false\n\n# Optional: wrap nullable input fields with Omittable\n# nullable_input_omittable: true\n\n# Optional: set to speed up generation time by not performing a final validation pass.\n# skip_validation: true\n\n# Optional: set to skip running `go mod tidy` when generating server code\n# skip_mod_tidy: true\n\n# Optional: if this is set to true, argument directives that\n# decorate a field with a null value will still be called.\n#\n# This enables argumment directives to not just mutate\n# argument values but to set them even if they're null.\ncall_argument_directives_with_null: true\n\n# Optional: set build tags that will be used to load packages\n# go_build_tags:\n#  - private\n#  - enterprise\n\n# Optional: set to modify the initialisms regarded for Go names\n# go_initialisms:\n#   replace_defaults: false # if true, the default initialisms will get dropped in favor of the new ones instead of being added\n#   initialisms: # List of initialisms to for Go names\n#     - 'CC'\n#     - 'BCC'\n\n# gqlgen will search for any type names in the schema in these go packages\n# if they match it will use them, otherwise it will generate them.\nautobind:\n#  - \"github.com/nabishec/ozon_habr_api/graph/model\"\n\n# This section declares type mapping between the GraphQL and go type systems\n#\n# The first line in each type will be used as defaults for resolver arguments and\n# modelgen, the others will be allowed when binding to fields. Configure them to\n# your liking\nmodels:\n  ID:\n    model:\n      - github.com/99designs/gqlgen/graphql.ID\n      - github.com/99designs/gqlgen/graphql.Int\n      - github.com/99designs/gqlgen/graphql.Int64\n      - github.com/99designs/gqlgen/graphql.Int32\n  # gqlgen provides a default GraphQL UUID convenience wrapper for github.com/google/uuid \n  # but you can override this to provide your own GraphQL UUID implementation\n  UUID:\n    model:\n      - github.com/99designs/gqlgen/graphql.UUID\n\n  # The GraphQL spec explicitly states that the Int type is a signed 32-bit\n  # integer. Using Go int or int64 to represent it can lead to unexpected\n  # behavior, and some GraphQL tools like Apollo Router will fail when\n  # communicating numbers that overflow 32-bits.\n  #\n  # You may choose to use the custom, built-in Int64 scalar to represent 64-bit\n  # integers, or ignore the spec and bind Int to graphql.Int / graphql.Int64\n  # (the default behavior of gqlgen). This is fine in simple use cases when you\n  # do not need to worry about interoperability and only expect small numbers.\n  Int:\n    model:\n      - github.com/99designs/gqlgen/graphql.Int32\n  Int64:\n    model:\n      - github.com/99designs/gqlgen/graphql.Int64\n"
  },
  {
    "path": "_examples/mini-habr-with-subscriptions/graph/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage graph\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"embed\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\t\"github.com/google/uuid\"\n\t\"github.com/gqlgen/_examples/mini-habr-with-subscriptions/graph/model\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{\n\t\tschema:     cfg.Schema,\n\t\tresolvers:  cfg.Resolvers,\n\t\tdirectives: cfg.Directives,\n\t\tcomplexity: cfg.Complexity,\n\t}\n}\n\ntype Config struct {\n\tSchema     *ast.Schema\n\tResolvers  ResolverRoot\n\tDirectives DirectiveRoot\n\tComplexity ComplexityRoot\n}\n\ntype ResolverRoot interface {\n\tComment() CommentResolver\n\tMutation() MutationResolver\n\tPost() PostResolver\n\tQuery() QueryResolver\n\tSubscription() SubscriptionResolver\n}\n\ntype DirectiveRoot struct {\n}\n\ntype ComplexityRoot struct {\n\tComment struct {\n\t\tAuthorID   func(childComplexity int) int\n\t\tCreateDate func(childComplexity int) int\n\t\tID         func(childComplexity int) int\n\t\tParentID   func(childComplexity int) int\n\t\tPostID     func(childComplexity int) int\n\t\tReplies    func(childComplexity int, first *int32, after *string) int\n\t\tText       func(childComplexity int) int\n\t}\n\n\tCommentConnection struct {\n\t\tEdges    func(childComplexity int) int\n\t\tPageInfo func(childComplexity int) int\n\t}\n\n\tCommentEdge struct {\n\t\tCursor func(childComplexity int) int\n\t\tNode   func(childComplexity int) int\n\t}\n\n\tMutation struct {\n\t\tAddComment          func(childComplexity int, commentInput model.NewComment) int\n\t\tAddPost             func(childComplexity int, postInput model.NewPost) int\n\t\tUpdateEnableComment func(childComplexity int, postID int64, authorID uuid.UUID, commentsEnabled bool) int\n\t}\n\n\tPageInfo struct {\n\t\tEndCursor   func(childComplexity int) int\n\t\tHasNextPage func(childComplexity int) int\n\t}\n\n\tPost struct {\n\t\tAuthorID        func(childComplexity int) int\n\t\tComments        func(childComplexity int, first *int32, after *string) int\n\t\tCommentsEnabled func(childComplexity int) int\n\t\tCreateDate      func(childComplexity int) int\n\t\tID              func(childComplexity int) int\n\t\tText            func(childComplexity int) int\n\t\tTitle           func(childComplexity int) int\n\t}\n\n\tQuery struct {\n\t\tPost  func(childComplexity int, postID int64) int\n\t\tPosts func(childComplexity int) int\n\t}\n\n\tSubscription struct {\n\t\tCommentAdded func(childComplexity int, postID int64) int\n\t}\n}\n\ntype CommentResolver interface {\n\tReplies(ctx context.Context, obj *model.Comment, first *int32, after *string) (*model.CommentConnection, error)\n}\ntype MutationResolver interface {\n\tAddPost(ctx context.Context, postInput model.NewPost) (*model.Post, error)\n\tAddComment(ctx context.Context, commentInput model.NewComment) (*model.Comment, error)\n\tUpdateEnableComment(ctx context.Context, postID int64, authorID uuid.UUID, commentsEnabled bool) (*model.Post, error)\n}\ntype PostResolver interface {\n\tComments(ctx context.Context, obj *model.Post, first *int32, after *string) (*model.CommentConnection, error)\n}\ntype QueryResolver interface {\n\tPosts(ctx context.Context) ([]*model.Post, error)\n\tPost(ctx context.Context, postID int64) (*model.Post, error)\n}\ntype SubscriptionResolver interface {\n\tCommentAdded(ctx context.Context, postID int64) (<-chan *model.Comment, error)\n}\n\ntype executableSchema struct {\n\tschema     *ast.Schema\n\tresolvers  ResolverRoot\n\tdirectives DirectiveRoot\n\tcomplexity ComplexityRoot\n}\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.schema != nil {\n\t\treturn e.schema\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := executionContext{nil, e, 0, 0, nil}\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"Comment.authorID\":\n\t\tif e.complexity.Comment.AuthorID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Comment.AuthorID(childComplexity), true\n\n\tcase \"Comment.createDate\":\n\t\tif e.complexity.Comment.CreateDate == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Comment.CreateDate(childComplexity), true\n\n\tcase \"Comment.id\":\n\t\tif e.complexity.Comment.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Comment.ID(childComplexity), true\n\n\tcase \"Comment.parentID\":\n\t\tif e.complexity.Comment.ParentID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Comment.ParentID(childComplexity), true\n\n\tcase \"Comment.postID\":\n\t\tif e.complexity.Comment.PostID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Comment.PostID(childComplexity), true\n\n\tcase \"Comment.replies\":\n\t\tif e.complexity.Comment.Replies == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Comment_replies_args(context.TODO(), rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.complexity.Comment.Replies(childComplexity, args[\"first\"].(*int32), args[\"after\"].(*string)), true\n\n\tcase \"Comment.text\":\n\t\tif e.complexity.Comment.Text == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Comment.Text(childComplexity), true\n\n\tcase \"CommentConnection.edges\":\n\t\tif e.complexity.CommentConnection.Edges == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.CommentConnection.Edges(childComplexity), true\n\n\tcase \"CommentConnection.pageInfo\":\n\t\tif e.complexity.CommentConnection.PageInfo == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.CommentConnection.PageInfo(childComplexity), true\n\n\tcase \"CommentEdge.cursor\":\n\t\tif e.complexity.CommentEdge.Cursor == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.CommentEdge.Cursor(childComplexity), true\n\n\tcase \"CommentEdge.node\":\n\t\tif e.complexity.CommentEdge.Node == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.CommentEdge.Node(childComplexity), true\n\n\tcase \"Mutation.addComment\":\n\t\tif e.complexity.Mutation.AddComment == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Mutation_addComment_args(context.TODO(), rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.complexity.Mutation.AddComment(childComplexity, args[\"commentInput\"].(model.NewComment)), true\n\n\tcase \"Mutation.addPost\":\n\t\tif e.complexity.Mutation.AddPost == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Mutation_addPost_args(context.TODO(), rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.complexity.Mutation.AddPost(childComplexity, args[\"postInput\"].(model.NewPost)), true\n\n\tcase \"Mutation.updateEnableComment\":\n\t\tif e.complexity.Mutation.UpdateEnableComment == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Mutation_updateEnableComment_args(context.TODO(), rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.complexity.Mutation.UpdateEnableComment(childComplexity, args[\"postID\"].(int64), args[\"authorID\"].(uuid.UUID), args[\"commentsEnabled\"].(bool)), true\n\n\tcase \"PageInfo.endCursor\":\n\t\tif e.complexity.PageInfo.EndCursor == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.PageInfo.EndCursor(childComplexity), true\n\n\tcase \"PageInfo.hasNextPage\":\n\t\tif e.complexity.PageInfo.HasNextPage == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.PageInfo.HasNextPage(childComplexity), true\n\n\tcase \"Post.authorID\":\n\t\tif e.complexity.Post.AuthorID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Post.AuthorID(childComplexity), true\n\n\tcase \"Post.comments\":\n\t\tif e.complexity.Post.Comments == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Post_comments_args(context.TODO(), rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.complexity.Post.Comments(childComplexity, args[\"first\"].(*int32), args[\"after\"].(*string)), true\n\n\tcase \"Post.commentsEnabled\":\n\t\tif e.complexity.Post.CommentsEnabled == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Post.CommentsEnabled(childComplexity), true\n\n\tcase \"Post.createDate\":\n\t\tif e.complexity.Post.CreateDate == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Post.CreateDate(childComplexity), true\n\n\tcase \"Post.id\":\n\t\tif e.complexity.Post.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Post.ID(childComplexity), true\n\n\tcase \"Post.text\":\n\t\tif e.complexity.Post.Text == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Post.Text(childComplexity), true\n\n\tcase \"Post.title\":\n\t\tif e.complexity.Post.Title == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Post.Title(childComplexity), true\n\n\tcase \"Query.post\":\n\t\tif e.complexity.Query.Post == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_post_args(context.TODO(), rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.complexity.Query.Post(childComplexity, args[\"postID\"].(int64)), true\n\n\tcase \"Query.posts\":\n\t\tif e.complexity.Query.Posts == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Query.Posts(childComplexity), true\n\n\tcase \"Subscription.commentAdded\":\n\t\tif e.complexity.Subscription.CommentAdded == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Subscription_commentAdded_args(context.TODO(), rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.complexity.Subscription.CommentAdded(childComplexity, args[\"postID\"].(int64)), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := executionContext{opCtx, e, 0, 0, make(chan graphql.DeferredResult)}\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap(\n\t\tec.unmarshalInputNewComment,\n\t\tec.unmarshalInputNewPost,\n\t)\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.pendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.deferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.pendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.pendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\tcase ast.Mutation:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tif !first {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tfirst = false\n\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\tdata := ec._Mutation(ctx, opCtx.Operation.SelectionSet)\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\n\t\t\treturn &graphql.Response{\n\t\t\t\tData: buf.Bytes(),\n\t\t\t}\n\t\t}\n\tcase ast.Subscription:\n\t\tnext := ec._Subscription(ctx, opCtx.Operation.SelectionSet)\n\n\t\tvar buf bytes.Buffer\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tbuf.Reset()\n\t\t\tdata := next(ctx)\n\n\t\t\tif data == nil {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tdata.MarshalGQL(&buf)\n\n\t\t\treturn &graphql.Response{\n\t\t\t\tData: buf.Bytes(),\n\t\t\t}\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.OperationContext\n\t*executableSchema\n\tdeferred        int32\n\tpendingDeferred int32\n\tdeferredResults chan graphql.DeferredResult\n}\n\nfunc (ec *executionContext) processDeferredGroup(dg graphql.DeferredGroup) {\n\tatomic.AddInt32(&ec.pendingDeferred, 1)\n\tgo func() {\n\t\tctx := graphql.WithFreshResponseContext(dg.Context)\n\t\tdg.FieldSet.Dispatch(ctx)\n\t\tds := graphql.DeferredResult{\n\t\t\tPath:   dg.Path,\n\t\t\tLabel:  dg.Label,\n\t\t\tResult: dg.FieldSet,\n\t\t\tErrors: graphql.GetErrors(ctx),\n\t\t}\n\t\t// null fields should bubble up\n\t\tif dg.FieldSet.Invalids > 0 {\n\t\t\tds.Result = graphql.Null\n\t\t}\n\t\tec.deferredResults <- ds\n\t}()\n}\n\nfunc (ec *executionContext) introspectSchema() (*introspection.Schema, error) {\n\tif ec.DisableIntrospection {\n\t\treturn nil, errors.New(\"introspection disabled\")\n\t}\n\treturn introspection.WrapSchema(ec.Schema()), nil\n}\n\nfunc (ec *executionContext) introspectType(name string) (*introspection.Type, error) {\n\tif ec.DisableIntrospection {\n\t\treturn nil, errors.New(\"introspection disabled\")\n\t}\n\treturn introspection.WrapTypeFromDef(ec.Schema(), ec.Schema().Types[name]), nil\n}\n\n//go:embed \"schema.graphqls\"\nvar sourcesFS embed.FS\n\nfunc sourceData(filename string) string {\n\tdata, err := sourcesFS.ReadFile(filename)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"codegen problem: %s not available\", filename))\n\t}\n\treturn string(data)\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"schema.graphqls\", Input: sourceData(\"schema.graphqls\"), BuiltIn: false},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_Comment_replies_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field_Comment_replies_argsFirst(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"first\"] = arg0\n\targ1, err := ec.field_Comment_replies_argsAfter(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"after\"] = arg1\n\treturn args, nil\n}\nfunc (ec *executionContext) field_Comment_replies_argsFirst(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (*int32, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"first\"))\n\tif tmp, ok := rawArgs[\"first\"]; ok {\n\t\treturn ec.unmarshalOInt2ᚖint32(ctx, tmp)\n\t}\n\n\tvar zeroVal *int32\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field_Comment_replies_argsAfter(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (*string, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"after\"))\n\tif tmp, ok := rawArgs[\"after\"]; ok {\n\t\treturn ec.unmarshalOString2ᚖstring(ctx, tmp)\n\t}\n\n\tvar zeroVal *string\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field_Mutation_addComment_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field_Mutation_addComment_argsCommentInput(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"commentInput\"] = arg0\n\treturn args, nil\n}\nfunc (ec *executionContext) field_Mutation_addComment_argsCommentInput(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (model.NewComment, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"commentInput\"))\n\tif tmp, ok := rawArgs[\"commentInput\"]; ok {\n\t\treturn ec.unmarshalNNewComment2githubᚗcomᚋnabishecᚋozon_habr_apiᚋgraphᚋmodelᚐNewComment(ctx, tmp)\n\t}\n\n\tvar zeroVal model.NewComment\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field_Mutation_addPost_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field_Mutation_addPost_argsPostInput(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"postInput\"] = arg0\n\treturn args, nil\n}\nfunc (ec *executionContext) field_Mutation_addPost_argsPostInput(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (model.NewPost, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"postInput\"))\n\tif tmp, ok := rawArgs[\"postInput\"]; ok {\n\t\treturn ec.unmarshalNNewPost2githubᚗcomᚋnabishecᚋozon_habr_apiᚋgraphᚋmodelᚐNewPost(ctx, tmp)\n\t}\n\n\tvar zeroVal model.NewPost\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field_Mutation_updateEnableComment_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field_Mutation_updateEnableComment_argsPostID(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"postID\"] = arg0\n\targ1, err := ec.field_Mutation_updateEnableComment_argsAuthorID(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"authorID\"] = arg1\n\targ2, err := ec.field_Mutation_updateEnableComment_argsCommentsEnabled(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"commentsEnabled\"] = arg2\n\treturn args, nil\n}\nfunc (ec *executionContext) field_Mutation_updateEnableComment_argsPostID(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (int64, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"postID\"))\n\tif tmp, ok := rawArgs[\"postID\"]; ok {\n\t\treturn ec.unmarshalNInt642int64(ctx, tmp)\n\t}\n\n\tvar zeroVal int64\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field_Mutation_updateEnableComment_argsAuthorID(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (uuid.UUID, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"authorID\"))\n\tif tmp, ok := rawArgs[\"authorID\"]; ok {\n\t\treturn ec.unmarshalNUUID2githubᚗcomᚋgoogleᚋuuidᚐUUID(ctx, tmp)\n\t}\n\n\tvar zeroVal uuid.UUID\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field_Mutation_updateEnableComment_argsCommentsEnabled(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (bool, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"commentsEnabled\"))\n\tif tmp, ok := rawArgs[\"commentsEnabled\"]; ok {\n\t\treturn ec.unmarshalNBoolean2bool(ctx, tmp)\n\t}\n\n\tvar zeroVal bool\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field_Post_comments_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field_Post_comments_argsFirst(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"first\"] = arg0\n\targ1, err := ec.field_Post_comments_argsAfter(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"after\"] = arg1\n\treturn args, nil\n}\nfunc (ec *executionContext) field_Post_comments_argsFirst(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (*int32, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"first\"))\n\tif tmp, ok := rawArgs[\"first\"]; ok {\n\t\treturn ec.unmarshalOInt2ᚖint32(ctx, tmp)\n\t}\n\n\tvar zeroVal *int32\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field_Post_comments_argsAfter(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (*string, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"after\"))\n\tif tmp, ok := rawArgs[\"after\"]; ok {\n\t\treturn ec.unmarshalOString2ᚖstring(ctx, tmp)\n\t}\n\n\tvar zeroVal *string\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field_Query___type_argsName(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\nfunc (ec *executionContext) field_Query___type_argsName(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (string, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"name\"))\n\tif tmp, ok := rawArgs[\"name\"]; ok {\n\t\treturn ec.unmarshalNString2string(ctx, tmp)\n\t}\n\n\tvar zeroVal string\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field_Query_post_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field_Query_post_argsPostID(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"postID\"] = arg0\n\treturn args, nil\n}\nfunc (ec *executionContext) field_Query_post_argsPostID(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (int64, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"postID\"))\n\tif tmp, ok := rawArgs[\"postID\"]; ok {\n\t\treturn ec.unmarshalNInt642int64(ctx, tmp)\n\t}\n\n\tvar zeroVal int64\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field_Subscription_commentAdded_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field_Subscription_commentAdded_argsPostID(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"postID\"] = arg0\n\treturn args, nil\n}\nfunc (ec *executionContext) field_Subscription_commentAdded_argsPostID(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (int64, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"postID\"))\n\tif tmp, ok := rawArgs[\"postID\"]; ok {\n\t\treturn ec.unmarshalNInt642int64(ctx, tmp)\n\t}\n\n\tvar zeroVal int64\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field___Directive_args_argsIncludeDeprecated(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\nfunc (ec *executionContext) field___Directive_args_argsIncludeDeprecated(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (*bool, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"includeDeprecated\"))\n\tif tmp, ok := rawArgs[\"includeDeprecated\"]; ok {\n\t\treturn ec.unmarshalOBoolean2ᚖbool(ctx, tmp)\n\t}\n\n\tvar zeroVal *bool\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field___Field_args_argsIncludeDeprecated(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\nfunc (ec *executionContext) field___Field_args_argsIncludeDeprecated(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (*bool, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"includeDeprecated\"))\n\tif tmp, ok := rawArgs[\"includeDeprecated\"]; ok {\n\t\treturn ec.unmarshalOBoolean2ᚖbool(ctx, tmp)\n\t}\n\n\tvar zeroVal *bool\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field___Type_enumValues_argsIncludeDeprecated(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\nfunc (ec *executionContext) field___Type_enumValues_argsIncludeDeprecated(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (bool, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"includeDeprecated\"))\n\tif tmp, ok := rawArgs[\"includeDeprecated\"]; ok {\n\t\treturn ec.unmarshalOBoolean2bool(ctx, tmp)\n\t}\n\n\tvar zeroVal bool\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field___Type_fields_argsIncludeDeprecated(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\nfunc (ec *executionContext) field___Type_fields_argsIncludeDeprecated(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (bool, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"includeDeprecated\"))\n\tif tmp, ok := rawArgs[\"includeDeprecated\"]; ok {\n\t\treturn ec.unmarshalOBoolean2bool(ctx, tmp)\n\t}\n\n\tvar zeroVal bool\n\treturn zeroVal, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Comment_id(ctx context.Context, field graphql.CollectedField, obj *model.Comment) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Comment_id(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.ID, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(int64)\n\tfc.Result = res\n\treturn ec.marshalNInt642int64(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Comment_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Comment\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int64 does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Comment_authorID(ctx context.Context, field graphql.CollectedField, obj *model.Comment) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Comment_authorID(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.AuthorID, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(uuid.UUID)\n\tfc.Result = res\n\treturn ec.marshalNUUID2githubᚗcomᚋgoogleᚋuuidᚐUUID(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Comment_authorID(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Comment\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type UUID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Comment_postID(ctx context.Context, field graphql.CollectedField, obj *model.Comment) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Comment_postID(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.PostID, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(int64)\n\tfc.Result = res\n\treturn ec.marshalNInt642int64(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Comment_postID(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Comment\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int64 does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Comment_parentID(ctx context.Context, field graphql.CollectedField, obj *model.Comment) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Comment_parentID(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.ParentID, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*int64)\n\tfc.Result = res\n\treturn ec.marshalOInt642ᚖint64(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Comment_parentID(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Comment\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int64 does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Comment_text(ctx context.Context, field graphql.CollectedField, obj *model.Comment) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Comment_text(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Text, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Comment_text(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Comment\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Comment_createDate(ctx context.Context, field graphql.CollectedField, obj *model.Comment) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Comment_createDate(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.CreateDate, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(time.Time)\n\tfc.Result = res\n\treturn ec.marshalNTime2timeᚐTime(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Comment_createDate(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Comment\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Time does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Comment_replies(ctx context.Context, field graphql.CollectedField, obj *model.Comment) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Comment_replies(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.resolvers.Comment().Replies(rctx, obj, fc.Args[\"first\"].(*int32), fc.Args[\"after\"].(*string))\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*model.CommentConnection)\n\tfc.Result = res\n\treturn ec.marshalOCommentConnection2ᚖgithubᚗcomᚋnabishecᚋozon_habr_apiᚋgraphᚋmodelᚐCommentConnection(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Comment_replies(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Comment\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"edges\":\n\t\t\t\treturn ec.fieldContext_CommentConnection_edges(ctx, field)\n\t\t\tcase \"pageInfo\":\n\t\t\t\treturn ec.fieldContext_CommentConnection_pageInfo(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type CommentConnection\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Comment_replies_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _CommentConnection_edges(ctx context.Context, field graphql.CollectedField, obj *model.CommentConnection) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_CommentConnection_edges(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Edges, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]*model.CommentEdge)\n\tfc.Result = res\n\treturn ec.marshalNCommentEdge2ᚕᚖgithubᚗcomᚋnabishecᚋozon_habr_apiᚋgraphᚋmodelᚐCommentEdgeᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_CommentConnection_edges(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"CommentConnection\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"node\":\n\t\t\t\treturn ec.fieldContext_CommentEdge_node(ctx, field)\n\t\t\tcase \"cursor\":\n\t\t\t\treturn ec.fieldContext_CommentEdge_cursor(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type CommentEdge\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _CommentConnection_pageInfo(ctx context.Context, field graphql.CollectedField, obj *model.CommentConnection) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_CommentConnection_pageInfo(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.PageInfo, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*model.PageInfo)\n\tfc.Result = res\n\treturn ec.marshalNPageInfo2ᚖgithubᚗcomᚋnabishecᚋozon_habr_apiᚋgraphᚋmodelᚐPageInfo(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_CommentConnection_pageInfo(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"CommentConnection\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"endCursor\":\n\t\t\t\treturn ec.fieldContext_PageInfo_endCursor(ctx, field)\n\t\t\tcase \"hasNextPage\":\n\t\t\t\treturn ec.fieldContext_PageInfo_hasNextPage(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type PageInfo\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _CommentEdge_node(ctx context.Context, field graphql.CollectedField, obj *model.CommentEdge) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_CommentEdge_node(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Node, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*model.Comment)\n\tfc.Result = res\n\treturn ec.marshalNComment2ᚖgithubᚗcomᚋnabishecᚋozon_habr_apiᚋgraphᚋmodelᚐComment(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_CommentEdge_node(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"CommentEdge\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Comment_id(ctx, field)\n\t\t\tcase \"authorID\":\n\t\t\t\treturn ec.fieldContext_Comment_authorID(ctx, field)\n\t\t\tcase \"postID\":\n\t\t\t\treturn ec.fieldContext_Comment_postID(ctx, field)\n\t\t\tcase \"parentID\":\n\t\t\t\treturn ec.fieldContext_Comment_parentID(ctx, field)\n\t\t\tcase \"text\":\n\t\t\t\treturn ec.fieldContext_Comment_text(ctx, field)\n\t\t\tcase \"createDate\":\n\t\t\t\treturn ec.fieldContext_Comment_createDate(ctx, field)\n\t\t\tcase \"replies\":\n\t\t\t\treturn ec.fieldContext_Comment_replies(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Comment\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _CommentEdge_cursor(ctx context.Context, field graphql.CollectedField, obj *model.CommentEdge) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_CommentEdge_cursor(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Cursor, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_CommentEdge_cursor(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"CommentEdge\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Mutation_addPost(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Mutation_addPost(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.resolvers.Mutation().AddPost(rctx, fc.Args[\"postInput\"].(model.NewPost))\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*model.Post)\n\tfc.Result = res\n\treturn ec.marshalNPost2ᚖgithubᚗcomᚋnabishecᚋozon_habr_apiᚋgraphᚋmodelᚐPost(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Mutation_addPost(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Mutation\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Post_id(ctx, field)\n\t\t\tcase \"authorID\":\n\t\t\t\treturn ec.fieldContext_Post_authorID(ctx, field)\n\t\t\tcase \"title\":\n\t\t\t\treturn ec.fieldContext_Post_title(ctx, field)\n\t\t\tcase \"text\":\n\t\t\t\treturn ec.fieldContext_Post_text(ctx, field)\n\t\t\tcase \"commentsEnabled\":\n\t\t\t\treturn ec.fieldContext_Post_commentsEnabled(ctx, field)\n\t\t\tcase \"comments\":\n\t\t\t\treturn ec.fieldContext_Post_comments(ctx, field)\n\t\t\tcase \"createDate\":\n\t\t\t\treturn ec.fieldContext_Post_createDate(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Post\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Mutation_addPost_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Mutation_addComment(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Mutation_addComment(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.resolvers.Mutation().AddComment(rctx, fc.Args[\"commentInput\"].(model.NewComment))\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*model.Comment)\n\tfc.Result = res\n\treturn ec.marshalNComment2ᚖgithubᚗcomᚋnabishecᚋozon_habr_apiᚋgraphᚋmodelᚐComment(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Mutation_addComment(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Mutation\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Comment_id(ctx, field)\n\t\t\tcase \"authorID\":\n\t\t\t\treturn ec.fieldContext_Comment_authorID(ctx, field)\n\t\t\tcase \"postID\":\n\t\t\t\treturn ec.fieldContext_Comment_postID(ctx, field)\n\t\t\tcase \"parentID\":\n\t\t\t\treturn ec.fieldContext_Comment_parentID(ctx, field)\n\t\t\tcase \"text\":\n\t\t\t\treturn ec.fieldContext_Comment_text(ctx, field)\n\t\t\tcase \"createDate\":\n\t\t\t\treturn ec.fieldContext_Comment_createDate(ctx, field)\n\t\t\tcase \"replies\":\n\t\t\t\treturn ec.fieldContext_Comment_replies(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Comment\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Mutation_addComment_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Mutation_updateEnableComment(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Mutation_updateEnableComment(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.resolvers.Mutation().UpdateEnableComment(rctx, fc.Args[\"postID\"].(int64), fc.Args[\"authorID\"].(uuid.UUID), fc.Args[\"commentsEnabled\"].(bool))\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*model.Post)\n\tfc.Result = res\n\treturn ec.marshalNPost2ᚖgithubᚗcomᚋnabishecᚋozon_habr_apiᚋgraphᚋmodelᚐPost(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Mutation_updateEnableComment(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Mutation\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Post_id(ctx, field)\n\t\t\tcase \"authorID\":\n\t\t\t\treturn ec.fieldContext_Post_authorID(ctx, field)\n\t\t\tcase \"title\":\n\t\t\t\treturn ec.fieldContext_Post_title(ctx, field)\n\t\t\tcase \"text\":\n\t\t\t\treturn ec.fieldContext_Post_text(ctx, field)\n\t\t\tcase \"commentsEnabled\":\n\t\t\t\treturn ec.fieldContext_Post_commentsEnabled(ctx, field)\n\t\t\tcase \"comments\":\n\t\t\t\treturn ec.fieldContext_Post_comments(ctx, field)\n\t\t\tcase \"createDate\":\n\t\t\t\treturn ec.fieldContext_Post_createDate(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Post\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Mutation_updateEnableComment_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PageInfo_endCursor(ctx context.Context, field graphql.CollectedField, obj *model.PageInfo) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_PageInfo_endCursor(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.EndCursor, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_PageInfo_endCursor(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PageInfo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PageInfo_hasNextPage(ctx context.Context, field graphql.CollectedField, obj *model.PageInfo) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_PageInfo_hasNextPage(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.HasNextPage, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalNBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_PageInfo_hasNextPage(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PageInfo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Post_id(ctx context.Context, field graphql.CollectedField, obj *model.Post) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Post_id(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.ID, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(int64)\n\tfc.Result = res\n\treturn ec.marshalNInt642int64(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Post_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     http.MethodPost,\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int64 does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Post_authorID(ctx context.Context, field graphql.CollectedField, obj *model.Post) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Post_authorID(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.AuthorID, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(uuid.UUID)\n\tfc.Result = res\n\treturn ec.marshalNUUID2githubᚗcomᚋgoogleᚋuuidᚐUUID(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Post_authorID(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     http.MethodPost,\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type UUID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Post_title(ctx context.Context, field graphql.CollectedField, obj *model.Post) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Post_title(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Title, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Post_title(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     http.MethodPost,\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Post_text(ctx context.Context, field graphql.CollectedField, obj *model.Post) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Post_text(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Text, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Post_text(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     http.MethodPost,\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Post_commentsEnabled(ctx context.Context, field graphql.CollectedField, obj *model.Post) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Post_commentsEnabled(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.CommentsEnabled, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalNBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Post_commentsEnabled(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     http.MethodPost,\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Post_comments(ctx context.Context, field graphql.CollectedField, obj *model.Post) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Post_comments(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.resolvers.Post().Comments(rctx, obj, fc.Args[\"first\"].(*int32), fc.Args[\"after\"].(*string))\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*model.CommentConnection)\n\tfc.Result = res\n\treturn ec.marshalOCommentConnection2ᚖgithubᚗcomᚋnabishecᚋozon_habr_apiᚋgraphᚋmodelᚐCommentConnection(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Post_comments(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     http.MethodPost,\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"edges\":\n\t\t\t\treturn ec.fieldContext_CommentConnection_edges(ctx, field)\n\t\t\tcase \"pageInfo\":\n\t\t\t\treturn ec.fieldContext_CommentConnection_pageInfo(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type CommentConnection\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Post_comments_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Post_createDate(ctx context.Context, field graphql.CollectedField, obj *model.Post) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Post_createDate(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.CreateDate, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(time.Time)\n\tfc.Result = res\n\treturn ec.marshalNTime2timeᚐTime(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Post_createDate(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     http.MethodPost,\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Time does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_posts(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Query_posts(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.resolvers.Query().Posts(rctx)\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]*model.Post)\n\tfc.Result = res\n\treturn ec.marshalNPost2ᚕᚖgithubᚗcomᚋnabishecᚋozon_habr_apiᚋgraphᚋmodelᚐPostᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Query_posts(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Post_id(ctx, field)\n\t\t\tcase \"authorID\":\n\t\t\t\treturn ec.fieldContext_Post_authorID(ctx, field)\n\t\t\tcase \"title\":\n\t\t\t\treturn ec.fieldContext_Post_title(ctx, field)\n\t\t\tcase \"text\":\n\t\t\t\treturn ec.fieldContext_Post_text(ctx, field)\n\t\t\tcase \"commentsEnabled\":\n\t\t\t\treturn ec.fieldContext_Post_commentsEnabled(ctx, field)\n\t\t\tcase \"comments\":\n\t\t\t\treturn ec.fieldContext_Post_comments(ctx, field)\n\t\t\tcase \"createDate\":\n\t\t\t\treturn ec.fieldContext_Post_createDate(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Post\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_post(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Query_post(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.resolvers.Query().Post(rctx, fc.Args[\"postID\"].(int64))\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*model.Post)\n\tfc.Result = res\n\treturn ec.marshalOPost2ᚖgithubᚗcomᚋnabishecᚋozon_habr_apiᚋgraphᚋmodelᚐPost(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Query_post(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Post_id(ctx, field)\n\t\t\tcase \"authorID\":\n\t\t\t\treturn ec.fieldContext_Post_authorID(ctx, field)\n\t\t\tcase \"title\":\n\t\t\t\treturn ec.fieldContext_Post_title(ctx, field)\n\t\t\tcase \"text\":\n\t\t\t\treturn ec.fieldContext_Post_text(ctx, field)\n\t\t\tcase \"commentsEnabled\":\n\t\t\t\treturn ec.fieldContext_Post_commentsEnabled(ctx, field)\n\t\t\tcase \"comments\":\n\t\t\t\treturn ec.fieldContext_Post_comments(ctx, field)\n\t\t\tcase \"createDate\":\n\t\t\t\treturn ec.fieldContext_Post_createDate(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Post\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_post_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Query___type(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.introspectType(fc.Args[\"name\"].(string))\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Query___schema(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.introspectSchema()\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Schema)\n\tfc.Result = res\n\treturn ec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Subscription_commentAdded(ctx context.Context, field graphql.CollectedField) (ret func(ctx context.Context) graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Subscription_commentAdded(ctx, field)\n\tif err != nil {\n\t\treturn nil\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = nil\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.resolvers.Subscription().CommentAdded(rctx, fc.Args[\"postID\"].(int64))\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn nil\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn nil\n\t}\n\treturn func(ctx context.Context) graphql.Marshaler {\n\t\tselect {\n\t\tcase res, ok := <-resTmp.(<-chan *model.Comment):\n\t\t\tif !ok {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\treturn graphql.WriterFunc(func(w io.Writer) {\n\t\t\t\tw.Write([]byte{'{'})\n\t\t\t\tgraphql.MarshalString(field.Alias).MarshalGQL(w)\n\t\t\t\tw.Write([]byte{':'})\n\t\t\t\tec.marshalNComment2ᚖgithubᚗcomᚋnabishecᚋozon_habr_apiᚋgraphᚋmodelᚐComment(ctx, field.Selections, res).MarshalGQL(w)\n\t\t\t\tw.Write([]byte{'}'})\n\t\t\t})\n\t\tcase <-ctx.Done():\n\t\t\treturn nil\n\t\t}\n\t}\n}\n\nfunc (ec *executionContext) fieldContext_Subscription_commentAdded(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Subscription\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Comment_id(ctx, field)\n\t\t\tcase \"authorID\":\n\t\t\t\treturn ec.fieldContext_Comment_authorID(ctx, field)\n\t\t\tcase \"postID\":\n\t\t\t\treturn ec.fieldContext_Comment_postID(ctx, field)\n\t\t\tcase \"parentID\":\n\t\t\t\treturn ec.fieldContext_Comment_parentID(ctx, field)\n\t\t\tcase \"text\":\n\t\t\t\treturn ec.fieldContext_Comment_text(ctx, field)\n\t\t\tcase \"createDate\":\n\t\t\t\treturn ec.fieldContext_Comment_createDate(ctx, field)\n\t\t\tcase \"replies\":\n\t\t\t\treturn ec.fieldContext_Comment_replies(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Comment\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Subscription_commentAdded_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_locations(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Locations, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]string)\n\tfc.Result = res\n\treturn ec.marshalN__DirectiveLocation2ᚕstringᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_args(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Args, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.InputValue)\n\tfc.Result = res\n\treturn ec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_isRepeatable(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.IsRepeatable, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalNBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___EnumValue_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___EnumValue_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.IsDeprecated(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalNBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.DeprecationReason(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_args(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Args, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.InputValue)\n\tfc.Result = res\n\treturn ec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_type(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Type, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_isDeprecated(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.IsDeprecated(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalNBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_deprecationReason(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.DeprecationReason(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_type(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Type, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_defaultValue(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.DefaultValue, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.IsDeprecated(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalNBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.DeprecationReason(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_types(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Types(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_queryType(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.QueryType(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_mutationType(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.MutationType(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_subscriptionType(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.SubscriptionType(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_directives(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Directives(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Directive)\n\tfc.Result = res\n\treturn ec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_kind(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Kind(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalN__TypeKind2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_fields(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Field)\n\tfc.Result = res\n\treturn ec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_interfaces(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Interfaces(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_possibleTypes(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.PossibleTypes(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_enumValues(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.EnumValue)\n\tfc.Result = res\n\treturn ec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_inputFields(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.InputFields(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.InputValue)\n\tfc.Result = res\n\treturn ec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_ofType(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.OfType(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_specifiedByURL(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.SpecifiedByURL(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_isOneOf(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.IsOneOf(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalOBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalInputNewComment(ctx context.Context, obj any) (model.NewComment, error) {\n\tvar it model.NewComment\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"authorID\", \"postID\", \"parentID\", \"text\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"authorID\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"authorID\"))\n\t\t\tdata, err := ec.unmarshalNUUID2githubᚗcomᚋgoogleᚋuuidᚐUUID(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.AuthorID = data\n\t\tcase \"postID\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"postID\"))\n\t\t\tdata, err := ec.unmarshalNInt642int64(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.PostID = data\n\t\tcase \"parentID\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"parentID\"))\n\t\t\tdata, err := ec.unmarshalOInt642ᚖint64(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.ParentID = data\n\t\tcase \"text\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"text\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Text = data\n\t\t}\n\t}\n\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputNewPost(ctx context.Context, obj any) (model.NewPost, error) {\n\tvar it model.NewPost\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"authorID\", \"title\", \"text\", \"commentsEnabled\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"authorID\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"authorID\"))\n\t\t\tdata, err := ec.unmarshalNUUID2githubᚗcomᚋgoogleᚋuuidᚐUUID(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.AuthorID = data\n\t\tcase \"title\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"title\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Title = data\n\t\tcase \"text\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"text\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Text = data\n\t\tcase \"commentsEnabled\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"commentsEnabled\"))\n\t\t\tdata, err := ec.unmarshalNBoolean2bool(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.CommentsEnabled = data\n\t\t}\n\t}\n\n\treturn it, nil\n}\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar commentImplementors = []string{\"Comment\"}\n\nfunc (ec *executionContext) _Comment(ctx context.Context, sel ast.SelectionSet, obj *model.Comment) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, commentImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Comment\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._Comment_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"authorID\":\n\t\t\tout.Values[i] = ec._Comment_authorID(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"postID\":\n\t\t\tout.Values[i] = ec._Comment_postID(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"parentID\":\n\t\t\tout.Values[i] = ec._Comment_parentID(ctx, field, obj)\n\t\tcase \"text\":\n\t\t\tout.Values[i] = ec._Comment_text(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"createDate\":\n\t\t\tout.Values[i] = ec._Comment_createDate(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"replies\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Comment_replies(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar commentConnectionImplementors = []string{\"CommentConnection\"}\n\nfunc (ec *executionContext) _CommentConnection(ctx context.Context, sel ast.SelectionSet, obj *model.CommentConnection) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, commentConnectionImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"CommentConnection\")\n\t\tcase \"edges\":\n\t\t\tout.Values[i] = ec._CommentConnection_edges(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"pageInfo\":\n\t\t\tout.Values[i] = ec._CommentConnection_pageInfo(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar commentEdgeImplementors = []string{\"CommentEdge\"}\n\nfunc (ec *executionContext) _CommentEdge(ctx context.Context, sel ast.SelectionSet, obj *model.CommentEdge) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, commentEdgeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"CommentEdge\")\n\t\tcase \"node\":\n\t\t\tout.Values[i] = ec._CommentEdge_node(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"cursor\":\n\t\t\tout.Values[i] = ec._CommentEdge_cursor(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar mutationImplementors = []string{\"Mutation\"}\n\nfunc (ec *executionContext) _Mutation(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, mutationImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Mutation\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Mutation\")\n\t\tcase \"addPost\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Mutation_addPost(ctx, field)\n\t\t\t})\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"addComment\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Mutation_addComment(ctx, field)\n\t\t\t})\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"updateEnableComment\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Mutation_updateEnableComment(ctx, field)\n\t\t\t})\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar pageInfoImplementors = []string{\"PageInfo\"}\n\nfunc (ec *executionContext) _PageInfo(ctx context.Context, sel ast.SelectionSet, obj *model.PageInfo) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, pageInfoImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"PageInfo\")\n\t\tcase \"endCursor\":\n\t\t\tout.Values[i] = ec._PageInfo_endCursor(ctx, field, obj)\n\t\tcase \"hasNextPage\":\n\t\t\tout.Values[i] = ec._PageInfo_hasNextPage(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar postImplementors = []string{http.MethodPost}\n\nfunc (ec *executionContext) _Post(ctx context.Context, sel ast.SelectionSet, obj *model.Post) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, postImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(http.MethodPost)\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._Post_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"authorID\":\n\t\t\tout.Values[i] = ec._Post_authorID(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"title\":\n\t\t\tout.Values[i] = ec._Post_title(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"text\":\n\t\t\tout.Values[i] = ec._Post_text(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"commentsEnabled\":\n\t\t\tout.Values[i] = ec._Post_commentsEnabled(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"comments\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Post_comments(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"createDate\":\n\t\t\tout.Values[i] = ec._Post_createDate(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"posts\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_posts(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase http.MethodPost:\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_post(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar subscriptionImplementors = []string{\"Subscription\"}\n\nfunc (ec *executionContext) _Subscription(ctx context.Context, sel ast.SelectionSet) func(ctx context.Context) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, subscriptionImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Subscription\",\n\t})\n\tif len(fields) != 1 {\n\t\tec.Errorf(ctx, \"must subscribe to exactly one stream\")\n\t\treturn nil\n\t}\n\n\tswitch fields[0].Name {\n\tcase \"commentAdded\":\n\t\treturn ec._Subscription_commentAdded(ctx, fields[0])\n\tdefault:\n\t\tpanic(\"unknown field \" + strconv.Quote(fields[0].Name))\n\t}\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNComment2githubᚗcomᚋnabishecᚋozon_habr_apiᚋgraphᚋmodelᚐComment(ctx context.Context, sel ast.SelectionSet, v model.Comment) graphql.Marshaler {\n\treturn ec._Comment(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNComment2ᚖgithubᚗcomᚋnabishecᚋozon_habr_apiᚋgraphᚋmodelᚐComment(ctx context.Context, sel ast.SelectionSet, v *model.Comment) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Comment(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNCommentEdge2ᚕᚖgithubᚗcomᚋnabishecᚋozon_habr_apiᚋgraphᚋmodelᚐCommentEdgeᚄ(ctx context.Context, sel ast.SelectionSet, v []*model.CommentEdge) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalNCommentEdge2ᚖgithubᚗcomᚋnabishecᚋozon_habr_apiᚋgraphᚋmodelᚐCommentEdge(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalNCommentEdge2ᚖgithubᚗcomᚋnabishecᚋozon_habr_apiᚋgraphᚋmodelᚐCommentEdge(ctx context.Context, sel ast.SelectionSet, v *model.CommentEdge) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._CommentEdge(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNInt642int64(ctx context.Context, v any) (int64, error) {\n\tres, err := graphql.UnmarshalInt64(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNInt642int64(ctx context.Context, sel ast.SelectionSet, v int64) graphql.Marshaler {\n\tres := graphql.MarshalInt64(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNNewComment2githubᚗcomᚋnabishecᚋozon_habr_apiᚋgraphᚋmodelᚐNewComment(ctx context.Context, v any) (model.NewComment, error) {\n\tres, err := ec.unmarshalInputNewComment(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalNNewPost2githubᚗcomᚋnabishecᚋozon_habr_apiᚋgraphᚋmodelᚐNewPost(ctx context.Context, v any) (model.NewPost, error) {\n\tres, err := ec.unmarshalInputNewPost(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNPageInfo2ᚖgithubᚗcomᚋnabishecᚋozon_habr_apiᚋgraphᚋmodelᚐPageInfo(ctx context.Context, sel ast.SelectionSet, v *model.PageInfo) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._PageInfo(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNPost2githubᚗcomᚋnabishecᚋozon_habr_apiᚋgraphᚋmodelᚐPost(ctx context.Context, sel ast.SelectionSet, v model.Post) graphql.Marshaler {\n\treturn ec._Post(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNPost2ᚕᚖgithubᚗcomᚋnabishecᚋozon_habr_apiᚋgraphᚋmodelᚐPostᚄ(ctx context.Context, sel ast.SelectionSet, v []*model.Post) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalNPost2ᚖgithubᚗcomᚋnabishecᚋozon_habr_apiᚋgraphᚋmodelᚐPost(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalNPost2ᚖgithubᚗcomᚋnabishecᚋozon_habr_apiᚋgraphᚋmodelᚐPost(ctx context.Context, sel ast.SelectionSet, v *model.Post) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Post(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNTime2timeᚐTime(ctx context.Context, v any) (time.Time, error) {\n\tres, err := graphql.UnmarshalTime(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNTime2timeᚐTime(ctx context.Context, sel ast.SelectionSet, v time.Time) graphql.Marshaler {\n\tres := graphql.MarshalTime(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNUUID2githubᚗcomᚋgoogleᚋuuidᚐUUID(ctx context.Context, v any) (uuid.UUID, error) {\n\tres, err := graphql.UnmarshalUUID(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNUUID2githubᚗcomᚋgoogleᚋuuidᚐUUID(ctx context.Context, sel ast.SelectionSet, v uuid.UUID) graphql.Marshaler {\n\tres := graphql.MarshalUUID(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tif v != nil {\n\t\tvSlice = graphql.CoerceList(v)\n\t}\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalOCommentConnection2ᚖgithubᚗcomᚋnabishecᚋozon_habr_apiᚋgraphᚋmodelᚐCommentConnection(ctx context.Context, sel ast.SelectionSet, v *model.CommentConnection) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._CommentConnection(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOInt2ᚖint32(ctx context.Context, v any) (*int32, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalInt32(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOInt2ᚖint32(ctx context.Context, sel ast.SelectionSet, v *int32) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tres := graphql.MarshalInt32(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOInt642ᚖint64(ctx context.Context, v any) (*int64, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalInt64(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOInt642ᚖint64(ctx context.Context, sel ast.SelectionSet, v *int64) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tres := graphql.MarshalInt64(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalOPost2ᚖgithubᚗcomᚋnabishecᚋozon_habr_apiᚋgraphᚋmodelᚐPost(ctx context.Context, sel ast.SelectionSet, v *model.Post) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Post(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "_examples/mini-habr-with-subscriptions/graph/model/models_gen.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage model\n\nimport (\n\t\"time\"\n\n\t\"github.com/google/uuid\"\n)\n\ntype Comment struct {\n\tID         int64              `json:\"id\"`\n\tAuthorID   uuid.UUID          `json:\"authorID\"`\n\tPostID     int64              `json:\"postID\"`\n\tParentID   *int64             `json:\"parentID,omitempty\"`\n\tText       string             `json:\"text\"`\n\tCreateDate time.Time          `json:\"createDate\"`\n\tReplies    *CommentConnection `json:\"replies,omitempty\"`\n}\n\ntype CommentConnection struct {\n\tEdges    []*CommentEdge `json:\"edges\"`\n\tPageInfo *PageInfo      `json:\"pageInfo\"`\n}\n\ntype CommentEdge struct {\n\tNode   *Comment `json:\"node\"`\n\tCursor string   `json:\"cursor\"`\n}\n\ntype Mutation struct {\n}\n\ntype NewComment struct {\n\tAuthorID uuid.UUID `json:\"authorID\"`\n\tPostID   int64     `json:\"postID\"`\n\tParentID *int64    `json:\"parentID,omitempty\"`\n\tText     string    `json:\"text\"`\n}\n\ntype NewPost struct {\n\tAuthorID        uuid.UUID `json:\"authorID\"`\n\tTitle           string    `json:\"title\"`\n\tText            string    `json:\"text\"`\n\tCommentsEnabled bool      `json:\"commentsEnabled\"`\n}\n\ntype PageInfo struct {\n\tEndCursor   *string `json:\"endCursor,omitempty\"`\n\tHasNextPage bool    `json:\"hasNextPage\"`\n}\n\ntype Post struct {\n\tID              int64              `json:\"id\"`\n\tAuthorID        uuid.UUID          `json:\"authorID\"`\n\tTitle           string             `json:\"title\"`\n\tText            string             `json:\"text\"`\n\tCommentsEnabled bool               `json:\"commentsEnabled\"`\n\tComments        *CommentConnection `json:\"comments,omitempty\"`\n\tCreateDate      time.Time          `json:\"createDate\"`\n}\n\ntype Query struct {\n}\n\ntype Subscription struct {\n}\n"
  },
  {
    "path": "_examples/mini-habr-with-subscriptions/graph/resolver.go",
    "content": "package graph\n\nimport (\n\tcommentmutation \"github.com/gqlgen/_examples/mini-habr-with-subscriptions/internal/handlers/comment_mutation\"\n\tcommentquery \"github.com/gqlgen/_examples/mini-habr-with-subscriptions/internal/handlers/comment_query\"\n\tpostmutation \"github.com/gqlgen/_examples/mini-habr-with-subscriptions/internal/handlers/post_mutation\"\n\tpostquery \"github.com/gqlgen/_examples/mini-habr-with-subscriptions/internal/handlers/post_query\"\n)\n\n// This file will not be regenerated automatically.\n//\n// It serves as dependency injection for your app, add any dependencies you require here.\n\ntype Resolver struct {\n\tPostMutation    *postmutation.PostMutation\n\tPostQuery       *postquery.PostQuery\n\tCommentMutation *commentmutation.CommentMutation\n\tCommentQuery    *commentquery.CommentQuery\n\tSubscribers     *Subscribers\n}\n\nfunc NewResolver(\n\tpostMutation *postmutation.PostMutation,\n\tpostQuery *postquery.PostQuery,\n\tcommentMutation *commentmutation.CommentMutation,\n\tcommentQuery *commentquery.CommentQuery,\n) *Resolver {\n\treturn &Resolver{\n\t\tPostMutation:    postMutation,\n\t\tPostQuery:       postQuery,\n\t\tCommentMutation: commentMutation,\n\t\tCommentQuery:    commentQuery,\n\t\tSubscribers:     NewSubscribers(),\n\t}\n}\n"
  },
  {
    "path": "_examples/mini-habr-with-subscriptions/graph/schema.graphqls",
    "content": "# GraphQL schema example\n#\n# https://gqlgen.com/getting-started/\n\nscalar Time\nscalar UUID\nscalar Int64 \n\ntype Post {\n  id: Int64!\n  authorID: UUID!\n  title: String!\n  text: String!\n  commentsEnabled: Boolean!\n  comments(first: Int, after: String): CommentConnection @goField(forceResolver: true)\n  createDate: Time!\n}\n\ntype CommentConnection {\n  edges: [CommentEdge!]!\n  pageInfo: PageInfo!\n}\n\ntype CommentEdge {\n  node: Comment!\n  cursor: String!\n}\n\ntype PageInfo {\n  endCursor: String\n  hasNextPage: Boolean!\n}\n\ntype Comment {\n  id: Int64!\n  authorID: UUID!\n  postID: Int64!\n  parentID: Int64\n  text: String!\n  createDate: Time!\n  replies(first: Int, after: String): CommentConnection @goField(forceResolver: true)\n}\n\ntype Query {\n  posts: [Post!]!\n  post(postID: Int64!): Post\n}\n\ninput NewPost {\n  authorID: UUID!\n  title: String!\n  text: String!\n  commentsEnabled: Boolean!\n}\n\ninput NewComment {\n  authorID: UUID!\n  postID: Int64!\n  parentID: Int64\n  text: String!\n}\n\ntype Mutation {\n  addPost(postInput: NewPost!): Post!\n  addComment(commentInput: NewComment!): Comment!\n  updateEnableComment(postID: Int64!, authorID: UUID!, commentsEnabled: Boolean!): Post!\n}\n\ntype Subscription {\n  commentAdded(postID: Int64!): Comment!\n}\n\ndirective @goField(\n\tforceResolver: Boolean\n\tname: String\n\tomittable: Boolean\n) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION"
  },
  {
    "path": "_examples/mini-habr-with-subscriptions/graph/schema.resolvers.go",
    "content": "package graph\n\n// This file will be automatically regenerated based on the schema, any resolver implementations\n// will be copied through when generating and any unknown code will be moved to the end.\n// Code generated by github.com/99designs/gqlgen version v0.17.66\n\nimport (\n\t\"context\"\n\t\"errors\"\n\n\t\"github.com/google/uuid\"\n\t\"github.com/gqlgen/_examples/mini-habr-with-subscriptions/graph/model\"\n\tinternalmodel \"github.com/gqlgen/_examples/mini-habr-with-subscriptions/internal/model\"\n\t\"github.com/gqlgen/_examples/mini-habr-with-subscriptions/internal/pkg/cursor\"\n\t\"github.com/gqlgen/_examples/mini-habr-with-subscriptions/internal/pkg/errs\"\n\t\"github.com/rs/zerolog/log\"\n)\n\n// Replies is the resolver for the replies field.\nfunc (r *commentResolver) Replies(\n\tctx context.Context,\n\tobj *model.Comment,\n\tfirst *int32,\n\tafter *string,\n) (*model.CommentConnection, error) {\n\tconst op = \"graph.Replies()\"\n\n\tlog.Debug().Msgf(\"%s start\", op)\n\n\tvar path string\n\tvar err error\n\tif after != nil {\n\t\terr = cursor.ValidateAfter(after)\n\t\tif err != nil {\n\t\t\treturn nil, errors.New(\"invalid after\")\n\t\t}\n\n\t\tpath, err = cursor.GetPath(after)\n\t\tif err != nil {\n\t\t\treturn nil, errors.New(\"invalid after\")\n\t\t}\n\t} else {\n\t\tpath, err = r.CommentQuery.GetPathToComments(obj.ID)\n\t\tif err != nil {\n\t\t\tif err != errs.ErrCommentsNotExist {\n\t\t\t\terr = errors.New(\"internal server error\")\n\t\t\t}\n\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tinternalCommentsBranch, err := r.CommentQuery.GetCommentsBranchToPost(obj.PostID, path)\n\tif err != nil {\n\t\tif err != errs.ErrCommentsNotExist {\n\t\t\tif err == errs.ErrPathNotExist {\n\t\t\t\treturn nil, nil // it works when there are no replies to the comment.\n\t\t\t}\n\t\t\terr = errors.New(\"internal server error\")\n\t\t}\n\t\treturn nil, err\n\n\t}\n\n\tcommentBranch, err := paginateInternalBranch(internalCommentsBranch, first, after)\n\n\tlog.Debug().Msgf(\"%s end\", op)\n\n\treturn commentBranch, nil\n}\n\n// AddPost is the resolver for the addPost field.\nfunc (r *mutationResolver) AddPost(\n\tctx context.Context,\n\tpostInput model.NewPost,\n) (*model.Post, error) {\n\tconst op = \"graph.AddPost()\"\n\n\tlog.Debug().Msgf(\"%s start\", op)\n\n\tnewPost := newPostToInternalModel(&postInput)\n\tpost, err := r.PostMutation.AddPost(newPost)\n\tif err != nil {\n\t\tlog.Error().Err(err).Msgf(\"%s end with error\", op)\n\n\t\treturn nil, errors.New(\"internal server error\")\n\t}\n\n\tlog.Debug().Msgf(\"%s end\", op)\n\treturn postFromInternalModel(post), err\n}\n\nfunc newPostToInternalModel(post *model.NewPost) *internalmodel.NewPost {\n\treturn &internalmodel.NewPost{\n\t\tAuthorID:        post.AuthorID,\n\t\tTitle:           post.Title,\n\t\tText:            post.Text,\n\t\tCommentsEnabled: post.CommentsEnabled,\n\t}\n}\n\nfunc postFromInternalModel(internalPost *internalmodel.Post) *model.Post {\n\treturn &model.Post{\n\t\tID:              internalPost.ID,\n\t\tAuthorID:        internalPost.AuthorID,\n\t\tTitle:           internalPost.Title,\n\t\tText:            internalPost.Text,\n\t\tCommentsEnabled: internalPost.CommentsEnabled,\n\t\tCreateDate:      internalPost.CreateDate,\n\t}\n}\n\n// AddComment is the resolver for the addComment field.\nfunc (r *mutationResolver) AddComment(\n\tctx context.Context,\n\tcommentInput model.NewComment,\n) (*model.Comment, error) {\n\tconst op = \"graph.AddComment()\"\n\n\tlog.Debug().Msgf(\"%s start\", op)\n\n\tnewInternalComment := newCommentToInternalModel(&commentInput)\n\tinternalComment, err := r.CommentMutation.AddComment(\n\t\tnewInternalComment.PostID,\n\t\tnewInternalComment,\n\t)\n\tif err != nil {\n\t\tif err != errs.ErrPostNotExist && err != errs.ErrParentCommentNotExist &&\n\t\t\terr != errs.ErrCommentsNotEnabled {\n\t\t\terr = errors.New(\"internal server error\")\n\t\t}\n\t\treturn nil, err\n\t}\n\n\tcomment := commentFromInternalModel(internalComment)\n\tr.Subscribers.Pub(commentInput.PostID, comment)\n\tlog.Debug().Msgf(\"%s end\", op)\n\treturn comment, nil\n}\n\nfunc newCommentToInternalModel(newComment *model.NewComment) *internalmodel.NewComment {\n\treturn &internalmodel.NewComment{\n\t\tAuthorID: newComment.AuthorID,\n\t\tPostID:   newComment.PostID,\n\t\tParentID: newComment.ParentID,\n\t\tText:     newComment.Text,\n\t}\n}\n\n// UpdateEnableComment is the resolver for the updateEnableComment field.\nfunc (r *mutationResolver) UpdateEnableComment(\n\tctx context.Context,\n\tpostID int64,\n\tauthorID uuid.UUID,\n\tcommentsEnabled bool,\n) (*model.Post, error) {\n\tconst op = \"graph.UpdateEnableComment()\"\n\n\tlog.Debug().Msgf(\"%s start\", op)\n\n\tpost, err := r.PostMutation.UpdateEnableCommentToPost(postID, authorID, commentsEnabled)\n\tif err != nil {\n\t\tlog.Error().Err(err).Msgf(\"%s end with error\", op)\n\t\tif err != errs.ErrPostNotExist && err != errs.ErrUnauthorizedAccess {\n\t\t\terr = errors.New(\"internal server error\")\n\t\t}\n\t\treturn nil, err\n\t}\n\n\tlog.Debug().Msgf(\"%s end\", op)\n\treturn postFromInternalModel(post), err\n}\n\n// Comments is the resolver for the comments field.\nfunc (r *postResolver) Comments(\n\tctx context.Context,\n\tobj *model.Post,\n\tfirst *int32,\n\tafter *string,\n) (*model.CommentConnection, error) {\n\tconst op = \"graph.Comments()\"\n\n\tlog.Debug().Msgf(\"%s start\", op)\n\n\tvar path string\n\tif after != nil {\n\t\terr := cursor.ValidateAfter(after)\n\t\tif err != nil {\n\t\t\treturn nil, errors.New(\"invalid after\")\n\t\t}\n\n\t\tpath, err = cursor.GetPath(after)\n\t\tif err != nil {\n\t\t\treturn nil, errors.New(\"invalid after\")\n\t\t}\n\t}\n\n\tinternalCommentsBranch, err := r.CommentQuery.GetCommentsBranchToPost(obj.ID, path)\n\tif err != nil {\n\t\tif err != errs.ErrCommentsNotExist && err != errs.ErrPathNotExist {\n\t\t\terr = errors.New(\"internal server error\")\n\t\t}\n\t\treturn nil, err\n\n\t}\n\n\tcommentBranch, err := paginateInternalBranch(internalCommentsBranch, first, after)\n\n\tlog.Debug().Msgf(\"%s end\", op)\n\n\treturn commentBranch, nil\n}\n\nconst defaultFirst int = 5\n\nfunc paginateInternalBranch(\n\tinternalComments []*internalmodel.Comment,\n\tfirstInput *int32,\n\tafter *string,\n) (*model.CommentConnection, error) {\n\tvar first int\n\tif firstInput == nil {\n\t\tfirst = defaultFirst\n\t} else {\n\t\tfirst = int(*firstInput)\n\t}\n\n\tedges := make([]*model.CommentEdge, 0, first)\n\n\tstart := false\n\tvar commentID int64\n\tvar err error\n\tif after != nil {\n\t\tcommentID, err = cursor.GetCommentID(after)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t} else {\n\t\tstart = true\n\t}\n\n\thasNextPage := false\n\tcounter := 0\n\tfor i, v := range internalComments {\n\t\tif v.ID == commentID && start == false {\n\t\t\tstart = true\n\t\t\tcontinue\n\t\t}\n\n\t\tif start == true {\n\t\t\tedges = append(edges, &model.CommentEdge{\n\t\t\t\tNode:   commentFromInternalModel(v),\n\t\t\t\tCursor: cursor.CreateCursorFromComment(v),\n\t\t\t})\n\t\t\tcounter += 1\n\t\t}\n\n\t\tif counter == first {\n\t\t\tif i+1 < len(internalComments) {\n\t\t\t\thasNextPage = true\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t}\n\tif start == false { // not found comment with commentID\n\t\treturn &model.CommentConnection{\n\t\t\tEdges:    []*model.CommentEdge{},\n\t\t\tPageInfo: &model.PageInfo{HasNextPage: false},\n\t\t}, nil\n\t}\n\tvar endCursor *string\n\tif len(edges) > 0 {\n\t\tendCursor = &edges[len(edges)-1].Cursor\n\t}\n\n\tpageInfo := &model.PageInfo{\n\t\tEndCursor:   endCursor,\n\t\tHasNextPage: hasNextPage,\n\t}\n\n\treturn &model.CommentConnection{\n\t\tEdges:    edges,\n\t\tPageInfo: pageInfo,\n\t}, nil\n}\n\nfunc commentFromInternalModel(internalComment *internalmodel.Comment) *model.Comment {\n\treturn &model.Comment{\n\t\tID:         internalComment.ID,\n\t\tAuthorID:   internalComment.AuthorID,\n\t\tPostID:     internalComment.PostID,\n\t\tParentID:   internalComment.ParentID,\n\t\tText:       internalComment.Text,\n\t\tCreateDate: internalComment.CreateDate,\n\t}\n}\n\n// Posts is the resolver for the posts field.\nfunc (r *queryResolver) Posts(ctx context.Context) ([]*model.Post, error) {\n\tconst op = \"graph.Posts()\"\n\n\tlog.Debug().Msgf(\"%s start\", op)\n\n\tinternalPosts, err := r.PostQuery.GetAllPosts()\n\tif err != nil {\n\t\tlog.Error().Err(err).Msgf(\"%s end with error\", op)\n\t\tif err != errs.ErrPostsNotExist {\n\t\t\terr = errors.New(\"internal server error\")\n\t\t}\n\t\treturn nil, err\n\t}\n\tposts := make([]*model.Post, len(internalPosts))\n\tfor i, v := range internalPosts {\n\t\tposts[i] = postFromInternalModel(v)\n\t}\n\n\tlog.Debug().Msgf(\"%s end\", op)\n\treturn posts, err\n}\n\n// Post is the resolver for the post field.\nfunc (r *queryResolver) Post(ctx context.Context, postID int64) (*model.Post, error) {\n\tconst op = \"graph.Post()\"\n\n\tlog.Debug().Msgf(\"%s start\", op)\n\n\tpostInternal, err := r.PostQuery.GetPost(postID)\n\tif err != nil {\n\t\tlog.Error().Err(err).Msgf(\"%s end with error\", op)\n\t\tif err != errs.ErrPostNotExist {\n\t\t\terr = errors.New(\"internal server error\")\n\t\t}\n\t\treturn nil, err\n\t}\n\n\tpost := postFromInternalModel(postInternal)\n\tlog.Debug().Msgf(\"%s end\", op)\n\treturn post, err\n}\n\n// CommentAdded is the resolver for the commentAdded field.\nfunc (r *subscriptionResolver) CommentAdded(\n\tctx context.Context,\n\tpostID int64,\n) (<-chan *model.Comment, error) {\n\tconst op = \"graph.CommentAdded()\"\n\tlog.Debug().Msgf(\"%s subscription init\", op)\n\tch := make(chan *model.Comment, 10)\n\n\tgo func() {\n\t\tdefer r.Subscribers.CloseSub(postID, ch)\n\n\t\tr.Subscribers.Sub(postID, ch)\n\t\tfor {\n\t\t\tselect {\n\t\t\tcase <-ctx.Done():\n\t\t\t\tlog.Debug().Msgf(\"%s subscription closed\", op)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}()\n\treturn ch, nil\n}\n\n// Comment returns CommentResolver implementation.\nfunc (r *Resolver) Comment() CommentResolver { return &commentResolver{r} }\n\n// Mutation returns MutationResolver implementation.\nfunc (r *Resolver) Mutation() MutationResolver { return &mutationResolver{r} }\n\n// Post returns PostResolver implementation.\nfunc (r *Resolver) Post() PostResolver { return &postResolver{r} }\n\n// Query returns QueryResolver implementation.\nfunc (r *Resolver) Query() QueryResolver { return &queryResolver{r} }\n\n// Subscription returns SubscriptionResolver implementation.\nfunc (r *Resolver) Subscription() SubscriptionResolver { return &subscriptionResolver{r} }\n\ntype (\n\tcommentResolver      struct{ *Resolver }\n\tmutationResolver     struct{ *Resolver }\n\tpostResolver         struct{ *Resolver }\n\tqueryResolver        struct{ *Resolver }\n\tsubscriptionResolver struct{ *Resolver }\n)\n"
  },
  {
    "path": "_examples/mini-habr-with-subscriptions/graph/subscription.go",
    "content": "package graph\n\nimport (\n\t\"slices\"\n\t\"sync\"\n\n\t\"github.com/gqlgen/_examples/mini-habr-with-subscriptions/graph/model\"\n)\n\ntype Subscribers struct {\n\tSubscribers map[int64][]chan *model.Comment\n\tmu          sync.Mutex\n}\n\nfunc NewSubscribers() *Subscribers {\n\treturn &Subscribers{\n\t\tSubscribers: make(map[int64][]chan *model.Comment), // on postID chans\n\t}\n}\n\nfunc (s *Subscribers) Pub(postID int64, comment *model.Comment) {\n\tdefer s.mu.Unlock()\n\ts.mu.Lock()\n\n\tchArray, ok := s.Subscribers[postID]\n\tif !ok {\n\t\treturn\n\t}\n\tvar activeChannels []chan *model.Comment\n\n\tfor _, ch := range chArray {\n\t\tfunc() {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tcloseChan(ch) // panic may be due to channel overflow\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tactiveChannels = append(activeChannels, ch)\n\t\t\t}()\n\t\t\tch <- comment\n\t\t}()\n\t}\n\n\tif len(activeChannels) < len(chArray) {\n\t\ts.Subscribers[postID] = activeChannels\n\t}\n}\n\nfunc (s *Subscribers) Sub(postID int64, ch chan *model.Comment) {\n\tdefer s.mu.Unlock()\n\ts.mu.Lock()\n\ts.Subscribers[postID] = append(s.Subscribers[postID], ch)\n}\n\nfunc (s *Subscribers) CloseSub(postID int64, ch chan *model.Comment) {\n\tdefer s.mu.Unlock()\n\ts.mu.Lock()\n\n\tif ch == nil {\n\t\treturn\n\t}\n\n\tif chArray, ok := s.Subscribers[postID]; ok {\n\t\tif idx := slices.Index(chArray, ch); idx != -1 {\n\t\t\tcloseChan(ch)\n\t\t\ts.Subscribers[postID] = slices.Delete(chArray, idx, idx+1)\n\t\t}\n\t}\n\n\tif len(s.Subscribers[postID]) == 0 {\n\t\tdelete(s.Subscribers, postID)\n\t}\n}\n\nfunc closeChan(ch chan *model.Comment) {\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\treturn\n\t\t}\n\t}()\n\tclose(ch)\n}\n"
  },
  {
    "path": "_examples/mini-habr-with-subscriptions/internal/handlers/comment_mutation/interface.go",
    "content": "package commentmutation\n\nimport (\n\t\"github.com/gqlgen/_examples/mini-habr-with-subscriptions/internal/model\"\n)\n\ntype CommentMutationImp interface {\n\tAddComment(postID int64, newComment *model.NewComment) (*model.Comment, error)\n}\n"
  },
  {
    "path": "_examples/mini-habr-with-subscriptions/internal/handlers/comment_mutation/mutations.go",
    "content": "package commentmutation\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/gqlgen/_examples/mini-habr-with-subscriptions/internal/model\"\n\t\"github.com/gqlgen/_examples/mini-habr-with-subscriptions/internal/pkg/errs\"\n\t\"github.com/rs/zerolog/log\"\n)\n\ntype CommentMutation struct {\n\tcommentMutationImp CommentMutationImp\n}\n\nfunc NewCommentMutation(commentMutationImp CommentMutationImp) *CommentMutation {\n\treturn &CommentMutation{commentMutationImp: commentMutationImp}\n}\n\nfunc (h *CommentMutation) AddComment(\n\tpostID int64,\n\tnewComment *model.NewComment,\n) (*model.Comment, error) {\n\top := \"internal.handlers.commentmutation.AddComment()\"\n\n\tlog.Debug().Msgf(\"%s start\", op)\n\n\tif len(newComment.Text) > 2000 || len(newComment.Text) <= 0 {\n\t\treturn nil, errs.ErrIncorrectCommentLength\n\t}\n\n\tcomment, err := h.commentMutationImp.AddComment(postID, newComment)\n\tif err != nil {\n\t\tif err == errs.ErrPostNotExist || err == errs.ErrParentCommentNotExist ||\n\t\t\terr == errs.ErrCommentsNotEnabled {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn nil, fmt.Errorf(\"%s:%w\", op, err)\n\t}\n\n\tlog.Debug().Msgf(\"%s end\", op)\n\treturn comment, nil\n}\n"
  },
  {
    "path": "_examples/mini-habr-with-subscriptions/internal/handlers/comment_query/interface.go",
    "content": "package commentquery\n\nimport (\n\t\"github.com/gqlgen/_examples/mini-habr-with-subscriptions/internal/model\"\n)\n\ntype CommentQueryImp interface {\n\tGetCommentsBranch(postID int64, path string) ([]*model.Comment, error)\n\tGetCommentPath(parentID int64) (string, error)\n}\n"
  },
  {
    "path": "_examples/mini-habr-with-subscriptions/internal/handlers/comment_query/query.go",
    "content": "package commentquery\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/gqlgen/_examples/mini-habr-with-subscriptions/internal/model\"\n\t\"github.com/gqlgen/_examples/mini-habr-with-subscriptions/internal/pkg/errs\"\n\t\"github.com/rs/zerolog/log\"\n)\n\ntype CommentQuery struct {\n\tcommentQueryImp CommentQueryImp\n}\n\nfunc NewCommentQuery(commentQueryImp CommentQueryImp) *CommentQuery {\n\treturn &CommentQuery{commentQueryImp: commentQueryImp}\n}\n\nfunc (h *CommentQuery) GetCommentsBranchToPost(\n\tpostID int64,\n\tpath string,\n) ([]*model.Comment, error) {\n\top := \"internal.handlers.commentquery.GetCommentsBranchToPost()\"\n\n\tlog.Debug().Msgf(\"%s start\", op)\n\n\tcomments, err := h.commentQueryImp.GetCommentsBranch(postID, path)\n\tif err != nil {\n\t\tif err == errs.ErrCommentsNotExist || err == errs.ErrPathNotExist {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn nil, fmt.Errorf(\"%s:%w\", op, err)\n\t}\n\n\tlog.Debug().Msgf(\"%s end\", op)\n\treturn comments, nil\n}\n\nfunc (h *CommentQuery) GetPathToComments(parentID int64) (string, error) {\n\top := \"internal.handlers.commentquery.GetPathToComments()\"\n\n\tlog.Debug().Msgf(\"%s start\", op)\n\n\tpath, err := h.commentQueryImp.GetCommentPath(parentID)\n\tif err != nil {\n\t\tif err == errs.ErrCommentsNotExist {\n\t\t\treturn \"\", err\n\t\t}\n\t\treturn \"\", fmt.Errorf(\"%s:%w\", op, err)\n\t}\n\n\tlog.Debug().Msgf(\"%s start\", op)\n\n\treturn path, nil\n}\n"
  },
  {
    "path": "_examples/mini-habr-with-subscriptions/internal/handlers/post_mutation/interface.go",
    "content": "package postmutation\n\nimport (\n\t\"github.com/google/uuid\"\n\t\"github.com/gqlgen/_examples/mini-habr-with-subscriptions/internal/model\"\n)\n\ntype PostMutImp interface {\n\tAddPost(newPost *model.NewPost) (*model.Post, error)\n\tUpdateEnableCommentToPost(\n\t\tpostID int64,\n\t\tauthorID uuid.UUID,\n\t\tcommentsEnabled bool,\n\t) (*model.Post, error)\n}\n"
  },
  {
    "path": "_examples/mini-habr-with-subscriptions/internal/handlers/post_mutation/mutations.go",
    "content": "package postmutation\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/google/uuid\"\n\t\"github.com/gqlgen/_examples/mini-habr-with-subscriptions/internal/model\"\n\t\"github.com/gqlgen/_examples/mini-habr-with-subscriptions/internal/pkg/errs\"\n\t\"github.com/rs/zerolog/log\"\n)\n\ntype PostMutation struct {\n\tpostMutImp PostMutImp\n}\n\nfunc NewPostMutation(postImp PostMutImp) *PostMutation {\n\treturn &PostMutation{postMutImp: postImp}\n}\n\nfunc (h *PostMutation) AddPost(newPost *model.NewPost) (*model.Post, error) {\n\top := \"internal.handlers.postmutation.AddPost()\"\n\n\tlog.Debug().Msgf(\"%s start\", op)\n\n\tpost, err := h.postMutImp.AddPost(newPost)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"%s:%w\", op, err)\n\t}\n\n\tlog.Debug().Msgf(\"%s end\", op)\n\treturn post, nil\n}\n\nfunc (h *PostMutation) UpdateEnableCommentToPost(\n\tpostID int64,\n\tauthorID uuid.UUID,\n\tcommentsEnabled bool,\n) (*model.Post, error) {\n\top := \"internal.handlers.postmutation.UpdateEnableCommentToPost()\"\n\n\tlog.Debug().Msgf(\"%s start\", op)\n\n\tpost, err := h.postMutImp.UpdateEnableCommentToPost(postID, authorID, commentsEnabled)\n\tif err != nil {\n\t\tif err == errs.ErrPostNotExist || err == errs.ErrUnauthorizedAccess {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn nil, fmt.Errorf(\"%s:%w\", op, err)\n\t}\n\n\tlog.Debug().Msgf(\"%s end\", op)\n\treturn post, nil\n}\n"
  },
  {
    "path": "_examples/mini-habr-with-subscriptions/internal/handlers/post_query/interface.go",
    "content": "package postquery\n\nimport (\n\t\"github.com/gqlgen/_examples/mini-habr-with-subscriptions/internal/model\"\n)\n\ntype PostQueryImp interface {\n\tGetAllPosts() ([]*model.Post, error)\n\tGetPost(postID int64) (*model.Post, error)\n}\n"
  },
  {
    "path": "_examples/mini-habr-with-subscriptions/internal/handlers/post_query/query.go",
    "content": "package postquery\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/gqlgen/_examples/mini-habr-with-subscriptions/internal/model\"\n\t\"github.com/gqlgen/_examples/mini-habr-with-subscriptions/internal/pkg/errs\"\n\t\"github.com/rs/zerolog/log\"\n)\n\ntype PostQuery struct {\n\tpostQueryImp PostQueryImp\n}\n\nfunc NewPostQuery(postQueryImp PostQueryImp) *PostQuery {\n\treturn &PostQuery{postQueryImp: postQueryImp}\n}\n\nfunc (h *PostQuery) GetAllPosts() ([]*model.Post, error) {\n\top := \"internal.handlers.postquery.GetAllPosts()\"\n\n\tlog.Debug().Msgf(\"%s start\", op)\n\n\tposts, err := h.postQueryImp.GetAllPosts()\n\tif err != nil {\n\t\tif err == errs.ErrPostsNotExist {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn nil, fmt.Errorf(\"%s:%w\", op, err)\n\t}\n\n\tlog.Debug().Msgf(\"%s end\", op)\n\treturn posts, nil\n}\n\nfunc (h *PostQuery) GetPost(postID int64) (*model.Post, error) {\n\top := \"internal.handlers.postquery.GetPostWithComment()\"\n\n\tlog.Debug().Msgf(\"%s start\", op)\n\n\tpost, err := h.postQueryImp.GetPost(postID)\n\tif err != nil {\n\t\tif err == errs.ErrPostNotExist {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn nil, fmt.Errorf(\"%s:%w\", op, err)\n\t}\n\n\tlog.Debug().Msgf(\"%s end\", op)\n\treturn post, nil\n}\n"
  },
  {
    "path": "_examples/mini-habr-with-subscriptions/internal/model/model.go",
    "content": "package model\n\nimport (\n\t\"time\"\n\n\t\"github.com/google/uuid\"\n)\n\ntype Comment struct {\n\tID         int64     `json:\"id\"                 db:\"comment_id\"`\n\tAuthorID   uuid.UUID `json:\"authorID\"           db:\"author_id\"`\n\tPostID     int64     `json:\"postID\"             db:\"post_id\"`\n\tParentID   *int64    `json:\"parentID,omitempty\" db:\"parent_id\"`\n\tPath       string    `                          db:\"path\"`\n\tText       string    `json:\"text\"               db:\"text\"`\n\tCreateDate time.Time `json:\"createDate\"         db:\"create_date\"`\n}\n\ntype NewComment struct {\n\tAuthorID uuid.UUID `json:\"authorID\"           db:\"author_id\"`\n\tPostID   int64     `json:\"postID\"             db:\"post_id\"`\n\tParentID *int64    `json:\"parentID,omitempty\" db:\"parent_id\"`\n\tText     string    `json:\"text\"               db:\"text\"`\n}\n\ntype NewPost struct {\n\tAuthorID        uuid.UUID `json:\"authorID\"        db:\"author_id\"`\n\tTitle           string    `json:\"title\"           db:\"title\"`\n\tText            string    `json:\"text\"            db:\"text\"`\n\tCommentsEnabled bool      `json:\"commentsEnabled\" db:\"comments_enabled\"`\n}\n\ntype Post struct {\n\tID              int64      `json:\"id\"                 db:\"post_id\"`\n\tAuthorID        uuid.UUID  `json:\"authorID\"           db:\"author_id\"`\n\tTitle           string     `json:\"title\"              db:\"title\"`\n\tText            string     `json:\"text\"               db:\"text\"`\n\tCommentsEnabled bool       `json:\"commentsEnabled\"    db:\"comments_enabled\"`\n\tComments        []*Comment `json:\"comments,omitempty\"`\n\tCreateDate      time.Time  `json:\"createDate\"         db:\"create_date\"`\n}\n"
  },
  {
    "path": "_examples/mini-habr-with-subscriptions/internal/pkg/cursor/cursor.go",
    "content": "package cursor\n\nimport (\n\t\"encoding/base64\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/gqlgen/_examples/mini-habr-with-subscriptions/internal/model\"\n)\n\nfunc GetCommentID(after *string) (int64, error) {\n\tcursorLine, err := decodeCursor(*after)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tlastIndex := strings.LastIndex(cursorLine, \"/\")\n\tcommentID, err := strconv.ParseInt(cursorLine[:lastIndex], 10, 64)\n\treturn commentID, err\n}\n\nfunc CreateCursorFromComment(comment *model.Comment) string {\n\tlastIndex := strings.LastIndex(comment.Path, \".\")\n\n\tvar parentPath string\n\tif lastIndex == -1 {\n\t\tparentPath = \"\"\n\t} else {\n\t\tparentPath = comment.Path[:lastIndex]\n\t}\n\n\tcommentID := comment.Path[lastIndex+1:]\n\n\tcursorLine := []byte(parentPath + \"/\" + commentID)\n\n\tcursor := base64.RawStdEncoding.EncodeToString(cursorLine)\n\treturn cursor\n}\n\nfunc GetPath(after *string) (string, error) {\n\tcursorLine, err := decodeCursor(*after)\n\tlastIndex := strings.LastIndex(cursorLine, \"/\")\n\treturn cursorLine[:lastIndex], err\n}\n\nfunc ValidateAfter(after *string) error {\n\tcursorLine, err := decodeCursor(*after)\n\tif err != nil {\n\t\treturn err\n\t}\n\tlastIndex := strings.LastIndex(cursorLine, \"/\")\n\t_, err = strconv.ParseInt(cursorLine[:lastIndex], 10, 64)\n\treturn err\n}\n\nfunc decodeCursor(after string) (string, error) {\n\tcursorLine, err := base64.RawStdEncoding.DecodeString(after)\n\treturn string(cursorLine), err\n}\n"
  },
  {
    "path": "_examples/mini-habr-with-subscriptions/internal/pkg/errs/errors.go",
    "content": "package errs\n\nimport (\n\t\"errors\"\n)\n\nvar (\n\tErrPostNotExist           = errors.New(\"post not exist\")\n\tErrUnauthorizedAccess     = errors.New(\"user doesn't have access rights\")\n\tErrPostsNotExist          = errors.New(\"no posts have been created yet\")\n\tErrCommentsNotExist       = errors.New(\"no comments have been created yet\")\n\tErrPostNotCached          = errors.New(\"post not cached yet\")\n\tErrPathNotExist           = errors.New(\"path not exist\")\n\tErrParentCommentNotExist  = errors.New(\"parent comment not exist yet\")\n\tErrIncorrectCommentLength = errors.New(\"incorrect comment length\")\n\tErrCommentsNotEnabled     = errors.New(\"сomments on the post are not allowed\")\n)\n"
  },
  {
    "path": "_examples/mini-habr-with-subscriptions/internal/storage/db/resolvers.go",
    "content": "package db\n\nimport (\n\t\"context\"\n\t\"database/sql\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/go-redis/cache/v9\"\n\t\"github.com/google/uuid\"\n\t\"github.com/gqlgen/_examples/mini-habr-with-subscriptions/internal/model\"\n\t\"github.com/gqlgen/_examples/mini-habr-with-subscriptions/internal/pkg/errs\"\n\t\"github.com/jmoiron/sqlx\"\n\t\"github.com/rs/zerolog/log\"\n)\n\ntype Storage struct {\n\tdb *sqlx.DB\n\n\tcache *cache.Cache\n}\n\nfunc NewStorage(db *sqlx.DB, cache *cache.Cache) *Storage {\n\treturn &Storage{\n\t\tdb:    db,\n\t\tcache: cache,\n\t}\n}\n\nfunc (r *Storage) AddPost(newPost *model.NewPost) (*model.Post, error) {\n\top := \"internal.storage.db.AddPost()\"\n\n\tlog.Debug().Msgf(\"%s start\", op)\n\n\tpost := &model.Post{\n\t\tAuthorID:        newPost.AuthorID,\n\t\tTitle:           newPost.Title,\n\t\tText:            newPost.Text,\n\t\tCommentsEnabled: newPost.CommentsEnabled,\n\t\tCreateDate:      time.Now(),\n\t}\n\n\tqueryNewPost := `INSERT INTO Posts (author_id, title, text, comments_enabled, create_date)\n\t\t\t\t\t\tVALUES ($1, $2, $3, $4, $5)\n\t\t\t\t\t\tRETURNING post_id `\n\n\terr := r.db.QueryRow(queryNewPost, post.AuthorID, post.Title, post.Text, post.CommentsEnabled, post.CreateDate).\n\t\tScan(&post.ID)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"%s:%w\", op, err)\n\t}\n\n\tlog.Debug().Msgf(\"%s end\", op)\n\treturn post, err\n}\n\nfunc (r *Storage) AddComment(postID int64, newComment *model.NewComment) (*model.Comment, error) {\n\top := \"internal.storage.db.AddComment()\"\n\n\tlog.Debug().Msgf(\"%s start\", op)\n\ttx, err := r.db.Beginx()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"%s:%w\", op, err)\n\t}\n\tdefer func() {\n\t\tif err != nil {\n\t\t\terrRB := tx.Rollback()\n\t\t\tif errRB != nil {\n\t\t\t\tlog.Error().Err(errRB).Msg(\" roll back transaction failed\")\n\t\t\t}\n\t\t}\n\t}()\n\n\tcomment := &model.Comment{\n\t\tAuthorID:   newComment.AuthorID,\n\t\tPostID:     postID,\n\t\tParentID:   newComment.ParentID,\n\t\tText:       newComment.Text,\n\t\tCreateDate: time.Now(),\n\t}\n\n\tqueryGetCommentEnabledForPost := `SELECT comments_enabled \n\t\t\t\t\t\t\tFROM Posts \n\t\t\t\t\t\t\tWHERE post_id = $1`\n\n\tqueryGetParentPath := `SELECT path\n\t\t\t\t\t\t\tFROM Comments\n\t\t\t\t\t\t\tWHERE comment_id = $1 AND post_id = $2`\n\n\tqueryNewComment := `INSERT INTO Comments (author_id, post_id, parent_id, path, replies_level, text, create_date)\n\t\t\t\t\t\tVALUES ($1, $2, $3, $4, $5, $6, $7)\n\t\t\t\t\t\tRETURNING comment_id `\n\n\tqueryUpdateCommentPath := `UPDATE Comments\n\t\t\t\t\t\t\tSET path = $1, replies_level = $2\n\t\t\t\t\t\t\tWHERE comment_id = $3`\n\n\tvar commentEnabled bool\n\terr = tx.Get(&commentEnabled, queryGetCommentEnabledForPost, postID)\n\tif err != nil {\n\t\tif err == sql.ErrNoRows {\n\t\t\treturn nil, errs.ErrPostNotExist\n\t\t}\n\t\treturn nil, fmt.Errorf(\"%s:%w\", op, err)\n\t}\n\n\tif commentEnabled == false {\n\t\treturn nil, errs.ErrCommentsNotEnabled\n\t}\n\n\tvar parentPath string\n\tif comment.ParentID != nil {\n\t\terr = tx.Get(&parentPath, queryGetParentPath, comment.ParentID, comment.PostID)\n\t\tif err != nil {\n\t\t\tif err == sql.ErrNoRows {\n\t\t\t\treturn nil, errs.ErrParentCommentNotExist\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"%s:%w\", op, err)\n\t\t}\n\t\tparentPath += \".\"\n\t}\n\t// we specify 0 as the path and 1 as rep. level, because we know that the comment ID cannot be\n\t// zero, and the query did not return errors due to not null\n\terr = tx.QueryRow(queryNewComment, comment.AuthorID, comment.PostID, comment.ParentID, \"0\", 1, comment.Text, comment.CreateDate).\n\t\tScan(&comment.ID)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"%s:%w\", op, err)\n\t}\n\n\tpath := parentPath + strconv.FormatInt(comment.ID, 10)\n\trepliceLevel := strings.Count(path, \".\") + 1\n\n\t_, err = tx.Exec(queryUpdateCommentPath, path, repliceLevel, comment.ID)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"%s:%w\", op, err)\n\t}\n\n\terr = tx.Commit()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"%s:%w\", op, err)\n\t}\n\n\tcomment.Path = path\n\n\tcommentsBranch, err := r.getCommentsToPostFromCashe(comment.PostID, parentPath)\n\tif err == nil {\n\t\tcommentsBranch = append(commentsBranch, comment)\n\t\terr = r.setCommentsBranchToPostInCache(\n\t\t\tcommentsBranch,\n\t\t\tcomment.PostID,\n\t\t\tparentPath[:len(parentPath)-1],\n\t\t)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"%s:%w\", op, err) // it must be update in future\n\t\t}\n\t} else {\n\t\tif err != cache.ErrCacheMiss {\n\t\t\tlog.Warn().Err(err).Msg(\"cache returned error\")\n\t\t}\n\t\terr = nil\n\t}\n\tlog.Debug().Msgf(\"%s end\", op)\n\treturn comment, nil\n}\n\nfunc (r *Storage) setCommentsBranchToPostInCache(\n\tcommentsBranch []*model.Comment,\n\tpostID int64,\n\tpath string,\n) error {\n\top := \"internal.storage.db.SetCommentsBranchToPostInCache()\"\n\tlog.Debug().Msgf(\"%s start\", op)\n\n\tvar err error\n\tif path == \"\" {\n\t\terr = r.cache.Set(&cache.Item{\n\t\t\tKey:   \"post:\" + strconv.FormatInt(postID, 10),\n\t\t\tValue: commentsBranch,\n\t\t\tTTL:   30 * time.Minute,\n\t\t})\n\t} else {\n\t\terr = r.cache.Set(&cache.Item{\n\t\t\tKey:   \"comments:\" + path,\n\t\t\tValue: commentsBranch,\n\t\t\tTTL:   30 * time.Minute,\n\t\t})\n\t}\n\n\tif err != nil {\n\t\treturn fmt.Errorf(\"%s: %w\", op, err)\n\t}\n\n\tlog.Debug().Msgf(\"%s end\", op)\n\treturn nil\n}\n\nfunc (r *Storage) UpdateEnableCommentToPost(\n\tpostID int64,\n\tauthorID uuid.UUID,\n\tcommentsEnabled bool,\n) (*model.Post, error) {\n\top := \"internal.storage.db.UpdateEnableCommentToPost()\"\n\n\tlog.Debug().Msgf(\"%s start\", op)\n\n\ttx, err := r.db.Beginx()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"%s:%w\", op, err)\n\t}\n\tdefer func() {\n\t\tif err != nil {\n\t\t\terrRB := tx.Rollback()\n\t\t\tif errRB != nil {\n\t\t\t\tlog.Error().Err(errRB).Msg(\" roll back transaction failed\")\n\t\t\t}\n\t\t}\n\t}()\n\n\tpost := &model.Post{\n\t\tID: postID,\n\t}\n\n\tqueryGetPost := `SELECT author_id, title, text, comments_enabled, create_date\n\t\t\t\t\t\tFROM Posts\n\t\t\t\t\t\tWHERE post_id = $1 `\n\n\tqueryUpdatePost := `UPDATE Posts\n\t\t\t\t\t\t\tSET comments_enabled = $1\n\t\t\t\t\t\t\tWHERE post_id = $2`\n\n\terr = tx.Get(post, queryGetPost, postID)\n\tif err != nil {\n\t\tif err == sql.ErrNoRows {\n\t\t\treturn nil, errs.ErrPostNotExist\n\t\t}\n\t\treturn nil, fmt.Errorf(\"%s:%w\", op, err)\n\t}\n\n\tif post.AuthorID != authorID {\n\t\treturn nil, errs.ErrUnauthorizedAccess\n\t}\n\n\t_, err = tx.Exec(queryUpdatePost, commentsEnabled, postID)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"%s:%w\", op, err)\n\t}\n\n\terr = tx.Commit()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"%s:%w\", op, err)\n\t}\n\n\tpost.CommentsEnabled = commentsEnabled\n\n\tlog.Debug().Msgf(\"%s end\", op)\n\treturn post, nil\n}\n\nfunc (r *Storage) GetAllPosts() ([]*model.Post, error) {\n\top := \"internal.storage.db.GetAllPosts()\"\n\n\tlog.Debug().Msgf(\"%s start\", op)\n\n\tqueryGetAllPosts := `SELECT post_id, author_id, title, text, comments_enabled, create_date\n\t\t\t\t\t\tFROM Posts\n\t\t\t\t\t\tORDER BY create_date`\n\n\tvar posts []*model.Post\n\terr := r.db.Select(&posts, queryGetAllPosts)\n\tif err != nil {\n\t\tif err == sql.ErrNoRows {\n\t\t\treturn nil, errs.ErrPostsNotExist\n\t\t}\n\t\treturn nil, fmt.Errorf(\"%s:%w\", op, err)\n\t}\n\n\tlog.Debug().Msgf(\"%s end\", op)\n\n\treturn posts, nil\n}\n\nfunc (r *Storage) GetPost(postID int64) (*model.Post, error) {\n\top := \"internal.storage.db.GetPost()\"\n\n\tlog.Debug().Msgf(\"%s start\", op)\n\n\tqueryGetPost := `SELECT post_id, author_id, title, text, comments_enabled, create_date\n\t\t\t\t\t\tFROM Posts\n\t\t\t\t\t\tWHERE post_id = $1`\n\n\tpost := new(model.Post)\n\terr := r.db.Get(post, queryGetPost, postID)\n\tif err != nil {\n\t\tif err == sql.ErrNoRows {\n\t\t\treturn nil, errs.ErrPostNotExist\n\t\t}\n\t\treturn nil, fmt.Errorf(\"%s:%w\", op, err)\n\t}\n\n\tlog.Debug().Msgf(\"%s end\", op)\n\n\treturn post, nil\n}\n\nfunc (r *Storage) GetCommentsBranch(postID int64, path string) ([]*model.Comment, error) {\n\top := \"internal.storage.db.GetCommentsBranch()\"\n\n\tlog.Debug().Msgf(\"%s start\", op)\n\n\tallComments, err := r.getCommentsToPostFromCashe(postID, path)\n\tif err != nil {\n\t\tif err == errs.ErrPathNotExist {\n\t\t\treturn nil, err\n\t\t}\n\t\tlog.Warn().Err(err).Msg(\"Cache returned error\")\n\t} else {\n\t\treturn allComments, nil\n\t}\n\n\tallComments = make([]*model.Comment, 0)\n\n\tqueryGetCommentsToPost := `SELECT comment_id, author_id, post_id, parent_id, path, text, create_date\n\t\t\t\t\t\t\t\tFROM Comments\n\t\t\t\t\t\t\t\tWHERE post_id = $1\n\t\t\t\t\t\t\t\tORDER BY string_to_array(path::text, '.')::int[],\n\t\t\t\t\t\t\t\tcreate_date DESC`\n\n\terr = r.db.Select(&allComments, queryGetCommentsToPost, postID)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"%s:%w\", op, err)\n\t}\n\tif len(allComments) == 0 {\n\t\treturn nil, errs.ErrCommentsNotExist\n\t}\n\n\tcommentsMap, rootComments := createCommentMap(allComments)\n\n\terr = r.setCommentsToPostInCache(commentsMap, rootComments, postID)\n\tif err != nil {\n\t\tlog.Warn().Err(err).Msg(\"Cache returned error\")\n\t}\n\n\tif path == \"\" {\n\t\tlog.Debug().Msgf(\"%s end\", op)\n\t\treturn rootComments, nil\n\t} else {\n\t\tif v, ok := commentsMap[path]; ok != true {\n\t\t\treturn nil, errs.ErrPathNotExist\n\t\t} else {\n\t\t\tlog.Debug().Msgf(\"%s end\", op)\n\t\t\treturn v, nil\n\t\t}\n\t}\n}\n\nfunc createCommentMap(\n\tallComments []*model.Comment,\n) (map[string][]*model.Comment, []*model.Comment) {\n\tvar rootComments []*model.Comment\n\tcommentsMap := make(map[string][]*model.Comment)\n\tpathMap := make(map[int64]string, len(allComments))\n\tfor _, v := range allComments {\n\t\tpathMap[v.ID] = v.Path\n\t\tif v.ParentID == nil {\n\t\t\trootComments = append(rootComments, v)\n\t\t} else {\n\t\t\tcommentsMap[pathMap[*v.ParentID]] = append(\n\t\t\t\tcommentsMap[pathMap[*v.ParentID]],\n\t\t\t\tv,\n\t\t\t) // we know that parent comment exists because of the query is ordered by path\n\t\t}\n\t}\n\n\tlog.Debug().Msg(\"Comment map created successfully\")\n\treturn commentsMap, rootComments\n}\n\nfunc (r *Storage) getCommentsToPostFromCashe(postID int64, path string) ([]*model.Comment, error) {\n\top := \"internal.storage.db.GetCommentsToPostFromCashe()\"\n\tlog.Debug().Msgf(\"%s start\", op)\n\n\tvar rootComments []*model.Comment\n\terr := r.cache.Get(context.Background(), \"post:\"+strconv.FormatInt(postID, 10), &rootComments)\n\tif err != nil {\n\t\tif err == cache.ErrCacheMiss {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn nil, fmt.Errorf(\"%s: %w\", op, err)\n\t}\n\n\tif len(rootComments) == 0 {\n\t\treturn nil, errs.ErrPostNotCached\n\t}\n\n\tif path == \"\" {\n\n\t\tlog.Debug().Msgf(\"%s end\", op)\n\t\treturn rootComments, nil\n\t}\n\n\tvar commentsBranch []*model.Comment\n\n\terr = r.cache.Get(context.Background(), \"comments:\"+path, &commentsBranch)\n\tif err != nil {\n\t\tif err == cache.ErrCacheMiss && len(rootComments) > 0 {\n\t\t\treturn nil, nil // it work when try get replies of comment without replies\n\t\t}\n\t\treturn nil, fmt.Errorf(\"%s: %w\", op, err)\n\t}\n\n\tif len(commentsBranch) == 0 {\n\t\treturn nil, errs.ErrPathNotExist\n\t}\n\n\tlog.Debug().Msgf(\"%s end\", op)\n\treturn commentsBranch, nil\n}\n\nfunc (r *Storage) setCommentsToPostInCache(\n\tcommentsMap map[string][]*model.Comment,\n\trootComments []*model.Comment,\n\tpostID int64,\n) error {\n\top := \"internal.storage.db.SetCommentToPostInCache()\"\n\tlog.Debug().Msgf(\"%s start\", op)\n\n\tvar wg sync.WaitGroup\n\tvar mu sync.Mutex\n\tvar firstErr error\n\n\tfor path, comments := range commentsMap {\n\t\twg.Add(1)\n\t\tgo func(path string, comments []*model.Comment) {\n\t\t\tdefer wg.Done()\n\n\t\t\terr := r.cache.Set(&cache.Item{\n\t\t\t\tKey:   \"comments:\" + path,\n\t\t\t\tValue: comments,\n\t\t\t\tTTL:   30 * time.Minute,\n\t\t\t})\n\n\t\t\tmu.Lock()\n\t\t\tdefer mu.Unlock()\n\t\t\tif err != nil && firstErr == nil {\n\t\t\t\tfirstErr = err\n\t\t\t\treturn\n\t\t\t}\n\t\t}(path, comments)\n\t}\n\twg.Wait()\n\n\tif firstErr != nil {\n\t\treturn fmt.Errorf(\"%s: %w\", op, firstErr)\n\t}\n\n\terr := r.cache.Set(&cache.Item{\n\t\tKey:   \"post:\" + strconv.FormatInt(postID, 10),\n\t\tValue: rootComments,\n\t\tTTL:   30 * time.Minute,\n\t})\n\tif err != nil {\n\t\treturn fmt.Errorf(\"%s: %w\", op, err)\n\t}\n\n\tlog.Debug().Msgf(\"%s end\", op)\n\treturn nil\n}\n\nfunc (r *Storage) GetCommentPath(commentID int64) (string, error) {\n\top := \"internal.storage.db.GetCommentPath()\"\n\n\tlog.Debug().Msgf(\"%s start\", op)\n\n\tvar path string\n\n\tqueryGetCommentsToPost := `SELECT path\n\t\t\t\t\t\t\t\tFROM Comments\n\t\t\t\t\t\t\t\tWHERE  comment_id = $1`\n\n\terr := r.db.Get(&path, queryGetCommentsToPost, commentID)\n\tif err != nil {\n\t\tif err == sql.ErrNoRows {\n\t\t\treturn \"\", errs.ErrCommentsNotExist\n\t\t}\n\t\treturn \"\", fmt.Errorf(\"%s:%w\", op, err)\n\t}\n\n\tlog.Debug().Msgf(\"%s end\", op)\n\treturn path, nil\n}\n"
  },
  {
    "path": "_examples/mini-habr-with-subscriptions/internal/storage/in-memory/resolvers.go",
    "content": "package inmemory\n\nimport (\n\t\"strconv\"\n\t\"time\"\n\n\t\"github.com/google/uuid\"\n\t\"github.com/gqlgen/_examples/mini-habr-with-subscriptions/internal/model\"\n\t\"github.com/gqlgen/_examples/mini-habr-with-subscriptions/internal/pkg/errs\"\n\t\"github.com/rs/zerolog/log\"\n)\n\ntype Storage struct {\n\tpostsLastIndex   int64\n\tcommentLastIndex int64\n\tcomments         map[int64][]*model.Comment\n\tcommentPath      map[int64]string\n\trepliesByPath    map[string][]*model.Comment\n\tposts            map[int64]*model.Post\n}\n\nfunc NewStorage() *Storage {\n\treturn &Storage{\n\t\tpostsLastIndex:   0,\n\t\tcommentLastIndex: 0,\n\t\tcomments:         make(map[int64][]*model.Comment), // root comments\n\t\tcommentPath:      make(map[int64]string),\n\t\trepliesByPath:    make(map[string][]*model.Comment),\n\t\tposts:            make(map[int64]*model.Post),\n\t}\n}\n\nfunc (r *Storage) AddPost(newPost *model.NewPost) (*model.Post, error) {\n\top := \"internal.storage.inmemory.AddPost()\"\n\n\tlog.Debug().Msgf(\"%s start\", op)\n\tpost := &model.Post{\n\t\tAuthorID:        newPost.AuthorID,\n\t\tTitle:           newPost.Title,\n\t\tText:            newPost.Text,\n\t\tCommentsEnabled: newPost.CommentsEnabled,\n\t\tCreateDate:      time.Now(),\n\t}\n\n\tpostID := r.postsLastIndex + 1\n\tr.postsLastIndex += 1\n\tpost.ID = postID\n\tr.posts[postID] = post\n\n\tlog.Debug().Msgf(\"%s end\", op)\n\treturn post, nil\n}\n\nfunc (r *Storage) AddComment(postID int64, newComment *model.NewComment) (*model.Comment, error) {\n\top := \"internal.storage.inmemory.AddComment()\"\n\n\tlog.Debug().Msgf(\"%s start\", op)\n\n\tcomment := &model.Comment{\n\t\tAuthorID:   newComment.AuthorID,\n\t\tPostID:     postID,\n\t\tParentID:   newComment.ParentID,\n\t\tText:       newComment.Text,\n\t\tCreateDate: time.Now(),\n\t}\n\n\tpost, ok := r.posts[postID]\n\tif !ok {\n\t\treturn nil, errs.ErrPostNotExist\n\t}\n\n\tif !post.CommentsEnabled {\n\t\treturn nil, errs.ErrCommentsNotEnabled\n\t}\n\n\tcommentID := r.commentLastIndex + 1\n\tr.commentLastIndex += 1\n\tcomment.ID = commentID\n\tvar parentPath string\n\tif comment.ParentID != nil {\n\t\tif parentCommentPath, ok := r.commentPath[*comment.ParentID]; ok {\n\t\t\tparentPath = parentCommentPath\n\t\t} else {\n\t\t\treturn nil, errs.ErrParentCommentNotExist\n\t\t}\n\t\tr.repliesByPath[parentPath] = append(r.repliesByPath[parentPath], comment)\n\t\tparentPath += \".\"\n\n\t} else {\n\t\tr.comments[postID] = append(r.comments[postID], comment)\n\t}\n\n\tpath := parentPath + strconv.FormatInt(comment.ID, 10)\n\tcomment.Path = path\n\n\tr.commentPath[commentID] = path\n\n\tlog.Debug().Msgf(\"%s end\", op)\n\treturn comment, nil\n}\n\nfunc (r *Storage) UpdateEnableCommentToPost(\n\tpostID int64,\n\tauthorID uuid.UUID,\n\tcommentsEnabled bool,\n) (*model.Post, error) {\n\top := \"internal.storage.inmemory.UpdateEnableCommentToPost()\"\n\n\tlog.Debug().Msgf(\"%s start\", op)\n\n\tpost, ok := r.posts[postID]\n\tif !ok {\n\t\treturn nil, errs.ErrPostNotExist\n\t}\n\n\tif post.AuthorID != authorID {\n\t\treturn nil, errs.ErrUnauthorizedAccess\n\t}\n\n\tpost.CommentsEnabled = commentsEnabled\n\n\tlog.Debug().Msgf(\"%s end\", op)\n\treturn post, nil\n}\n\nfunc (r *Storage) GetAllPosts() ([]*model.Post, error) {\n\top := \"internal.storage.inmemory.GetAllPosts()\"\n\n\tlog.Debug().Msgf(\"%s start\", op)\n\n\tvar posts []*model.Post\n\tfor _, v := range r.posts {\n\t\tposts = append(posts, v)\n\t}\n\tif len(posts) == 0 {\n\t\treturn nil, errs.ErrPostsNotExist\n\t}\n\n\tlog.Debug().Msgf(\"%s end\", op)\n\n\treturn posts, nil\n}\n\nfunc (r *Storage) GetPost(postID int64) (*model.Post, error) {\n\top := \"internal.storage.inmemory.GetPost()\"\n\n\tlog.Debug().Msgf(\"%s start\", op)\n\n\tpost, ok := r.posts[postID]\n\n\tif !ok {\n\t\treturn nil, errs.ErrPostNotExist\n\t}\n\n\tlog.Debug().Msgf(\"%s end\", op)\n\n\treturn post, nil\n}\n\nfunc (r *Storage) GetCommentsBranch(postID int64, path string) ([]*model.Comment, error) {\n\top := \"internal.storage.inmemory.GetCommentsBranch()\"\n\n\tlog.Debug().Msgf(\"%s start\", op)\n\n\tif path == \"\" {\n\t\tif v, ok := r.comments[postID]; ok {\n\t\t\treturn v, nil\n\t\t}\n\t\treturn nil, errs.ErrCommentsNotExist\n\t}\n\n\tcomments, ok := r.repliesByPath[path]\n\tif !ok {\n\t\treturn nil, errs.ErrPathNotExist\n\t}\n\n\tif len(comments) == 0 {\n\t\treturn nil, errs.ErrCommentsNotExist\n\t}\n\n\treturn comments, nil\n}\n\nfunc (r *Storage) GetCommentPath(commentID int64) (string, error) {\n\top := \"internal.storage.inmemory.GetCommentPath()\"\n\n\tlog.Debug().Msgf(\"%s start\", op)\n\n\tpath, ok := r.commentPath[commentID]\n\n\tif !ok {\n\t\treturn \"\", errs.ErrCommentsNotExist\n\t}\n\n\tlog.Debug().Msgf(\"%s end\", op)\n\treturn path, nil\n}\n"
  },
  {
    "path": "_examples/mini-habr-with-subscriptions/internal/storage/interface.go",
    "content": "package storage\n\nimport (\n\t\"github.com/google/uuid\"\n\t\"github.com/gqlgen/_examples/mini-habr-with-subscriptions/internal/model\"\n)\n\ntype StorageImp interface {\n\tAddPost(newPost *model.NewPost) (*model.Post, error)\n\tAddComment(postID int64, newComment *model.NewComment) (*model.Comment, error)\n\tUpdateEnableCommentToPost(\n\t\tpostID int64,\n\t\tauthorID uuid.UUID,\n\t\tcommentsEnabled bool,\n\t) (*model.Post, error)\n\tGetAllPosts() ([]*model.Post, error)\n\tGetPost(postID int64) (*model.Post, error)\n\tGetCommentsBranch(postID int64, path string) ([]*model.Comment, error)\n\tGetCommentPath(parentID int64) (string, error)\n}\n"
  },
  {
    "path": "_examples/mini-habr-with-subscriptions/migrations/001_create_tables.up.sql",
    "content": "-- +goose Up\n-- +goose StatementBegin\n\nCREATE EXTENSION IF NOT EXISTS ltree;\n\nCREATE TABLE IF NOT EXISTS Posts (\n    post_id  BIGSERIAL  PRIMARY KEY,\n    author_id UUID NOT NULL,\n    title TEXT NOT NULL,\n    text TEXT NOT NULL,\n    comments_enabled BOOLEAN NOT NULL DEFAULT TRUE,\n    create_date TIMESTAMP  WITH TIME ZONE NOT NULL DEFAULT NOW()\n);\n\nCREATE TABLE IF NOT EXISTS Comments (\n    comment_id BIGSERIAL  PRIMARY KEY,\n    author_id UUID NOT NULL,\n    post_id BIGINT NOT NULL REFERENCES posts(post_id) ON DELETE CASCADE,\n    parent_id BIGINT REFERENCES comments(comment_id) ON DELETE CASCADE,\n    path LTREE UNIQUE NOT NULL,\n    replies_level INTEGER NOT NULL,\n    text TEXT NOT NULL,\n    create_date TIMESTAMP  WITH TIME ZONE NOT NULL DEFAULT NOW()\n);\n\nCREATE INDEX path_gist_idx ON Comments USING GIST (path);\n\nCREATE INDEX create_date_idx ON Comments (create_date);\n\nCREATE INDEX post_idx ON Comments (post_id);\n\n-- +goose StatementEnd"
  },
  {
    "path": "_examples/mini-habr-with-subscriptions/tools/tools.go",
    "content": "package tools\n\nimport (\n\t_ \"github.com/99designs/gqlgen\"\n\t_ \"github.com/99designs/gqlgen/graphql/introspection\"\n)\n"
  },
  {
    "path": "_examples/readme.md",
    "content": "### examples\n\n - todo: A simple todo checklist. A good place to get the basics down\n - starwars: A starwars movie database. It has examples of advanced graphql features\n - dataloader: How to avoid n+1 database query problems \n"
  },
  {
    "path": "_examples/scalars/.gqlgen.yml",
    "content": "model:\n  filename: model/generated.go\n\nmodels:\n  User:\n    model: github.com/99designs/gqlgen/_examples/scalars/model.User\n  Timestamp:\n    model: github.com/99designs/gqlgen/_examples/scalars/model.Timestamp\n  SearchArgs:\n    model: github.com/99designs/gqlgen/_examples/scalars/model.SearchArgs\n  Point:\n    model: github.com/99designs/gqlgen/_examples/scalars/model.Point\n  ID:\n    model: github.com/99designs/gqlgen/_examples/scalars/model.ID\n  Tier:\n    model: github.com/99designs/gqlgen/_examples/scalars/model.Tier\n  Banned:\n    model: github.com/99designs/gqlgen/_examples/scalars/model.Banned\n  DarkMode:\n    model: github.com/99designs/gqlgen/_examples/scalars/model.Preferences\n"
  },
  {
    "path": "_examples/scalars/external/model.go",
    "content": "package external\n\ntype ObjectID int\n"
  },
  {
    "path": "_examples/scalars/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage scalars\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"embed\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\t\"github.com/99designs/gqlgen/_examples/scalars/external\"\n\t\"github.com/99designs/gqlgen/_examples/scalars/model\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n}\n\ntype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\ntype ResolverRoot interface {\n\tQuery() QueryResolver\n\tUser() UserResolver\n}\n\ntype DirectiveRoot struct {\n}\n\ntype ComplexityRoot struct {\n\tAddress struct {\n\t\tID       func(childComplexity int) int\n\t\tLocation func(childComplexity int) int\n\t}\n\n\tQuery struct {\n\t\tSearch     func(childComplexity int, input *model.SearchArgs) int\n\t\tUser       func(childComplexity int, id external.ObjectID) int\n\t\tUserByTier func(childComplexity int, tier model.Tier, darkMode *model.Prefs) int\n\t}\n\n\tUser struct {\n\t\tAddress           func(childComplexity int) int\n\t\tCreated           func(childComplexity int) int\n\t\tCustomResolver    func(childComplexity int) int\n\t\tID                func(childComplexity int) int\n\t\tIsBanned          func(childComplexity int) int\n\t\tModified          func(childComplexity int) int\n\t\tName              func(childComplexity int) int\n\t\tPrimitiveResolver func(childComplexity int) int\n\t\tPtrPrefs          func(childComplexity int) int\n\t\tTier              func(childComplexity int) int\n\t\tValPrefs          func(childComplexity int) int\n\t}\n}\n\ntype QueryResolver interface {\n\tUser(ctx context.Context, id external.ObjectID) (*model.User, error)\n\tSearch(ctx context.Context, input *model.SearchArgs) ([]*model.User, error)\n\tUserByTier(ctx context.Context, tier model.Tier, darkMode *model.Prefs) ([]*model.User, error)\n}\ntype UserResolver interface {\n\tPrimitiveResolver(ctx context.Context, obj *model.User) (string, error)\n\tCustomResolver(ctx context.Context, obj *model.User) (*model.Point, error)\n}\n\ntype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.SchemaData != nil {\n\t\treturn e.SchemaData\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := newExecutionContext(nil, e, nil)\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"Address.id\":\n\t\tif e.ComplexityRoot.Address.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Address.ID(childComplexity), true\n\tcase \"Address.location\":\n\t\tif e.ComplexityRoot.Address.Location == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Address.Location(childComplexity), true\n\n\tcase \"Query.search\":\n\t\tif e.ComplexityRoot.Query.Search == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_search_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Search(childComplexity, args[\"input\"].(*model.SearchArgs)), true\n\tcase \"Query.user\":\n\t\tif e.ComplexityRoot.Query.User == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_user_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.User(childComplexity, args[\"id\"].(external.ObjectID)), true\n\tcase \"Query.userByTier\":\n\t\tif e.ComplexityRoot.Query.UserByTier == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_userByTier_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.UserByTier(childComplexity, args[\"tier\"].(model.Tier), args[\"darkMode\"].(*model.Prefs)), true\n\n\tcase \"User.address\":\n\t\tif e.ComplexityRoot.User.Address == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.Address(childComplexity), true\n\tcase \"User.created\":\n\t\tif e.ComplexityRoot.User.Created == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.Created(childComplexity), true\n\tcase \"User.customResolver\":\n\t\tif e.ComplexityRoot.User.CustomResolver == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.CustomResolver(childComplexity), true\n\tcase \"User.id\":\n\t\tif e.ComplexityRoot.User.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.ID(childComplexity), true\n\tcase \"User.isBanned\":\n\t\tif e.ComplexityRoot.User.IsBanned == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.IsBanned(childComplexity), true\n\tcase \"User.modified\":\n\t\tif e.ComplexityRoot.User.Modified == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.Modified(childComplexity), true\n\tcase \"User.name\":\n\t\tif e.ComplexityRoot.User.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.Name(childComplexity), true\n\tcase \"User.primitiveResolver\":\n\t\tif e.ComplexityRoot.User.PrimitiveResolver == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.PrimitiveResolver(childComplexity), true\n\tcase \"User.ptrPrefs\":\n\t\tif e.ComplexityRoot.User.PtrPrefs == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.PtrPrefs(childComplexity), true\n\tcase \"User.tier\":\n\t\tif e.ComplexityRoot.User.Tier == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.Tier(childComplexity), true\n\tcase \"User.valPrefs\":\n\t\tif e.ComplexityRoot.User.ValPrefs == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.ValPrefs(childComplexity), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap(\n\t\tec.unmarshalInputSearchArgs,\n\t)\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\n//go:embed \"schema.graphql\"\nvar sourcesFS embed.FS\n\nfunc sourceData(filename string) string {\n\tdata, err := sourcesFS.ReadFile(filename)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"codegen problem: %s not available\", filename))\n\t}\n\treturn string(data)\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"schema.graphql\", Input: sourceData(\"schema.graphql\"), BuiltIn: false},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_search_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"input\", ec.unmarshalOSearchArgs2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐSearchArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"input\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_userByTier_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"tier\", ec.unmarshalNTier2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐTier)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"tier\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"darkMode\", ec.unmarshalNDarkMode2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐPrefs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"darkMode\"] = arg1\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_user_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"id\", ec.unmarshalNID2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋexternalᚐObjectID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"id\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Address_id(ctx context.Context, field graphql.CollectedField, obj *model.Address) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Address_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNID2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋexternalᚐObjectID,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Address_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Address\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Address_location(ctx context.Context, field graphql.CollectedField, obj *model.Address) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Address_location,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Location, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOPoint2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐPoint,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Address_location(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Address\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Point does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_user(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_user,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().User(ctx, fc.Args[\"id\"].(external.ObjectID))\n\t\t},\n\t\tnil,\n\t\tec.marshalOUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐUser,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_user(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_User_id(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_User_name(ctx, field)\n\t\t\tcase \"created\":\n\t\t\t\treturn ec.fieldContext_User_created(ctx, field)\n\t\t\tcase \"modified\":\n\t\t\t\treturn ec.fieldContext_User_modified(ctx, field)\n\t\t\tcase \"valPrefs\":\n\t\t\t\treturn ec.fieldContext_User_valPrefs(ctx, field)\n\t\t\tcase \"ptrPrefs\":\n\t\t\t\treturn ec.fieldContext_User_ptrPrefs(ctx, field)\n\t\t\tcase \"isBanned\":\n\t\t\t\treturn ec.fieldContext_User_isBanned(ctx, field)\n\t\t\tcase \"primitiveResolver\":\n\t\t\t\treturn ec.fieldContext_User_primitiveResolver(ctx, field)\n\t\t\tcase \"customResolver\":\n\t\t\t\treturn ec.fieldContext_User_customResolver(ctx, field)\n\t\t\tcase \"address\":\n\t\t\t\treturn ec.fieldContext_User_address(ctx, field)\n\t\t\tcase \"tier\":\n\t\t\t\treturn ec.fieldContext_User_tier(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type User\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_user_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_search(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_search,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().Search(ctx, fc.Args[\"input\"].(*model.SearchArgs))\n\t\t},\n\t\tnil,\n\t\tec.marshalNUser2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐUserᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_search(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_User_id(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_User_name(ctx, field)\n\t\t\tcase \"created\":\n\t\t\t\treturn ec.fieldContext_User_created(ctx, field)\n\t\t\tcase \"modified\":\n\t\t\t\treturn ec.fieldContext_User_modified(ctx, field)\n\t\t\tcase \"valPrefs\":\n\t\t\t\treturn ec.fieldContext_User_valPrefs(ctx, field)\n\t\t\tcase \"ptrPrefs\":\n\t\t\t\treturn ec.fieldContext_User_ptrPrefs(ctx, field)\n\t\t\tcase \"isBanned\":\n\t\t\t\treturn ec.fieldContext_User_isBanned(ctx, field)\n\t\t\tcase \"primitiveResolver\":\n\t\t\t\treturn ec.fieldContext_User_primitiveResolver(ctx, field)\n\t\t\tcase \"customResolver\":\n\t\t\t\treturn ec.fieldContext_User_customResolver(ctx, field)\n\t\t\tcase \"address\":\n\t\t\t\treturn ec.fieldContext_User_address(ctx, field)\n\t\t\tcase \"tier\":\n\t\t\t\treturn ec.fieldContext_User_tier(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type User\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_search_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_userByTier(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_userByTier,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().UserByTier(ctx, fc.Args[\"tier\"].(model.Tier), fc.Args[\"darkMode\"].(*model.Prefs))\n\t\t},\n\t\tnil,\n\t\tec.marshalNUser2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐUserᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_userByTier(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_User_id(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_User_name(ctx, field)\n\t\t\tcase \"created\":\n\t\t\t\treturn ec.fieldContext_User_created(ctx, field)\n\t\t\tcase \"modified\":\n\t\t\t\treturn ec.fieldContext_User_modified(ctx, field)\n\t\t\tcase \"valPrefs\":\n\t\t\t\treturn ec.fieldContext_User_valPrefs(ctx, field)\n\t\t\tcase \"ptrPrefs\":\n\t\t\t\treturn ec.fieldContext_User_ptrPrefs(ctx, field)\n\t\t\tcase \"isBanned\":\n\t\t\t\treturn ec.fieldContext_User_isBanned(ctx, field)\n\t\t\tcase \"primitiveResolver\":\n\t\t\t\treturn ec.fieldContext_User_primitiveResolver(ctx, field)\n\t\t\tcase \"customResolver\":\n\t\t\t\treturn ec.fieldContext_User_customResolver(ctx, field)\n\t\t\tcase \"address\":\n\t\t\t\treturn ec.fieldContext_User_address(ctx, field)\n\t\t\tcase \"tier\":\n\t\t\t\treturn ec.fieldContext_User_tier(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type User\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_userByTier_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.IntrospectType(fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___schema,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.IntrospectSchema()\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_id(ctx context.Context, field graphql.CollectedField, obj *model.User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNID2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋexternalᚐObjectID,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_name(ctx context.Context, field graphql.CollectedField, obj *model.User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_created(ctx context.Context, field graphql.CollectedField, obj *model.User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_created,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Created, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOTimestamp2timeᚐTime,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_created(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Timestamp does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_modified(ctx context.Context, field graphql.CollectedField, obj *model.User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_modified,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Modified, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOTimestamp2ᚖtimeᚐTime,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_modified(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Timestamp does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_valPrefs(ctx context.Context, field graphql.CollectedField, obj *model.User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_valPrefs,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ValPrefs, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalODarkMode2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐPrefs,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_valPrefs(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type DarkMode does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_ptrPrefs(ctx context.Context, field graphql.CollectedField, obj *model.User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_ptrPrefs,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PtrPrefs, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalODarkMode2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐPrefs,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_ptrPrefs(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type DarkMode does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_isBanned(ctx context.Context, field graphql.CollectedField, obj *model.User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_isBanned,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsBanned, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBanned2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐBanned,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_isBanned(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Banned does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_primitiveResolver(ctx context.Context, field graphql.CollectedField, obj *model.User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_primitiveResolver,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.User().PrimitiveResolver(ctx, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_primitiveResolver(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_customResolver(ctx context.Context, field graphql.CollectedField, obj *model.User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_customResolver,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.User().CustomResolver(ctx, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalNPoint2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐPoint,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_customResolver(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Point does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_address(ctx context.Context, field graphql.CollectedField, obj *model.User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_address,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Address, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOAddress2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐAddress,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_address(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Address_id(ctx, field)\n\t\t\tcase \"location\":\n\t\t\t\treturn ec.fieldContext_Address_location(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Address\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_tier(ctx context.Context, field graphql.CollectedField, obj *model.User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_tier,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Tier, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOTier2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐTier,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_tier(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Tier does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_isRepeatable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsRepeatable, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_locations,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Locations, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__DirectiveLocation2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_defaultValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DefaultValue, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_types,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Types(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_queryType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.QueryType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_mutationType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.MutationType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_subscriptionType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SubscriptionType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_directives,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Directives(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_kind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Kind(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__TypeKind2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_specifiedByURL,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SpecifiedByURL(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_fields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_interfaces,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Interfaces(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_possibleTypes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PossibleTypes(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_enumValues,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_inputFields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.InputFields(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_ofType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.OfType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_isOneOf,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsOneOf(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOBoolean2bool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalInputSearchArgs(ctx context.Context, obj any) (model.SearchArgs, error) {\n\tvar it model.SearchArgs\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"location\", \"createdAfter\", \"isBanned\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"location\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"location\"))\n\t\t\tdata, err := ec.unmarshalOPoint2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐPoint(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Location = data\n\t\tcase \"createdAfter\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"createdAfter\"))\n\t\t\tdata, err := ec.unmarshalOTimestamp2ᚖtimeᚐTime(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.CreatedAfter = data\n\t\tcase \"isBanned\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"isBanned\"))\n\t\t\tdata, err := ec.unmarshalOBanned2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐBanned(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.IsBanned = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar addressImplementors = []string{\"Address\"}\n\nfunc (ec *executionContext) _Address(ctx context.Context, sel ast.SelectionSet, obj *model.Address) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, addressImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Address\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._Address_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"location\":\n\t\t\tout.Values[i] = ec._Address_location(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"user\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_user(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"search\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_search(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"userByTier\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_userByTier(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar userImplementors = []string{\"User\"}\n\nfunc (ec *executionContext) _User(ctx context.Context, sel ast.SelectionSet, obj *model.User) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, userImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"User\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._User_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._User_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"created\":\n\t\t\tout.Values[i] = ec._User_created(ctx, field, obj)\n\t\tcase \"modified\":\n\t\t\tout.Values[i] = ec._User_modified(ctx, field, obj)\n\t\tcase \"valPrefs\":\n\t\t\tout.Values[i] = ec._User_valPrefs(ctx, field, obj)\n\t\tcase \"ptrPrefs\":\n\t\t\tout.Values[i] = ec._User_ptrPrefs(ctx, field, obj)\n\t\tcase \"isBanned\":\n\t\t\tout.Values[i] = ec._User_isBanned(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"primitiveResolver\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._User_primitiveResolver(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"customResolver\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._User_customResolver(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"address\":\n\t\t\tout.Values[i] = ec._User_address(ctx, field, obj)\n\t\tcase \"tier\":\n\t\t\tout.Values[i] = ec._User_tier(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBanned2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐBanned(ctx context.Context, v any) (model.Banned, error) {\n\tvar res model.Banned\n\terr := res.UnmarshalGQL(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBanned2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐBanned(ctx context.Context, sel ast.SelectionSet, v model.Banned) graphql.Marshaler {\n\treturn v\n}\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNDarkMode2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐPrefs(ctx context.Context, v any) (*model.Prefs, error) {\n\tres, err := model.UnmarshalPreferences(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNDarkMode2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐPrefs(ctx context.Context, sel ast.SelectionSet, v *model.Prefs) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\tres := model.MarshalPreferences(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNID2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋexternalᚐObjectID(ctx context.Context, v any) (external.ObjectID, error) {\n\tres, err := model.UnmarshalID(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNID2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋexternalᚐObjectID(ctx context.Context, sel ast.SelectionSet, v external.ObjectID) graphql.Marshaler {\n\t_ = sel\n\tres := model.MarshalID(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNPoint2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐPoint(ctx context.Context, v any) (model.Point, error) {\n\tvar res model.Point\n\terr := res.UnmarshalGQL(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNPoint2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐPoint(ctx context.Context, sel ast.SelectionSet, v model.Point) graphql.Marshaler {\n\treturn v\n}\n\nfunc (ec *executionContext) unmarshalNPoint2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐPoint(ctx context.Context, v any) (*model.Point, error) {\n\tvar res = new(model.Point)\n\terr := res.UnmarshalGQL(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNPoint2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐPoint(ctx context.Context, sel ast.SelectionSet, v *model.Point) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn v\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNTier2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐTier(ctx context.Context, v any) (model.Tier, error) {\n\tvar res model.Tier\n\terr := res.UnmarshalGQL(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNTier2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐTier(ctx context.Context, sel ast.SelectionSet, v model.Tier) graphql.Marshaler {\n\treturn v\n}\n\nfunc (ec *executionContext) marshalNUser2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐUserᚄ(ctx context.Context, sel ast.SelectionSet, v []*model.User) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐUser(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalNUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐUser(ctx context.Context, sel ast.SelectionSet, v *model.User) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._User(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalOAddress2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐAddress(ctx context.Context, sel ast.SelectionSet, v model.Address) graphql.Marshaler {\n\treturn ec._Address(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) unmarshalOBanned2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐBanned(ctx context.Context, v any) (model.Banned, error) {\n\tvar res model.Banned\n\terr := res.UnmarshalGQL(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBanned2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐBanned(ctx context.Context, sel ast.SelectionSet, v model.Banned) graphql.Marshaler {\n\treturn v\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalODarkMode2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐPrefs(ctx context.Context, v any) (model.Prefs, error) {\n\tres, err := model.UnmarshalPreferences(v)\n\treturn *res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalODarkMode2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐPrefs(ctx context.Context, sel ast.SelectionSet, v model.Prefs) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := model.MarshalPreferences(&v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalODarkMode2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐPrefs(ctx context.Context, v any) (*model.Prefs, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := model.UnmarshalPreferences(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalODarkMode2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐPrefs(ctx context.Context, sel ast.SelectionSet, v *model.Prefs) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := model.MarshalPreferences(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOPoint2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐPoint(ctx context.Context, v any) (*model.Point, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar res = new(model.Point)\n\terr := res.UnmarshalGQL(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOPoint2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐPoint(ctx context.Context, sel ast.SelectionSet, v *model.Point) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn v\n}\n\nfunc (ec *executionContext) unmarshalOSearchArgs2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐSearchArgs(ctx context.Context, v any) (*model.SearchArgs, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputSearchArgs(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOTier2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐTier(ctx context.Context, v any) (model.Tier, error) {\n\tvar res model.Tier\n\terr := res.UnmarshalGQL(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOTier2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐTier(ctx context.Context, sel ast.SelectionSet, v model.Tier) graphql.Marshaler {\n\treturn v\n}\n\nfunc (ec *executionContext) unmarshalOTimestamp2timeᚐTime(ctx context.Context, v any) (time.Time, error) {\n\tres, err := model.UnmarshalTimestamp(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOTimestamp2timeᚐTime(ctx context.Context, sel ast.SelectionSet, v time.Time) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := model.MarshalTimestamp(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOTimestamp2ᚖtimeᚐTime(ctx context.Context, v any) (*time.Time, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := model.UnmarshalTimestamp(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOTimestamp2ᚖtimeᚐTime(ctx context.Context, sel ast.SelectionSet, v *time.Time) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := model.MarshalTimestamp(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalOUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋscalarsᚋmodelᚐUser(ctx context.Context, sel ast.SelectionSet, v *model.User) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._User(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "_examples/scalars/model/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage model\n\nimport (\n\t\"github.com/99designs/gqlgen/_examples/scalars/external\"\n)\n\ntype Address struct {\n\tID       external.ObjectID `json:\"id\"`\n\tLocation *Point            `json:\"location,omitempty\"`\n}\n\ntype Query struct {\n}\n"
  },
  {
    "path": "_examples/scalars/model/model.go",
    "content": "package model\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/99designs/gqlgen/_examples/scalars/external\"\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\ntype Banned bool\n\nfunc (b Banned) MarshalGQL(w io.Writer) {\n\tif b {\n\t\tw.Write([]byte(\"true\"))\n\t} else {\n\t\tw.Write([]byte(\"false\"))\n\t}\n}\n\nfunc (b *Banned) UnmarshalGQL(v any) error {\n\tswitch v := v.(type) {\n\tcase string:\n\t\t*b = Banned(strings.EqualFold(v, \"true\"))\n\t\treturn nil\n\tcase bool:\n\t\t*b = Banned(v)\n\t\treturn nil\n\tdefault:\n\t\treturn fmt.Errorf(\"%T is not a bool\", v)\n\t}\n}\n\ntype User struct {\n\tID       external.ObjectID\n\tName     string\n\tCreated  time.Time  // direct binding to builtin types with external Marshal/Unmarshal methods\n\tModified *time.Time // direct binding to builtin types with external Marshal/Unmarshal methods\n\tValPrefs Prefs      // external un/marshal that act on pointers\n\tPtrPrefs *Prefs\n\tIsBanned Banned\n\tAddress  Address\n\tTier     Tier\n}\n\n// Point is serialized as a simple array, eg [1, 2]\ntype Point struct {\n\tX int\n\tY int\n}\n\nfunc (p *Point) UnmarshalGQL(v any) error {\n\tpointStr, ok := v.(string)\n\tif !ok {\n\t\treturn errors.New(\"points must be strings\")\n\t}\n\n\tparts := strings.Split(pointStr, \",\")\n\n\tif len(parts) != 2 {\n\t\treturn errors.New(\"points must have 2 parts\")\n\t}\n\n\tvar err error\n\tif p.X, err = strconv.Atoi(parts[0]); err != nil {\n\t\treturn err\n\t}\n\tif p.Y, err = strconv.Atoi(parts[1]); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// MarshalGQL implements the graphql.Marshaler interface\nfunc (p Point) MarshalGQL(w io.Writer) {\n\tfmt.Fprintf(w, `\"%d,%d\"`, p.X, p.Y)\n}\n\n// if the type referenced in .gqlgen.yml is a function that returns a marshaller we can use it to\n// encode and decode\n// onto any existing go type.\nfunc MarshalTimestamp(t time.Time) graphql.Marshaler {\n\treturn graphql.WriterFunc(func(w io.Writer) {\n\t\tio.WriteString(w, strconv.FormatInt(t.Unix(), 10))\n\t})\n}\n\n// Unmarshal{Typename} is only required if the scalar appears as an input. The raw values have\n// already been decoded\n// from json into int/float64/bool/nil/map[string]interface/[]interface\nfunc UnmarshalTimestamp(v any) (time.Time, error) {\n\tif tmpStr, ok := v.(int64); ok {\n\t\treturn time.Unix(tmpStr, 0), nil\n\t}\n\treturn time.Time{}, errors.New(\"time should be a unix timestamp\")\n}\n\n// Lets redefine the base ID type to use an id from an external library\nfunc MarshalID(id external.ObjectID) graphql.Marshaler {\n\treturn graphql.WriterFunc(func(w io.Writer) {\n\t\tio.WriteString(w, strconv.Quote(fmt.Sprintf(\"=%d=\", id)))\n\t})\n}\n\n// And the same for the unmarshaler\nfunc UnmarshalID(v any) (external.ObjectID, error) {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn 0, errors.New(\"ids must be strings\")\n\t}\n\ti, err := strconv.Atoi(str[1 : len(str)-1])\n\treturn external.ObjectID(i), err\n}\n\ntype SearchArgs struct {\n\tLocation     *Point\n\tCreatedAfter *time.Time\n\tIsBanned     Banned\n}\n\n// A custom enum that uses integers to represent the values in memory but serialize as string for\n// graphql\ntype Tier uint\n\nconst (\n\tTierA Tier = iota\n\tTierB Tier = iota\n\tTierC Tier = iota\n)\n\nfunc TierForStr(str string) (Tier, error) {\n\tswitch str {\n\tcase \"A\":\n\t\treturn TierA, nil\n\tcase \"B\":\n\t\treturn TierB, nil\n\tcase \"C\":\n\t\treturn TierC, nil\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"%s is not a valid Tier\", str)\n\t}\n}\n\nfunc (e Tier) IsValid() bool {\n\tswitch e {\n\tcase TierA, TierB, TierC:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e Tier) String() string {\n\tswitch e {\n\tcase TierA:\n\t\treturn \"A\"\n\tcase TierB:\n\t\treturn \"B\"\n\tcase TierC:\n\t\treturn \"C\"\n\tdefault:\n\t\tpanic(\"invalid enum value\")\n\t}\n}\n\nfunc (e *Tier) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn errors.New(\"enums must be strings\")\n\t}\n\n\tvar err error\n\t*e, err = TierForStr(str)\n\treturn err\n}\n\nfunc (e Tier) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\ntype Prefs struct {\n\tDarkMode bool\n}\n\nfunc MarshalPreferences(p *Prefs) graphql.Marshaler {\n\treturn graphql.MarshalBoolean(p.DarkMode)\n}\n\nfunc UnmarshalPreferences(v any) (*Prefs, error) {\n\ttmp, err := graphql.UnmarshalBoolean(v)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Prefs{DarkMode: tmp}, nil\n}\n"
  },
  {
    "path": "_examples/scalars/resolvers.go",
    "content": "//go:generate go run ../../testdata/gqlgen.go\n\npackage scalars\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"time\"\n\n\t\"github.com/99designs/gqlgen/_examples/scalars/external\"\n\t\"github.com/99designs/gqlgen/_examples/scalars/model\"\n)\n\ntype Resolver struct{}\n\nfunc (r *Resolver) Query() QueryResolver {\n\treturn &queryResolver{r}\n}\n\nfunc (r *Resolver) User() UserResolver {\n\treturn &userResolver{r}\n}\n\ntype queryResolver struct{ *Resolver }\n\nfunc (r *queryResolver) UserByTier(\n\tctx context.Context,\n\ttier model.Tier,\n\tdarkMode *model.Prefs,\n) ([]*model.User, error) {\n\tpanic(\"implement me\")\n}\n\nfunc (r *queryResolver) User(ctx context.Context, id external.ObjectID) (*model.User, error) {\n\treturn &model.User{\n\t\tID:      id,\n\t\tName:    fmt.Sprintf(\"Test User %d\", id),\n\t\tCreated: time.Now(),\n\t\tAddress: model.Address{ID: 1, Location: &model.Point{X: 1, Y: 2}},\n\t\tTier:    model.TierC,\n\t}, nil\n}\n\nfunc (r *queryResolver) Search(\n\tctx context.Context,\n\tinput *model.SearchArgs,\n) ([]*model.User, error) {\n\tlocation := model.Point{X: 1, Y: 2}\n\tif input.Location != nil {\n\t\tlocation = *input.Location\n\t}\n\n\tcreated := time.Now()\n\tif input.CreatedAfter != nil {\n\t\tcreated = *input.CreatedAfter\n\t}\n\n\treturn []*model.User{\n\t\t{\n\t\t\tID:      1,\n\t\t\tName:    \"Test User 1\",\n\t\t\tCreated: created,\n\t\t\tAddress: model.Address{ID: 2, Location: &location},\n\t\t\tTier:    model.TierA,\n\t\t},\n\t\t{\n\t\t\tID:      2,\n\t\t\tName:    \"Test User 2\",\n\t\t\tCreated: created,\n\t\t\tAddress: model.Address{ID: 1, Location: &location},\n\t\t\tTier:    model.TierC,\n\t\t},\n\t}, nil\n}\n\ntype userResolver struct{ *Resolver }\n\nfunc (r *userResolver) PrimitiveResolver(ctx context.Context, obj *model.User) (string, error) {\n\treturn \"test\", nil\n}\n\nfunc (r *userResolver) CustomResolver(ctx context.Context, obj *model.User) (*model.Point, error) {\n\treturn &model.Point{X: 5, Y: 1}, nil\n}\n"
  },
  {
    "path": "_examples/scalars/scalar_test.go",
    "content": "package scalars\n\nimport (\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/extension\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n)\n\ntype RawUser struct {\n\tID                string\n\tName              string\n\tCreated           int64\n\tAddress           struct{ Location string }\n\tPrimitiveResolver string\n\tCustomResolver    string\n\tTier              string\n}\n\nfunc TestScalars(t *testing.T) {\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: &Resolver{}}))\n\tsrv.AddTransport(transport.POST{})\n\tsrv.Use(extension.Introspection{})\n\tc := client.New(srv)\n\n\tt.Run(\"marshaling\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tUser   RawUser\n\t\t\tSearch []RawUser\n\t\t}\n\t\tc.MustPost(`{\n\t\t\t\tuser(id:\"=1=\") {\n\t\t\t\t\t...UserData\n\t\t\t\t}\n\t\t\t\tsearch(input:{location:\"6,66\", createdAfter:666}) {\n\t\t\t\t\t...UserData\n\t\t\t\t}\n\t\t\t}\n\t\t\tfragment UserData on User  { id name created tier address { location } }`, &resp)\n\n\t\trequire.Equal(t, \"1,2\", resp.User.Address.Location)\n\t\t// There can be a delay between creation and test assertion, so we\n\t\t// give some leeway to eliminate false positives.\n\t\trequire.WithinDuration(t, time.Now(), time.Unix(resp.User.Created, 0), 5*time.Second)\n\t\trequire.Equal(t, \"6,66\", resp.Search[0].Address.Location)\n\t\trequire.Equal(t, int64(666), resp.Search[0].Created)\n\t\trequire.Equal(t, \"A\", resp.Search[0].Tier)\n\t})\n\n\tt.Run(\"default search location\", func(t *testing.T) {\n\t\tvar resp struct{ Search []RawUser }\n\n\t\terr := c.Post(`{ search {  address { location }  } }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"37,144\", resp.Search[0].Address.Location)\n\t})\n\n\tt.Run(\"custom error messages\", func(t *testing.T) {\n\t\tvar resp struct{ Search []RawUser }\n\n\t\terr := c.Post(`{ search(input:{createdAfter:\"2014\"}) { id } }`, &resp)\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t`[{\"message\":\"time should be a unix timestamp\",\"path\":[\"search\",\"input\",\"createdAfter\"]}]`,\n\t\t)\n\t})\n\n\tt.Run(\"scalar resolver methods\", func(t *testing.T) {\n\t\tvar resp struct{ User RawUser }\n\t\tc.MustPost(`{ user(id: \"=1=\") { primitiveResolver, customResolver } }`, &resp)\n\n\t\trequire.Equal(t, \"test\", resp.User.PrimitiveResolver)\n\t\trequire.Equal(t, \"5,1\", resp.User.CustomResolver)\n\t})\n\n\tt.Run(\"introspection\", func(t *testing.T) {\n\t\t// Make sure we can run the graphiql introspection query without errors\n\t\tvar resp any\n\t\tc.MustPost(introspection.Query, &resp)\n\t})\n}\n"
  },
  {
    "path": "_examples/scalars/schema.graphql",
    "content": "type Query {\n    user(id: ID!): User\n    search(input: SearchArgs = {location: \"37,144\", isBanned: false}): [User!]!\n    userByTier(tier: Tier!, darkMode: DarkMode!): [User!]!\n}\n\ntype User {\n    id: ID!\n    name: String!\n    created: Timestamp\n    modified: Timestamp\n    valPrefs: DarkMode\n    ptrPrefs: DarkMode\n    isBanned: Banned!\n    primitiveResolver: String!\n    customResolver: Point!\n    address: Address\n    tier: Tier\n}\n\ntype Address {\n    id: ID!\n    location: Point\n}\n\ninput SearchArgs {\n    location: Point\n    createdAfter: Timestamp\n    isBanned: Banned # TODO: This can be a Boolean again once multiple backing types are allowed\n}\n\nenum Tier {\n    A\n    B\n    C\n}\n\nscalar Timestamp\nscalar Point\nscalar Banned\nscalar DarkMode\n"
  },
  {
    "path": "_examples/scalars/server/server.go",
    "content": "package main\n\nimport (\n\t\"log\"\n\t\"net/http\"\n\n\t\"github.com/99designs/gqlgen/_examples/scalars\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/graphql/playground\"\n)\n\nfunc main() {\n\tsrv := handler.New(\n\t\tscalars.NewExecutableSchema(scalars.Config{Resolvers: &scalars.Resolver{}}),\n\t)\n\tsrv.AddTransport(transport.GET{})\n\tsrv.AddTransport(transport.POST{})\n\n\thttp.Handle(\"/\", playground.Handler(\"Starwars\", \"/query\"))\n\thttp.Handle(\"/query\", srv)\n\n\tlog.Fatal(http.ListenAndServe(\":8084\", nil))\n}\n"
  },
  {
    "path": "_examples/selection/.gqlgen.yml",
    "content": "schema: schema.graphql\nmodel:\n  filename: models_gen.go\nexec:\n  filename: generated.go\n"
  },
  {
    "path": "_examples/selection/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage selection\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"embed\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n}\n\ntype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\ntype ResolverRoot interface {\n\tQuery() QueryResolver\n}\n\ntype DirectiveRoot struct {\n}\n\ntype ComplexityRoot struct {\n\tLike struct {\n\t\tCollected func(childComplexity int) int\n\t\tReaction  func(childComplexity int) int\n\t\tSelection func(childComplexity int) int\n\t\tSent      func(childComplexity int) int\n\t}\n\n\tPost struct {\n\t\tCollected func(childComplexity int) int\n\t\tMessage   func(childComplexity int) int\n\t\tSelection func(childComplexity int) int\n\t\tSent      func(childComplexity int) int\n\t}\n\n\tQuery struct {\n\t\tEvents func(childComplexity int) int\n\t}\n}\n\ntype QueryResolver interface {\n\tEvents(ctx context.Context) ([]Event, error)\n}\n\ntype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.SchemaData != nil {\n\t\treturn e.SchemaData\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := newExecutionContext(nil, e, nil)\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"Like.collected\":\n\t\tif e.ComplexityRoot.Like.Collected == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Like.Collected(childComplexity), true\n\tcase \"Like.reaction\":\n\t\tif e.ComplexityRoot.Like.Reaction == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Like.Reaction(childComplexity), true\n\tcase \"Like.selection\":\n\t\tif e.ComplexityRoot.Like.Selection == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Like.Selection(childComplexity), true\n\tcase \"Like.sent\":\n\t\tif e.ComplexityRoot.Like.Sent == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Like.Sent(childComplexity), true\n\n\tcase \"Post.collected\":\n\t\tif e.ComplexityRoot.Post.Collected == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Post.Collected(childComplexity), true\n\tcase \"Post.message\":\n\t\tif e.ComplexityRoot.Post.Message == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Post.Message(childComplexity), true\n\tcase \"Post.selection\":\n\t\tif e.ComplexityRoot.Post.Selection == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Post.Selection(childComplexity), true\n\tcase \"Post.sent\":\n\t\tif e.ComplexityRoot.Post.Sent == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Post.Sent(childComplexity), true\n\n\tcase \"Query.events\":\n\t\tif e.ComplexityRoot.Query.Events == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Events(childComplexity), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap()\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\n//go:embed \"schema.graphql\"\nvar sourcesFS embed.FS\n\nfunc sourceData(filename string) string {\n\tdata, err := sourcesFS.ReadFile(filename)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"codegen problem: %s not available\", filename))\n\t}\n\treturn string(data)\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"schema.graphql\", Input: sourceData(\"schema.graphql\"), BuiltIn: false},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Like_reaction(ctx context.Context, field graphql.CollectedField, obj *Like) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Like_reaction,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Reaction, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Like_reaction(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Like\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Like_sent(ctx context.Context, field graphql.CollectedField, obj *Like) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Like_sent,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Sent, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNTime2timeᚐTime,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Like_sent(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Like\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Time does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Like_selection(ctx context.Context, field graphql.CollectedField, obj *Like) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Like_selection,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Selection, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚕstringᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Like_selection(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Like\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Like_collected(ctx context.Context, field graphql.CollectedField, obj *Like) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Like_collected,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Collected, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚕstringᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Like_collected(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Like\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Post_message(ctx context.Context, field graphql.CollectedField, obj *Post) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Post_message,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Message, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Post_message(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Post\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Post_sent(ctx context.Context, field graphql.CollectedField, obj *Post) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Post_sent,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Sent, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNTime2timeᚐTime,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Post_sent(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Post\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Time does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Post_selection(ctx context.Context, field graphql.CollectedField, obj *Post) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Post_selection,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Selection, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚕstringᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Post_selection(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Post\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Post_collected(ctx context.Context, field graphql.CollectedField, obj *Post) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Post_collected,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Collected, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚕstringᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Post_collected(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Post\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_events(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_events,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Events(ctx)\n\t\t},\n\t\tnil,\n\t\tec.marshalOEvent2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋselectionᚐEventᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_events(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"FieldContext.Child cannot be called on type INTERFACE\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.IntrospectType(fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___schema,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.IntrospectSchema()\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_isRepeatable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsRepeatable, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_locations,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Locations, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__DirectiveLocation2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_defaultValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DefaultValue, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_types,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Types(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_queryType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.QueryType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_mutationType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.MutationType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_subscriptionType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SubscriptionType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_directives,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Directives(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_kind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Kind(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__TypeKind2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_specifiedByURL,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SpecifiedByURL(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_fields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_interfaces,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Interfaces(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_possibleTypes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PossibleTypes(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_enumValues,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_inputFields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.InputFields(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_ofType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.OfType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_isOneOf,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsOneOf(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOBoolean2bool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\nfunc (ec *executionContext) _Event(ctx context.Context, sel ast.SelectionSet, obj Event) graphql.Marshaler {\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\tcase Post:\n\t\treturn ec._Post(ctx, sel, &obj)\n\tcase *Post:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Post(ctx, sel, obj)\n\tcase Like:\n\t\treturn ec._Like(ctx, sel, &obj)\n\tcase *Like:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Like(ctx, sel, obj)\n\tdefault:\n\t\tif typedObj, ok := obj.(graphql.Marshaler); ok {\n\t\t\treturn typedObj\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T; non-generated variants of Event must implement graphql.Marshaler\", obj))\n\t\t}\n\t}\n}\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar likeImplementors = []string{\"Like\", \"Event\"}\n\nfunc (ec *executionContext) _Like(ctx context.Context, sel ast.SelectionSet, obj *Like) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, likeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Like\")\n\t\tcase \"reaction\":\n\t\t\tout.Values[i] = ec._Like_reaction(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"sent\":\n\t\t\tout.Values[i] = ec._Like_sent(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"selection\":\n\t\t\tout.Values[i] = ec._Like_selection(ctx, field, obj)\n\t\tcase \"collected\":\n\t\t\tout.Values[i] = ec._Like_collected(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar postImplementors = []string{\"Post\", \"Event\"}\n\nfunc (ec *executionContext) _Post(ctx context.Context, sel ast.SelectionSet, obj *Post) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, postImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Post\")\n\t\tcase \"message\":\n\t\t\tout.Values[i] = ec._Post_message(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"sent\":\n\t\t\tout.Values[i] = ec._Post_sent(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"selection\":\n\t\t\tout.Values[i] = ec._Post_selection(ctx, field, obj)\n\t\tcase \"collected\":\n\t\t\tout.Values[i] = ec._Post_collected(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"events\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_events(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNEvent2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋselectionᚐEvent(ctx context.Context, sel ast.SelectionSet, v Event) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Event(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNTime2timeᚐTime(ctx context.Context, v any) (time.Time, error) {\n\tres, err := graphql.UnmarshalTime(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNTime2timeᚐTime(ctx context.Context, sel ast.SelectionSet, v time.Time) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalTime(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalOEvent2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋselectionᚐEventᚄ(ctx context.Context, sel ast.SelectionSet, v []Event) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNEvent2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋselectionᚐEvent(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNString2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalOString2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNString2string(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "_examples/selection/models_gen.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage selection\n\nimport (\n\t\"time\"\n)\n\ntype Event interface {\n\tIsEvent()\n\tGetSelection() []string\n\tGetCollected() []string\n}\n\ntype Like struct {\n\tReaction  string    `json:\"reaction\"`\n\tSent      time.Time `json:\"sent\"`\n\tSelection []string  `json:\"selection,omitempty\"`\n\tCollected []string  `json:\"collected,omitempty\"`\n}\n\nfunc (Like) IsEvent() {}\nfunc (this Like) GetSelection() []string {\n\tif this.Selection == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]string, 0, len(this.Selection))\n\tfor _, concrete := range this.Selection {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\nfunc (this Like) GetCollected() []string {\n\tif this.Collected == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]string, 0, len(this.Collected))\n\tfor _, concrete := range this.Collected {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\n\ntype Post struct {\n\tMessage   string    `json:\"message\"`\n\tSent      time.Time `json:\"sent\"`\n\tSelection []string  `json:\"selection,omitempty\"`\n\tCollected []string  `json:\"collected,omitempty\"`\n}\n\nfunc (Post) IsEvent() {}\nfunc (this Post) GetSelection() []string {\n\tif this.Selection == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]string, 0, len(this.Selection))\n\tfor _, concrete := range this.Selection {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\nfunc (this Post) GetCollected() []string {\n\tif this.Collected == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]string, 0, len(this.Collected))\n\tfor _, concrete := range this.Collected {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\n\ntype Query struct {\n}\n"
  },
  {
    "path": "_examples/selection/readme.md",
    "content": "### selection app\n\nThis is the simplest example of a graphql server.\n\nto run this server\n```bash\ngo run ./server/server.go\n```\n\nand open http://localhost:8086 in your browser\n"
  },
  {
    "path": "_examples/selection/schema.graphql",
    "content": "interface Event {\n    selection: [String!]\n    collected: [String!]\n}\n\ntype Post implements Event {\n    message: String!\n    sent: Time!\n    selection: [String!]\n    collected: [String!]\n}\n\ntype Like implements Event {\n    reaction: String!\n    sent: Time!\n    selection: [String!]\n    collected: [String!]\n}\n\ntype Query {\n    events: [Event!]\n}\n\nscalar Time\n"
  },
  {
    "path": "_examples/selection/selection.go",
    "content": "//go:generate go run ../../testdata/gqlgen.go\n\npackage selection\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"time\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\ntype Resolver struct{}\n\nfunc (r *Resolver) Query() QueryResolver {\n\treturn &queryResolver{r}\n}\n\ntype queryResolver struct{ *Resolver }\n\nfunc (r *queryResolver) Events(ctx context.Context) ([]Event, error) {\n\tvar sels []string\n\n\topCtx := graphql.GetOperationContext(ctx)\n\tfieldSelections := graphql.GetFieldContext(ctx).Field.Selections\n\tfor _, sel := range fieldSelections {\n\t\tswitch sel := sel.(type) {\n\t\tcase *ast.Field:\n\t\t\tsels = append(sels, fmt.Sprintf(\"%s as %s\", sel.Name, sel.Alias))\n\t\tcase *ast.InlineFragment:\n\t\t\tsels = append(sels, fmt.Sprintf(\"inline fragment on %s\", sel.TypeCondition))\n\t\tcase *ast.FragmentSpread:\n\t\t\tfragment := opCtx.Doc.Fragments.ForName(sel.Name)\n\t\t\tsels = append(\n\t\t\t\tsels,\n\t\t\t\tfmt.Sprintf(\"named fragment %s on %s\", sel.Name, fragment.TypeCondition),\n\t\t\t)\n\t\t}\n\t}\n\n\tvar events []Event\n\tfor i := 0; i < 10; i++ {\n\t\tif i%2 == 0 {\n\t\t\tevents = append(events, &Like{\n\t\t\t\tSelection: sels,\n\t\t\t\tCollected: formatCollected(graphql.CollectFieldsCtx(ctx, []string{\"Like\"})),\n\t\t\t\tReaction:  \":=)\",\n\t\t\t\tSent:      time.Now(),\n\t\t\t})\n\t\t} else {\n\t\t\tevents = append(events, &Post{\n\t\t\t\tSelection: sels,\n\t\t\t\tCollected: formatCollected(\n\t\t\t\t\tgraphql.CollectFieldsCtx(ctx, []string{http.MethodPost}),\n\t\t\t\t),\n\t\t\t\tMessage: \"Hey\",\n\t\t\t\tSent:    time.Now(),\n\t\t\t})\n\t\t}\n\t}\n\n\treturn events, nil\n}\n\nfunc formatCollected(cf []graphql.CollectedField) []string {\n\tres := make([]string, len(cf))\n\n\tfor i, f := range cf {\n\t\tres[i] = f.Name + \" as \" + f.Alias\n\t}\n\treturn res\n}\n"
  },
  {
    "path": "_examples/selection/selection_test.go",
    "content": "package selection\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestSelection(t *testing.T) {\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: &Resolver{}}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tquery := `{\n\t\t\tevents {\n\t\t\t\tselection\n\t\t\t\tcollected\n\n\t\t\t\t... on Post {\n\t\t\t\t\tmessage\n\t\t\t\t\tsent\n\t\t\t\t}\n\n\t\t\t\t...LikeFragment\n\t\t\t}\n\t\t}\n\t\tfragment LikeFragment on Like { reaction sent }\n\t\t`\n\n\tvar resp struct {\n\t\tEvents []struct {\n\t\t\tSelection []string\n\t\t\tCollected []string\n\n\t\t\tMessage  string\n\t\t\tReaction string\n\t\t\tSent     string\n\t\t}\n\t}\n\tc.MustPost(query, &resp)\n\n\trequire.Equal(t, []string{\n\t\t\"selection as selection\",\n\t\t\"collected as collected\",\n\t\t\"inline fragment on Post\",\n\t\t\"named fragment LikeFragment on Like\",\n\t}, resp.Events[0].Selection)\n\n\trequire.Equal(t, []string{\n\t\t\"selection as selection\",\n\t\t\"collected as collected\",\n\t\t\"reaction as reaction\",\n\t\t\"sent as sent\",\n\t}, resp.Events[0].Collected)\n}\n"
  },
  {
    "path": "_examples/selection/server/server.go",
    "content": "package main\n\nimport (\n\t\"log\"\n\t\"net/http\"\n\n\t\"github.com/99designs/gqlgen/_examples/selection\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/graphql/playground\"\n)\n\nfunc main() {\n\tsrv := handler.New(\n\t\tselection.NewExecutableSchema(selection.Config{Resolvers: &selection.Resolver{}}),\n\t)\n\tsrv.AddTransport(transport.GET{})\n\tsrv.AddTransport(transport.POST{})\n\n\thttp.Handle(\"/\", playground.Handler(\"Selection Demo\", \"/query\"))\n\thttp.Handle(\"/query\", srv)\n\tlog.Fatal(http.ListenAndServe(\":8086\", nil))\n}\n"
  },
  {
    "path": "_examples/starwars/.gqlgen.yml",
    "content": "exec:\n  filename: generated/exec.go\nmodel:\n  filename: models/generated.go\n  package: models\n\nautobind:\n  - github.com/99designs/gqlgen/_examples/starwars/models\n\nmodels:\n  ReviewInput:\n    model: models.Review\n  Starship:\n    fields:\n      length:\n        resolver: true\n"
  },
  {
    "path": "_examples/starwars/benchmarks_test.go",
    "content": "package starwars\n\nimport (\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/99designs/gqlgen/_examples/starwars/generated\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc BenchmarkSimpleQueryNoArgs(b *testing.B) {\n\tserver := handler.New(generated.NewExecutableSchema(NewResolver()))\n\tserver.AddTransport(transport.POST{})\n\n\tq := `{\"query\":\"{ search(text:\\\"Luke\\\") { ... on Human { starships { name } } } }\"}`\n\n\tvar body strings.Reader\n\tr := httptest.NewRequest(http.MethodPost, \"/graphql\", &body)\n\tr.Header.Set(\"Content-Type\", \"application/json\")\n\n\tb.ReportAllocs()\n\tb.ResetTimer()\n\n\trec := httptest.NewRecorder()\n\tfor i := 0; i < b.N; i++ {\n\t\tbody.Reset(q)\n\t\trec.Body.Reset()\n\t\tserver.ServeHTTP(rec, r)\n\t\tif rec.Body.String() != `{\"data\":{\"search\":[{\"starships\":[{\"name\":\"X-Wing\"},{\"name\":\"Imperial shuttle\"}]}]}}` {\n\t\t\tb.Fatalf(\"Unexpected response: %s\", rec.Body.String())\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "_examples/starwars/generated/exec.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage generated\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\t\"github.com/99designs/gqlgen/_examples/starwars/models\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n}\n\ntype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\ntype ResolverRoot interface {\n\tDroid() DroidResolver\n\tFriendsConnection() FriendsConnectionResolver\n\tHuman() HumanResolver\n\tMutation() MutationResolver\n\tQuery() QueryResolver\n\tStarship() StarshipResolver\n}\n\ntype DirectiveRoot struct {\n}\n\ntype ComplexityRoot struct {\n\tDroid struct {\n\t\tAppearsIn         func(childComplexity int) int\n\t\tFriends           func(childComplexity int) int\n\t\tFriendsConnection func(childComplexity int, first *int, after *string) int\n\t\tID                func(childComplexity int) int\n\t\tName              func(childComplexity int) int\n\t\tPrimaryFunction   func(childComplexity int) int\n\t}\n\n\tFriendsConnection struct {\n\t\tEdges      func(childComplexity int) int\n\t\tFriends    func(childComplexity int) int\n\t\tPageInfo   func(childComplexity int) int\n\t\tTotalCount func(childComplexity int) int\n\t}\n\n\tFriendsEdge struct {\n\t\tCursor func(childComplexity int) int\n\t\tNode   func(childComplexity int) int\n\t}\n\n\tHuman struct {\n\t\tAppearsIn         func(childComplexity int) int\n\t\tFriends           func(childComplexity int) int\n\t\tFriendsConnection func(childComplexity int, first *int, after *string) int\n\t\tHeight            func(childComplexity int, unit models.LengthUnit) int\n\t\tID                func(childComplexity int) int\n\t\tMass              func(childComplexity int) int\n\t\tMutation          func(childComplexity int) int\n\t\tName              func(childComplexity int) int\n\t\tQuery             func(childComplexity int) int\n\t\tStarships         func(childComplexity int) int\n\t}\n\n\tMutation struct {\n\t\tCreateReview func(childComplexity int, episode models.Episode, review models.Review) int\n\t}\n\n\tPageInfo struct {\n\t\tEndCursor   func(childComplexity int) int\n\t\tHasNextPage func(childComplexity int) int\n\t\tStartCursor func(childComplexity int) int\n\t}\n\n\tQuery struct {\n\t\tCharacter func(childComplexity int, id string) int\n\t\tDroid     func(childComplexity int, id string) int\n\t\tHero      func(childComplexity int, episode *models.Episode) int\n\t\tHuman     func(childComplexity int, id string) int\n\t\tReviews   func(childComplexity int, episode models.Episode, since *time.Time) int\n\t\tSearch    func(childComplexity int, text string) int\n\t\tStarship  func(childComplexity int, id string) int\n\t}\n\n\tReview struct {\n\t\tCommentary func(childComplexity int) int\n\t\tStars      func(childComplexity int) int\n\t\tTime       func(childComplexity int) int\n\t}\n\n\tStarship struct {\n\t\tHistory func(childComplexity int) int\n\t\tID      func(childComplexity int) int\n\t\tLength  func(childComplexity int, unit *models.LengthUnit) int\n\t\tName    func(childComplexity int) int\n\t}\n}\n\ntype DroidResolver interface {\n\tFriends(ctx context.Context, obj *models.Droid) ([]models.Character, error)\n\tFriendsConnection(ctx context.Context, obj *models.Droid, first *int, after *string) (*models.FriendsConnection, error)\n}\ntype FriendsConnectionResolver interface {\n\tEdges(ctx context.Context, obj *models.FriendsConnection) ([]*models.FriendsEdge, error)\n\tFriends(ctx context.Context, obj *models.FriendsConnection) ([]models.Character, error)\n}\ntype HumanResolver interface {\n\tFriends(ctx context.Context, obj *models.Human) ([]models.Character, error)\n\tFriendsConnection(ctx context.Context, obj *models.Human, first *int, after *string) (*models.FriendsConnection, error)\n\n\tStarships(ctx context.Context, obj *models.Human) ([]*models.Starship, error)\n}\ntype MutationResolver interface {\n\tCreateReview(ctx context.Context, episode models.Episode, review models.Review) (*models.Review, error)\n}\ntype QueryResolver interface {\n\tHero(ctx context.Context, episode *models.Episode) (models.Character, error)\n\tReviews(ctx context.Context, episode models.Episode, since *time.Time) ([]*models.Review, error)\n\tSearch(ctx context.Context, text string) ([]models.SearchResult, error)\n\tCharacter(ctx context.Context, id string) (models.Character, error)\n\tDroid(ctx context.Context, id string) (*models.Droid, error)\n\tHuman(ctx context.Context, id string) (*models.Human, error)\n\tStarship(ctx context.Context, id string) (*models.Starship, error)\n}\ntype StarshipResolver interface {\n\tLength(ctx context.Context, obj *models.Starship, unit *models.LengthUnit) (float64, error)\n}\n\ntype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.SchemaData != nil {\n\t\treturn e.SchemaData\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := newExecutionContext(nil, e, nil)\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"Droid.appearsIn\":\n\t\tif e.ComplexityRoot.Droid.AppearsIn == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Droid.AppearsIn(childComplexity), true\n\tcase \"Droid.friends\":\n\t\tif e.ComplexityRoot.Droid.Friends == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Droid.Friends(childComplexity), true\n\tcase \"Droid.friendsConnection\":\n\t\tif e.ComplexityRoot.Droid.FriendsConnection == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Droid_friendsConnection_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Droid.FriendsConnection(childComplexity, args[\"first\"].(*int), args[\"after\"].(*string)), true\n\tcase \"Droid.id\":\n\t\tif e.ComplexityRoot.Droid.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Droid.ID(childComplexity), true\n\tcase \"Droid.name\":\n\t\tif e.ComplexityRoot.Droid.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Droid.Name(childComplexity), true\n\tcase \"Droid.primaryFunction\":\n\t\tif e.ComplexityRoot.Droid.PrimaryFunction == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Droid.PrimaryFunction(childComplexity), true\n\n\tcase \"FriendsConnection.edges\":\n\t\tif e.ComplexityRoot.FriendsConnection.Edges == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.FriendsConnection.Edges(childComplexity), true\n\tcase \"FriendsConnection.friends\":\n\t\tif e.ComplexityRoot.FriendsConnection.Friends == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.FriendsConnection.Friends(childComplexity), true\n\tcase \"FriendsConnection.pageInfo\":\n\t\tif e.ComplexityRoot.FriendsConnection.PageInfo == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.FriendsConnection.PageInfo(childComplexity), true\n\tcase \"FriendsConnection.totalCount\":\n\t\tif e.ComplexityRoot.FriendsConnection.TotalCount == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.FriendsConnection.TotalCount(childComplexity), true\n\n\tcase \"FriendsEdge.cursor\":\n\t\tif e.ComplexityRoot.FriendsEdge.Cursor == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.FriendsEdge.Cursor(childComplexity), true\n\tcase \"FriendsEdge.node\":\n\t\tif e.ComplexityRoot.FriendsEdge.Node == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.FriendsEdge.Node(childComplexity), true\n\n\tcase \"Human.appearsIn\":\n\t\tif e.ComplexityRoot.Human.AppearsIn == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Human.AppearsIn(childComplexity), true\n\tcase \"Human.friends\":\n\t\tif e.ComplexityRoot.Human.Friends == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Human.Friends(childComplexity), true\n\tcase \"Human.friendsConnection\":\n\t\tif e.ComplexityRoot.Human.FriendsConnection == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Human_friendsConnection_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Human.FriendsConnection(childComplexity, args[\"first\"].(*int), args[\"after\"].(*string)), true\n\tcase \"Human.height\":\n\t\tif e.ComplexityRoot.Human.Height == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Human_height_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Human.Height(childComplexity, args[\"unit\"].(models.LengthUnit)), true\n\tcase \"Human.id\":\n\t\tif e.ComplexityRoot.Human.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Human.ID(childComplexity), true\n\tcase \"Human.mass\":\n\t\tif e.ComplexityRoot.Human.Mass == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Human.Mass(childComplexity), true\n\tcase \"Human.mutation\":\n\t\tif e.ComplexityRoot.Human.Mutation == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Human.Mutation(childComplexity), true\n\tcase \"Human.name\":\n\t\tif e.ComplexityRoot.Human.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Human.Name(childComplexity), true\n\tcase \"Human.query\":\n\t\tif e.ComplexityRoot.Human.Query == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Human.Query(childComplexity), true\n\tcase \"Human.starships\":\n\t\tif e.ComplexityRoot.Human.Starships == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Human.Starships(childComplexity), true\n\n\tcase \"Mutation.createReview\":\n\t\tif e.ComplexityRoot.Mutation.CreateReview == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Mutation_createReview_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Mutation.CreateReview(childComplexity, args[\"episode\"].(models.Episode), args[\"review\"].(models.Review)), true\n\n\tcase \"PageInfo.endCursor\":\n\t\tif e.ComplexityRoot.PageInfo.EndCursor == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PageInfo.EndCursor(childComplexity), true\n\tcase \"PageInfo.hasNextPage\":\n\t\tif e.ComplexityRoot.PageInfo.HasNextPage == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PageInfo.HasNextPage(childComplexity), true\n\tcase \"PageInfo.startCursor\":\n\t\tif e.ComplexityRoot.PageInfo.StartCursor == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PageInfo.StartCursor(childComplexity), true\n\n\tcase \"Query.character\":\n\t\tif e.ComplexityRoot.Query.Character == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_character_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Character(childComplexity, args[\"id\"].(string)), true\n\tcase \"Query.droid\":\n\t\tif e.ComplexityRoot.Query.Droid == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_droid_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Droid(childComplexity, args[\"id\"].(string)), true\n\tcase \"Query.hero\":\n\t\tif e.ComplexityRoot.Query.Hero == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_hero_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Hero(childComplexity, args[\"episode\"].(*models.Episode)), true\n\tcase \"Query.human\":\n\t\tif e.ComplexityRoot.Query.Human == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_human_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Human(childComplexity, args[\"id\"].(string)), true\n\n\tcase \"Query.reviews\":\n\t\tif e.ComplexityRoot.Query.Reviews == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_reviews_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Reviews(childComplexity, args[\"episode\"].(models.Episode), args[\"since\"].(*time.Time)), true\n\tcase \"Query.search\":\n\t\tif e.ComplexityRoot.Query.Search == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_search_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Search(childComplexity, args[\"text\"].(string)), true\n\tcase \"Query.starship\":\n\t\tif e.ComplexityRoot.Query.Starship == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_starship_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Starship(childComplexity, args[\"id\"].(string)), true\n\n\tcase \"Review.commentary\":\n\t\tif e.ComplexityRoot.Review.Commentary == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Review.Commentary(childComplexity), true\n\tcase \"Review.stars\":\n\t\tif e.ComplexityRoot.Review.Stars == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Review.Stars(childComplexity), true\n\tcase \"Review.time\":\n\t\tif e.ComplexityRoot.Review.Time == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Review.Time(childComplexity), true\n\n\tcase \"Starship.history\":\n\t\tif e.ComplexityRoot.Starship.History == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Starship.History(childComplexity), true\n\tcase \"Starship.id\":\n\t\tif e.ComplexityRoot.Starship.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Starship.ID(childComplexity), true\n\tcase \"Starship.length\":\n\t\tif e.ComplexityRoot.Starship.Length == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Starship_length_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Starship.Length(childComplexity, args[\"unit\"].(*models.LengthUnit)), true\n\tcase \"Starship.name\":\n\t\tif e.ComplexityRoot.Starship.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Starship.Name(childComplexity), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap(\n\t\tec.unmarshalInputReviewInput,\n\t)\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\tcase ast.Mutation:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tif !first {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tfirst = false\n\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\tdata := ec._Mutation(ctx, opCtx.Operation.SelectionSet)\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\n\t\t\treturn &graphql.Response{\n\t\t\t\tData: buf.Bytes(),\n\t\t\t}\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"../schema.graphql\", Input: `# The query type, represents all of the entry points into our object graph\ntype Query {\n    hero(episode: Episode = NEWHOPE): Character\n    reviews(episode: Episode!, since: Time): [Review!]!\n    search(text: String!): [SearchResult!]!\n    character(id: ID!): Character\n    droid(id: ID!): Droid\n    human(id: ID!): Human\n    starship(id: ID!): Starship\n}\n# The mutation type, represents all updates we can make to our data\ntype Mutation {\n    createReview(episode: Episode!, review: ReviewInput!): Review\n}\n# The episodes in the Star Wars trilogy\nenum Episode {\n    # Star Wars Episode IV: A New Hope, released in 1977.\n    NEWHOPE\n    # Star Wars Episode V: The Empire Strikes Back, released in 1980.\n    EMPIRE\n    # Star Wars Episode VI: Return of the Jedi, released in 1983.\n    JEDI\n}\n# A character from the Star Wars universe\ninterface Character {\n    # The ID of the character\n    id: ID!\n    # The name of the character\n    name: String!\n    # The friends of the character, or an empty list if they have none\n    friends: [Character!]\n    # The friends of the character exposed as a connection with edges\n    friendsConnection(first: Int, after: ID): FriendsConnection!\n    # The movies this character appears in\n    appearsIn: [Episode!]!\n}\n# Units of height\nenum LengthUnit {\n    # The standard unit around the world\n    METER\n    # Primarily used in the United States\n    FOOT\n}\n# A humanoid creature from the Star Wars universe\ntype Human implements Character {\n    # The ID of the human\n    id: ID!\n    # What this human calls themselves\n    name: String!\n    # Height in the preferred unit, default is meters\n    height(unit: LengthUnit = METER): Float!\n    # Mass in kilograms, or null if unknown\n    mass: Float\n    # This human's friends, or an empty list if they have none\n    friends: [Character!]\n    # The friends of the human exposed as a connection with edges\n    friendsConnection(first: Int, after: ID): FriendsConnection!\n    # The movies this human appears in\n    appearsIn: [Episode!]!\n    # A list of starships this person has piloted, or an empty list if none\n    starships: [Starship!]\n    # Root level query\n    query: Query!\n    # Root level mutation\n    mutation: Mutation!\n}\n# An autonomous mechanical character in the Star Wars universe\ntype Droid implements Character {\n    # The ID of the droid\n    id: ID!\n    # What others call this droid\n    name: String!\n    # This droid's friends, or an empty list if they have none\n    friends: [Character!]\n    # The friends of the droid exposed as a connection with edges\n    friendsConnection(first: Int, after: ID): FriendsConnection!\n    # The movies this droid appears in\n    appearsIn: [Episode!]!\n    # This droid's primary function\n    primaryFunction: String\n}\n# A connection object for a character's friends\ntype FriendsConnection {\n    # The total number of friends\n    totalCount: Int!\n    # The edges for each of the character's friends.\n    edges: [FriendsEdge!]\n    # A list of the friends, as a convenience when edges are not needed.\n    friends: [Character!]\n    # Information for paginating this connection\n    pageInfo: PageInfo!\n}\n# An edge object for a character's friends\ntype FriendsEdge {\n    # A cursor used for pagination\n    cursor: ID!\n    # The character represented by this friendship edge\n    node: Character\n}\n# Information for paginating this connection\ntype PageInfo {\n    startCursor: ID!\n    endCursor: ID!\n    hasNextPage: Boolean!\n}\n# Represents a review for a movie\ntype Review {\n    # The number of stars this review gave, 1-5\n    stars: Int!\n    # Comment about the movie\n    commentary: String\n    # when the review was posted\n    time: Time\n}\n# The input object sent when someone is creating a new review\ninput ReviewInput {\n    # 0-5 stars\n    stars: Int!\n    # Comment about the movie, optional\n    commentary: String\n    # when the review was posted\n    time: Time\n}\ntype Starship {\n    # The ID of the starship\n    id: ID!\n    # The name of the starship\n    name: String!\n    # Length of the starship, along the longest axis\n    length(unit: LengthUnit = METER): Float!\n    # coordinates tracking this ship\n    history: [[Int!]!]!\n}\nunion SearchResult = Human | Droid | Starship\nscalar Time\n`, BuiltIn: false},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_Droid_friendsConnection_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"first\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"first\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"after\", ec.unmarshalOID2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"after\"] = arg1\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Human_friendsConnection_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"first\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"first\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"after\", ec.unmarshalOID2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"after\"] = arg1\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Human_height_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"unit\", ec.unmarshalOLengthUnit2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐLengthUnit)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"unit\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Mutation_createReview_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"episode\", ec.unmarshalNEpisode2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐEpisode)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"episode\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"review\", ec.unmarshalNReviewInput2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐReview)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"review\"] = arg1\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_character_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"id\", ec.unmarshalNID2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"id\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_droid_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"id\", ec.unmarshalNID2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"id\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_hero_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"episode\", ec.unmarshalOEpisode2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐEpisode)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"episode\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_human_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"id\", ec.unmarshalNID2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"id\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_reviews_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"episode\", ec.unmarshalNEpisode2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐEpisode)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"episode\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"since\", ec.unmarshalOTime2ᚖtimeᚐTime)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"since\"] = arg1\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_search_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"text\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"text\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_starship_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"id\", ec.unmarshalNID2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"id\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Starship_length_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"unit\", ec.unmarshalOLengthUnit2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐLengthUnit)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"unit\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Droid_id(ctx context.Context, field graphql.CollectedField, obj *models.Droid) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Droid_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Droid_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Droid\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Droid_name(ctx context.Context, field graphql.CollectedField, obj *models.Droid) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Droid_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Droid_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Droid\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Droid_friends(ctx context.Context, field graphql.CollectedField, obj *models.Droid) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Droid_friends,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Droid().Friends(ctx, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalOCharacter2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐCharacterᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Droid_friends(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Droid\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"FieldContext.Child cannot be called on type INTERFACE\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Droid_friendsConnection(ctx context.Context, field graphql.CollectedField, obj *models.Droid) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Droid_friendsConnection,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Droid().FriendsConnection(ctx, obj, fc.Args[\"first\"].(*int), fc.Args[\"after\"].(*string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNFriendsConnection2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐFriendsConnection,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Droid_friendsConnection(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Droid\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"totalCount\":\n\t\t\t\treturn ec.fieldContext_FriendsConnection_totalCount(ctx, field)\n\t\t\tcase \"edges\":\n\t\t\t\treturn ec.fieldContext_FriendsConnection_edges(ctx, field)\n\t\t\tcase \"friends\":\n\t\t\t\treturn ec.fieldContext_FriendsConnection_friends(ctx, field)\n\t\t\tcase \"pageInfo\":\n\t\t\t\treturn ec.fieldContext_FriendsConnection_pageInfo(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type FriendsConnection\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Droid_friendsConnection_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Droid_appearsIn(ctx context.Context, field graphql.CollectedField, obj *models.Droid) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Droid_appearsIn,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.AppearsIn, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNEpisode2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐEpisodeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Droid_appearsIn(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Droid\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Episode does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Droid_primaryFunction(ctx context.Context, field graphql.CollectedField, obj *models.Droid) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Droid_primaryFunction,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PrimaryFunction, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2string,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Droid_primaryFunction(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Droid\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _FriendsConnection_totalCount(ctx context.Context, field graphql.CollectedField, obj *models.FriendsConnection) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_FriendsConnection_totalCount,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.TotalCount(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_FriendsConnection_totalCount(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"FriendsConnection\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _FriendsConnection_edges(ctx context.Context, field graphql.CollectedField, obj *models.FriendsConnection) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_FriendsConnection_edges,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.FriendsConnection().Edges(ctx, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalOFriendsEdge2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐFriendsEdgeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_FriendsConnection_edges(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"FriendsConnection\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"cursor\":\n\t\t\t\treturn ec.fieldContext_FriendsEdge_cursor(ctx, field)\n\t\t\tcase \"node\":\n\t\t\t\treturn ec.fieldContext_FriendsEdge_node(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type FriendsEdge\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _FriendsConnection_friends(ctx context.Context, field graphql.CollectedField, obj *models.FriendsConnection) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_FriendsConnection_friends,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.FriendsConnection().Friends(ctx, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalOCharacter2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐCharacterᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_FriendsConnection_friends(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"FriendsConnection\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"FieldContext.Child cannot be called on type INTERFACE\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _FriendsConnection_pageInfo(ctx context.Context, field graphql.CollectedField, obj *models.FriendsConnection) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_FriendsConnection_pageInfo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PageInfo(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNPageInfo2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐPageInfo,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_FriendsConnection_pageInfo(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"FriendsConnection\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"startCursor\":\n\t\t\t\treturn ec.fieldContext_PageInfo_startCursor(ctx, field)\n\t\t\tcase \"endCursor\":\n\t\t\t\treturn ec.fieldContext_PageInfo_endCursor(ctx, field)\n\t\t\tcase \"hasNextPage\":\n\t\t\t\treturn ec.fieldContext_PageInfo_hasNextPage(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type PageInfo\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _FriendsEdge_cursor(ctx context.Context, field graphql.CollectedField, obj *models.FriendsEdge) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_FriendsEdge_cursor,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Cursor, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_FriendsEdge_cursor(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"FriendsEdge\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _FriendsEdge_node(ctx context.Context, field graphql.CollectedField, obj *models.FriendsEdge) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_FriendsEdge_node,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Node, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOCharacter2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐCharacter,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_FriendsEdge_node(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"FriendsEdge\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"FieldContext.Child cannot be called on type INTERFACE\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Human_id(ctx context.Context, field graphql.CollectedField, obj *models.Human) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Human_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Human_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Human\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Human_name(ctx context.Context, field graphql.CollectedField, obj *models.Human) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Human_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Human_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Human\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Human_height(ctx context.Context, field graphql.CollectedField, obj *models.Human) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Human_height,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Height(fc.Args[\"unit\"].(models.LengthUnit)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNFloat2float64,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Human_height(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Human\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Float does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Human_height_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Human_mass(ctx context.Context, field graphql.CollectedField, obj *models.Human) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Human_mass,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Mass, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOFloat2float64,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Human_mass(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Human\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Float does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Human_friends(ctx context.Context, field graphql.CollectedField, obj *models.Human) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Human_friends,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Human().Friends(ctx, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalOCharacter2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐCharacterᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Human_friends(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Human\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"FieldContext.Child cannot be called on type INTERFACE\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Human_friendsConnection(ctx context.Context, field graphql.CollectedField, obj *models.Human) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Human_friendsConnection,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Human().FriendsConnection(ctx, obj, fc.Args[\"first\"].(*int), fc.Args[\"after\"].(*string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNFriendsConnection2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐFriendsConnection,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Human_friendsConnection(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Human\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"totalCount\":\n\t\t\t\treturn ec.fieldContext_FriendsConnection_totalCount(ctx, field)\n\t\t\tcase \"edges\":\n\t\t\t\treturn ec.fieldContext_FriendsConnection_edges(ctx, field)\n\t\t\tcase \"friends\":\n\t\t\t\treturn ec.fieldContext_FriendsConnection_friends(ctx, field)\n\t\t\tcase \"pageInfo\":\n\t\t\t\treturn ec.fieldContext_FriendsConnection_pageInfo(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type FriendsConnection\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Human_friendsConnection_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Human_appearsIn(ctx context.Context, field graphql.CollectedField, obj *models.Human) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Human_appearsIn,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.AppearsIn, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNEpisode2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐEpisodeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Human_appearsIn(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Human\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Episode does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Human_starships(ctx context.Context, field graphql.CollectedField, obj *models.Human) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Human_starships,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Human().Starships(ctx, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalOStarship2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐStarshipᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Human_starships(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Human\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Starship_id(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_Starship_name(ctx, field)\n\t\t\tcase \"length\":\n\t\t\t\treturn ec.fieldContext_Starship_length(ctx, field)\n\t\t\tcase \"history\":\n\t\t\t\treturn ec.fieldContext_Starship_history(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Starship\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Human_query(ctx context.Context, field graphql.CollectedField, obj *models.Human) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Human_query(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tres := models.Query{}\n\tfc.Result = res\n\treturn ec.marshalNQuery2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐQuery(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Human_query(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Human\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"hero\":\n\t\t\t\treturn ec.fieldContext_Query_hero(ctx, field)\n\t\t\tcase \"reviews\":\n\t\t\t\treturn ec.fieldContext_Query_reviews(ctx, field)\n\t\t\tcase \"search\":\n\t\t\t\treturn ec.fieldContext_Query_search(ctx, field)\n\t\t\tcase \"character\":\n\t\t\t\treturn ec.fieldContext_Query_character(ctx, field)\n\t\t\tcase \"droid\":\n\t\t\t\treturn ec.fieldContext_Query_droid(ctx, field)\n\t\t\tcase \"human\":\n\t\t\t\treturn ec.fieldContext_Query_human(ctx, field)\n\t\t\tcase \"starship\":\n\t\t\t\treturn ec.fieldContext_Query_starship(ctx, field)\n\t\t\tcase \"__schema\":\n\t\t\t\treturn ec.fieldContext_Query___schema(ctx, field)\n\t\t\tcase \"__type\":\n\t\t\t\treturn ec.fieldContext_Query___type(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Query\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Human_mutation(ctx context.Context, field graphql.CollectedField, obj *models.Human) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Human_mutation(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tres := models.Mutation{}\n\tfc.Result = res\n\treturn ec.marshalNMutation2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐMutation(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Human_mutation(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Human\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"createReview\":\n\t\t\t\treturn ec.fieldContext_Mutation_createReview(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Mutation\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Mutation_createReview(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Mutation_createReview,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Mutation().CreateReview(ctx, fc.Args[\"episode\"].(models.Episode), fc.Args[\"review\"].(models.Review))\n\t\t},\n\t\tnil,\n\t\tec.marshalOReview2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐReview,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Mutation_createReview(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Mutation\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"stars\":\n\t\t\t\treturn ec.fieldContext_Review_stars(ctx, field)\n\t\t\tcase \"commentary\":\n\t\t\t\treturn ec.fieldContext_Review_commentary(ctx, field)\n\t\t\tcase \"time\":\n\t\t\t\treturn ec.fieldContext_Review_time(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Review\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Mutation_createReview_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PageInfo_startCursor(ctx context.Context, field graphql.CollectedField, obj *models.PageInfo) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PageInfo_startCursor,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.StartCursor, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PageInfo_startCursor(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PageInfo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PageInfo_endCursor(ctx context.Context, field graphql.CollectedField, obj *models.PageInfo) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PageInfo_endCursor,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.EndCursor, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PageInfo_endCursor(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PageInfo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PageInfo_hasNextPage(ctx context.Context, field graphql.CollectedField, obj *models.PageInfo) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PageInfo_hasNextPage,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.HasNextPage, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PageInfo_hasNextPage(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PageInfo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_hero(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_hero,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().Hero(ctx, fc.Args[\"episode\"].(*models.Episode))\n\t\t},\n\t\tnil,\n\t\tec.marshalOCharacter2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐCharacter,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_hero(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"FieldContext.Child cannot be called on type INTERFACE\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_hero_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_reviews(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_reviews,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().Reviews(ctx, fc.Args[\"episode\"].(models.Episode), fc.Args[\"since\"].(*time.Time))\n\t\t},\n\t\tnil,\n\t\tec.marshalNReview2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐReviewᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_reviews(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"stars\":\n\t\t\t\treturn ec.fieldContext_Review_stars(ctx, field)\n\t\t\tcase \"commentary\":\n\t\t\t\treturn ec.fieldContext_Review_commentary(ctx, field)\n\t\t\tcase \"time\":\n\t\t\t\treturn ec.fieldContext_Review_time(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Review\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_reviews_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_search(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_search,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().Search(ctx, fc.Args[\"text\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNSearchResult2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐSearchResultᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_search(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type SearchResult does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_search_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_character(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_character,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().Character(ctx, fc.Args[\"id\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalOCharacter2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐCharacter,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_character(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"FieldContext.Child cannot be called on type INTERFACE\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_character_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_droid(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_droid,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().Droid(ctx, fc.Args[\"id\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalODroid2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐDroid,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_droid(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Droid_id(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_Droid_name(ctx, field)\n\t\t\tcase \"friends\":\n\t\t\t\treturn ec.fieldContext_Droid_friends(ctx, field)\n\t\t\tcase \"friendsConnection\":\n\t\t\t\treturn ec.fieldContext_Droid_friendsConnection(ctx, field)\n\t\t\tcase \"appearsIn\":\n\t\t\t\treturn ec.fieldContext_Droid_appearsIn(ctx, field)\n\t\t\tcase \"primaryFunction\":\n\t\t\t\treturn ec.fieldContext_Droid_primaryFunction(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Droid\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_droid_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_human(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_human,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().Human(ctx, fc.Args[\"id\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalOHuman2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐHuman,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_human(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Human_id(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_Human_name(ctx, field)\n\t\t\tcase \"height\":\n\t\t\t\treturn ec.fieldContext_Human_height(ctx, field)\n\t\t\tcase \"mass\":\n\t\t\t\treturn ec.fieldContext_Human_mass(ctx, field)\n\t\t\tcase \"friends\":\n\t\t\t\treturn ec.fieldContext_Human_friends(ctx, field)\n\t\t\tcase \"friendsConnection\":\n\t\t\t\treturn ec.fieldContext_Human_friendsConnection(ctx, field)\n\t\t\tcase \"appearsIn\":\n\t\t\t\treturn ec.fieldContext_Human_appearsIn(ctx, field)\n\t\t\tcase \"starships\":\n\t\t\t\treturn ec.fieldContext_Human_starships(ctx, field)\n\t\t\tcase \"query\":\n\t\t\t\treturn ec.fieldContext_Human_query(ctx, field)\n\t\t\tcase \"mutation\":\n\t\t\t\treturn ec.fieldContext_Human_mutation(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Human\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_human_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_starship(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_starship,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().Starship(ctx, fc.Args[\"id\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalOStarship2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐStarship,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_starship(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Starship_id(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_Starship_name(ctx, field)\n\t\t\tcase \"length\":\n\t\t\t\treturn ec.fieldContext_Starship_length(ctx, field)\n\t\t\tcase \"history\":\n\t\t\t\treturn ec.fieldContext_Starship_history(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Starship\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_starship_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.IntrospectType(fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___schema,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.IntrospectSchema()\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Review_stars(ctx context.Context, field graphql.CollectedField, obj *models.Review) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Review_stars,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Stars, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Review_stars(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Review\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Review_commentary(ctx context.Context, field graphql.CollectedField, obj *models.Review) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Review_commentary,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Commentary, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Review_commentary(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Review\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Review_time(ctx context.Context, field graphql.CollectedField, obj *models.Review) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Review_time,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Time, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOTime2timeᚐTime,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Review_time(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Review\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Time does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Starship_id(ctx context.Context, field graphql.CollectedField, obj *models.Starship) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Starship_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Starship_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Starship\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Starship_name(ctx context.Context, field graphql.CollectedField, obj *models.Starship) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Starship_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Starship_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Starship\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Starship_length(ctx context.Context, field graphql.CollectedField, obj *models.Starship) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Starship_length,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Starship().Length(ctx, obj, fc.Args[\"unit\"].(*models.LengthUnit))\n\t\t},\n\t\tnil,\n\t\tec.marshalNFloat2float64,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Starship_length(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Starship\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Float does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Starship_length_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Starship_history(ctx context.Context, field graphql.CollectedField, obj *models.Starship) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Starship_history,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.History, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2ᚕᚕintᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Starship_history(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Starship\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_isRepeatable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsRepeatable, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_locations,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Locations, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__DirectiveLocation2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_defaultValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DefaultValue, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_types,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Types(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_queryType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.QueryType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_mutationType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.MutationType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_subscriptionType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SubscriptionType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_directives,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Directives(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_kind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Kind(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__TypeKind2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_specifiedByURL,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SpecifiedByURL(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_fields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_interfaces,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Interfaces(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_possibleTypes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PossibleTypes(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_enumValues,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_inputFields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.InputFields(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_ofType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.OfType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_isOneOf,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsOneOf(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOBoolean2bool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalInputReviewInput(ctx context.Context, obj any) (models.Review, error) {\n\tvar it models.Review\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"stars\", \"commentary\", \"time\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"stars\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"stars\"))\n\t\t\tdata, err := ec.unmarshalNInt2int(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Stars = data\n\t\tcase \"commentary\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"commentary\"))\n\t\t\tdata, err := ec.unmarshalOString2ᚖstring(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Commentary = data\n\t\tcase \"time\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"time\"))\n\t\t\tdata, err := ec.unmarshalOTime2timeᚐTime(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Time = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\nfunc (ec *executionContext) _Character(ctx context.Context, sel ast.SelectionSet, obj models.Character) graphql.Marshaler {\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\tcase models.Human:\n\t\treturn ec._Human(ctx, sel, &obj)\n\tcase *models.Human:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Human(ctx, sel, obj)\n\tcase models.Droid:\n\t\treturn ec._Droid(ctx, sel, &obj)\n\tcase *models.Droid:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Droid(ctx, sel, obj)\n\tdefault:\n\t\tif typedObj, ok := obj.(graphql.Marshaler); ok {\n\t\t\treturn typedObj\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T; non-generated variants of Character must implement graphql.Marshaler\", obj))\n\t\t}\n\t}\n}\n\nfunc (ec *executionContext) _SearchResult(ctx context.Context, sel ast.SelectionSet, obj models.SearchResult) graphql.Marshaler {\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\tcase models.Human:\n\t\treturn ec._Human(ctx, sel, &obj)\n\tcase *models.Human:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Human(ctx, sel, obj)\n\tcase models.Droid:\n\t\treturn ec._Droid(ctx, sel, &obj)\n\tcase *models.Droid:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Droid(ctx, sel, obj)\n\tcase models.Starship:\n\t\treturn ec._Starship(ctx, sel, &obj)\n\tcase *models.Starship:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Starship(ctx, sel, obj)\n\tdefault:\n\t\tif typedObj, ok := obj.(graphql.Marshaler); ok {\n\t\t\treturn typedObj\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T; non-generated variants of SearchResult must implement graphql.Marshaler\", obj))\n\t\t}\n\t}\n}\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar droidImplementors = []string{\"Droid\", \"Character\", \"SearchResult\"}\n\nfunc (ec *executionContext) _Droid(ctx context.Context, sel ast.SelectionSet, obj *models.Droid) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, droidImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Droid\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._Droid_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._Droid_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"friends\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Droid_friends(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"friendsConnection\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Droid_friendsConnection(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"appearsIn\":\n\t\t\tout.Values[i] = ec._Droid_appearsIn(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"primaryFunction\":\n\t\t\tout.Values[i] = ec._Droid_primaryFunction(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar friendsConnectionImplementors = []string{\"FriendsConnection\"}\n\nfunc (ec *executionContext) _FriendsConnection(ctx context.Context, sel ast.SelectionSet, obj *models.FriendsConnection) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, friendsConnectionImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"FriendsConnection\")\n\t\tcase \"totalCount\":\n\t\t\tout.Values[i] = ec._FriendsConnection_totalCount(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"edges\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._FriendsConnection_edges(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"friends\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._FriendsConnection_friends(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"pageInfo\":\n\t\t\tout.Values[i] = ec._FriendsConnection_pageInfo(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar friendsEdgeImplementors = []string{\"FriendsEdge\"}\n\nfunc (ec *executionContext) _FriendsEdge(ctx context.Context, sel ast.SelectionSet, obj *models.FriendsEdge) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, friendsEdgeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"FriendsEdge\")\n\t\tcase \"cursor\":\n\t\t\tout.Values[i] = ec._FriendsEdge_cursor(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"node\":\n\t\t\tout.Values[i] = ec._FriendsEdge_node(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar humanImplementors = []string{\"Human\", \"Character\", \"SearchResult\"}\n\nfunc (ec *executionContext) _Human(ctx context.Context, sel ast.SelectionSet, obj *models.Human) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, humanImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Human\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._Human_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._Human_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"height\":\n\t\t\tout.Values[i] = ec._Human_height(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"mass\":\n\t\t\tout.Values[i] = ec._Human_mass(ctx, field, obj)\n\t\tcase \"friends\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Human_friends(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"friendsConnection\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Human_friendsConnection(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"appearsIn\":\n\t\t\tout.Values[i] = ec._Human_appearsIn(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"starships\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Human_starships(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"query\":\n\t\t\tout.Values[i] = ec._Human_query(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"mutation\":\n\t\t\tout.Values[i] = ec._Human_mutation(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar mutationImplementors = []string{\"Mutation\"}\n\nfunc (ec *executionContext) _Mutation(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, mutationImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Mutation\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Mutation\")\n\t\tcase \"createReview\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Mutation_createReview(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar pageInfoImplementors = []string{\"PageInfo\"}\n\nfunc (ec *executionContext) _PageInfo(ctx context.Context, sel ast.SelectionSet, obj *models.PageInfo) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, pageInfoImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"PageInfo\")\n\t\tcase \"startCursor\":\n\t\t\tout.Values[i] = ec._PageInfo_startCursor(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"endCursor\":\n\t\t\tout.Values[i] = ec._PageInfo_endCursor(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"hasNextPage\":\n\t\t\tout.Values[i] = ec._PageInfo_hasNextPage(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"hero\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_hero(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"reviews\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_reviews(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"search\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_search(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"character\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_character(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"droid\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_droid(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"human\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_human(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"starship\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_starship(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar reviewImplementors = []string{\"Review\"}\n\nfunc (ec *executionContext) _Review(ctx context.Context, sel ast.SelectionSet, obj *models.Review) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, reviewImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Review\")\n\t\tcase \"stars\":\n\t\t\tout.Values[i] = ec._Review_stars(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"commentary\":\n\t\t\tout.Values[i] = ec._Review_commentary(ctx, field, obj)\n\t\tcase \"time\":\n\t\t\tout.Values[i] = ec._Review_time(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar starshipImplementors = []string{\"Starship\", \"SearchResult\"}\n\nfunc (ec *executionContext) _Starship(ctx context.Context, sel ast.SelectionSet, obj *models.Starship) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, starshipImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Starship\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._Starship_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._Starship_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"length\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Starship_length(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"history\":\n\t\t\tout.Values[i] = ec._Starship_history(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNCharacter2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐCharacter(ctx context.Context, sel ast.SelectionSet, v models.Character) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Character(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNEpisode2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐEpisode(ctx context.Context, v any) (models.Episode, error) {\n\tvar res models.Episode\n\terr := res.UnmarshalGQL(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNEpisode2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐEpisode(ctx context.Context, sel ast.SelectionSet, v models.Episode) graphql.Marshaler {\n\treturn v\n}\n\nfunc (ec *executionContext) unmarshalNEpisode2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐEpisodeᚄ(ctx context.Context, v any) ([]models.Episode, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]models.Episode, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNEpisode2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐEpisode(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalNEpisode2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐEpisodeᚄ(ctx context.Context, sel ast.SelectionSet, v []models.Episode) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNEpisode2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐEpisode(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalNFloat2float64(ctx context.Context, v any) (float64, error) {\n\tres, err := graphql.UnmarshalFloatContext(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNFloat2float64(ctx context.Context, sel ast.SelectionSet, v float64) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalFloatContext(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn graphql.WrapContextMarshaler(ctx, res)\n}\n\nfunc (ec *executionContext) marshalNFriendsConnection2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐFriendsConnection(ctx context.Context, sel ast.SelectionSet, v models.FriendsConnection) graphql.Marshaler {\n\treturn ec._FriendsConnection(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNFriendsConnection2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐFriendsConnection(ctx context.Context, sel ast.SelectionSet, v *models.FriendsConnection) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._FriendsConnection(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNFriendsEdge2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐFriendsEdge(ctx context.Context, sel ast.SelectionSet, v *models.FriendsEdge) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._FriendsEdge(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNID2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalID(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNID2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalID(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNInt2int(ctx context.Context, v any) (int, error) {\n\tres, err := graphql.UnmarshalInt(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNInt2int(ctx context.Context, sel ast.SelectionSet, v int) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalInt(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNInt2ᚕintᚄ(ctx context.Context, v any) ([]int, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]int, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNInt2int(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalNInt2ᚕintᚄ(ctx context.Context, sel ast.SelectionSet, v []int) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNInt2int(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalNInt2ᚕᚕintᚄ(ctx context.Context, v any) ([][]int, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([][]int, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNInt2ᚕintᚄ(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalNInt2ᚕᚕintᚄ(ctx context.Context, sel ast.SelectionSet, v [][]int) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNInt2ᚕintᚄ(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalNMutation2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐMutation(ctx context.Context, sel ast.SelectionSet, v models.Mutation) graphql.Marshaler {\n\treturn ec._Mutation(ctx, sel)\n}\n\nfunc (ec *executionContext) marshalNPageInfo2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐPageInfo(ctx context.Context, sel ast.SelectionSet, v models.PageInfo) graphql.Marshaler {\n\treturn ec._PageInfo(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNQuery2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐQuery(ctx context.Context, sel ast.SelectionSet, v models.Query) graphql.Marshaler {\n\treturn ec._Query(ctx, sel)\n}\n\nfunc (ec *executionContext) marshalNReview2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐReviewᚄ(ctx context.Context, sel ast.SelectionSet, v []*models.Review) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNReview2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐReview(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalNReview2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐReview(ctx context.Context, sel ast.SelectionSet, v *models.Review) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Review(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNReviewInput2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐReview(ctx context.Context, v any) (models.Review, error) {\n\tres, err := ec.unmarshalInputReviewInput(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNSearchResult2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐSearchResult(ctx context.Context, sel ast.SelectionSet, v models.SearchResult) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._SearchResult(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNSearchResult2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐSearchResultᚄ(ctx context.Context, sel ast.SelectionSet, v []models.SearchResult) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNSearchResult2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐSearchResult(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalNStarship2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐStarship(ctx context.Context, sel ast.SelectionSet, v *models.Starship) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Starship(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalOCharacter2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐCharacter(ctx context.Context, sel ast.SelectionSet, v models.Character) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Character(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOCharacter2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐCharacterᚄ(ctx context.Context, sel ast.SelectionSet, v []models.Character) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNCharacter2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐCharacter(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalODroid2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐDroid(ctx context.Context, sel ast.SelectionSet, v *models.Droid) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Droid(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOEpisode2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐEpisode(ctx context.Context, v any) (*models.Episode, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar res = new(models.Episode)\n\terr := res.UnmarshalGQL(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOEpisode2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐEpisode(ctx context.Context, sel ast.SelectionSet, v *models.Episode) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn v\n}\n\nfunc (ec *executionContext) unmarshalOFloat2float64(ctx context.Context, v any) (float64, error) {\n\tres, err := graphql.UnmarshalFloatContext(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOFloat2float64(ctx context.Context, sel ast.SelectionSet, v float64) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalFloatContext(v)\n\treturn graphql.WrapContextMarshaler(ctx, res)\n}\n\nfunc (ec *executionContext) marshalOFriendsEdge2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐFriendsEdgeᚄ(ctx context.Context, sel ast.SelectionSet, v []*models.FriendsEdge) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNFriendsEdge2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐFriendsEdge(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOHuman2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐHuman(ctx context.Context, sel ast.SelectionSet, v *models.Human) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Human(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOID2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalID(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOID2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalID(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOInt2ᚖint(ctx context.Context, v any) (*int, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalInt(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOInt2ᚖint(ctx context.Context, sel ast.SelectionSet, v *int) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalInt(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOLengthUnit2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐLengthUnit(ctx context.Context, v any) (models.LengthUnit, error) {\n\tvar res models.LengthUnit\n\terr := res.UnmarshalGQL(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOLengthUnit2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐLengthUnit(ctx context.Context, sel ast.SelectionSet, v models.LengthUnit) graphql.Marshaler {\n\treturn v\n}\n\nfunc (ec *executionContext) unmarshalOLengthUnit2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐLengthUnit(ctx context.Context, v any) (*models.LengthUnit, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar res = new(models.LengthUnit)\n\terr := res.UnmarshalGQL(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOLengthUnit2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐLengthUnit(ctx context.Context, sel ast.SelectionSet, v *models.LengthUnit) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn v\n}\n\nfunc (ec *executionContext) marshalOReview2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐReview(ctx context.Context, sel ast.SelectionSet, v *models.Review) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Review(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOStarship2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐStarshipᚄ(ctx context.Context, sel ast.SelectionSet, v []*models.Starship) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNStarship2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐStarship(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOStarship2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋstarwarsᚋmodelsᚐStarship(ctx context.Context, sel ast.SelectionSet, v *models.Starship) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Starship(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOTime2timeᚐTime(ctx context.Context, v any) (time.Time, error) {\n\tres, err := graphql.UnmarshalTime(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOTime2timeᚐTime(ctx context.Context, sel ast.SelectionSet, v time.Time) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalTime(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOTime2ᚖtimeᚐTime(ctx context.Context, v any) (*time.Time, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalTime(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOTime2ᚖtimeᚐTime(ctx context.Context, sel ast.SelectionSet, v *time.Time) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalTime(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "_examples/starwars/models/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage models\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n)\n\ntype Character interface {\n\tIsCharacter()\n\tGetID() string\n\tGetName() string\n\tGetFriends() []Character\n\tGetFriendsConnection() *FriendsConnection\n\tGetAppearsIn() []Episode\n}\n\ntype SearchResult interface {\n\tIsSearchResult()\n}\n\ntype FriendsEdge struct {\n\tCursor string    `json:\"cursor\"`\n\tNode   Character `json:\"node,omitempty\"`\n}\n\ntype Mutation struct {\n}\n\ntype PageInfo struct {\n\tStartCursor string `json:\"startCursor\"`\n\tEndCursor   string `json:\"endCursor\"`\n\tHasNextPage bool   `json:\"hasNextPage\"`\n}\n\ntype Query struct {\n}\n\ntype Starship struct {\n\tID      string  `json:\"id\"`\n\tName    string  `json:\"name\"`\n\tLength  float64 `json:\"length\"`\n\tHistory [][]int `json:\"history\"`\n}\n\nfunc (Starship) IsSearchResult() {}\n\ntype Episode string\n\nconst (\n\tEpisodeNewhope Episode = \"NEWHOPE\"\n\tEpisodeEmpire  Episode = \"EMPIRE\"\n\tEpisodeJedi    Episode = \"JEDI\"\n)\n\nvar AllEpisode = []Episode{\n\tEpisodeNewhope,\n\tEpisodeEmpire,\n\tEpisodeJedi,\n}\n\nfunc (e Episode) IsValid() bool {\n\tswitch e {\n\tcase EpisodeNewhope, EpisodeEmpire, EpisodeJedi:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e Episode) String() string {\n\treturn string(e)\n}\n\nfunc (e *Episode) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = Episode(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid Episode\", str)\n\t}\n\treturn nil\n}\n\nfunc (e Episode) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *Episode) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e Episode) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n\ntype LengthUnit string\n\nconst (\n\tLengthUnitMeter LengthUnit = \"METER\"\n\tLengthUnitFoot  LengthUnit = \"FOOT\"\n)\n\nvar AllLengthUnit = []LengthUnit{\n\tLengthUnitMeter,\n\tLengthUnitFoot,\n}\n\nfunc (e LengthUnit) IsValid() bool {\n\tswitch e {\n\tcase LengthUnitMeter, LengthUnitFoot:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e LengthUnit) String() string {\n\treturn string(e)\n}\n\nfunc (e *LengthUnit) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = LengthUnit(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid LengthUnit\", str)\n\t}\n\treturn nil\n}\n\nfunc (e LengthUnit) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *LengthUnit) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e LengthUnit) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n"
  },
  {
    "path": "_examples/starwars/models/model.go",
    "content": "package models\n\nimport (\n\t\"encoding/base64\"\n\t\"fmt\"\n\t\"time\"\n)\n\ntype CharacterFields struct {\n\tID        string\n\tName      string\n\tFriendIds []string\n\tAppearsIn []Episode\n}\n\nfunc (cf CharacterFields) GetID() string           { return cf.ID }\nfunc (cf CharacterFields) GetName() string         { return cf.Name }\nfunc (cf CharacterFields) GetAppearsIn() []Episode { return cf.AppearsIn }\n\nfunc (cf CharacterFields) GetFriendsConnection() *FriendsConnection { return nil } // Handled in resolver\nfunc (cf CharacterFields) GetFriends() []Character                  { return nil } // Handled in resolver\n\ntype Human struct {\n\tCharacterFields\n\tStarshipIds  []string\n\tHeightMeters float64\n\tMass         float64\n}\n\nfunc (h *Human) Height(unit LengthUnit) float64 {\n\tswitch unit {\n\tcase \"METER\", \"\":\n\t\treturn h.HeightMeters\n\tcase \"FOOT\":\n\t\treturn h.HeightMeters * 3.28084\n\tdefault:\n\t\tpanic(\"invalid unit\")\n\t}\n}\n\nfunc (Human) IsCharacter()    {}\nfunc (Human) IsSearchResult() {}\n\ntype Review struct {\n\tStars      int\n\tCommentary *string\n\tTime       time.Time\n}\n\ntype Droid struct {\n\tCharacterFields\n\tPrimaryFunction string\n}\n\nfunc (Droid) IsCharacter()    {}\nfunc (Droid) IsSearchResult() {}\n\ntype FriendsConnection struct {\n\tIds  []string\n\tFrom int\n\tTo   int\n}\n\nfunc (f *FriendsConnection) TotalCount() int {\n\treturn len(f.Ids)\n}\n\nfunc (f *FriendsConnection) PageInfo() PageInfo {\n\treturn PageInfo{\n\t\tStartCursor: EncodeCursor(f.From),\n\t\tEndCursor:   EncodeCursor(f.To - 1),\n\t\tHasNextPage: f.To < len(f.Ids),\n\t}\n}\n\nfunc EncodeCursor(i int) string {\n\treturn base64.StdEncoding.EncodeToString([]byte(fmt.Sprintf(\"cursor%d\", i+1)))\n}\n"
  },
  {
    "path": "_examples/starwars/readme.md",
    "content": "### starwars example\n\nThis server demonstrates a few advanced features of graphql:\n - connections\n - unions\n - interfaces\n - enums\n\nto run this server\n```bash\ngo run ./server/server.go\n```\n\nand open http://localhost:8080 in your browser\n"
  },
  {
    "path": "_examples/starwars/resolvers.go",
    "content": "//go:generate rm -rf generated\n//go:generate go run ../../testdata/gqlgen.go\n\npackage starwars\n\nimport (\n\t\"context\"\n\t\"encoding/base64\"\n\t\"errors\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/99designs/gqlgen/_examples/starwars/generated\"\n\t\"github.com/99designs/gqlgen/_examples/starwars/models\"\n)\n\ntype Resolver struct {\n\thumans    map[string]models.Human\n\tdroid     map[string]models.Droid\n\tstarships map[string]models.Starship\n\treviews   map[models.Episode][]*models.Review\n}\n\nfunc (r *Resolver) Droid() generated.DroidResolver {\n\treturn &droidResolver{r}\n}\n\nfunc (r *Resolver) FriendsConnection() generated.FriendsConnectionResolver {\n\treturn &friendsConnectionResolver{r}\n}\n\nfunc (r *Resolver) Human() generated.HumanResolver {\n\treturn &humanResolver{r}\n}\n\nfunc (r *Resolver) Mutation() generated.MutationResolver {\n\treturn &mutationResolver{r}\n}\n\nfunc (r *Resolver) Query() generated.QueryResolver {\n\treturn &queryResolver{r}\n}\n\nfunc (r *Resolver) Starship() generated.StarshipResolver {\n\treturn &starshipResolver{r}\n}\n\nfunc (r *Resolver) resolveCharacters(\n\tctx context.Context,\n\tids []string,\n) ([]models.Character, error) {\n\tresult := make([]models.Character, len(ids))\n\tfor i, id := range ids {\n\t\tchar, err := r.Query().Character(ctx, id)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tresult[i] = char\n\t}\n\treturn result, nil\n}\n\ntype droidResolver struct{ *Resolver }\n\nfunc (r *droidResolver) Friends(\n\tctx context.Context,\n\tobj *models.Droid,\n) ([]models.Character, error) {\n\treturn r.resolveCharacters(ctx, obj.FriendIds)\n}\n\nfunc (r *droidResolver) FriendsConnection(\n\tctx context.Context,\n\tobj *models.Droid,\n\tfirst *int,\n\tafter *string,\n) (*models.FriendsConnection, error) {\n\treturn r.resolveFriendConnection(ctx, obj.FriendIds, first, after)\n}\n\ntype friendsConnectionResolver struct{ *Resolver }\n\nfunc (r *Resolver) resolveFriendConnection(\n\t_ context.Context,\n\tids []string,\n\tfirst *int,\n\tafter *string,\n) (*models.FriendsConnection, error) {\n\tfrom := 0\n\tif after != nil {\n\t\tb, err := base64.StdEncoding.DecodeString(*after)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ti, err := strconv.Atoi(strings.TrimPrefix(string(b), \"cursor\"))\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tfrom = i\n\t}\n\n\tto := len(ids)\n\tif first != nil {\n\t\tto = from + *first\n\t\tif to > len(ids) {\n\t\t\tto = len(ids)\n\t\t}\n\t}\n\n\treturn &models.FriendsConnection{\n\t\tIds:  ids,\n\t\tFrom: from,\n\t\tTo:   to,\n\t}, nil\n}\n\nfunc (r *friendsConnectionResolver) Edges(\n\tctx context.Context,\n\tobj *models.FriendsConnection,\n) ([]*models.FriendsEdge, error) {\n\tfriends, err := r.resolveCharacters(ctx, obj.Ids)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tedges := make([]*models.FriendsEdge, obj.To-obj.From)\n\tfor i := range edges {\n\t\tedges[i] = &models.FriendsEdge{\n\t\t\tCursor: models.EncodeCursor(obj.From + i),\n\t\t\tNode:   friends[obj.From+i],\n\t\t}\n\t}\n\treturn edges, nil\n}\n\nfunc (r *friendsConnectionResolver) Friends(\n\tctx context.Context,\n\tobj *models.FriendsConnection,\n) ([]models.Character, error) {\n\treturn r.resolveCharacters(ctx, obj.Ids)\n}\n\ntype humanResolver struct{ *Resolver }\n\nfunc (r *humanResolver) Friends(\n\tctx context.Context,\n\tobj *models.Human,\n) ([]models.Character, error) {\n\treturn r.resolveCharacters(ctx, obj.FriendIds)\n}\n\nfunc (r *humanResolver) FriendsConnection(\n\tctx context.Context,\n\tobj *models.Human,\n\tfirst *int,\n\tafter *string,\n) (*models.FriendsConnection, error) {\n\treturn r.resolveFriendConnection(ctx, obj.FriendIds, first, after)\n}\n\nfunc (r *humanResolver) Starships(\n\tctx context.Context,\n\tobj *models.Human,\n) ([]*models.Starship, error) {\n\tvar result []*models.Starship\n\tfor _, id := range obj.StarshipIds {\n\t\tchar, err := r.Query().Starship(ctx, id)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif char != nil {\n\t\t\tresult = append(result, char)\n\t\t}\n\t}\n\treturn result, nil\n}\n\ntype mutationResolver struct{ *Resolver }\n\nfunc (r *mutationResolver) CreateReview(\n\tctx context.Context,\n\tepisode models.Episode,\n\treview models.Review,\n) (*models.Review, error) {\n\treview.Time = time.Now()\n\ttime.Sleep(1 * time.Second)\n\tr.reviews[episode] = append(r.reviews[episode], &review)\n\treturn &review, nil\n}\n\ntype queryResolver struct{ *Resolver }\n\nfunc (r *queryResolver) Hero(\n\tctx context.Context,\n\tepisode *models.Episode,\n) (models.Character, error) {\n\tif *episode == models.EpisodeEmpire {\n\t\treturn r.humans[\"1000\"], nil\n\t}\n\treturn r.droid[\"2001\"], nil\n}\n\nfunc (r *queryResolver) Reviews(\n\tctx context.Context,\n\tepisode models.Episode,\n\tsince *time.Time,\n) ([]*models.Review, error) {\n\tif since == nil {\n\t\treturn r.reviews[episode], nil\n\t}\n\n\tvar filtered []*models.Review\n\tfor _, rev := range r.reviews[episode] {\n\t\tif rev.Time.After(*since) {\n\t\t\tfiltered = append(filtered, rev)\n\t\t}\n\t}\n\treturn filtered, nil\n}\n\nfunc (r *queryResolver) Search(ctx context.Context, text string) ([]models.SearchResult, error) {\n\tvar l []models.SearchResult\n\tfor _, h := range r.humans {\n\t\tif strings.Contains(h.Name, text) {\n\t\t\tl = append(l, h)\n\t\t}\n\t}\n\tfor _, d := range r.droid {\n\t\tif strings.Contains(d.Name, text) {\n\t\t\tl = append(l, d)\n\t\t}\n\t}\n\tfor _, s := range r.starships {\n\t\tif strings.Contains(s.Name, text) {\n\t\t\tl = append(l, s)\n\t\t}\n\t}\n\treturn l, nil\n}\n\nfunc (r *queryResolver) Character(ctx context.Context, id string) (models.Character, error) {\n\tif h, ok := r.humans[id]; ok {\n\t\treturn &h, nil\n\t}\n\tif d, ok := r.droid[id]; ok {\n\t\treturn &d, nil\n\t}\n\treturn nil, nil\n}\n\nfunc (r *queryResolver) Droid(ctx context.Context, id string) (*models.Droid, error) {\n\tif d, ok := r.droid[id]; ok {\n\t\treturn &d, nil\n\t}\n\treturn nil, nil\n}\n\nfunc (r *queryResolver) Human(ctx context.Context, id string) (*models.Human, error) {\n\tif h, ok := r.humans[id]; ok {\n\t\treturn &h, nil\n\t}\n\treturn nil, nil\n}\n\nfunc (r *queryResolver) Starship(ctx context.Context, id string) (*models.Starship, error) {\n\tif s, ok := r.starships[id]; ok {\n\t\treturn &s, nil\n\t}\n\treturn nil, nil\n}\n\ntype starshipResolver struct{ *Resolver }\n\nfunc (r *starshipResolver) Length(\n\tctx context.Context,\n\tobj *models.Starship,\n\tunit *models.LengthUnit,\n) (float64, error) {\n\tswitch *unit {\n\tcase models.LengthUnitMeter, \"\":\n\t\treturn obj.Length, nil\n\tcase models.LengthUnitFoot:\n\t\treturn obj.Length * 3.28084, nil\n\tdefault:\n\t\treturn 0, errors.New(\"invalid unit\")\n\t}\n}\n\nfunc NewResolver() generated.Config {\n\tr := Resolver{}\n\tr.humans = map[string]models.Human{\n\t\t\"1000\": {\n\t\t\tCharacterFields: models.CharacterFields{\n\t\t\t\tID:        \"1000\",\n\t\t\t\tName:      \"Luke Skywalker\",\n\t\t\t\tFriendIds: []string{\"1002\", \"1003\", \"2000\", \"2001\"},\n\t\t\t\tAppearsIn: []models.Episode{\n\t\t\t\t\tmodels.EpisodeNewhope,\n\t\t\t\t\tmodels.EpisodeEmpire,\n\t\t\t\t\tmodels.EpisodeJedi,\n\t\t\t\t},\n\t\t\t},\n\t\t\tHeightMeters: 1.72,\n\t\t\tMass:         77,\n\t\t\tStarshipIds:  []string{\"3001\", \"3003\"},\n\t\t},\n\t\t\"1001\": {\n\t\t\tCharacterFields: models.CharacterFields{\n\t\t\t\tID:        \"1001\",\n\t\t\t\tName:      \"Darth Vader\",\n\t\t\t\tFriendIds: []string{\"1004\"},\n\t\t\t\tAppearsIn: []models.Episode{\n\t\t\t\t\tmodels.EpisodeNewhope,\n\t\t\t\t\tmodels.EpisodeEmpire,\n\t\t\t\t\tmodels.EpisodeJedi,\n\t\t\t\t},\n\t\t\t},\n\t\t\tHeightMeters: 2.02,\n\t\t\tMass:         136,\n\t\t\tStarshipIds:  []string{\"3002\"},\n\t\t},\n\t\t\"1002\": {\n\t\t\tCharacterFields: models.CharacterFields{\n\t\t\t\tID:        \"1002\",\n\t\t\t\tName:      \"Han Solo\",\n\t\t\t\tFriendIds: []string{\"1000\", \"1003\", \"2001\"},\n\t\t\t\tAppearsIn: []models.Episode{\n\t\t\t\t\tmodels.EpisodeNewhope,\n\t\t\t\t\tmodels.EpisodeEmpire,\n\t\t\t\t\tmodels.EpisodeJedi,\n\t\t\t\t},\n\t\t\t},\n\t\t\tHeightMeters: 1.8,\n\t\t\tMass:         80,\n\t\t\tStarshipIds:  []string{\"3000\", \"3003\"},\n\t\t},\n\t\t\"1003\": {\n\t\t\tCharacterFields: models.CharacterFields{\n\t\t\t\tID:        \"1003\",\n\t\t\t\tName:      \"Leia Organa\",\n\t\t\t\tFriendIds: []string{\"1000\", \"1002\", \"2000\", \"2001\"},\n\t\t\t\tAppearsIn: []models.Episode{\n\t\t\t\t\tmodels.EpisodeNewhope,\n\t\t\t\t\tmodels.EpisodeEmpire,\n\t\t\t\t\tmodels.EpisodeJedi,\n\t\t\t\t},\n\t\t\t},\n\t\t\tHeightMeters: 1.5,\n\t\t\tMass:         49,\n\t\t},\n\t\t\"1004\": {\n\t\t\tCharacterFields: models.CharacterFields{\n\t\t\t\tID:        \"1004\",\n\t\t\t\tName:      \"Wilhuff Tarkin\",\n\t\t\t\tFriendIds: []string{\"1001\"},\n\t\t\t\tAppearsIn: []models.Episode{models.EpisodeNewhope},\n\t\t\t},\n\t\t\tHeightMeters: 1.8,\n\t\t\tMass:         0,\n\t\t},\n\t}\n\n\tr.droid = map[string]models.Droid{\n\t\t\"2000\": {\n\t\t\tCharacterFields: models.CharacterFields{\n\t\t\t\tID:        \"2000\",\n\t\t\t\tName:      \"C-3PO\",\n\t\t\t\tFriendIds: []string{\"1000\", \"1002\", \"1003\", \"2001\"},\n\t\t\t\tAppearsIn: []models.Episode{\n\t\t\t\t\tmodels.EpisodeNewhope,\n\t\t\t\t\tmodels.EpisodeEmpire,\n\t\t\t\t\tmodels.EpisodeJedi,\n\t\t\t\t},\n\t\t\t},\n\t\t\tPrimaryFunction: \"Protocol\",\n\t\t},\n\t\t\"2001\": {\n\t\t\tCharacterFields: models.CharacterFields{\n\t\t\t\tID:        \"2001\",\n\t\t\t\tName:      \"R2-D2\",\n\t\t\t\tFriendIds: []string{\"1000\", \"1002\", \"1003\"},\n\t\t\t\tAppearsIn: []models.Episode{\n\t\t\t\t\tmodels.EpisodeNewhope,\n\t\t\t\t\tmodels.EpisodeEmpire,\n\t\t\t\t\tmodels.EpisodeJedi,\n\t\t\t\t},\n\t\t\t},\n\t\t\tPrimaryFunction: \"Astromech\",\n\t\t},\n\t}\n\n\tr.starships = map[string]models.Starship{\n\t\t\"3000\": {\n\t\t\tID:   \"3000\",\n\t\t\tName: \"Millennium Falcon\",\n\t\t\tHistory: [][]int{\n\t\t\t\t{1, 2},\n\t\t\t\t{4, 5},\n\t\t\t\t{1, 2},\n\t\t\t\t{3, 2},\n\t\t\t},\n\t\t\tLength: 34.37,\n\t\t},\n\t\t\"3001\": {\n\t\t\tID:   \"3001\",\n\t\t\tName: \"X-Wing\",\n\t\t\tHistory: [][]int{\n\t\t\t\t{6, 4},\n\t\t\t\t{3, 2},\n\t\t\t\t{2, 3},\n\t\t\t\t{5, 1},\n\t\t\t},\n\t\t\tLength: 12.5,\n\t\t},\n\t\t\"3002\": {\n\t\t\tID:   \"3002\",\n\t\t\tName: \"TIE Advanced x1\",\n\t\t\tHistory: [][]int{\n\t\t\t\t{3, 2},\n\t\t\t\t{7, 2},\n\t\t\t\t{6, 4},\n\t\t\t\t{3, 2},\n\t\t\t},\n\t\t\tLength: 9.2,\n\t\t},\n\t\t\"3003\": {\n\t\t\tID:   \"3003\",\n\t\t\tName: \"Imperial shuttle\",\n\t\t\tHistory: [][]int{\n\t\t\t\t{1, 7},\n\t\t\t\t{3, 5},\n\t\t\t\t{5, 3},\n\t\t\t\t{7, 1},\n\t\t\t},\n\t\t\tLength: 20,\n\t\t},\n\t}\n\n\tr.reviews = map[models.Episode][]*models.Review{}\n\n\treturn generated.Config{\n\t\tResolvers: &r,\n\t}\n}\n"
  },
  {
    "path": "_examples/starwars/schema.graphql",
    "content": "# The query type, represents all of the entry points into our object graph\ntype Query {\n    hero(episode: Episode = NEWHOPE): Character\n    reviews(episode: Episode!, since: Time): [Review!]!\n    search(text: String!): [SearchResult!]!\n    character(id: ID!): Character\n    droid(id: ID!): Droid\n    human(id: ID!): Human\n    starship(id: ID!): Starship\n}\n# The mutation type, represents all updates we can make to our data\ntype Mutation {\n    createReview(episode: Episode!, review: ReviewInput!): Review\n}\n# The episodes in the Star Wars trilogy\nenum Episode {\n    # Star Wars Episode IV: A New Hope, released in 1977.\n    NEWHOPE\n    # Star Wars Episode V: The Empire Strikes Back, released in 1980.\n    EMPIRE\n    # Star Wars Episode VI: Return of the Jedi, released in 1983.\n    JEDI\n}\n# A character from the Star Wars universe\ninterface Character {\n    # The ID of the character\n    id: ID!\n    # The name of the character\n    name: String!\n    # The friends of the character, or an empty list if they have none\n    friends: [Character!]\n    # The friends of the character exposed as a connection with edges\n    friendsConnection(first: Int, after: ID): FriendsConnection!\n    # The movies this character appears in\n    appearsIn: [Episode!]!\n}\n# Units of height\nenum LengthUnit {\n    # The standard unit around the world\n    METER\n    # Primarily used in the United States\n    FOOT\n}\n# A humanoid creature from the Star Wars universe\ntype Human implements Character {\n    # The ID of the human\n    id: ID!\n    # What this human calls themselves\n    name: String!\n    # Height in the preferred unit, default is meters\n    height(unit: LengthUnit = METER): Float!\n    # Mass in kilograms, or null if unknown\n    mass: Float\n    # This human's friends, or an empty list if they have none\n    friends: [Character!]\n    # The friends of the human exposed as a connection with edges\n    friendsConnection(first: Int, after: ID): FriendsConnection!\n    # The movies this human appears in\n    appearsIn: [Episode!]!\n    # A list of starships this person has piloted, or an empty list if none\n    starships: [Starship!]\n    # Root level query\n    query: Query!\n    # Root level mutation\n    mutation: Mutation!\n}\n# An autonomous mechanical character in the Star Wars universe\ntype Droid implements Character {\n    # The ID of the droid\n    id: ID!\n    # What others call this droid\n    name: String!\n    # This droid's friends, or an empty list if they have none\n    friends: [Character!]\n    # The friends of the droid exposed as a connection with edges\n    friendsConnection(first: Int, after: ID): FriendsConnection!\n    # The movies this droid appears in\n    appearsIn: [Episode!]!\n    # This droid's primary function\n    primaryFunction: String\n}\n# A connection object for a character's friends\ntype FriendsConnection {\n    # The total number of friends\n    totalCount: Int!\n    # The edges for each of the character's friends.\n    edges: [FriendsEdge!]\n    # A list of the friends, as a convenience when edges are not needed.\n    friends: [Character!]\n    # Information for paginating this connection\n    pageInfo: PageInfo!\n}\n# An edge object for a character's friends\ntype FriendsEdge {\n    # A cursor used for pagination\n    cursor: ID!\n    # The character represented by this friendship edge\n    node: Character\n}\n# Information for paginating this connection\ntype PageInfo {\n    startCursor: ID!\n    endCursor: ID!\n    hasNextPage: Boolean!\n}\n# Represents a review for a movie\ntype Review {\n    # The number of stars this review gave, 1-5\n    stars: Int!\n    # Comment about the movie\n    commentary: String\n    # when the review was posted\n    time: Time\n}\n# The input object sent when someone is creating a new review\ninput ReviewInput {\n    # 0-5 stars\n    stars: Int!\n    # Comment about the movie, optional\n    commentary: String\n    # when the review was posted\n    time: Time\n}\ntype Starship {\n    # The ID of the starship\n    id: ID!\n    # The name of the starship\n    name: String!\n    # Length of the starship, along the longest axis\n    length(unit: LengthUnit = METER): Float!\n    # coordinates tracking this ship\n    history: [[Int!]!]!\n}\nunion SearchResult = Human | Droid | Starship\nscalar Time\n"
  },
  {
    "path": "_examples/starwars/server/server.go",
    "content": "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"log\"\n\t\"net/http\"\n\n\t\"github.com/99designs/gqlgen/_examples/starwars\"\n\t\"github.com/99designs/gqlgen/_examples/starwars/generated\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/graphql/playground\"\n)\n\nfunc main() {\n\tsrv := handler.New(generated.NewExecutableSchema(starwars.NewResolver()))\n\tsrv.AddTransport(transport.GET{})\n\tsrv.AddTransport(transport.POST{})\n\n\tsrv.AroundFields(func(ctx context.Context, next graphql.Resolver) (res any, err error) {\n\t\trc := graphql.GetFieldContext(ctx)\n\t\tfmt.Println(\"Entered\", rc.Object, rc.Field.Name)\n\t\tres, err = next(ctx)\n\t\tfmt.Println(\"Left\", rc.Object, rc.Field.Name, \"=>\", res, err)\n\t\treturn res, err\n\t})\n\n\thttp.Handle(\"/\", playground.Handler(\"Starwars\", \"/query\"))\n\thttp.Handle(\"/query\", srv)\n\n\tlog.Fatal(http.ListenAndServe(\":8080\", nil))\n}\n"
  },
  {
    "path": "_examples/starwars/starwars_test.go",
    "content": "package starwars\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/_examples/starwars/generated\"\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/extension\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n)\n\nfunc TestStarwars(t *testing.T) {\n\tsrv := handler.New(generated.NewExecutableSchema(NewResolver()))\n\tsrv.AddTransport(transport.POST{})\n\tsrv.Use(extension.Introspection{})\n\tc := client.New(srv)\n\n\tt.Run(\"Lukes starships\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tSearch []struct{ Starships []struct{ Name string } }\n\t\t}\n\t\tc.MustPost(`{ search(text:\"Luke\") { ... on Human { starships { name } } } }`, &resp)\n\n\t\trequire.Equal(t, \"X-Wing\", resp.Search[0].Starships[0].Name)\n\t\trequire.Equal(t, \"Imperial shuttle\", resp.Search[0].Starships[1].Name)\n\t})\n\n\tt.Run(\"get character\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tCharacter struct {\n\t\t\t\tName     string\n\t\t\t\tTypename string `json:\"__typename\"`\n\t\t\t}\n\t\t}\n\t\tc.MustPost(`{ character(id:\"2001\") { name, __typename } }`, &resp)\n\n\t\trequire.Equal(t, \"R2-D2\", resp.Character.Name)\n\t\trequire.Equal(t, \"Droid\", resp.Character.Typename)\n\t})\n\n\tt.Run(\"missing character\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tCharacter *struct{ Name string }\n\t\t}\n\t\tc.MustPost(`{ character(id:\"2002\") { name } }`, &resp)\n\n\t\trequire.Nil(t, resp.Character)\n\t})\n\n\tt.Run(\"get droid\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tDroid struct{ PrimaryFunction string }\n\t\t}\n\t\tc.MustPost(`{ droid(id:\"2001\") { primaryFunction } }`, &resp)\n\n\t\trequire.Equal(t, \"Astromech\", resp.Droid.PrimaryFunction)\n\t})\n\n\tt.Run(\"get human\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tHuman struct {\n\t\t\t\tStarships []struct {\n\t\t\t\t\tName   string\n\t\t\t\t\tLength float64\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tc.MustPost(`{ human(id:\"1000\") { starships { name length(unit:FOOT) } } }`, &resp)\n\n\t\trequire.Equal(t, \"X-Wing\", resp.Human.Starships[0].Name)\n\t\trequire.InDelta(t, 41.0105, resp.Human.Starships[0].Length, 0.0001)\n\n\t\trequire.Equal(t, \"Imperial shuttle\", resp.Human.Starships[1].Name)\n\t\trequire.InDelta(t, 65.6168, resp.Human.Starships[1].Length, 0.0001)\n\t})\n\n\tt.Run(\"hero height\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tHero struct {\n\t\t\t\tHeight float64\n\t\t\t}\n\t\t}\n\t\tc.MustPost(`{ hero(episode:EMPIRE) { ... on Human { height(unit:METER) } } }`, &resp)\n\n\t\trequire.InDelta(t, 1.72, resp.Hero.Height, 0.001)\n\t})\n\n\tt.Run(\"default hero episode\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tHero struct {\n\t\t\t\tName string\n\t\t\t}\n\t\t}\n\t\tc.MustPost(`{ hero { ... on Droid { name } } }`, &resp)\n\n\t\trequire.Equal(t, \"R2-D2\", resp.Hero.Name)\n\t})\n\n\tt.Run(\"friends\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tHuman struct {\n\t\t\t\tFriends []struct {\n\t\t\t\t\tName string\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tc.MustPost(`{ human(id: \"1001\") { friends { name } } }`, &resp)\n\n\t\trequire.Equal(t, \"Wilhuff Tarkin\", resp.Human.Friends[0].Name)\n\t})\n\n\tt.Run(\"friendsConnection.friends\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tDroid struct {\n\t\t\t\tFriendsConnection struct {\n\t\t\t\t\tFriends []struct {\n\t\t\t\t\t\tName string\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tc.MustPost(`{ droid(id:\"2001\") { friendsConnection { friends { name } } } }`, &resp)\n\n\t\trequire.Equal(t, \"Luke Skywalker\", resp.Droid.FriendsConnection.Friends[0].Name)\n\t\trequire.Equal(t, \"Han Solo\", resp.Droid.FriendsConnection.Friends[1].Name)\n\t\trequire.Equal(t, \"Leia Organa\", resp.Droid.FriendsConnection.Friends[2].Name)\n\t})\n\n\tt.Run(\"friendsConnection.edges\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tDroid struct {\n\t\t\t\tFriendsConnection struct {\n\t\t\t\t\tEdges []struct {\n\t\t\t\t\t\tCursor string\n\t\t\t\t\t\tNode   struct {\n\t\t\t\t\t\t\tName string\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tc.MustPost(\n\t\t\t`{ droid(id:\"2001\") { friendsConnection { edges { cursor, node { name } } } } }`,\n\t\t\t&resp,\n\t\t)\n\n\t\trequire.Equal(t, \"Y3Vyc29yMQ==\", resp.Droid.FriendsConnection.Edges[0].Cursor)\n\t\trequire.Equal(t, \"Luke Skywalker\", resp.Droid.FriendsConnection.Edges[0].Node.Name)\n\t\trequire.Equal(t, \"Y3Vyc29yMg==\", resp.Droid.FriendsConnection.Edges[1].Cursor)\n\t\trequire.Equal(t, \"Han Solo\", resp.Droid.FriendsConnection.Edges[1].Node.Name)\n\t\trequire.Equal(t, \"Y3Vyc29yMw==\", resp.Droid.FriendsConnection.Edges[2].Cursor)\n\t\trequire.Equal(t, \"Leia Organa\", resp.Droid.FriendsConnection.Edges[2].Node.Name)\n\t})\n\n\tt.Run(\"unset optional arguments\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tHero struct {\n\t\t\t\tFriendsConnection struct {\n\t\t\t\t\tFriends []struct {\n\t\t\t\t\t\tName string\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tquery := `\n\t\t\tquery a($first:Int, $after:ID) {\n\t\t\t\thero {\n\t\t\t\t\tfriendsConnection(first:$first, after:$after) {\n\t\t\t\t\t\tfriends { name }\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}`\n\t\tc.MustPost(query, &resp)\n\n\t\trequire.Len(t, resp.Hero.FriendsConnection.Friends, 3)\n\t})\n\n\tt.Run(\"mutations must be run in sequence\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tA struct{ Time string }\n\t\t\tB struct{ Time string }\n\t\t\tC struct{ Time string }\n\t\t}\n\n\t\tc.MustPost(`mutation f{\n\t\t  a:createReview(episode: NEWHOPE, review:{stars:1, commentary:\"Blah blah\"})  {\n\t\t\ttime\n\t\t  }\n\t\t  b:createReview(episode: NEWHOPE, review:{stars:1, commentary:\"Blah blah\"})  {\n\t\t\ttime\n\t\t  }\n\t\t  c:createReview(episode: NEWHOPE, review:{stars:1, commentary:\"Blah blah\"})  {\n\t\t\ttime\n\t\t  }\n\t\t}`, &resp)\n\n\t\trequire.NotEqual(t, resp.A.Time, resp.B.Time)\n\t\trequire.NotEqual(t, resp.C.Time, resp.B.Time)\n\t})\n\n\tt.Run(\"multidimensional arrays\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tStarship struct {\n\t\t\t\tHistory [][]int\n\t\t\t}\n\t\t}\n\t\tc.MustPost(`{ starship(id:\"3001\") { history } }`, &resp)\n\n\t\trequire.Len(t, resp.Starship.History, 4)\n\t\trequire.Len(t, resp.Starship.History[0], 2)\n\t})\n\n\tt.Run(\"invalid enums in variables\", func(t *testing.T) {\n\t\tvar resp struct{}\n\n\t\terr := c.Post(`mutation($episode: Episode!) {\n\t\t  createReview(episode: $episode, review:{stars:1, commentary:\"Blah blah\"})  {\n\t\t\ttime\n\t\t  }\n\t\t}`, &resp, client.Var(\"episode\", \"INVALID\"))\n\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t`http 422: {\"errors\":[{\"message\":\"INVALID is not a valid Episode\",\"path\":[\"variable\",\"episode\"],\"extensions\":{\"code\":\"GRAPHQL_VALIDATION_FAILED\"}}],\"data\":null}`,\n\t\t)\n\t})\n\n\tt.Run(\"introspection\", func(t *testing.T) {\n\t\t// Make sure we can run the graphiql introspection query without errors\n\t\tvar resp any\n\t\tc.MustPost(introspection.Query, &resp)\n\t})\n\n\tt.Run(\"aliased field and non-aliased field\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tCharacter struct {\n\t\t\t\tName string\n\t\t\t}\n\t\t\tAliasedCharacter struct {\n\t\t\t\tName string\n\t\t\t}\n\t\t}\n\t\tc.MustPost(`{\n\t\t\tcharacter(id: \"2001\") { name }\n\t\t\taliasedCharacter: character(id: \"2001\") { name }\n\t\t}`, &resp)\n\t\trequire.Equal(t, resp.Character, resp.AliasedCharacter)\n\t})\n}\n"
  },
  {
    "path": "_examples/todo/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage todo\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"embed\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n}\n\ntype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\ntype ResolverRoot interface {\n\tMyMutation() MyMutationResolver\n\tMyQuery() MyQueryResolver\n}\n\ntype DirectiveRoot struct {\n\tHasRole func(ctx context.Context, obj any, next graphql.Resolver, role Role) (res any, err error)\n\tUser    func(ctx context.Context, obj any, next graphql.Resolver, id int) (res any, err error)\n}\n\ntype ComplexityRoot struct {\n\tMyMutation struct {\n\t\tCreateTodo func(childComplexity int, todo TodoInput) int\n\t\tUpdateTodo func(childComplexity int, id int, changes map[string]any) int\n\t}\n\n\tMyQuery struct {\n\t\tLastTodo func(childComplexity int) int\n\t\tTodo     func(childComplexity int, id int) int\n\t\tTodos    func(childComplexity int) int\n\t}\n\n\tTodo struct {\n\t\tDone func(childComplexity int) int\n\t\tID   func(childComplexity int) int\n\t\tText func(childComplexity int) int\n\t}\n}\n\ntype MyMutationResolver interface {\n\tCreateTodo(ctx context.Context, todo TodoInput) (*Todo, error)\n\tUpdateTodo(ctx context.Context, id int, changes map[string]any) (*Todo, error)\n}\ntype MyQueryResolver interface {\n\tTodo(ctx context.Context, id int) (*Todo, error)\n\tLastTodo(ctx context.Context) (*Todo, error)\n\tTodos(ctx context.Context) ([]*Todo, error)\n}\n\ntype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.SchemaData != nil {\n\t\treturn e.SchemaData\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := newExecutionContext(nil, e, nil)\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"MyMutation.createTodo\":\n\t\tif e.ComplexityRoot.MyMutation.CreateTodo == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_MyMutation_createTodo_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.MyMutation.CreateTodo(childComplexity, args[\"todo\"].(TodoInput)), true\n\tcase \"MyMutation.updateTodo\":\n\t\tif e.ComplexityRoot.MyMutation.UpdateTodo == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_MyMutation_updateTodo_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.MyMutation.UpdateTodo(childComplexity, args[\"id\"].(int), args[\"changes\"].(map[string]any)), true\n\n\tcase \"MyQuery.lastTodo\":\n\t\tif e.ComplexityRoot.MyQuery.LastTodo == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MyQuery.LastTodo(childComplexity), true\n\tcase \"MyQuery.todo\":\n\t\tif e.ComplexityRoot.MyQuery.Todo == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_MyQuery_todo_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.MyQuery.Todo(childComplexity, args[\"id\"].(int)), true\n\tcase \"MyQuery.todos\":\n\t\tif e.ComplexityRoot.MyQuery.Todos == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MyQuery.Todos(childComplexity), true\n\n\tcase \"Todo.done\":\n\t\tif e.ComplexityRoot.Todo.Done == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Todo.Done(childComplexity), true\n\tcase \"Todo.id\":\n\t\tif e.ComplexityRoot.Todo.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Todo.ID(childComplexity), true\n\tcase \"Todo.text\":\n\t\tif e.ComplexityRoot.Todo.Text == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Todo.Text(childComplexity), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap(\n\t\tec.unmarshalInputTodoInput,\n\t)\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._queryMiddleware(ctx, opCtx.Operation, func(ctx context.Context) (any, error) {\n\t\t\t\t\treturn ec._MyQuery(ctx, opCtx.Operation.SelectionSet), nil\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\tcase ast.Mutation:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tif !first {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tfirst = false\n\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\tdata := ec._mutationMiddleware(ctx, opCtx.Operation, func(ctx context.Context) (any, error) {\n\t\t\t\treturn ec._MyMutation(ctx, opCtx.Operation.SelectionSet), nil\n\t\t\t})\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\n\t\t\treturn &graphql.Response{\n\t\t\t\tData: buf.Bytes(),\n\t\t\t}\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\n//go:embed \"schema.graphql\"\nvar sourcesFS embed.FS\n\nfunc sourceData(filename string) string {\n\tdata, err := sourcesFS.ReadFile(filename)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"codegen problem: %s not available\", filename))\n\t}\n\treturn string(data)\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"schema.graphql\", Input: sourceData(\"schema.graphql\"), BuiltIn: false},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) dir_hasRole_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"role\", ec.unmarshalNRole2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋtodoᚐRole)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"role\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) dir_user_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"id\", ec.unmarshalNID2int)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"id\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_MyMutation_createTodo_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"todo\", ec.unmarshalNTodoInput2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋtodoᚐTodoInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"todo\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_MyMutation_updateTodo_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"id\", ec.unmarshalNID2int)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"id\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"changes\", ec.unmarshalNMap2map)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"changes\"] = arg1\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_MyQuery___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_MyQuery_todo_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"id\", ec.unmarshalNID2int)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"id\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\nfunc (ec *executionContext) _queryMiddleware(ctx context.Context, obj *ast.OperationDefinition, next func(ctx context.Context) (any, error)) graphql.Marshaler {\n\n\tfor _, d := range obj.Directives {\n\t\tswitch d.Name {\n\t\tcase \"user\":\n\t\t\trawArgs := d.ArgumentMap(ec.Variables)\n\t\t\targs, err := ec.dir_user_args(ctx, rawArgs)\n\t\t\tif err != nil {\n\t\t\t\tec.Error(ctx, err)\n\t\t\t\treturn graphql.Null\n\t\t\t}\n\t\t\tn := next\n\t\t\tnext = func(ctx context.Context) (any, error) {\n\t\t\t\tif ec.Directives.User == nil {\n\t\t\t\t\treturn nil, errors.New(\"directive user is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.User(ctx, obj, n, args[\"id\"].(int))\n\t\t\t}\n\t\t}\n\t}\n\ttmp, err := next(ctx)\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif data, ok := tmp.(graphql.Marshaler); ok {\n\t\treturn data\n\t}\n\tgraphql.AddErrorf(ctx, `unexpected type %T from directive, should be graphql.Marshaler`, tmp)\n\treturn graphql.Null\n\n}\n\nfunc (ec *executionContext) _mutationMiddleware(ctx context.Context, obj *ast.OperationDefinition, next func(ctx context.Context) (any, error)) graphql.Marshaler {\n\n\tfor _, d := range obj.Directives {\n\t\tswitch d.Name {\n\t\tcase \"user\":\n\t\t\trawArgs := d.ArgumentMap(ec.Variables)\n\t\t\targs, err := ec.dir_user_args(ctx, rawArgs)\n\t\t\tif err != nil {\n\t\t\t\tec.Error(ctx, err)\n\t\t\t\treturn graphql.Null\n\t\t\t}\n\t\t\tn := next\n\t\t\tnext = func(ctx context.Context) (any, error) {\n\t\t\t\tif ec.Directives.User == nil {\n\t\t\t\t\treturn nil, errors.New(\"directive user is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.User(ctx, obj, n, args[\"id\"].(int))\n\t\t\t}\n\t\t}\n\t}\n\ttmp, err := next(ctx)\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif data, ok := tmp.(graphql.Marshaler); ok {\n\t\treturn data\n\t}\n\tgraphql.AddErrorf(ctx, `unexpected type %T from directive, should be graphql.Marshaler`, tmp)\n\treturn graphql.Null\n\n}\n\nfunc (ec *executionContext) _fieldMiddleware(ctx context.Context, obj any, next graphql.Resolver) graphql.Resolver {\n\tfc := graphql.GetFieldContext(ctx)\n\tfor _, d := range fc.Field.Directives {\n\t\tswitch d.Name {\n\t\tcase \"user\":\n\t\t\trawArgs := d.ArgumentMap(ec.Variables)\n\t\t\targs, err := ec.dir_user_args(ctx, rawArgs)\n\t\t\tif err != nil {\n\t\t\t\tec.Error(ctx, err)\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tn := next\n\t\t\tnext = func(ctx context.Context) (any, error) {\n\t\t\t\tif ec.Directives.User == nil {\n\t\t\t\t\treturn nil, errors.New(\"directive user is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.User(ctx, obj, n, args[\"id\"].(int))\n\t\t\t}\n\t\t}\n\t}\n\treturn next\n}\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _MyMutation_createTodo(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MyMutation_createTodo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.MyMutation().CreateTodo(ctx, fc.Args[\"todo\"].(TodoInput))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNTodo2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋtodoᚐTodo,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MyMutation_createTodo(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MyMutation\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Todo_id(ctx, field)\n\t\t\tcase \"text\":\n\t\t\t\treturn ec.fieldContext_Todo_text(ctx, field)\n\t\t\tcase \"done\":\n\t\t\t\treturn ec.fieldContext_Todo_done(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Todo\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_MyMutation_createTodo_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MyMutation_updateTodo(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MyMutation_updateTodo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.MyMutation().UpdateTodo(ctx, fc.Args[\"id\"].(int), fc.Args[\"changes\"].(map[string]any))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOTodo2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋtodoᚐTodo,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MyMutation_updateTodo(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MyMutation\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Todo_id(ctx, field)\n\t\t\tcase \"text\":\n\t\t\t\treturn ec.fieldContext_Todo_text(ctx, field)\n\t\t\tcase \"done\":\n\t\t\t\treturn ec.fieldContext_Todo_done(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Todo\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_MyMutation_updateTodo_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MyQuery_todo(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MyQuery_todo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.MyQuery().Todo(ctx, fc.Args[\"id\"].(int))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOTodo2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋtodoᚐTodo,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MyQuery_todo(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MyQuery\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Todo_id(ctx, field)\n\t\t\tcase \"text\":\n\t\t\t\treturn ec.fieldContext_Todo_text(ctx, field)\n\t\t\tcase \"done\":\n\t\t\t\treturn ec.fieldContext_Todo_done(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Todo\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_MyQuery_todo_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MyQuery_lastTodo(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MyQuery_lastTodo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.MyQuery().LastTodo(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOTodo2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋtodoᚐTodo,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MyQuery_lastTodo(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MyQuery\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Todo_id(ctx, field)\n\t\t\tcase \"text\":\n\t\t\t\treturn ec.fieldContext_Todo_text(ctx, field)\n\t\t\tcase \"done\":\n\t\t\t\treturn ec.fieldContext_Todo_done(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Todo\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MyQuery_todos(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MyQuery_todos,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.MyQuery().Todos(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNTodo2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋtodoᚐTodoᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MyQuery_todos(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MyQuery\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Todo_id(ctx, field)\n\t\t\tcase \"text\":\n\t\t\t\treturn ec.fieldContext_Todo_text(ctx, field)\n\t\t\tcase \"done\":\n\t\t\t\treturn ec.fieldContext_Todo_done(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Todo\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MyQuery___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MyQuery___type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.IntrospectType(fc.Args[\"name\"].(string))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MyQuery___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MyQuery\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_MyQuery___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MyQuery___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MyQuery___schema,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.IntrospectSchema()\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MyQuery___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MyQuery\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Todo_id(ctx context.Context, field graphql.CollectedField, obj *Todo) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Todo_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNID2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Todo_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Todo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Todo_text(ctx context.Context, field graphql.CollectedField, obj *Todo) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Todo_text,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Text, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Todo_text(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Todo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Todo_done(ctx context.Context, field graphql.CollectedField, obj *Todo) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Todo_done,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Done, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\trole, err := ec.unmarshalNRole2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋtodoᚐRole(ctx, \"OWNER\")\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal bool\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tif ec.Directives.HasRole == nil {\n\t\t\t\t\tvar zeroVal bool\n\t\t\t\t\treturn zeroVal, errors.New(\"directive hasRole is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.HasRole(ctx, obj, directive0, role)\n\t\t\t}\n\n\t\t\tnext = directive1\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Todo_done(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Todo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_isRepeatable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsRepeatable, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_locations,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Locations, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalN__DirectiveLocation2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_defaultValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DefaultValue, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_types,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Types(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_queryType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.QueryType(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_mutationType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.MutationType(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_subscriptionType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SubscriptionType(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_directives,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Directives(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_kind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Kind(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalN__TypeKind2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_specifiedByURL,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SpecifiedByURL(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_fields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_interfaces,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Interfaces(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_possibleTypes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PossibleTypes(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_enumValues,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_inputFields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.InputFields(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_ofType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.OfType(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_isOneOf,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsOneOf(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOBoolean2bool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalInputTodoInput(ctx context.Context, obj any) (TodoInput, error) {\n\tvar it TodoInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"text\", \"done\", \"number\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"text\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"text\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Text = data\n\t\tcase \"done\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"done\"))\n\t\t\tdata, err := ec.unmarshalOBoolean2ᚖbool(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Done = data\n\t\tcase \"number\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"number\"))\n\t\t\tdata, err := ec.unmarshalNInt2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋtodoᚐNumber(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Number = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar myMutationImplementors = []string{\"MyMutation\"}\n\nfunc (ec *executionContext) _MyMutation(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, myMutationImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"MyMutation\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"MyMutation\")\n\t\tcase \"createTodo\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._MyMutation_createTodo(ctx, field)\n\t\t\t})\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"updateTodo\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._MyMutation_updateTodo(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar myQueryImplementors = []string{\"MyQuery\"}\n\nfunc (ec *executionContext) _MyQuery(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, myQueryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"MyQuery\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"MyQuery\")\n\t\tcase \"todo\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._MyQuery_todo(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"lastTodo\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._MyQuery_lastTodo(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"todos\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._MyQuery_todos(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._MyQuery___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._MyQuery___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar todoImplementors = []string{\"Todo\"}\n\nfunc (ec *executionContext) _Todo(ctx context.Context, sel ast.SelectionSet, obj *Todo) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, todoImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Todo\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._Todo_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"text\":\n\t\t\tout.Values[i] = ec._Todo_text(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"done\":\n\t\t\tout.Values[i] = ec._Todo_done(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNID2int(ctx context.Context, v any) (int, error) {\n\tres, err := graphql.UnmarshalIntID(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNID2int(ctx context.Context, sel ast.SelectionSet, v int) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalIntID(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNInt2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋtodoᚐNumber(ctx context.Context, v any) (Number, error) {\n\tvar res Number\n\terr := res.UnmarshalGQLContext(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNInt2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋtodoᚐNumber(ctx context.Context, sel ast.SelectionSet, v Number) graphql.Marshaler {\n\treturn graphql.WrapContextMarshaler(ctx, v)\n}\n\nfunc (ec *executionContext) unmarshalNMap2map(ctx context.Context, v any) (map[string]any, error) {\n\tres, err := graphql.UnmarshalMap(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNMap2map(ctx context.Context, sel ast.SelectionSet, v map[string]any) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\tres := graphql.MarshalMap(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNRole2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋtodoᚐRole(ctx context.Context, v any) (Role, error) {\n\tvar res Role\n\terr := res.UnmarshalGQL(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNRole2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋtodoᚐRole(ctx context.Context, sel ast.SelectionSet, v Role) graphql.Marshaler {\n\treturn v\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNTodo2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋtodoᚐTodo(ctx context.Context, sel ast.SelectionSet, v Todo) graphql.Marshaler {\n\treturn ec._Todo(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNTodo2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋtodoᚐTodoᚄ(ctx context.Context, sel ast.SelectionSet, v []*Todo) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNTodo2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋtodoᚐTodo(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalNTodo2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋtodoᚐTodo(ctx context.Context, sel ast.SelectionSet, v *Todo) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Todo(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNTodoInput2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋtodoᚐTodoInput(ctx context.Context, v any) (TodoInput, error) {\n\tres, err := ec.unmarshalInputTodoInput(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalOTodo2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋtodoᚐTodo(ctx context.Context, sel ast.SelectionSet, v *Todo) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Todo(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "_examples/todo/gqlgen.yml",
    "content": "models:\n  Todo:\n    model: github.com/99designs/gqlgen/_examples/todo.Todo\n  ID:\n    model: # override the default id marshaller to use ints\n      - github.com/99designs/gqlgen/graphql.IntID\n      - github.com/99designs/gqlgen/graphql.ID\n"
  },
  {
    "path": "_examples/todo/models.go",
    "content": "package todo\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"io\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\ntype Ownable interface {\n\tOwner() *User\n}\n\ntype Todo struct {\n\tID    int\n\tText  string\n\tDone  bool\n\towner *User\n}\n\nfunc (t Todo) Owner() *User {\n\treturn t.owner\n}\n\ntype User struct {\n\tID   int\n\tName string\n}\n\ntype Number int\n\nfunc (e *Number) UnmarshalGQLContext(ctx context.Context, v any) error {\n\tnum, err := graphql.UnmarshalInt(v)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*e = Number(num)\n\treturn nil\n}\n\nfunc (e Number) MarshalGQLContext(_ context.Context, w io.Writer) error {\n\tfmt.Fprint(w, e)\n\treturn nil\n}\n"
  },
  {
    "path": "_examples/todo/models_gen.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage todo\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n)\n\ntype MyMutation struct {\n}\n\ntype MyQuery struct {\n}\n\n// Passed to createTodo to create a new todo\ntype TodoInput struct {\n\t// The body text\n\tText string `json:\"text\"`\n\t// Is it done already?\n\tDone   *bool  `json:\"done,omitempty\"`\n\tNumber Number `json:\"number\"`\n}\n\ntype Role string\n\nconst (\n\tRoleAdmin Role = \"ADMIN\"\n\tRoleOwner Role = \"OWNER\"\n)\n\nvar AllRole = []Role{\n\tRoleAdmin,\n\tRoleOwner,\n}\n\nfunc (e Role) IsValid() bool {\n\tswitch e {\n\tcase RoleAdmin, RoleOwner:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e Role) String() string {\n\treturn string(e)\n}\n\nfunc (e *Role) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = Role(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid Role\", str)\n\t}\n\treturn nil\n}\n\nfunc (e Role) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *Role) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e Role) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n"
  },
  {
    "path": "_examples/todo/readme.md",
    "content": "### todo app\n\nThis is the simplest example of a graphql server.\n\nto run this server\n```bash\ngo run ./server/server.go\n```\n\nand open http://localhost:8081 in your browser\n"
  },
  {
    "path": "_examples/todo/schema.graphql",
    "content": "directive @goField(\n    forceResolver: Boolean\n    name: String\n    omittable: Boolean\n    type: String\n) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION\n\nenum Role {\n    ADMIN\n    OWNER\n}\n\nschema {\n    query: MyQuery\n    mutation: MyMutation\n}\n\ntype MyQuery {\n    todo(id: ID!): Todo\n    lastTodo: Todo\n    todos: [Todo!]!\n}\n\ntype MyMutation {\n    createTodo(todo: TodoInput!): Todo!\n    updateTodo(id: ID!, changes: Map!): Todo\n}\n\ntype Todo {\n    id: ID!\n    text: String!\n    done: Boolean! @hasRole(role: OWNER) # only the owner can see if a todo is done\n}\n\n\"Passed to createTodo to create a new todo\"\ninput TodoInput {\n    \"The body text\"\n    text: String!\n    \"Is it done already?\"\n    done: Boolean\n    number: Int! @goField(type:\"github.com/99designs/gqlgen/_examples/todo.Number\")\n}\n\nscalar Map\n\n\"Prevents access to a field if the user doesnt have the matching role\"\ndirective @hasRole(role: Role!) on FIELD_DEFINITION\ndirective @user(id: ID!) on MUTATION | QUERY | FIELD\n\n"
  },
  {
    "path": "_examples/todo/server/server.go",
    "content": "package main\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"log\"\n\t\"net/http\"\n\t\"runtime/debug\"\n\n\t\"github.com/99designs/gqlgen/_examples/todo\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/graphql/playground\"\n)\n\nfunc main() {\n\tsrv := handler.New(todo.NewExecutableSchema(todo.New()))\n\tsrv.AddTransport(transport.GET{})\n\tsrv.AddTransport(transport.POST{})\n\n\tsrv.SetRecoverFunc(func(ctx context.Context, err any) (userMessage error) {\n\t\t// send this panic somewhere\n\t\tlog.Print(err)\n\t\tdebug.PrintStack()\n\t\treturn errors.New(\"user message on panic\")\n\t})\n\n\thttp.Handle(\"/\", playground.Handler(\"Todo\", \"/query\"))\n\thttp.Handle(\"/query\", srv)\n\tlog.Fatal(http.ListenAndServe(\":8081\", nil))\n}\n"
  },
  {
    "path": "_examples/todo/todo.go",
    "content": "//go:generate go run ../../testdata/gqlgen.go\n\npackage todo\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"time\"\n\n\t\"github.com/go-viper/mapstructure/v2\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\nvar (\n\tyou  = &User{ID: 1, Name: \"You\"}\n\tthem = &User{ID: 2, Name: \"Them\"}\n)\n\ntype ckey string\n\nfunc getUserId(ctx context.Context) int {\n\tif id, ok := ctx.Value(ckey(\"userId\")).(int); ok {\n\t\treturn id\n\t}\n\treturn you.ID\n}\n\nfunc New() Config {\n\tc := Config{\n\t\tResolvers: &resolvers{\n\t\t\ttodos: []*Todo{\n\t\t\t\t{ID: 1, Text: \"A todo not to forget\", Done: false, owner: you},\n\t\t\t\t{ID: 2, Text: \"This is the most important\", Done: false, owner: you},\n\t\t\t\t{ID: 3, Text: \"Somebody else's todo\", Done: true, owner: them},\n\t\t\t\t{ID: 4, Text: \"Please do this or else\", Done: false, owner: you},\n\t\t\t},\n\t\t\tlastID: 4,\n\t\t},\n\t}\n\tc.Directives.HasRole = func(ctx context.Context, obj any, next graphql.Resolver, role Role) (any, error) {\n\t\tswitch role {\n\t\tcase RoleAdmin:\n\t\t\t// No admin for you!\n\t\t\treturn nil, nil\n\t\tcase RoleOwner:\n\t\t\townable, isOwnable := obj.(Ownable)\n\t\t\tif !isOwnable {\n\t\t\t\treturn nil, errors.New(\"obj cant be owned\")\n\t\t\t}\n\n\t\t\tif ownable.Owner().ID != getUserId(ctx) {\n\t\t\t\treturn nil, errors.New(\"you don't own that\")\n\t\t\t}\n\t\t}\n\n\t\treturn next(ctx)\n\t}\n\tc.Directives.User = func(ctx context.Context, obj any, next graphql.Resolver, id int) (any, error) {\n\t\treturn next(context.WithValue(ctx, ckey(\"userId\"), id))\n\t}\n\treturn c\n}\n\ntype resolvers struct {\n\ttodos  []*Todo\n\tlastID int\n}\n\nfunc (r *resolvers) MyQuery() MyQueryResolver {\n\treturn (*QueryResolver)(r)\n}\n\nfunc (r *resolvers) MyMutation() MyMutationResolver {\n\treturn (*MutationResolver)(r)\n}\n\ntype QueryResolver resolvers\n\nfunc (r *QueryResolver) Todo(ctx context.Context, id int) (*Todo, error) {\n\ttime.Sleep(220 * time.Millisecond)\n\n\tif id == 666 {\n\t\tpanic(\"critical failure\")\n\t}\n\n\tfor _, todo := range r.todos {\n\t\tif todo.ID == id {\n\t\t\treturn todo, nil\n\t\t}\n\t}\n\treturn nil, errors.New(\"not found\")\n}\n\nfunc (r *QueryResolver) LastTodo(ctx context.Context) (*Todo, error) {\n\tif len(r.todos) == 0 {\n\t\treturn nil, errors.New(\"not found\")\n\t}\n\treturn r.todos[len(r.todos)-1], nil\n}\n\nfunc (r *QueryResolver) Todos(ctx context.Context) ([]*Todo, error) {\n\treturn r.todos, nil\n}\n\ntype MutationResolver resolvers\n\nfunc (r *MutationResolver) CreateTodo(ctx context.Context, todo TodoInput) (*Todo, error) {\n\tnewID := r.id()\n\n\tnewTodo := &Todo{\n\t\tID:    newID,\n\t\tText:  todo.Text,\n\t\towner: you,\n\t}\n\n\tif todo.Done != nil {\n\t\tnewTodo.Done = *todo.Done\n\t}\n\n\tr.todos = append(r.todos, newTodo)\n\n\treturn newTodo, nil\n}\n\nfunc (r *MutationResolver) UpdateTodo(\n\tctx context.Context,\n\tid int,\n\tchanges map[string]any,\n) (*Todo, error) {\n\tvar affectedTodo *Todo\n\n\tfor i := 0; i < len(r.todos); i++ {\n\t\tif r.todos[i].ID == id {\n\t\t\taffectedTodo = r.todos[i]\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif affectedTodo == nil {\n\t\treturn nil, nil\n\t}\n\n\terr := mapstructure.Decode(changes, affectedTodo)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn affectedTodo, nil\n}\n\nfunc (r *MutationResolver) id() int {\n\tr.lastID++\n\treturn r.lastID\n}\n"
  },
  {
    "path": "_examples/todo/todo_test.go",
    "content": "package todo\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/extension\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n)\n\nfunc TestTodo(t *testing.T) {\n\tsrv := handler.New(NewExecutableSchema(New()))\n\tsrv.AddTransport(transport.POST{})\n\tsrv.Use(extension.Introspection{})\n\tc := client.New(srv)\n\n\tvar resp struct {\n\t\tCreateTodo struct{ ID string }\n\t}\n\tc.MustPost(`mutation { createTodo(todo:{text:\"Fery important\", number:5}) { id } }`, &resp)\n\n\trequire.Equal(t, \"5\", resp.CreateTodo.ID)\n\n\tt.Run(\"update the todo text\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tUpdateTodo struct{ Text string }\n\t\t}\n\t\tc.MustPost(\n\t\t\t`mutation($id: ID!, $text: String!) { updateTodo(id: $id, changes:{text:$text}) { text } }`,\n\t\t\t&resp,\n\t\t\tclient.Var(\"id\", 5),\n\t\t\tclient.Var(\"text\", \"Very important\"),\n\t\t)\n\n\t\trequire.Equal(t, \"Very important\", resp.UpdateTodo.Text)\n\t})\n\n\tt.Run(\"get __typename\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tTodo struct {\n\t\t\t\tTypename string `json:\"__typename\"`\n\t\t\t}\n\t\t}\n\t\tc.MustPost(`{ todo(id: 5) { __typename } }`, &resp)\n\n\t\trequire.Equal(t, \"Todo\", resp.Todo.Typename)\n\t})\n\n\tt.Run(\"update the todo status\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tUpdateTodo struct{ Text string }\n\t\t}\n\t\tc.MustPost(`mutation { updateTodo(id: 5, changes:{done:true}) { text } }`, &resp)\n\n\t\trequire.Equal(t, \"Very important\", resp.UpdateTodo.Text)\n\t})\n\n\tt.Run(\"update the todo status by user id in mutation\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tUpdateTodo struct {\n\t\t\t\tText string\n\t\t\t\tDone bool\n\t\t\t}\n\t\t}\n\t\tc.MustPost(\n\t\t\t`mutation @user(id:2){ updateTodo(id: 3, changes:{done:true}) { text, done } }`,\n\t\t\t&resp,\n\t\t)\n\n\t\trequire.Equal(t, \"Somebody else's todo\", resp.UpdateTodo.Text)\n\t})\n\n\tt.Run(\"update the todo status by user id in field\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tUpdateTodo struct {\n\t\t\t\tText string\n\t\t\t\tDone bool\n\t\t\t}\n\t\t}\n\t\tc.MustPost(\n\t\t\t`mutation { updateTodo(id: 3, changes:{done:true})@user(id:2) { text, done } }`,\n\t\t\t&resp,\n\t\t)\n\n\t\trequire.Equal(t, \"Somebody else's todo\", resp.UpdateTodo.Text)\n\t})\n\n\tt.Run(\"failed update the todo status by user id in field\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tUpdateTodo *struct {\n\t\t\t\tText string\n\t\t\t\tDone bool\n\t\t\t}\n\t\t}\n\t\terr := c.Post(`mutation { updateTodo(id: 3, changes:{done:true}) { text, done } }`, &resp)\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t\"[{\\\"message\\\":\\\"you don't own that\\\",\\\"path\\\":[\\\"updateTodo\\\",\\\"done\\\"]}]\",\n\t\t)\n\n\t\trequire.Nil(t, resp.UpdateTodo)\n\t})\n\n\tt.Run(\"select with alias\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tA struct{ Text string }\n\t\t\tB struct{ ID string }\n\t\t}\n\t\tc.MustPost(`{ a: todo(id:1) { text } b: todo(id:2) { id } }`, &resp)\n\n\t\trequire.Equal(t, \"A todo not to forget\", resp.A.Text)\n\t\trequire.Equal(t, \"2\", resp.B.ID)\n\t})\n\n\tt.Run(\"find a missing todo\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tTodo *struct{ Text string }\n\t\t}\n\t\terr := c.Post(`{ todo(id:99) { text } }`, &resp)\n\n\t\trequire.Error(t, err)\n\t\trequire.Nil(t, resp.Todo)\n\t})\n\n\tt.Run(\"get done status of unowned todo\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tTodo *struct {\n\t\t\t\tText string\n\t\t\t\tDone bool\n\t\t\t}\n\t\t}\n\t\terr := c.Post(`{ todo(id:3) { text, done } }`, &resp)\n\n\t\trequire.EqualError(t, err, `[{\"message\":\"you don't own that\",\"path\":[\"todo\",\"done\"]}]`)\n\t\trequire.Nil(t, resp.Todo)\n\t})\n\n\tt.Run(\"test panic\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tTodo *struct{ Text string }\n\t\t}\n\t\terr := c.Post(`{ todo(id:666) { text } }`, &resp)\n\n\t\trequire.EqualError(t, err, `[{\"message\":\"internal system error\",\"path\":[\"todo\"]}]`)\n\t})\n\n\tt.Run(\"select all\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tTodo struct {\n\t\t\t\tID   string\n\t\t\t\tText string\n\t\t\t\tDone bool\n\t\t\t}\n\t\t\tLastTodo struct {\n\t\t\t\tID   string\n\t\t\t\tText string\n\t\t\t\tDone bool\n\t\t\t}\n\t\t\tTodos []struct {\n\t\t\t\tID   string\n\t\t\t\tText string\n\t\t\t}\n\t\t}\n\t\tc.MustPost(`{\n\t\t\ttodo(id:1) { id done text }\n\t\t\tlastTodo { id text done }\n\t\t\ttodos { id text }\n\t\t}`, &resp)\n\n\t\trequire.Equal(t, \"1\", resp.Todo.ID)\n\t\trequire.Equal(t, \"5\", resp.LastTodo.ID)\n\t\trequire.Len(t, resp.Todos, 5)\n\t\trequire.Equal(t, \"Very important\", resp.LastTodo.Text)\n\t\trequire.Equal(t, \"5\", resp.LastTodo.ID)\n\t})\n\n\tt.Run(\"introspection\", func(t *testing.T) {\n\t\t// Make sure we can run the graphiql introspection query without errors\n\t\tvar resp any\n\t\tc.MustPost(introspection.Query, &resp)\n\t})\n\n\tt.Run(\"null optional field\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tCreateTodo struct{ Text string }\n\t\t}\n\t\tc.MustPost(\n\t\t\t`mutation { createTodo(todo:{text:\"Completed todo\", number:5, done: null}) { text } }`,\n\t\t\t&resp,\n\t\t)\n\n\t\trequire.Equal(t, \"Completed todo\", resp.CreateTodo.Text)\n\t})\n}\n\nfunc TestSkipAndIncludeDirectives(t *testing.T) {\n\tsrv := handler.New(NewExecutableSchema(New()))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"skip on field\", func(t *testing.T) {\n\t\tvar resp map[string]any\n\t\tc.MustPost(`{ todo(id: 1) @skip(if:true) { __typename } }`, &resp)\n\t\t_, ok := resp[\"todo\"]\n\t\trequire.False(t, ok)\n\t})\n\n\tt.Run(\"skip on variable\", func(t *testing.T) {\n\t\tq := `query Test($cond: Boolean!) { todo(id: 1) @skip(if: $cond) { __typename } }`\n\t\tvar resp map[string]any\n\n\t\tc.MustPost(q, &resp, client.Var(\"cond\", true))\n\t\t_, ok := resp[\"todo\"]\n\t\trequire.False(t, ok)\n\n\t\tc.MustPost(q, &resp, client.Var(\"cond\", false))\n\t\t_, ok = resp[\"todo\"]\n\t\trequire.True(t, ok)\n\t})\n\n\tt.Run(\"skip on inline fragment\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tTodo struct {\n\t\t\t\tTypename string `json:\"__typename\"`\n\t\t\t}\n\t\t}\n\t\tc.MustPost(`{ todo(id: 1) {\n\t\t\t\t...@skip(if:true) {\n\t\t\t\t\t__typename\n\t\t\t\t}\n\t\t\t}\n\t\t}`, &resp)\n\t\trequire.Empty(t, resp.Todo.Typename)\n\t})\n\n\tt.Run(\"skip on fragment\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tTodo struct {\n\t\t\t\tTypename string `json:\"__typename\"`\n\t\t\t}\n\t\t}\n\t\tc.MustPost(`\n\t\t{\n\t\t\ttodo(id: 1) {\n\t\t\t\t...todoFragment @skip(if:true)\n\t\t\t}\n\t\t}\n\t\tfragment todoFragment on Todo {\n\t\t\t__typename\n\t\t}\n\t\t`, &resp)\n\t\trequire.Empty(t, resp.Todo.Typename)\n\t})\n\n\tt.Run(\"include on field\", func(t *testing.T) {\n\t\tq := `query Test($cond: Boolean!) { todo(id: 1) @include(if: $cond) { __typename } }`\n\t\tvar resp map[string]any\n\n\t\tc.MustPost(q, &resp, client.Var(\"cond\", true))\n\t\t_, ok := resp[\"todo\"]\n\t\trequire.True(t, ok)\n\n\t\tc.MustPost(q, &resp, client.Var(\"cond\", false))\n\t\t_, ok = resp[\"todo\"]\n\t\trequire.False(t, ok)\n\t})\n\n\tt.Run(\"both skip and include defined\", func(t *testing.T) {\n\t\ttype TestCase struct {\n\t\t\tSkip     bool\n\t\t\tInclude  bool\n\t\t\tExpected bool\n\t\t}\n\t\ttable := []TestCase{\n\t\t\t{Skip: true, Include: true, Expected: false},\n\t\t\t{Skip: true, Include: false, Expected: false},\n\t\t\t{Skip: false, Include: true, Expected: true},\n\t\t\t{Skip: false, Include: false, Expected: false},\n\t\t}\n\t\tq := `query Test($skip: Boolean!, $include: Boolean!) { todo(id: 1) @skip(if: $skip) @include(if: $include) { __typename } }`\n\t\tfor _, tc := range table {\n\t\t\tvar resp map[string]any\n\t\t\tc.MustPost(q, &resp, client.Var(\"skip\", tc.Skip), client.Var(\"include\", tc.Include))\n\t\t\t_, ok := resp[\"todo\"]\n\t\t\trequire.Equal(t, tc.Expected, ok)\n\t\t}\n\t})\n\n\tt.Run(\"skip with default query argument\", func(t *testing.T) {\n\t\tvar resp map[string]any\n\t\tc.MustPost(\n\t\t\t`query Test($skip: Boolean = true) { todo(id: 1) @skip(if: $skip) { __typename } }`,\n\t\t\t&resp,\n\t\t)\n\t\t_, ok := resp[\"todo\"]\n\t\trequire.False(t, ok)\n\t})\n}\n"
  },
  {
    "path": "_examples/tools.go",
    "content": "//go:build tools\n\npackage main\n\nimport (\n\t_ \"github.com/goccy/go-yaml\"\n\t_ \"github.com/vektah/dataloaden\"\n\t_ \"golang.org/x/text\"\n)\n"
  },
  {
    "path": "_examples/type-system-extension/README.md",
    "content": "# Type System Extension example\n\nhttps://graphql.github.io/graphql-spec/draft/#sec-Type-System-Extensions\n\n```\n$ go run ./server/server.go\n2018/10/25 12:46:45 connect to http://localhost:8080/ for GraphQL playground\n\n$ curl -X POST 'http://localhost:8080/query' --data-binary '{\"query\":\"{ todos { id text state verified } }\"}'\n{\"data\":{\"todos\":[{\"id\":\"Todo:1\",\"text\":\"Buy a cat food\",\"state\":\"NOT_YET\",\"verified\":false},{\"id\":\"Todo:2\",\"text\":\"Check cat water\",\"state\":\"DONE\",\"verified\":true},{\"id\":\"Todo:3\",\"text\":\"Check cat meal\",\"state\":\"DONE\",\"verified\":true}]}}\n```\n"
  },
  {
    "path": "_examples/type-system-extension/directive.go",
    "content": "package type_system_extension\n\nimport (\n\t\"context\"\n\t\"log\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\nfunc EnumLogging(ctx context.Context, obj any, next graphql.Resolver) (res any, err error) {\n\trc := graphql.GetFieldContext(ctx)\n\tlog.Printf(\"enum logging: %v, %s, %T, %+v\", rc.Path(), rc.Field.Name, obj, obj)\n\treturn next(ctx)\n}\n\nfunc FieldLogging(ctx context.Context, obj any, next graphql.Resolver) (res any, err error) {\n\trc := graphql.GetFieldContext(ctx)\n\tlog.Printf(\"field logging: %v, %s, %T, %+v\", rc.Path(), rc.Field.Name, obj, obj)\n\treturn next(ctx)\n}\n\nfunc InputLogging(ctx context.Context, obj any, next graphql.Resolver) (res any, err error) {\n\trc := graphql.GetFieldContext(ctx)\n\tlog.Printf(\"input object logging: %v, %s, %T, %+v\", rc.Path(), rc.Field.Name, obj, obj)\n\treturn next(ctx)\n}\n\nfunc ObjectLogging(ctx context.Context, obj any, next graphql.Resolver) (res any, err error) {\n\trc := graphql.GetFieldContext(ctx)\n\tlog.Printf(\"object logging: %v, %s, %T, %+v\", rc.Path(), rc.Field.Name, obj, obj)\n\treturn next(ctx)\n}\n\nfunc ScalarLogging(ctx context.Context, obj any, next graphql.Resolver) (res any, err error) {\n\trc := graphql.GetFieldContext(ctx)\n\tlog.Printf(\"scalar logging: %v, %s, %T, %+v\", rc.Path(), rc.Field.Name, obj, obj)\n\treturn next(ctx)\n}\n\nfunc UnionLogging(ctx context.Context, obj any, next graphql.Resolver) (res any, err error) {\n\trc := graphql.GetFieldContext(ctx)\n\tlog.Printf(\"union logging: %v, %s, %T, %+v\", rc.Path(), rc.Field.Name, obj, obj)\n\treturn next(ctx)\n}\n"
  },
  {
    "path": "_examples/type-system-extension/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage type_system_extension\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"embed\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n}\n\ntype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\ntype ResolverRoot interface {\n\tMyMutation() MyMutationResolver\n\tMyQuery() MyQueryResolver\n}\n\ntype DirectiveRoot struct {\n\tEnumLogging      func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error)\n\tFieldLogging     func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error)\n\tInputLogging     func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error)\n\tInterfaceLogging func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error)\n\tObjectLogging    func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error)\n\tScalarLogging    func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error)\n\tUnionLogging     func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error)\n}\n\ntype ComplexityRoot struct {\n\tMyMutation struct {\n\t\tCreateTodo func(childComplexity int, todo TodoInput) int\n\t}\n\n\tMyQuery struct {\n\t\tTodo  func(childComplexity int, id string) int\n\t\tTodos func(childComplexity int) int\n\t}\n\n\tTodo struct {\n\t\tID       func(childComplexity int) int\n\t\tState    func(childComplexity int) int\n\t\tText     func(childComplexity int) int\n\t\tVerified func(childComplexity int) int\n\t}\n}\n\ntype MyMutationResolver interface {\n\tCreateTodo(ctx context.Context, todo TodoInput) (*Todo, error)\n}\ntype MyQueryResolver interface {\n\tTodos(ctx context.Context) ([]*Todo, error)\n\tTodo(ctx context.Context, id string) (*Todo, error)\n}\n\ntype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.SchemaData != nil {\n\t\treturn e.SchemaData\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := newExecutionContext(nil, e, nil)\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"MyMutation.createTodo\":\n\t\tif e.ComplexityRoot.MyMutation.CreateTodo == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_MyMutation_createTodo_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.MyMutation.CreateTodo(childComplexity, args[\"todo\"].(TodoInput)), true\n\n\tcase \"MyQuery.todo\":\n\t\tif e.ComplexityRoot.MyQuery.Todo == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_MyQuery_todo_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.MyQuery.Todo(childComplexity, args[\"id\"].(string)), true\n\tcase \"MyQuery.todos\":\n\t\tif e.ComplexityRoot.MyQuery.Todos == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MyQuery.Todos(childComplexity), true\n\n\tcase \"Todo.id\":\n\t\tif e.ComplexityRoot.Todo.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Todo.ID(childComplexity), true\n\tcase \"Todo.state\":\n\t\tif e.ComplexityRoot.Todo.State == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Todo.State(childComplexity), true\n\tcase \"Todo.text\":\n\t\tif e.ComplexityRoot.Todo.Text == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Todo.Text(childComplexity), true\n\tcase \"Todo.verified\":\n\t\tif e.ComplexityRoot.Todo.Verified == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Todo.Verified(childComplexity), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap(\n\t\tec.unmarshalInputTodoInput,\n\t)\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._MyQuery(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\tcase ast.Mutation:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tif !first {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tfirst = false\n\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\tdata := ec._MyMutation(ctx, opCtx.Operation.SelectionSet)\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\n\t\t\treturn &graphql.Response{\n\t\t\t\tData: buf.Bytes(),\n\t\t\t}\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\n//go:embed \"schemas/enum-extension.graphql\" \"schemas/input-object-extension.graphql\" \"schemas/interface-extension.graphql\" \"schemas/object-extension.graphql\" \"schemas/scalar-extension.graphql\" \"schemas/schema-extension.graphql\" \"schemas/schema.graphql\" \"schemas/type-extension.graphql\" \"schemas/union-extension.graphql\"\nvar sourcesFS embed.FS\n\nfunc sourceData(filename string) string {\n\tdata, err := sourcesFS.ReadFile(filename)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"codegen problem: %s not available\", filename))\n\t}\n\treturn string(data)\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"schemas/enum-extension.graphql\", Input: sourceData(\"schemas/enum-extension.graphql\"), BuiltIn: false},\n\t{Name: \"schemas/input-object-extension.graphql\", Input: sourceData(\"schemas/input-object-extension.graphql\"), BuiltIn: false},\n\t{Name: \"schemas/interface-extension.graphql\", Input: sourceData(\"schemas/interface-extension.graphql\"), BuiltIn: false},\n\t{Name: \"schemas/object-extension.graphql\", Input: sourceData(\"schemas/object-extension.graphql\"), BuiltIn: false},\n\t{Name: \"schemas/scalar-extension.graphql\", Input: sourceData(\"schemas/scalar-extension.graphql\"), BuiltIn: false},\n\t{Name: \"schemas/schema-extension.graphql\", Input: sourceData(\"schemas/schema-extension.graphql\"), BuiltIn: false},\n\t{Name: \"schemas/schema.graphql\", Input: sourceData(\"schemas/schema.graphql\"), BuiltIn: false},\n\t{Name: \"schemas/type-extension.graphql\", Input: sourceData(\"schemas/type-extension.graphql\"), BuiltIn: false},\n\t{Name: \"schemas/union-extension.graphql\", Input: sourceData(\"schemas/union-extension.graphql\"), BuiltIn: false},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_MyMutation_createTodo_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"todo\", ec.unmarshalNTodoInput2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋtypeᚑsystemᚑextensionᚐTodoInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"todo\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_MyQuery___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_MyQuery_todo_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"id\", ec.unmarshalNID2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"id\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _MyMutation_createTodo(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MyMutation_createTodo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.MyMutation().CreateTodo(ctx, fc.Args[\"todo\"].(TodoInput))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tif ec.Directives.ObjectLogging == nil {\n\t\t\t\t\tvar zeroVal *Todo\n\t\t\t\t\treturn zeroVal, errors.New(\"directive objectLogging is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.ObjectLogging(ctx, nil, directive0)\n\t\t\t}\n\n\t\t\tnext = directive1\n\t\t\treturn next\n\t\t},\n\t\tec.marshalNTodo2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋtypeᚑsystemᚑextensionᚐTodo,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MyMutation_createTodo(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MyMutation\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Todo_id(ctx, field)\n\t\t\tcase \"text\":\n\t\t\t\treturn ec.fieldContext_Todo_text(ctx, field)\n\t\t\tcase \"state\":\n\t\t\t\treturn ec.fieldContext_Todo_state(ctx, field)\n\t\t\tcase \"verified\":\n\t\t\t\treturn ec.fieldContext_Todo_verified(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Todo\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_MyMutation_createTodo_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MyQuery_todos(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MyQuery_todos,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.MyQuery().Todos(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tif ec.Directives.ObjectLogging == nil {\n\t\t\t\t\tvar zeroVal []*Todo\n\t\t\t\t\treturn zeroVal, errors.New(\"directive objectLogging is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.ObjectLogging(ctx, nil, directive0)\n\t\t\t}\n\n\t\t\tnext = directive1\n\t\t\treturn next\n\t\t},\n\t\tec.marshalNTodo2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋtypeᚑsystemᚑextensionᚐTodoᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MyQuery_todos(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MyQuery\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Todo_id(ctx, field)\n\t\t\tcase \"text\":\n\t\t\t\treturn ec.fieldContext_Todo_text(ctx, field)\n\t\t\tcase \"state\":\n\t\t\t\treturn ec.fieldContext_Todo_state(ctx, field)\n\t\t\tcase \"verified\":\n\t\t\t\treturn ec.fieldContext_Todo_verified(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Todo\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MyQuery_todo(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MyQuery_todo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.MyQuery().Todo(ctx, fc.Args[\"id\"].(string))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tif ec.Directives.ObjectLogging == nil {\n\t\t\t\t\tvar zeroVal *Todo\n\t\t\t\t\treturn zeroVal, errors.New(\"directive objectLogging is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.ObjectLogging(ctx, nil, directive0)\n\t\t\t}\n\n\t\t\tnext = directive1\n\t\t\treturn next\n\t\t},\n\t\tec.marshalOTodo2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋtypeᚑsystemᚑextensionᚐTodo,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MyQuery_todo(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MyQuery\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Todo_id(ctx, field)\n\t\t\tcase \"text\":\n\t\t\t\treturn ec.fieldContext_Todo_text(ctx, field)\n\t\t\tcase \"state\":\n\t\t\t\treturn ec.fieldContext_Todo_state(ctx, field)\n\t\t\tcase \"verified\":\n\t\t\t\treturn ec.fieldContext_Todo_verified(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Todo\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_MyQuery_todo_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MyQuery___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MyQuery___type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.IntrospectType(fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MyQuery___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MyQuery\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_MyQuery___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MyQuery___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MyQuery___schema,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.IntrospectSchema()\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MyQuery___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MyQuery\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Todo_id(ctx context.Context, field graphql.CollectedField, obj *Todo) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Todo_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Todo_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Todo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Todo_text(ctx context.Context, field graphql.CollectedField, obj *Todo) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Todo_text,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Text, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Todo_text(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Todo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Todo_state(ctx context.Context, field graphql.CollectedField, obj *Todo) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Todo_state,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.State, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNState2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋtypeᚑsystemᚑextensionᚐState,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Todo_state(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Todo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type State does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Todo_verified(ctx context.Context, field graphql.CollectedField, obj *Todo) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Todo_verified,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Verified, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tif ec.Directives.FieldLogging == nil {\n\t\t\t\t\tvar zeroVal bool\n\t\t\t\t\treturn zeroVal, errors.New(\"directive fieldLogging is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.FieldLogging(ctx, obj, directive0)\n\t\t\t}\n\n\t\t\tnext = directive1\n\t\t\treturn next\n\t\t},\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Todo_verified(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Todo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_isRepeatable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsRepeatable, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_locations,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Locations, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__DirectiveLocation2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_defaultValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DefaultValue, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_types,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Types(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_queryType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.QueryType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_mutationType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.MutationType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_subscriptionType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SubscriptionType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_directives,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Directives(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_kind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Kind(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__TypeKind2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_specifiedByURL,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SpecifiedByURL(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_fields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_interfaces,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Interfaces(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_possibleTypes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PossibleTypes(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_enumValues,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_inputFields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.InputFields(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_ofType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.OfType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_isOneOf,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsOneOf(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOBoolean2bool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalInputTodoInput(ctx context.Context, obj any) (TodoInput, error) {\n\tvar it TodoInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"text\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"text\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"text\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Text = data\n\t\t}\n\t}\n\t// Execute INPUT_OBJECT level directives (e.g., @oneOf, @directive3)\n\t// These run after all fields have been unmarshaled\n\tdirective0 := func(ctx context.Context) (any, error) { return it, nil }\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\tif ec.Directives.InputLogging == nil {\n\t\t\treturn it, errors.New(\"directive inputLogging is not implemented\")\n\t\t}\n\t\treturn ec.Directives.InputLogging(ctx, asMap, directive0)\n\t}\n\ttmp, err := directive1(ctx)\n\tif err != nil {\n\t\treturn it, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(TodoInput); ok {\n\t\treturn data, nil\n\t}\n\treturn it, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from INPUT_OBJECT directive, should be TodoInput`, tmp))\n}\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\nfunc (ec *executionContext) _Data(ctx context.Context, sel ast.SelectionSet, obj Data) graphql.Marshaler {\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\tcase Todo:\n\t\treturn ec._Todo(ctx, sel, &obj)\n\tcase *Todo:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Todo(ctx, sel, obj)\n\tdefault:\n\t\tif typedObj, ok := obj.(graphql.Marshaler); ok {\n\t\t\treturn typedObj\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T; non-generated variants of Data must implement graphql.Marshaler\", obj))\n\t\t}\n\t}\n}\n\nfunc (ec *executionContext) _Node(ctx context.Context, sel ast.SelectionSet, obj Node) graphql.Marshaler {\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\tcase Todo:\n\t\treturn ec._Todo(ctx, sel, &obj)\n\tcase *Todo:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Todo(ctx, sel, obj)\n\tdefault:\n\t\tif typedObj, ok := obj.(graphql.Marshaler); ok {\n\t\t\treturn typedObj\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T; non-generated variants of Node must implement graphql.Marshaler\", obj))\n\t\t}\n\t}\n}\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar myMutationImplementors = []string{\"MyMutation\"}\n\nfunc (ec *executionContext) _MyMutation(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, myMutationImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"MyMutation\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"MyMutation\")\n\t\tcase \"createTodo\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._MyMutation_createTodo(ctx, field)\n\t\t\t})\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar myQueryImplementors = []string{\"MyQuery\"}\n\nfunc (ec *executionContext) _MyQuery(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, myQueryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"MyQuery\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"MyQuery\")\n\t\tcase \"todos\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._MyQuery_todos(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"todo\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._MyQuery_todo(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._MyQuery___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._MyQuery___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar todoImplementors = []string{\"Todo\", \"Node\", \"Data\"}\n\nfunc (ec *executionContext) _Todo(ctx context.Context, sel ast.SelectionSet, obj *Todo) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, todoImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Todo\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._Todo_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"text\":\n\t\t\tout.Values[i] = ec._Todo_text(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"state\":\n\t\t\tout.Values[i] = ec._Todo_state(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"verified\":\n\t\t\tout.Values[i] = ec._Todo_verified(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNID2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalID(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNID2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalID(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNState2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋtypeᚑsystemᚑextensionᚐState(ctx context.Context, v any) (State, error) {\n\tvar res State\n\terr := res.UnmarshalGQL(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNState2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋtypeᚑsystemᚑextensionᚐState(ctx context.Context, sel ast.SelectionSet, v State) graphql.Marshaler {\n\treturn v\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNTodo2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋtypeᚑsystemᚑextensionᚐTodo(ctx context.Context, sel ast.SelectionSet, v Todo) graphql.Marshaler {\n\treturn ec._Todo(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNTodo2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋtypeᚑsystemᚑextensionᚐTodoᚄ(ctx context.Context, sel ast.SelectionSet, v []*Todo) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNTodo2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋtypeᚑsystemᚑextensionᚐTodo(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalNTodo2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋtypeᚑsystemᚑextensionᚐTodo(ctx context.Context, sel ast.SelectionSet, v *Todo) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Todo(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNTodoInput2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋtypeᚑsystemᚑextensionᚐTodoInput(ctx context.Context, v any) (TodoInput, error) {\n\tres, err := ec.unmarshalInputTodoInput(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalOTodo2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋtypeᚑsystemᚑextensionᚐTodo(ctx context.Context, sel ast.SelectionSet, v *Todo) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Todo(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "_examples/type-system-extension/gqlgen.yml",
    "content": "# .gqlgen.yml example\n#\n# Refer to https://gqlgen.com/config/\n# for detailed .gqlgen.yml documentation.\n\nschema:\n- ./schemas/*.graphql\n\nexec:\n  filename: generated.go\nmodel:\n  filename: models_gen.go\n"
  },
  {
    "path": "_examples/type-system-extension/models_gen.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage type_system_extension\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n)\n\ntype Data interface {\n\tIsData()\n}\n\ntype Node interface {\n\tIsNode()\n\tGetID() string\n}\n\ntype MyMutation struct {\n}\n\ntype MyQuery struct {\n}\n\ntype Todo struct {\n\tID       string `json:\"id\"`\n\tText     string `json:\"text\"`\n\tState    State  `json:\"state\"`\n\tVerified bool   `json:\"verified\"`\n}\n\nfunc (Todo) IsNode()            {}\nfunc (this Todo) GetID() string { return this.ID }\n\nfunc (Todo) IsData() {}\n\ntype TodoInput struct {\n\tText string `json:\"text\"`\n}\n\ntype State string\n\nconst (\n\tStateNotYet State = \"NOT_YET\"\n\tStateDone   State = \"DONE\"\n)\n\nvar AllState = []State{\n\tStateNotYet,\n\tStateDone,\n}\n\nfunc (e State) IsValid() bool {\n\tswitch e {\n\tcase StateNotYet, StateDone:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e State) String() string {\n\treturn string(e)\n}\n\nfunc (e *State) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = State(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid State\", str)\n\t}\n\treturn nil\n}\n\nfunc (e State) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *State) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e State) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n"
  },
  {
    "path": "_examples/type-system-extension/resolver.go",
    "content": "//go:generate go run ../../testdata/gqlgen.go\n\npackage type_system_extension\n\nimport (\n\t\"context\"\n\t\"fmt\"\n)\n\nfunc NewRootResolver() ResolverRoot {\n\treturn &resolver{\n\t\ttodos: []*Todo{\n\t\t\t{\n\t\t\t\tID:       \"Todo:1\",\n\t\t\t\tText:     \"Buy a cat food\",\n\t\t\t\tState:    StateNotYet,\n\t\t\t\tVerified: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tID:       \"Todo:2\",\n\t\t\t\tText:     \"Check cat water\",\n\t\t\t\tState:    StateDone,\n\t\t\t\tVerified: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tID:       \"Todo:3\",\n\t\t\t\tText:     \"Check cat meal\",\n\t\t\t\tState:    StateDone,\n\t\t\t\tVerified: true,\n\t\t\t},\n\t\t},\n\t}\n}\n\ntype resolver struct {\n\ttodos []*Todo\n}\n\nfunc (r *resolver) MyQuery() MyQueryResolver {\n\treturn &queryResolver{r}\n}\n\nfunc (r *resolver) MyMutation() MyMutationResolver {\n\treturn &mutationResolver{r}\n}\n\ntype queryResolver struct{ *resolver }\n\nfunc (r *queryResolver) Todos(ctx context.Context) ([]*Todo, error) {\n\treturn r.todos, nil\n}\n\nfunc (r *queryResolver) Todo(ctx context.Context, id string) (*Todo, error) {\n\tfor _, todo := range r.todos {\n\t\tif todo.ID == id {\n\t\t\treturn todo, nil\n\t\t}\n\t}\n\treturn nil, nil\n}\n\ntype mutationResolver struct{ *resolver }\n\nfunc (r *mutationResolver) CreateTodo(ctx context.Context, todoInput TodoInput) (*Todo, error) {\n\tnewID := fmt.Sprintf(\"Todo:%d\", len(r.todos)+1)\n\tnewTodo := &Todo{\n\t\tID:    newID,\n\t\tText:  todoInput.Text,\n\t\tState: StateNotYet,\n\t}\n\tr.todos = append(r.todos, newTodo)\n\n\treturn newTodo, nil\n}\n"
  },
  {
    "path": "_examples/type-system-extension/schemas/enum-extension.graphql",
    "content": "directive @enumLogging on ENUM\n\nextend enum State @enumLogging\n"
  },
  {
    "path": "_examples/type-system-extension/schemas/input-object-extension.graphql",
    "content": "directive @inputLogging on INPUT_OBJECT\n\nextend input TodoInput @inputLogging\n"
  },
  {
    "path": "_examples/type-system-extension/schemas/interface-extension.graphql",
    "content": "directive @interfaceLogging on INTERFACE\n\nextend interface Node @interfaceLogging\n"
  },
  {
    "path": "_examples/type-system-extension/schemas/object-extension.graphql",
    "content": "directive @objectLogging on OBJECT\n\nextend type Todo @objectLogging\n"
  },
  {
    "path": "_examples/type-system-extension/schemas/scalar-extension.graphql",
    "content": "directive @scalarLogging on SCALAR\n\nextend scalar ID @scalarLogging\n"
  },
  {
    "path": "_examples/type-system-extension/schemas/schema-extension.graphql",
    "content": "extend schema {\n  mutation: MyMutation\n}\n\nextend type MyQuery {\n  todo(id: ID!): Todo\n}\n\ntype MyMutation {\n  createTodo(todo: TodoInput!): Todo!\n}\n\ninput TodoInput {\n  text: String!\n}\n"
  },
  {
    "path": "_examples/type-system-extension/schemas/schema.graphql",
    "content": "# GraphQL schema example\n#\n# https://gqlgen.com/getting-started/\n\nschema {\n  query: MyQuery\n}\n\ninterface Node {\n  id: ID!\n}\n\ntype Todo implements Node {\n  id: ID!\n  text: String!\n  state: State!\n}\n\ntype MyQuery {\n  todos: [Todo!]!\n}\n\nunion Data = Todo\n\nenum State {\n  NOT_YET\n  DONE\n}\n"
  },
  {
    "path": "_examples/type-system-extension/schemas/type-extension.graphql",
    "content": "directive @fieldLogging on FIELD_DEFINITION\n\nextend type Todo {\n  verified: Boolean! @fieldLogging\n}\n"
  },
  {
    "path": "_examples/type-system-extension/schemas/union-extension.graphql",
    "content": "directive @unionLogging on UNION\n\nextend union Data @unionLogging\n"
  },
  {
    "path": "_examples/type-system-extension/server/server.go",
    "content": "package main\n\nimport (\n\t\"log\"\n\t\"net/http\"\n\t\"os\"\n\n\textension \"github.com/99designs/gqlgen/_examples/type-system-extension\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/graphql/playground\"\n)\n\nconst defaultPort = \"8080\"\n\nfunc main() {\n\tport := os.Getenv(\"PORT\")\n\tif port == \"\" {\n\t\tport = defaultPort\n\t}\n\n\tsrv := handler.New(\n\t\textension.NewExecutableSchema(\n\t\t\textension.Config{\n\t\t\t\tResolvers: extension.NewRootResolver(),\n\t\t\t\tDirectives: extension.DirectiveRoot{\n\t\t\t\t\tEnumLogging:   extension.EnumLogging,\n\t\t\t\t\tFieldLogging:  extension.FieldLogging,\n\t\t\t\t\tInputLogging:  extension.InputLogging,\n\t\t\t\t\tObjectLogging: extension.ObjectLogging,\n\t\t\t\t\tScalarLogging: extension.ScalarLogging,\n\t\t\t\t\tUnionLogging:  extension.UnionLogging,\n\t\t\t\t},\n\t\t\t},\n\t\t),\n\t)\n\tsrv.AddTransport(transport.GET{})\n\tsrv.AddTransport(transport.POST{})\n\n\thttp.Handle(\"/\", playground.Handler(\"GraphQL playground\", \"/query\"))\n\thttp.Handle(\"/query\", srv)\n\n\tlog.Printf(\"connect to http://localhost:%s/ for GraphQL playground\", port)\n\tlog.Fatal(http.ListenAndServe(\":\"+port, nil))\n}\n"
  },
  {
    "path": "_examples/union-extension/.gqlgen.yml",
    "content": "schema: schema.graphql\nmodel:\n  filename: models_gen.go\nexec:\n  filename: generated.go\n"
  },
  {
    "path": "_examples/union-extension/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage unionextension\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"embed\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n}\n\ntype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\ntype ResolverRoot interface {\n\tQuery() QueryResolver\n}\n\ntype DirectiveRoot struct {\n}\n\ntype ComplexityRoot struct {\n\tLike struct {\n\t\tFrom func(childComplexity int) int\n\t}\n\n\tPost struct {\n\t\tMessage func(childComplexity int) int\n\t}\n\n\tQuery struct {\n\t\tCachedEvents func(childComplexity int) int\n\t\tEvents       func(childComplexity int) int\n\t}\n}\n\ntype QueryResolver interface {\n\tEvents(ctx context.Context) ([]Event, error)\n\tCachedEvents(ctx context.Context) ([]Event, error)\n}\n\ntype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.SchemaData != nil {\n\t\treturn e.SchemaData\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := newExecutionContext(nil, e, nil)\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"Like.from\":\n\t\tif e.ComplexityRoot.Like.From == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Like.From(childComplexity), true\n\n\tcase \"Post.message\":\n\t\tif e.ComplexityRoot.Post.Message == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Post.Message(childComplexity), true\n\n\tcase \"Query.cachedEvents\":\n\t\tif e.ComplexityRoot.Query.CachedEvents == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.CachedEvents(childComplexity), true\n\tcase \"Query.events\":\n\t\tif e.ComplexityRoot.Query.Events == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Events(childComplexity), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap()\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\n//go:embed \"schema.graphql\"\nvar sourcesFS embed.FS\n\nfunc sourceData(filename string) string {\n\tdata, err := sourcesFS.ReadFile(filename)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"codegen problem: %s not available\", filename))\n\t}\n\treturn string(data)\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"schema.graphql\", Input: sourceData(\"schema.graphql\"), BuiltIn: false},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Like_from(ctx context.Context, field graphql.CollectedField, obj *Like) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Like_from,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.From, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Like_from(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Like\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Post_message(ctx context.Context, field graphql.CollectedField, obj *Post) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Post_message,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Message, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Post_message(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Post\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_events(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_events,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Events(ctx)\n\t\t},\n\t\tnil,\n\t\tec.marshalNEvent2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋunionᚑextensionᚐEventᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_events(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Event does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_cachedEvents(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_cachedEvents,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().CachedEvents(ctx)\n\t\t},\n\t\tnil,\n\t\tec.marshalNEvent2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋunionᚑextensionᚐEventᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_cachedEvents(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Event does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.IntrospectType(fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___schema,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.IntrospectSchema()\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_isRepeatable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsRepeatable, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_locations,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Locations, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__DirectiveLocation2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_defaultValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DefaultValue, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_types,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Types(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_queryType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.QueryType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_mutationType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.MutationType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_subscriptionType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SubscriptionType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_directives,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Directives(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_kind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Kind(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__TypeKind2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_specifiedByURL,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SpecifiedByURL(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_fields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_interfaces,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Interfaces(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_possibleTypes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PossibleTypes(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_enumValues,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_inputFields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.InputFields(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_ofType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.OfType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_isOneOf,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsOneOf(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOBoolean2bool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\nfunc (ec *executionContext) _Event(ctx context.Context, sel ast.SelectionSet, obj Event) graphql.Marshaler {\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\tcase Post:\n\t\treturn ec._Post(ctx, sel, &obj)\n\tcase *Post:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Post(ctx, sel, obj)\n\tcase Like:\n\t\treturn ec._Like(ctx, sel, &obj)\n\tcase *Like:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Like(ctx, sel, obj)\n\tdefault:\n\t\tif typedObj, ok := obj.(graphql.Marshaler); ok {\n\t\t\treturn typedObj\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T; non-generated variants of Event must implement graphql.Marshaler\", obj))\n\t\t}\n\t}\n}\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar likeImplementors = []string{\"Like\", \"Event\"}\n\nfunc (ec *executionContext) _Like(ctx context.Context, sel ast.SelectionSet, obj *Like) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, likeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Like\")\n\t\tcase \"from\":\n\t\t\tout.Values[i] = ec._Like_from(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar postImplementors = []string{\"Post\", \"Event\"}\n\nfunc (ec *executionContext) _Post(ctx context.Context, sel ast.SelectionSet, obj *Post) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, postImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Post\")\n\t\tcase \"message\":\n\t\t\tout.Values[i] = ec._Post_message(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"events\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_events(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"cachedEvents\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_cachedEvents(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNEvent2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋunionᚑextensionᚐEvent(ctx context.Context, sel ast.SelectionSet, v Event) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Event(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNEvent2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋunionᚑextensionᚐEventᚄ(ctx context.Context, sel ast.SelectionSet, v []Event) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNEvent2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋunionᚑextensionᚐEvent(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "_examples/union-extension/models.go",
    "content": "package unionextension\n\nimport (\n\t\"io\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\ntype CachedLike struct{}\n\ntype CachedPost struct{}\n\nfunc (CachedLike) IsEvent() {}\nfunc (CachedPost) IsEvent() {}\n\nvar (\n\t_ graphql.Marshaler = CachedLike{}\n\t_ graphql.Marshaler = CachedPost{}\n)\n\n// This needs to be used with caution, as the returned data doesn't go through the usual field resolution process.\n// This will be returned for all users, no matter what fields are requested.\nfunc (CachedLike) MarshalGQL(w io.Writer) {\n\tw.Write([]byte(`{\"from\":\"CachedLike\"}`))\n}\n\n// This needs to be used with caution, as the returned data doesn't go through the usual field resolution process.\n// This will be returned for all users, no matter what fields are requested.\nfunc (CachedPost) MarshalGQL(w io.Writer) {\n\tw.Write([]byte(`{\"message\":\"CachedPost\"}`))\n}\n"
  },
  {
    "path": "_examples/union-extension/models_gen.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage unionextension\n\ntype Event interface {\n\tIsEvent()\n}\n\ntype Like struct {\n\tFrom string `json:\"from\"`\n}\n\nfunc (Like) IsEvent() {}\n\ntype Post struct {\n\tMessage string `json:\"message\"`\n}\n\nfunc (Post) IsEvent() {}\n\ntype Query struct {\n}\n"
  },
  {
    "path": "_examples/union-extension/readme.md",
    "content": "### union-extension app\n\nThis is a graphql-server example where the user extends a code-generated union, for caching / early return purposes.\n\nto run this server\n```bash\ngo run ./server/server.go\n```\n\nand open http://localhost:8086 in your browser\n"
  },
  {
    "path": "_examples/union-extension/schema.graphql",
    "content": "type Post {\n    message: String!\n}\n\ntype Like {\n    from: String!\n}\n\nunion Event = Post | Like\n\ntype Query {\n    events: [Event!]!\n    cachedEvents: [Event!]!\n}"
  },
  {
    "path": "_examples/union-extension/server/server.go",
    "content": "package main\n\nimport (\n\t\"log\"\n\t\"net/http\"\n\n\tunionextension \"github.com/99designs/gqlgen/_examples/union-extension\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/graphql/playground\"\n)\n\nfunc main() {\n\tsrv := handler.New(\n\t\tunionextension.NewExecutableSchema(\n\t\t\tunionextension.Config{Resolvers: &unionextension.Resolver{}},\n\t\t),\n\t)\n\tsrv.AddTransport(transport.GET{})\n\tsrv.AddTransport(transport.POST{})\n\n\thttp.Handle(\"/\", playground.Handler(\"Union Extension Demo\", \"/query\"))\n\thttp.Handle(\"/query\", srv)\n\tlog.Fatal(http.ListenAndServe(\":8086\", nil))\n}\n"
  },
  {
    "path": "_examples/union-extension/union_extension.go",
    "content": "//go:generate go run ../../testdata/gqlgen.go\n\npackage unionextension\n\nimport (\n\t\"context\"\n)\n\ntype Resolver struct{}\n\nfunc (r *Resolver) Query() QueryResolver {\n\treturn &queryResolver{r}\n}\n\ntype queryResolver struct{ *Resolver }\n\nfunc (r *queryResolver) Events(ctx context.Context) ([]Event, error) {\n\treturn []Event{&Like{From: \"John\"}, &Post{Message: \"Hello\"}}, nil\n}\n\nfunc (r *queryResolver) CachedEvents(ctx context.Context) ([]Event, error) {\n\treturn []Event{&CachedLike{}, &CachedPost{}}, nil\n}\n"
  },
  {
    "path": "_examples/union-extension/union_extension_test.go",
    "content": "package unionextension\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestEvents(t *testing.T) {\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: &Resolver{}}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tquery := `{\n\t\tevents {\n\t\t\t... on Like {\n\t\t\t\tfrom\n\t\t\t}\n\t\t\t... on Post {\n\t\t\t\tmessage\n\t\t\t}\n\t\t}\n\t}\n\t`\n\n\tvar resp struct {\n\t\tEvents []struct {\n\t\t\tFrom    string\n\t\t\tMessage string\n\t\t}\n\t}\n\tc.MustPost(query, &resp)\n\n\trequire.Equal(t, \"John\", resp.Events[0].From)\n\trequire.Equal(t, \"Hello\", resp.Events[1].Message)\n}\n\nfunc TestCachedEvents(t *testing.T) {\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: &Resolver{}}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tquery := `{\n\t\tcachedEvents {\n\t\t\t... on Like {\n\t\t\t\tfrom\n\t\t\t}\n\t\t\t... on Post {\n\t\t\t\tmessage\n\t\t\t}\n\t\t}\n\t}\n\t`\n\n\tvar resp struct {\n\t\tCachedEvents []struct {\n\t\t\tFrom    string\n\t\t\tMessage string\n\t\t}\n\t}\n\tc.MustPost(query, &resp)\n\n\trequire.Equal(t, \"CachedLike\", resp.CachedEvents[0].From)\n\trequire.Equal(t, \"CachedPost\", resp.CachedEvents[1].Message)\n}\n"
  },
  {
    "path": "_examples/uuid/gqlgen.yml",
    "content": "# Where are all the schema files located? globs are supported eg  src/**/*.graphqls\nschema:\n  - graph/*.graphqls\n\n# Where should the generated server code go?\nexec:\n  filename: graph/generated.go\n  package: graph\n\n# Uncomment to enable federation\n# federation:\n#   filename: graph/federation.go\n#   package: graph\n\n# Where should any generated models go?\nmodel:\n  filename: graph/model/models_gen.go\n  package: model\n\n# Where should the resolver implementations go?\nresolver:\n  layout: follow-schema\n  dir: graph\n  package: graph\n  filename_template: \"{name}.resolvers.go\"\n  # Optional: turn on to not generate template comments above resolvers\n  # omit_template_comment: false\n\n# Optional: turn on use ` + \"`\" + `gqlgen:\"fieldName\"` + \"`\" + ` tags in your models\n# struct_tag: json\n\n# Optional: turn on to use []Thing instead of []*Thing\n# omit_slice_element_pointers: false\n\n# Optional: turn on to omit Is<Name>() methods to interface and unions\n# omit_interface_checks : true\n\n# Optional: turn on to skip generation of ComplexityRoot struct content and Complexity function\n# omit_complexity: false\n\n# Optional: turn on to not generate any file notice comments in generated files\n# omit_gqlgen_file_notice: false\n\n# Optional: turn on to exclude the gqlgen version in the generated file notice. No effect if `omit_gqlgen_file_notice` is true.\n# omit_gqlgen_version_in_file_notice: false\n\n# Optional: turn off to make struct-type struct fields not use pointers\n# e.g. type Thing struct { FieldA OtherThing } instead of { FieldA *OtherThing }\n# struct_fields_always_pointers: true\n\n# Optional: turn off to make resolvers return values instead of pointers for structs\n# resolvers_always_return_pointers: true\n\n# Optional: turn on to return pointers instead of values in unmarshalInput\n# return_pointers_in_unmarshalinput: false\n\n# Optional: wrap nullable input fields with Omittable\n# nullable_input_omittable: true\n\n# Optional: turn on `json:\",omitempty\"` tags on model types, default true\n# enable_model_json_omitempty_tag: true\n\n# Optional: set to speed up generation time by not performing a final validation pass.\n# skip_validation: true\n\n# Optional: set to skip running `go mod tidy` when generating server code\n# skip_mod_tidy: true\n\n# gqlgen will search for any type names in the schema in these go packages\n# if they match it will use them, otherwise it will generate them.\nautobind:\n#  - \"github.com/99designs/gqlgen/_examples/uuid/graph/model\"\n\n# This section declares type mapping between the GraphQL and go type systems\n#\n# The first line in each type will be used as defaults for resolver arguments and\n# modelgen, the others will be allowed when binding to fields. Configure them to\n# your liking\nmodels:\n  ID:\n    model:\n      - github.com/99designs/gqlgen/graphql.ID\n      - github.com/99designs/gqlgen/graphql.Int\n      - github.com/99designs/gqlgen/graphql.Int64\n      - github.com/99designs/gqlgen/graphql.Int32\n  Int:\n    model:\n      - github.com/99designs/gqlgen/graphql.Int\n      - github.com/99designs/gqlgen/graphql.Int64\n      - github.com/99designs/gqlgen/graphql.Int32\n  UUID:\n    model:\n      - github.com/99designs/gqlgen/graphql.UUID\n"
  },
  {
    "path": "_examples/uuid/graph/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage graph\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"embed\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/_examples/uuid/graph/model\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\t\"github.com/google/uuid\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{\n\t\tschema:     cfg.Schema,\n\t\tresolvers:  cfg.Resolvers,\n\t\tdirectives: cfg.Directives,\n\t\tcomplexity: cfg.Complexity,\n\t}\n}\n\ntype Config struct {\n\tSchema     *ast.Schema\n\tResolvers  ResolverRoot\n\tDirectives DirectiveRoot\n\tComplexity ComplexityRoot\n}\n\ntype ResolverRoot interface {\n\tMutation() MutationResolver\n\tQuery() QueryResolver\n}\n\ntype DirectiveRoot struct {\n}\n\ntype ComplexityRoot struct {\n\tMutation struct {\n\t\tCreateTodo func(childComplexity int, input model.NewTodo) int\n\t}\n\n\tQuery struct {\n\t\tTodos func(childComplexity int) int\n\t}\n\n\tTodo struct {\n\t\tDone func(childComplexity int) int\n\t\tID   func(childComplexity int) int\n\t\tText func(childComplexity int) int\n\t\tUID  func(childComplexity int) int\n\t}\n}\n\ntype MutationResolver interface {\n\tCreateTodo(ctx context.Context, input model.NewTodo) (*model.Todo, error)\n}\ntype QueryResolver interface {\n\tTodos(ctx context.Context) ([]*model.Todo, error)\n}\n\ntype executableSchema struct {\n\tschema     *ast.Schema\n\tresolvers  ResolverRoot\n\tdirectives DirectiveRoot\n\tcomplexity ComplexityRoot\n}\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.schema != nil {\n\t\treturn e.schema\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := executionContext{nil, e, 0, 0, nil}\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"Mutation.createTodo\":\n\t\tif e.complexity.Mutation.CreateTodo == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Mutation_createTodo_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.complexity.Mutation.CreateTodo(childComplexity, args[\"input\"].(model.NewTodo)), true\n\n\tcase \"Query.todos\":\n\t\tif e.complexity.Query.Todos == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Query.Todos(childComplexity), true\n\n\tcase \"Todo.done\":\n\t\tif e.complexity.Todo.Done == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Todo.Done(childComplexity), true\n\n\tcase \"Todo.id\":\n\t\tif e.complexity.Todo.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Todo.ID(childComplexity), true\n\n\tcase \"Todo.text\":\n\t\tif e.complexity.Todo.Text == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Todo.Text(childComplexity), true\n\n\tcase \"Todo.uid\":\n\t\tif e.complexity.Todo.UID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Todo.UID(childComplexity), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := executionContext{opCtx, e, 0, 0, make(chan graphql.DeferredResult)}\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap(\n\t\tec.unmarshalInputNewTodo,\n\t)\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.pendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.deferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.pendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.pendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\tcase ast.Mutation:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tif !first {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tfirst = false\n\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\tdata := ec._Mutation(ctx, opCtx.Operation.SelectionSet)\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\n\t\t\treturn &graphql.Response{\n\t\t\t\tData: buf.Bytes(),\n\t\t\t}\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.OperationContext\n\t*executableSchema\n\tdeferred        int32\n\tpendingDeferred int32\n\tdeferredResults chan graphql.DeferredResult\n}\n\nfunc (ec *executionContext) processDeferredGroup(dg graphql.DeferredGroup) {\n\tatomic.AddInt32(&ec.pendingDeferred, 1)\n\tgo func() {\n\t\tctx := graphql.WithFreshResponseContext(dg.Context)\n\t\tdg.FieldSet.Dispatch(ctx)\n\t\tds := graphql.DeferredResult{\n\t\t\tPath:   dg.Path,\n\t\t\tLabel:  dg.Label,\n\t\t\tResult: dg.FieldSet,\n\t\t\tErrors: graphql.GetErrors(ctx),\n\t\t}\n\t\t// null fields should bubble up\n\t\tif dg.FieldSet.Invalids > 0 {\n\t\t\tds.Result = graphql.Null\n\t\t}\n\t\tec.deferredResults <- ds\n\t}()\n}\n\nfunc (ec *executionContext) introspectSchema() (*introspection.Schema, error) {\n\tif ec.DisableIntrospection {\n\t\treturn nil, errors.New(\"introspection disabled\")\n\t}\n\treturn introspection.WrapSchema(ec.Schema()), nil\n}\n\nfunc (ec *executionContext) introspectType(name string) (*introspection.Type, error) {\n\tif ec.DisableIntrospection {\n\t\treturn nil, errors.New(\"introspection disabled\")\n\t}\n\treturn introspection.WrapTypeFromDef(ec.Schema(), ec.Schema().Types[name]), nil\n}\n\n//go:embed \"schema.graphqls\"\nvar sourcesFS embed.FS\n\nfunc sourceData(filename string) string {\n\tdata, err := sourcesFS.ReadFile(filename)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"codegen problem: %s not available\", filename))\n\t}\n\treturn string(data)\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"schema.graphqls\", Input: sourceData(\"schema.graphqls\"), BuiltIn: false},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_Mutation_createTodo_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field_Mutation_createTodo_argsInput(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"input\"] = arg0\n\treturn args, nil\n}\nfunc (ec *executionContext) field_Mutation_createTodo_argsInput(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (model.NewTodo, error) {\n\tif _, ok := rawArgs[\"input\"]; !ok {\n\t\tvar zeroVal model.NewTodo\n\t\treturn zeroVal, nil\n\t}\n\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"input\"))\n\tif tmp, ok := rawArgs[\"input\"]; ok {\n\t\treturn ec.unmarshalNNewTodo2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋuuidᚋgraphᚋmodelᚐNewTodo(ctx, tmp)\n\t}\n\n\tvar zeroVal model.NewTodo\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field_Query___type_argsName(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\nfunc (ec *executionContext) field_Query___type_argsName(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (string, error) {\n\tif _, ok := rawArgs[\"name\"]; !ok {\n\t\tvar zeroVal string\n\t\treturn zeroVal, nil\n\t}\n\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"name\"))\n\tif tmp, ok := rawArgs[\"name\"]; ok {\n\t\treturn ec.unmarshalNString2string(ctx, tmp)\n\t}\n\n\tvar zeroVal string\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field___Directive_args_argsIncludeDeprecated(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\nfunc (ec *executionContext) field___Directive_args_argsIncludeDeprecated(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (*bool, error) {\n\tif _, ok := rawArgs[\"includeDeprecated\"]; !ok {\n\t\tvar zeroVal *bool\n\t\treturn zeroVal, nil\n\t}\n\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"includeDeprecated\"))\n\tif tmp, ok := rawArgs[\"includeDeprecated\"]; ok {\n\t\treturn ec.unmarshalOBoolean2ᚖbool(ctx, tmp)\n\t}\n\n\tvar zeroVal *bool\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field___Field_args_argsIncludeDeprecated(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\nfunc (ec *executionContext) field___Field_args_argsIncludeDeprecated(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (*bool, error) {\n\tif _, ok := rawArgs[\"includeDeprecated\"]; !ok {\n\t\tvar zeroVal *bool\n\t\treturn zeroVal, nil\n\t}\n\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"includeDeprecated\"))\n\tif tmp, ok := rawArgs[\"includeDeprecated\"]; ok {\n\t\treturn ec.unmarshalOBoolean2ᚖbool(ctx, tmp)\n\t}\n\n\tvar zeroVal *bool\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field___Type_enumValues_argsIncludeDeprecated(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\nfunc (ec *executionContext) field___Type_enumValues_argsIncludeDeprecated(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (bool, error) {\n\tif _, ok := rawArgs[\"includeDeprecated\"]; !ok {\n\t\tvar zeroVal bool\n\t\treturn zeroVal, nil\n\t}\n\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"includeDeprecated\"))\n\tif tmp, ok := rawArgs[\"includeDeprecated\"]; ok {\n\t\treturn ec.unmarshalOBoolean2bool(ctx, tmp)\n\t}\n\n\tvar zeroVal bool\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field___Type_fields_argsIncludeDeprecated(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\nfunc (ec *executionContext) field___Type_fields_argsIncludeDeprecated(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (bool, error) {\n\tif _, ok := rawArgs[\"includeDeprecated\"]; !ok {\n\t\tvar zeroVal bool\n\t\treturn zeroVal, nil\n\t}\n\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"includeDeprecated\"))\n\tif tmp, ok := rawArgs[\"includeDeprecated\"]; ok {\n\t\treturn ec.unmarshalOBoolean2bool(ctx, tmp)\n\t}\n\n\tvar zeroVal bool\n\treturn zeroVal, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Mutation_createTodo(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Mutation_createTodo(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.resolvers.Mutation().CreateTodo(rctx, fc.Args[\"input\"].(model.NewTodo))\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*model.Todo)\n\tfc.Result = res\n\treturn ec.marshalNTodo2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋuuidᚋgraphᚋmodelᚐTodo(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Mutation_createTodo(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Mutation\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Todo_id(ctx, field)\n\t\t\tcase \"text\":\n\t\t\t\treturn ec.fieldContext_Todo_text(ctx, field)\n\t\t\tcase \"done\":\n\t\t\t\treturn ec.fieldContext_Todo_done(ctx, field)\n\t\t\tcase \"uid\":\n\t\t\t\treturn ec.fieldContext_Todo_uid(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Todo\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Mutation_createTodo_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_todos(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Query_todos(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.resolvers.Query().Todos(rctx)\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]*model.Todo)\n\tfc.Result = res\n\treturn ec.marshalNTodo2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋuuidᚋgraphᚋmodelᚐTodoᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Query_todos(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Todo_id(ctx, field)\n\t\t\tcase \"text\":\n\t\t\t\treturn ec.fieldContext_Todo_text(ctx, field)\n\t\t\tcase \"done\":\n\t\t\t\treturn ec.fieldContext_Todo_done(ctx, field)\n\t\t\tcase \"uid\":\n\t\t\t\treturn ec.fieldContext_Todo_uid(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Todo\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Query___type(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.introspectType(fc.Args[\"name\"].(string))\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Query___schema(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.introspectSchema()\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Schema)\n\tfc.Result = res\n\treturn ec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Todo_id(ctx context.Context, field graphql.CollectedField, obj *model.Todo) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Todo_id(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.ID, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNID2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Todo_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Todo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Todo_text(ctx context.Context, field graphql.CollectedField, obj *model.Todo) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Todo_text(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Text, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Todo_text(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Todo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Todo_done(ctx context.Context, field graphql.CollectedField, obj *model.Todo) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Todo_done(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Done, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalNBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Todo_done(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Todo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Todo_uid(ctx context.Context, field graphql.CollectedField, obj *model.Todo) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Todo_uid(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.UID, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(uuid.UUID)\n\tfc.Result = res\n\treturn ec.marshalNUUID2githubᚗcomᚋgoogleᚋuuidᚐUUID(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Todo_uid(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Todo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type UUID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_isRepeatable(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.IsRepeatable, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalNBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_locations(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Locations, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]string)\n\tfc.Result = res\n\treturn ec.marshalN__DirectiveLocation2ᚕstringᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_args(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Args, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.InputValue)\n\tfc.Result = res\n\treturn ec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___EnumValue_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___EnumValue_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.IsDeprecated(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalNBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.DeprecationReason(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_args(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Args, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.InputValue)\n\tfc.Result = res\n\treturn ec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_type(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Type, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_isDeprecated(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.IsDeprecated(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalNBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_deprecationReason(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.DeprecationReason(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_type(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Type, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_defaultValue(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.DefaultValue, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.IsDeprecated(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalNBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.DeprecationReason(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_types(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Types(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_queryType(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.QueryType(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_mutationType(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.MutationType(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_subscriptionType(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.SubscriptionType(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_directives(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Directives(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Directive)\n\tfc.Result = res\n\treturn ec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_kind(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Kind(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalN__TypeKind2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_specifiedByURL(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.SpecifiedByURL(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_fields(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Field)\n\tfc.Result = res\n\treturn ec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_interfaces(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Interfaces(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_possibleTypes(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.PossibleTypes(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_enumValues(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.EnumValue)\n\tfc.Result = res\n\treturn ec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_inputFields(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.InputFields(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.InputValue)\n\tfc.Result = res\n\treturn ec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_ofType(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.OfType(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_isOneOf(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.IsOneOf(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalOBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalInputNewTodo(ctx context.Context, obj any) (model.NewTodo, error) {\n\tvar it model.NewTodo\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"text\", \"userId\", \"uid\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"text\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"text\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Text = data\n\t\tcase \"userId\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"userId\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.UserID = data\n\t\tcase \"uid\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"uid\"))\n\t\t\tdata, err := ec.unmarshalNUUID2githubᚗcomᚋgoogleᚋuuidᚐUUID(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.UID = data\n\t\t}\n\t}\n\n\treturn it, nil\n}\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar mutationImplementors = []string{\"Mutation\"}\n\nfunc (ec *executionContext) _Mutation(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, mutationImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Mutation\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Mutation\")\n\t\tcase \"createTodo\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Mutation_createTodo(ctx, field)\n\t\t\t})\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"todos\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_todos(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar todoImplementors = []string{\"Todo\"}\n\nfunc (ec *executionContext) _Todo(ctx context.Context, sel ast.SelectionSet, obj *model.Todo) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, todoImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Todo\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._Todo_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"text\":\n\t\t\tout.Values[i] = ec._Todo_text(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"done\":\n\t\t\tout.Values[i] = ec._Todo_done(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"uid\":\n\t\t\tout.Values[i] = ec._Todo_uid(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNID2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalID(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNID2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\tres := graphql.MarshalID(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNNewTodo2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋuuidᚋgraphᚋmodelᚐNewTodo(ctx context.Context, v any) (model.NewTodo, error) {\n\tres, err := ec.unmarshalInputNewTodo(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNTodo2githubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋuuidᚋgraphᚋmodelᚐTodo(ctx context.Context, sel ast.SelectionSet, v model.Todo) graphql.Marshaler {\n\treturn ec._Todo(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNTodo2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋuuidᚋgraphᚋmodelᚐTodoᚄ(ctx context.Context, sel ast.SelectionSet, v []*model.Todo) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalNTodo2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋuuidᚋgraphᚋmodelᚐTodo(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalNTodo2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋ_examplesᚋuuidᚋgraphᚋmodelᚐTodo(ctx context.Context, sel ast.SelectionSet, v *model.Todo) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Todo(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNUUID2githubᚗcomᚋgoogleᚋuuidᚐUUID(ctx context.Context, v any) (uuid.UUID, error) {\n\tres, err := graphql.UnmarshalUUID(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNUUID2githubᚗcomᚋgoogleᚋuuidᚐUUID(ctx context.Context, sel ast.SelectionSet, v uuid.UUID) graphql.Marshaler {\n\tres := graphql.MarshalUUID(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "_examples/uuid/graph/model/models_gen.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage model\n\nimport (\n\t\"github.com/google/uuid\"\n)\n\ntype Mutation struct {\n}\n\ntype NewTodo struct {\n\tText   string    `json:\"text\"`\n\tUserID string    `json:\"userId\"`\n\tUID    uuid.UUID `json:\"uid\"`\n}\n\ntype Query struct {\n}\n\ntype Todo struct {\n\tID   string    `json:\"id\"`\n\tText string    `json:\"text\"`\n\tDone bool      `json:\"done\"`\n\tUID  uuid.UUID `json:\"uid\"`\n}\n"
  },
  {
    "path": "_examples/uuid/graph/resolver.go",
    "content": "package graph\n\n// This file will not be regenerated automatically.\n//\n// It serves as dependency injection for your app, add any dependencies you require here.\n\ntype Resolver struct{}\n"
  },
  {
    "path": "_examples/uuid/graph/schema.graphqls",
    "content": "# GraphQL schema example\n#\n# https://gqlgen.com/getting-started/\n\ntype Todo {\n  id: ID!\n  text: String!\n  done: Boolean!\n  uid: UUID!\n}\n\n\ntype Query {\n  todos: [Todo!]!\n}\n\ninput NewTodo {\n  text: String!\n  userId: String!\n  uid: UUID!\n}\n\ntype Mutation {\n  createTodo(input: NewTodo!): Todo!\n}\n\nscalar UUID\n"
  },
  {
    "path": "_examples/uuid/graph/schema.resolvers.go",
    "content": "package graph\n\n// This file will be automatically regenerated based on the schema, any resolver implementations\n// will be copied through when generating and any unknown code will be moved to the end.\n// Code generated by github.com/99designs/gqlgen version v0.17.70-dev\n\nimport (\n\t\"context\"\n\n\t\"github.com/99designs/gqlgen/_examples/uuid/graph/model\"\n\t\"github.com/google/uuid\"\n)\n\n// CreateTodo is the resolver for the createTodo field.\nfunc (r *mutationResolver) CreateTodo(\n\tctx context.Context,\n\tinput model.NewTodo,\n) (*model.Todo, error) {\n\treturn &model.Todo{\n\t\tID:   input.UserID,\n\t\tText: input.Text,\n\t\tDone: true,\n\t\tUID:  input.UID,\n\t}, nil\n}\n\n// Todos is the resolver for the todos field.\nfunc (r *queryResolver) Todos(ctx context.Context) ([]*model.Todo, error) {\n\treturn []*model.Todo{\n\t\t{ID: \"1\", Text: \"hello\", Done: true, UID: uuid.New()},\n\t\t{ID: \"2\", Text: \"world\", Done: false, UID: uuid.New()},\n\t}, nil\n}\n\n// Mutation returns MutationResolver implementation.\nfunc (r *Resolver) Mutation() MutationResolver { return &mutationResolver{r} }\n\n// Query returns QueryResolver implementation.\nfunc (r *Resolver) Query() QueryResolver { return &queryResolver{r} }\n\ntype (\n\tmutationResolver struct{ *Resolver }\n\tqueryResolver    struct{ *Resolver }\n)\n"
  },
  {
    "path": "_examples/uuid/server.go",
    "content": "package main\n\nimport (\n\t\"log\"\n\t\"net/http\"\n\t\"os\"\n\n\t\"github.com/99designs/gqlgen/_examples/uuid/graph\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/graphql/playground\"\n)\n\nconst defaultPort = \"8080\"\n\nfunc main() {\n\tport := os.Getenv(\"PORT\")\n\tif port == \"\" {\n\t\tport = defaultPort\n\t}\n\n\tsrv := handler.New(\n\t\tgraph.NewExecutableSchema(graph.Config{Resolvers: &graph.Resolver{}}),\n\t)\n\tsrv.AddTransport(transport.GET{})\n\tsrv.AddTransport(transport.POST{})\n\n\thttp.Handle(\"/\", playground.Handler(\"GraphQL playground\", \"/query\"))\n\thttp.Handle(\"/query\", srv)\n\n\tlog.Printf(\"connect to http://localhost:%s/ for GraphQL playground\", port)\n\tlog.Fatal(http.ListenAndServe(\":\"+port, nil))\n}\n"
  },
  {
    "path": "_examples/websocket-initfunc/graph/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage graph\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{\n\t\tschema:     cfg.Schema,\n\t\tresolvers:  cfg.Resolvers,\n\t\tdirectives: cfg.Directives,\n\t\tcomplexity: cfg.Complexity,\n\t}\n}\n\ntype Config struct {\n\tSchema     *ast.Schema\n\tResolvers  ResolverRoot\n\tDirectives DirectiveRoot\n\tComplexity ComplexityRoot\n}\n\ntype ResolverRoot interface {\n}\n\ntype DirectiveRoot struct {\n}\n\ntype ComplexityRoot struct {\n\tQuery struct {\n\t}\n}\n\ntype executableSchema struct {\n\tschema     *ast.Schema\n\tresolvers  ResolverRoot\n\tdirectives DirectiveRoot\n\tcomplexity ComplexityRoot\n}\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.schema != nil {\n\t\treturn e.schema\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := executionContext{nil, e, 0, 0, nil}\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := executionContext{opCtx, e, 0, 0, make(chan graphql.DeferredResult)}\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap()\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.pendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.deferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.pendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.pendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.OperationContext\n\t*executableSchema\n\tdeferred        int32\n\tpendingDeferred int32\n\tdeferredResults chan graphql.DeferredResult\n}\n\nfunc (ec *executionContext) processDeferredGroup(dg graphql.DeferredGroup) {\n\tatomic.AddInt32(&ec.pendingDeferred, 1)\n\tgo func() {\n\t\tctx := graphql.WithFreshResponseContext(dg.Context)\n\t\tdg.FieldSet.Dispatch(ctx)\n\t\tds := graphql.DeferredResult{\n\t\t\tPath:   dg.Path,\n\t\t\tLabel:  dg.Label,\n\t\t\tResult: dg.FieldSet,\n\t\t\tErrors: graphql.GetErrors(ctx),\n\t\t}\n\t\t// null fields should bubble up\n\t\tif dg.FieldSet.Invalids > 0 {\n\t\t\tds.Result = graphql.Null\n\t\t}\n\t\tec.deferredResults <- ds\n\t}()\n}\n\nfunc (ec *executionContext) introspectSchema() (*introspection.Schema, error) {\n\tif ec.DisableIntrospection {\n\t\treturn nil, errors.New(\"introspection disabled\")\n\t}\n\treturn introspection.WrapSchema(ec.Schema()), nil\n}\n\nfunc (ec *executionContext) introspectType(name string) (*introspection.Type, error) {\n\tif ec.DisableIntrospection {\n\t\treturn nil, errors.New(\"introspection disabled\")\n\t}\n\treturn introspection.WrapTypeFromDef(ec.Schema(), ec.Schema().Types[name]), nil\n}\n\nvar sources = []*ast.Source{}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field_Query___type_argsName(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\nfunc (ec *executionContext) field_Query___type_argsName(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (string, error) {\n\tif _, ok := rawArgs[\"name\"]; !ok {\n\t\tvar zeroVal string\n\t\treturn zeroVal, nil\n\t}\n\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"name\"))\n\tif tmp, ok := rawArgs[\"name\"]; ok {\n\t\treturn ec.unmarshalNString2string(ctx, tmp)\n\t}\n\n\tvar zeroVal string\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field___Directive_args_argsIncludeDeprecated(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\nfunc (ec *executionContext) field___Directive_args_argsIncludeDeprecated(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (*bool, error) {\n\tif _, ok := rawArgs[\"includeDeprecated\"]; !ok {\n\t\tvar zeroVal *bool\n\t\treturn zeroVal, nil\n\t}\n\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"includeDeprecated\"))\n\tif tmp, ok := rawArgs[\"includeDeprecated\"]; ok {\n\t\treturn ec.unmarshalOBoolean2ᚖbool(ctx, tmp)\n\t}\n\n\tvar zeroVal *bool\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field___Field_args_argsIncludeDeprecated(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\nfunc (ec *executionContext) field___Field_args_argsIncludeDeprecated(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (*bool, error) {\n\tif _, ok := rawArgs[\"includeDeprecated\"]; !ok {\n\t\tvar zeroVal *bool\n\t\treturn zeroVal, nil\n\t}\n\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"includeDeprecated\"))\n\tif tmp, ok := rawArgs[\"includeDeprecated\"]; ok {\n\t\treturn ec.unmarshalOBoolean2ᚖbool(ctx, tmp)\n\t}\n\n\tvar zeroVal *bool\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field___Type_enumValues_argsIncludeDeprecated(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\nfunc (ec *executionContext) field___Type_enumValues_argsIncludeDeprecated(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (bool, error) {\n\tif _, ok := rawArgs[\"includeDeprecated\"]; !ok {\n\t\tvar zeroVal bool\n\t\treturn zeroVal, nil\n\t}\n\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"includeDeprecated\"))\n\tif tmp, ok := rawArgs[\"includeDeprecated\"]; ok {\n\t\treturn ec.unmarshalOBoolean2bool(ctx, tmp)\n\t}\n\n\tvar zeroVal bool\n\treturn zeroVal, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := ec.field___Type_fields_argsIncludeDeprecated(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\nfunc (ec *executionContext) field___Type_fields_argsIncludeDeprecated(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (bool, error) {\n\tif _, ok := rawArgs[\"includeDeprecated\"]; !ok {\n\t\tvar zeroVal bool\n\t\treturn zeroVal, nil\n\t}\n\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"includeDeprecated\"))\n\tif tmp, ok := rawArgs[\"includeDeprecated\"]; ok {\n\t\treturn ec.unmarshalOBoolean2bool(ctx, tmp)\n\t}\n\n\tvar zeroVal bool\n\treturn zeroVal, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Query___type(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.introspectType(fc.Args[\"name\"].(string))\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Query___schema(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.introspectSchema()\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Schema)\n\tfc.Result = res\n\treturn ec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_isRepeatable(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.IsRepeatable, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalNBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_locations(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Locations, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]string)\n\tfc.Result = res\n\treturn ec.marshalN__DirectiveLocation2ᚕstringᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_args(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Args, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.InputValue)\n\tfc.Result = res\n\treturn ec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___EnumValue_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___EnumValue_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.IsDeprecated(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalNBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.DeprecationReason(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_args(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Args, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.InputValue)\n\tfc.Result = res\n\treturn ec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_type(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Type, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_isDeprecated(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.IsDeprecated(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalNBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_deprecationReason(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.DeprecationReason(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_type(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Type, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_defaultValue(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.DefaultValue, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.IsDeprecated(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalNBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.DeprecationReason(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_types(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Types(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_queryType(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.QueryType(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_mutationType(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.MutationType(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_subscriptionType(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.SubscriptionType(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_directives(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Directives(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Directive)\n\tfc.Result = res\n\treturn ec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_kind(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Kind(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalN__TypeKind2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_specifiedByURL(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.SpecifiedByURL(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_fields(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Field)\n\tfc.Result = res\n\treturn ec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_interfaces(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Interfaces(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_possibleTypes(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.PossibleTypes(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_enumValues(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.EnumValue)\n\tfc.Result = res\n\treturn ec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_inputFields(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.InputFields(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.InputValue)\n\tfc.Result = res\n\treturn ec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_ofType(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.OfType(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_isOneOf(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.IsOneOf(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalOBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "_examples/websocket-initfunc/graph/model/models_gen.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage model\n\ntype Query struct {\n}\n"
  },
  {
    "path": "_examples/websocket-initfunc/graph/resolver.go",
    "content": "package graph\n\n// This file will not be regenerated automatically.\n//\n// It serves as dependency injection for your app, add any dependencies you require here.\n\ntype Resolver struct{}\n"
  },
  {
    "path": "_examples/websocket-initfunc/server/Makefile",
    "content": "bin_name=server\n\nbuild:\n\t@echo \"building binary...\"\n# go generate gives missing go sum entry for module errors\n# https://github.com/99designs/gqlgen/issues/1483\n# you will need to first do a go get -u github.com/99designs/gqlgen\n\tgo run -mod=mod github.com/99designs/gqlgen generate .\n\tgo build -o ${bin_name} server.go\n"
  },
  {
    "path": "_examples/websocket-initfunc/server/go.mod",
    "content": "module github.com/gqlgen/_examples/websocket-initfunc/server\n\ngo 1.25.0\n\nrequire (\n\tgithub.com/99designs/gqlgen v0.17.86\n\tgithub.com/go-chi/chi v1.5.4\n\tgithub.com/gorilla/websocket v1.5.0\n\tgithub.com/rs/cors v1.11.1\n\tgithub.com/vektah/gqlparser/v2 v2.5.31\n)\n\nrequire (\n\tgithub.com/agnivade/levenshtein v1.2.1 // indirect\n\tgithub.com/go-viper/mapstructure/v2 v2.4.0 // indirect\n\tgithub.com/google/uuid v1.6.0 // indirect\n\tgithub.com/hashicorp/golang-lru/v2 v2.0.7 // indirect\n\tgithub.com/sosodev/duration v1.3.1 // indirect\n)\n"
  },
  {
    "path": "_examples/websocket-initfunc/server/go.sum",
    "content": "github.com/99designs/gqlgen v0.17.86 h1:C8N3UTa5heXX6twl+b0AJyGkTwYL6dNmFrgZNLRcU6w=\ngithub.com/99designs/gqlgen v0.17.86/go.mod h1:KTrPl+vHA1IUzNlh4EYkl7+tcErL3MgKnhHrBcV74Fw=\ngithub.com/PuerkitoBio/goquery v1.11.0 h1:jZ7pwMQXIITcUXNH83LLk+txlaEy6NVOfTuP43xxfqw=\ngithub.com/PuerkitoBio/goquery v1.11.0/go.mod h1:wQHgxUOU3JGuj3oD/QFfxUdlzW6xPHfqyHre6VMY4DQ=\ngithub.com/agnivade/levenshtein v1.2.1 h1:EHBY3UOn1gwdy/VbFwgo4cxecRznFk7fKWN1KOX7eoM=\ngithub.com/agnivade/levenshtein v1.2.1/go.mod h1:QVVI16kDrtSuwcpd0p1+xMC6Z/VfhtCyDIjcwga4/DU=\ngithub.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ=\ngithub.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=\ngithub.com/andybalholm/cascadia v1.3.3 h1:AG2YHrzJIm4BZ19iwJ/DAua6Btl3IwJX+VI4kktS1LM=\ngithub.com/andybalholm/cascadia v1.3.3/go.mod h1:xNd9bqTn98Ln4DwST8/nG+H0yuB8Hmgu1YHNnWw0GeA=\ngithub.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0 h1:jfIu9sQUG6Ig+0+Ap1h4unLjW6YQJpKZVmUzxsD4E/Q=\ngithub.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0/go.mod h1:t2tdKJDJF9BV14lnkjHmOQgcvEKgtqs5a1N3LNdJhGE=\ngithub.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=\ngithub.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/dgryski/trifles v0.0.0-20230903005119-f50d829f2e54 h1:SG7nF6SRlWhcT7cNTs5R6Hk4V2lcmLz2NsG2VnInyNo=\ngithub.com/dgryski/trifles v0.0.0-20230903005119-f50d829f2e54/go.mod h1:if7Fbed8SFyPtHLHbg49SI7NAdJiC5WIA09pe59rfAA=\ngithub.com/go-chi/chi v1.5.4 h1:QHdzF2szwjqVV4wmByUnTcsbIg7UGaQ0tPF2t5GcAIs=\ngithub.com/go-chi/chi v1.5.4/go.mod h1:uaf8YgoFazUOkPBG7fxPftUylNumIev9awIWOENIuEg=\ngithub.com/go-viper/mapstructure/v2 v2.4.0 h1:EBsztssimR/CONLSZZ04E8qAkxNYq4Qp9LvH92wZUgs=\ngithub.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=\ngithub.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=\ngithub.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=\ngithub.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=\ngithub.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=\ngithub.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k=\ngithub.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM=\ngithub.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=\ngithub.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/rs/cors v1.11.1 h1:eU3gRzXLRK57F5rKMGMZURNdIG4EoAmX8k94r9wXWHA=\ngithub.com/rs/cors v1.11.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU=\ngithub.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8=\ngithub.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I=\ngithub.com/sosodev/duration v1.3.1 h1:qtHBDMQ6lvMQsL15g4aopM4HEfOaYuhWBw3NPTtlqq4=\ngithub.com/sosodev/duration v1.3.1/go.mod h1:RQIBBX0+fMLc/D9+Jb/fwvVmo0eZvDDEERAikUR6SDg=\ngithub.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=\ngithub.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=\ngithub.com/vektah/gqlparser/v2 v2.5.31 h1:YhWGA1mfTjID7qJhd1+Vxhpk5HTgydrGU9IgkWBTJ7k=\ngithub.com/vektah/gqlparser/v2 v2.5.31/go.mod h1:c1I28gSOVNzlfc4WuDlqU7voQnsqI6OG2amkBAFmgts=\ngolang.org/x/net v0.48.0 h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU=\ngolang.org/x/net v0.48.0/go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY=\ngopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=\ngopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\n"
  },
  {
    "path": "_examples/websocket-initfunc/server/gqlgen.yml",
    "content": "# Where are all the schema files located? globs are supported eg  src/**/*.graphqls\nschema:\n  - graph/*.graphqls\n\n# Where should the generated server code go?\nexec:\n  filename: graph/generated.go\n  package: graph\n\n# Uncomment to enable federation\n# federation:\n#   filename: graph/federation.go\n#   package: graph\n\n# Where should any generated models go?\nmodel:\n  filename: graph/model/models_gen.go\n  package: model\n\n# Where should the resolver implementations go?\nresolver:\n  layout: follow-schema\n  dir: graph\n  package: graph\n\n# Optional: turn on use `gqlgen:\"fieldName\"` tags in your models\n# struct_tag: json\n\n# Optional: turn on to use []Thing instead of []*Thing\n# omit_slice_element_pointers: false\n\n# Optional: turn off to make struct-type struct fields not use pointers\n# e.g. type Thing struct { FieldA OtherThing } instead of { FieldA *OtherThing }\n# struct_fields_always_pointers: true\n\n# Optional: turn off to make resolvers return values instead of pointers for structs\n# resolvers_always_return_pointers: true\n\n# Optional: turn on to return pointers instead of values in unmarshalInput\n# return_pointers_in_unmarshalinput: false\n\n# Optional: wrap nullable input fields with Omittable\n# nullable_input_omittable: true\n\n# Optional: set to speed up generation time by not performing a final validation pass.\n# skip_validation: true\n\n# gqlgen will search for any type names in the schema in these go packages\n# if they match it will use them, otherwise it will generate them.\nautobind:\n#  - \"github.com/gqlgen/_examples/websocket-initfunc/server/graph/model\"\n\n# This section declares type mapping between the GraphQL and go type systems\n#\n# The first line in each type will be used as defaults for resolver arguments and\n# modelgen, the others will be allowed when binding to fields. Configure them to\n# your liking\nmodels:\n  ID:\n    model:\n      - github.com/99designs/gqlgen/graphql.ID\n      - github.com/99designs/gqlgen/graphql.Int\n      - github.com/99designs/gqlgen/graphql.Int64\n      - github.com/99designs/gqlgen/graphql.Int32\n  Int:\n    model:\n      - github.com/99designs/gqlgen/graphql.Int\n      - github.com/99designs/gqlgen/graphql.Int64\n      - github.com/99designs/gqlgen/graphql.Int32\n"
  },
  {
    "path": "_examples/websocket-initfunc/server/graph/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage graph\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"embed\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\t\"sync\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\t\"github.com/gqlgen/_examples/websocket-initfunc/server/graph/model\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{\n\t\tresolvers:  cfg.Resolvers,\n\t\tdirectives: cfg.Directives,\n\t\tcomplexity: cfg.Complexity,\n\t}\n}\n\ntype Config struct {\n\tResolvers  ResolverRoot\n\tDirectives DirectiveRoot\n\tComplexity ComplexityRoot\n}\n\ntype ResolverRoot interface {\n\tMutation() MutationResolver\n\tSubscription() SubscriptionResolver\n}\n\ntype DirectiveRoot struct {\n}\n\ntype ComplexityRoot struct {\n\tDummy struct {\n\t\tDone func(childComplexity int) int\n\t\tID   func(childComplexity int) int\n\t\tText func(childComplexity int) int\n\t}\n\n\tMutation struct {\n\t\tPostMessageTo func(childComplexity int, subscriber string, content string) int\n\t}\n\n\tQuery struct {\n\t}\n\n\tSubscription struct {\n\t\tSubscribe func(childComplexity int, subscriber string) int\n\t}\n}\n\ntype MutationResolver interface {\n\tPostMessageTo(ctx context.Context, subscriber string, content string) (string, error)\n}\ntype SubscriptionResolver interface {\n\tSubscribe(ctx context.Context, subscriber string) (<-chan string, error)\n}\n\ntype executableSchema struct {\n\tresolvers  ResolverRoot\n\tdirectives DirectiveRoot\n\tcomplexity ComplexityRoot\n}\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := executionContext{nil, e}\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"Dummy.done\":\n\t\tif e.complexity.Dummy.Done == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Dummy.Done(childComplexity), true\n\n\tcase \"Dummy.id\":\n\t\tif e.complexity.Dummy.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Dummy.ID(childComplexity), true\n\n\tcase \"Dummy.text\":\n\t\tif e.complexity.Dummy.Text == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Dummy.Text(childComplexity), true\n\n\tcase \"Mutation.postMessageTo\":\n\t\tif e.complexity.Mutation.PostMessageTo == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Mutation_postMessageTo_args(context.TODO(), rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.complexity.Mutation.PostMessageTo(childComplexity, args[\"subscriber\"].(string), args[\"content\"].(string)), true\n\n\tcase \"Subscription.subscribe\":\n\t\tif e.complexity.Subscription.Subscribe == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Subscription_subscribe_args(context.TODO(), rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.complexity.Subscription.Subscribe(childComplexity, args[\"subscriber\"].(string)), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := executionContext{opCtx, e}\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap()\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tif !first {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tfirst = false\n\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\tdata := ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\n\t\t\treturn &graphql.Response{\n\t\t\t\tData: buf.Bytes(),\n\t\t\t}\n\t\t}\n\tcase ast.Mutation:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tif !first {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tfirst = false\n\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\tdata := ec._Mutation(ctx, opCtx.Operation.SelectionSet)\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\n\t\t\treturn &graphql.Response{\n\t\t\t\tData: buf.Bytes(),\n\t\t\t}\n\t\t}\n\tcase ast.Subscription:\n\t\tnext := ec._Subscription(ctx, opCtx.Operation.SelectionSet)\n\n\t\tvar buf bytes.Buffer\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tbuf.Reset()\n\t\t\tdata := next(ctx)\n\n\t\t\tif data == nil {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tdata.MarshalGQL(&buf)\n\n\t\t\treturn &graphql.Response{\n\t\t\t\tData: buf.Bytes(),\n\t\t\t}\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.OperationContext\n\t*executableSchema\n}\n\nfunc (ec *executionContext) introspectSchema() (*introspection.Schema, error) {\n\tif ec.DisableIntrospection {\n\t\treturn nil, errors.New(\"introspection disabled\")\n\t}\n\treturn introspection.WrapSchema(parsedSchema), nil\n}\n\nfunc (ec *executionContext) introspectType(name string) (*introspection.Type, error) {\n\tif ec.DisableIntrospection {\n\t\treturn nil, errors.New(\"introspection disabled\")\n\t}\n\treturn introspection.WrapTypeFromDef(parsedSchema, parsedSchema.Types[name]), nil\n}\n\n//go:embed \"schema.graphqls\"\nvar sourcesFS embed.FS\n\nfunc sourceData(filename string) string {\n\tdata, err := sourcesFS.ReadFile(filename)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"codegen problem: %s not available\", filename))\n\t}\n\treturn string(data)\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"schema.graphqls\", Input: sourceData(\"schema.graphqls\"), BuiltIn: false},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_Mutation_postMessageTo_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\tvar arg0 string\n\tif tmp, ok := rawArgs[\"subscriber\"]; ok {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"subscriber\"))\n\t\targ0, err = ec.unmarshalNString2string(ctx, tmp)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\targs[\"subscriber\"] = arg0\n\tvar arg1 string\n\tif tmp, ok := rawArgs[\"content\"]; ok {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"content\"))\n\t\targ1, err = ec.unmarshalNString2string(ctx, tmp)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\targs[\"content\"] = arg1\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\tvar arg0 string\n\tif tmp, ok := rawArgs[\"name\"]; ok {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"name\"))\n\t\targ0, err = ec.unmarshalNString2string(ctx, tmp)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Subscription_subscribe_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\tvar arg0 string\n\tif tmp, ok := rawArgs[\"subscriber\"]; ok {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"subscriber\"))\n\t\targ0, err = ec.unmarshalNString2string(ctx, tmp)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\targs[\"subscriber\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\tvar arg0 bool\n\tif tmp, ok := rawArgs[\"includeDeprecated\"]; ok {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"includeDeprecated\"))\n\t\targ0, err = ec.unmarshalOBoolean2bool(ctx, tmp)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\tvar arg0 bool\n\tif tmp, ok := rawArgs[\"includeDeprecated\"]; ok {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"includeDeprecated\"))\n\t\targ0, err = ec.unmarshalOBoolean2bool(ctx, tmp)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Dummy_id(ctx context.Context, field graphql.CollectedField, obj *model.Dummy) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Dummy_id(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.ID, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNID2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Dummy_id(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Dummy\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Dummy_text(ctx context.Context, field graphql.CollectedField, obj *model.Dummy) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Dummy_text(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Text, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Dummy_text(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Dummy\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Dummy_done(ctx context.Context, field graphql.CollectedField, obj *model.Dummy) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Dummy_done(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Done, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalNBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Dummy_done(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Dummy\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Mutation_postMessageTo(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Mutation_postMessageTo(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.resolvers.Mutation().PostMessageTo(rctx, fc.Args[\"subscriber\"].(string), fc.Args[\"content\"].(string))\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNID2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Mutation_postMessageTo(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Mutation\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Mutation_postMessageTo_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Query___type(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.introspectType(fc.Args[\"name\"].(string))\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Query___schema(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.introspectSchema()\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Schema)\n\tfc.Result = res\n\treturn ec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Subscription_subscribe(ctx context.Context, field graphql.CollectedField) (ret func(ctx context.Context) graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Subscription_subscribe(ctx, field)\n\tif err != nil {\n\t\treturn nil\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = nil\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.resolvers.Subscription().Subscribe(rctx, fc.Args[\"subscriber\"].(string))\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn nil\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn nil\n\t}\n\treturn func(ctx context.Context) graphql.Marshaler {\n\t\tselect {\n\t\tcase res, ok := <-resTmp.(<-chan string):\n\t\t\tif !ok {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\treturn graphql.WriterFunc(func(w io.Writer) {\n\t\t\t\tw.Write([]byte{'{'})\n\t\t\t\tgraphql.MarshalString(field.Alias).MarshalGQL(w)\n\t\t\t\tw.Write([]byte{':'})\n\t\t\t\tec.marshalNString2string(ctx, field.Selections, res).MarshalGQL(w)\n\t\t\t\tw.Write([]byte{'}'})\n\t\t\t})\n\t\tcase <-ctx.Done():\n\t\t\treturn nil\n\t\t}\n\t}\n}\n\nfunc (ec *executionContext) fieldContext_Subscription_subscribe(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Subscription\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Subscription_subscribe_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_locations(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Locations, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]string)\n\tfc.Result = res\n\treturn ec.marshalN__DirectiveLocation2ᚕstringᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_args(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Args, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.InputValue)\n\tfc.Result = res\n\treturn ec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_isRepeatable(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.IsRepeatable, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalNBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___EnumValue_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___EnumValue_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.IsDeprecated(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalNBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.DeprecationReason(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_args(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Args, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.InputValue)\n\tfc.Result = res\n\treturn ec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_type(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Type, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_isDeprecated(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.IsDeprecated(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalNBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_deprecationReason(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.DeprecationReason(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_type(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Type, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_defaultValue(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.DefaultValue, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_types(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Types(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_queryType(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.QueryType(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_mutationType(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.MutationType(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_subscriptionType(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.SubscriptionType(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_directives(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Directives(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Directive)\n\tfc.Result = res\n\treturn ec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_kind(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Kind(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalN__TypeKind2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_fields(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Field)\n\tfc.Result = res\n\treturn ec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_interfaces(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Interfaces(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_possibleTypes(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.PossibleTypes(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_enumValues(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.EnumValue)\n\tfc.Result = res\n\treturn ec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_inputFields(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.InputFields(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.InputValue)\n\tfc.Result = res\n\treturn ec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_ofType(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.OfType(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_specifiedByURL(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.SpecifiedByURL(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar dummyImplementors = []string{\"Dummy\"}\n\nfunc (ec *executionContext) _Dummy(ctx context.Context, sel ast.SelectionSet, obj *model.Dummy) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, dummyImplementors)\n\tout := graphql.NewFieldSet(fields)\n\tvar invalids uint32\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Dummy\")\n\t\tcase \"id\":\n\n\t\t\tout.Values[i] = ec._Dummy_id(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tcase \"text\":\n\n\t\t\tout.Values[i] = ec._Dummy_text(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tcase \"done\":\n\n\t\t\tout.Values[i] = ec._Dummy_done(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch()\n\tif invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\treturn out\n}\n\nvar mutationImplementors = []string{\"Mutation\"}\n\nfunc (ec *executionContext) _Mutation(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, mutationImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Mutation\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tvar invalids uint32\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Mutation\")\n\t\tcase \"postMessageTo\":\n\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Mutation_postMessageTo(ctx, field)\n\t\t\t})\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch()\n\tif invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\treturn out\n}\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tvar invalids uint32\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"__type\":\n\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\n\t\tcase \"__schema\":\n\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch()\n\tif invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\treturn out\n}\n\nvar subscriptionImplementors = []string{\"Subscription\"}\n\nfunc (ec *executionContext) _Subscription(ctx context.Context, sel ast.SelectionSet) func(ctx context.Context) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, subscriptionImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Subscription\",\n\t})\n\tif len(fields) != 1 {\n\t\tec.Errorf(ctx, \"must subscribe to exactly one stream\")\n\t\treturn nil\n\t}\n\n\tswitch fields[0].Name {\n\tcase \"subscribe\":\n\t\treturn ec._Subscription_subscribe(ctx, fields[0])\n\tdefault:\n\t\tpanic(\"unknown field \" + strconv.Quote(fields[0].Name))\n\t}\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\tout := graphql.NewFieldSet(fields)\n\tvar invalids uint32\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tcase \"description\":\n\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\n\t\tcase \"locations\":\n\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tcase \"args\":\n\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tcase \"isRepeatable\":\n\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch()\n\tif invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\tout := graphql.NewFieldSet(fields)\n\tvar invalids uint32\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tcase \"description\":\n\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\n\t\tcase \"isDeprecated\":\n\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch()\n\tif invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\tout := graphql.NewFieldSet(fields)\n\tvar invalids uint32\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tcase \"description\":\n\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\n\t\tcase \"args\":\n\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tcase \"type\":\n\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch()\n\tif invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\tout := graphql.NewFieldSet(fields)\n\tvar invalids uint32\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tcase \"description\":\n\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\n\t\tcase \"type\":\n\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch()\n\tif invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\tout := graphql.NewFieldSet(fields)\n\tvar invalids uint32\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\n\t\tcase \"types\":\n\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\n\t\tcase \"subscriptionType\":\n\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\n\t\tcase \"directives\":\n\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch()\n\tif invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\tout := graphql.NewFieldSet(fields)\n\tvar invalids uint32\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tcase \"name\":\n\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\n\t\tcase \"description\":\n\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\n\t\tcase \"fields\":\n\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\n\t\tcase \"interfaces\":\n\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\n\t\tcase \"possibleTypes\":\n\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\n\t\tcase \"enumValues\":\n\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\n\t\tcase \"inputFields\":\n\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\n\t\tcase \"ofType\":\n\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\n\t\tcase \"specifiedByURL\":\n\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch()\n\tif invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNID2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalID(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNID2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\tres := graphql.MarshalID(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tif v != nil {\n\t\tvSlice = graphql.CoerceList(v)\n\t}\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "_examples/websocket-initfunc/server/graph/model/models_gen.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage model\n\ntype Dummy struct {\n\tID   string `json:\"id\"`\n\tText string `json:\"text\"`\n\tDone bool   `json:\"done\"`\n}\n"
  },
  {
    "path": "_examples/websocket-initfunc/server/graph/resolver.go",
    "content": "package graph\n\n// This file will not be regenerated automatically.\n//\n// It serves as dependency injection for your app, add any dependencies you require here.\n\ntype Resolver struct{}\n"
  },
  {
    "path": "_examples/websocket-initfunc/server/graph/schema.graphqls",
    "content": "# GraphQL schema example\n#\n\ntype Dummy {\n  id: ID!\n  text: String!\n  done: Boolean!\n}\n\ntype Mutation {\n  postMessageTo(subscriber: String!, content: String!): ID!\n}\n\ntype Subscription {\n  subscribe(subscriber: String!): String!\n}\n"
  },
  {
    "path": "_examples/websocket-initfunc/server/graph/schema.resolvers.go",
    "content": "package graph\n\n// This file will be automatically regenerated based on the schema, any resolver implementations\n// will be copied through when generating and any unknown code will be moved to the end.\n// Code generated by github.com/99designs/gqlgen version v0.17.25\n\nimport (\n\t\"context\"\n\t\"fmt\"\n)\n\n// PostMessageTo is the resolver for the postMessageTo field.\nfunc (r *mutationResolver) PostMessageTo(\n\tctx context.Context,\n\tsubscriber string,\n\tcontent string,\n) (string, error) {\n\tpanic(fmt.Errorf(\"not implemented\"))\n}\n\n// Subscribe is the resolver for the subscribe field.\nfunc (r *subscriptionResolver) Subscribe(\n\tctx context.Context,\n\tsubscriber string,\n) (<-chan string, error) {\n\tpanic(fmt.Errorf(\"not implemented\"))\n}\n\n// Mutation returns MutationResolver implementation.\nfunc (r *Resolver) Mutation() MutationResolver { return &mutationResolver{r} }\n\n// Subscription returns SubscriptionResolver implementation.\nfunc (r *Resolver) Subscription() SubscriptionResolver { return &subscriptionResolver{r} }\n\ntype (\n\tmutationResolver     struct{ *Resolver }\n\tsubscriptionResolver struct{ *Resolver }\n)\n"
  },
  {
    "path": "_examples/websocket-initfunc/server/readme.md",
    "content": "# WebSocket Init App\n\nExample server app using websocket `InitFunc`.\n\n## Build and Run the server app\n\nFirst get an update from gqlgen:  \n```bash\ngo mod tidy\ngo get -u github.com/99designs/gqlgen\n```\n\nNext just make the build:  \n```bash\nmake build\n```\n\nRun the server:  \n```bash\n./server \n2022/07/07 16:49:46 connect to http://localhost:8080/ for GraphQL playground\n```\n\nYou may now implement a websocket client to subscribe for websocket messages.  "
  },
  {
    "path": "_examples/websocket-initfunc/server/server.go",
    "content": "package main\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"log\"\n\t\"net/http\"\n\t\"os\"\n\t\"time\"\n\n\t\"github.com/go-chi/chi\"\n\t\"github.com/gorilla/websocket\"\n\t\"github.com/gqlgen/_examples/websocket-initfunc/server/graph\"\n\t\"github.com/rs/cors\"\n\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/extension\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/graphql/playground\"\n)\n\nfunc webSocketInit(\n\tctx context.Context,\n\tinitPayload transport.InitPayload,\n) (context.Context, *transport.InitPayload, error) {\n\t// Get the token from payload\n\tpayload := initPayload[\"authToken\"]\n\ttoken, ok := payload.(string)\n\tif !ok || token == \"\" {\n\t\treturn nil, nil, errors.New(\"authToken not found in transport payload\")\n\t}\n\n\t// Perform token verification and authentication...\n\tuserId := \"john.doe\" // e.g. userId, err := GetUserFromAuthentication(token)\n\n\t// put it in context\n\tctxNew := context.WithValue(ctx, \"username\", userId)\n\n\treturn ctxNew, nil, nil\n}\n\nconst defaultPort = \"8080\"\n\nfunc main() {\n\tport := os.Getenv(\"PORT\")\n\tif port == \"\" {\n\t\tport = defaultPort\n\t}\n\n\trouter := chi.NewRouter()\n\n\t// CORS setup, allow any for now\n\t// https://gqlgen.com/recipes/cors/\n\tc := cors.New(cors.Options{\n\t\tAllowedOrigins:   []string{\"*\"},\n\t\tAllowCredentials: true,\n\t\tDebug:            false,\n\t})\n\n\tsrv := handler.New(graph.NewExecutableSchema(graph.Config{Resolvers: &graph.Resolver{}}))\n\tsrv.AddTransport(transport.POST{})\n\tsrv.AddTransport(transport.Websocket{\n\t\tKeepAlivePingInterval: 10 * time.Second,\n\t\tUpgrader: websocket.Upgrader{\n\t\t\tCheckOrigin: func(r *http.Request) bool {\n\t\t\t\treturn true\n\t\t\t},\n\t\t},\n\t\tInitFunc: func(ctx context.Context, initPayload transport.InitPayload) (context.Context, *transport.InitPayload, error) {\n\t\t\treturn webSocketInit(ctx, initPayload)\n\t\t},\n\t})\n\tsrv.Use(extension.Introspection{})\n\n\trouter.Handle(\"/\", playground.Handler(\"My GraphQL App\", \"/app\"))\n\trouter.Handle(\"/app\", c.Handler(srv))\n\n\tlog.Printf(\"connect to http://localhost:%s/ for GraphQL playground\", port)\n\tlog.Fatal(http.ListenAndServe(\":\"+port, router))\n}\n"
  },
  {
    "path": "api/generate.go",
    "content": "package api\n\nimport (\n\t\"fmt\"\n\t\"regexp\"\n\t\"syscall\"\n\n\t\"golang.org/x/tools/imports\"\n\n\t\"github.com/99designs/gqlgen/codegen\"\n\t\"github.com/99designs/gqlgen/codegen/config\"\n\t\"github.com/99designs/gqlgen/internal/code\"\n\t\"github.com/99designs/gqlgen/plugin\"\n\t\"github.com/99designs/gqlgen/plugin/federation\"\n\t\"github.com/99designs/gqlgen/plugin/modelgen\"\n\t\"github.com/99designs/gqlgen/plugin/resolvergen\"\n)\n\nvar (\n\turlRegex = regexp.MustCompile(\n\t\t`(?s)@link.*\\(.*url:\\s*?\"(.*?)\"[^)]+\\)`,\n\t) // regex to grab the url of a link directive, should it exist\n\tversionRegex = regexp.MustCompile(\n\t\t`v(\\d+).(\\d+)$`,\n\t) // regex to grab the version number from a url\n)\n\n// Generate generates GraphQL code based on the provided config.\nfunc Generate(cfg *config.Config, option ...Option) error {\n\treturn generate(cfg, nil, option...)\n}\n\n// GenerateIncremental generates code only for schemas affected by changes.\n// changedSchemas should contain paths to schema files that have changed\n// (e.g., from git diff). If empty, performs full generation.\n// Use verbose to enable detailed logging of what's being regenerated.\nfunc GenerateIncremental(\n\tcfg *config.Config,\n\tchangedSchemas []string,\n\tverbose bool,\n\toption ...Option,\n) error {\n\treturn generate(cfg, &codegen.IncrementalOptions{\n\t\tChangedSchemas: changedSchemas,\n\t\tVerbose:        verbose,\n\t}, option...)\n}\n\n// generate is the shared implementation for both Generate and GenerateIncremental.\n// If incrementalOpts is nil, performs full generation. Otherwise, uses incremental generation.\nfunc generate(\n\tcfg *config.Config,\n\tincrementalOpts *codegen.IncrementalOptions,\n\toption ...Option,\n) error {\n\t_ = syscall.Unlink(cfg.Exec.Filename)\n\tif cfg.Model.IsDefined() {\n\t\t_ = syscall.Unlink(cfg.Model.Filename)\n\t}\n\n\tplugins := []plugin.Plugin{}\n\tif cfg.Model.IsDefined() {\n\t\tplugins = append(plugins, modelgen.New())\n\t}\n\tplugins = append(plugins, resolvergen.New())\n\tif cfg.Federation.IsDefined() {\n\t\tif cfg.Federation.Version == 0 { // default to using the user's choice of version, but if unset, try to sort out which federation version to use\n\t\t\t// check the sources, and if one is marked as federation v2, we mark the entirety to be\n\t\t\t// generated using that format\n\t\t\tfor _, v := range cfg.Sources {\n\t\t\t\tcfg.Federation.Version = 1\n\t\t\t\turlString := urlRegex.FindStringSubmatch(v.Input)\n\t\t\t\t// e.g. urlString[1] == \"https://specs.apollo.dev/federation/v2.7\"\n\t\t\t\tif urlString != nil {\n\t\t\t\t\tmatches := versionRegex.FindStringSubmatch(urlString[1])\n\t\t\t\t\tif matches[1] == \"2\" {\n\t\t\t\t\t\tcfg.Federation.Version = 2\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfederationPlugin, err := federation.New(cfg.Federation.Version, cfg)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"failed to construct the Federation plugin: %w\", err)\n\t\t}\n\t\tplugins = append([]plugin.Plugin{federationPlugin}, plugins...)\n\t}\n\n\tfor _, o := range option {\n\t\to(cfg, &plugins)\n\t}\n\n\tif cfg.LocalPrefix != \"\" {\n\t\timports.LocalPrefix = cfg.LocalPrefix\n\t}\n\n\tfor _, p := range plugins {\n\t\t//nolint:staticcheck // for backwards compatibility only\n\t\tif inj, ok := p.(plugin.EarlySourceInjector); ok {\n\t\t\tif s := inj.InjectSourceEarly(); s != nil {\n\t\t\t\tcfg.Sources = append(cfg.Sources, s)\n\t\t\t}\n\t\t}\n\t\tif inj, ok := p.(plugin.EarlySourcesInjector); ok {\n\t\t\ts, err := inj.InjectSourcesEarly()\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"%s: %w\", p.Name(), err)\n\t\t\t}\n\t\t\tcfg.Sources = append(cfg.Sources, s...)\n\t\t}\n\t}\n\n\tif err := cfg.LoadSchema(); err != nil {\n\t\treturn fmt.Errorf(\"failed to load schema: %w\", err)\n\t}\n\n\tfor _, p := range plugins {\n\t\tif inj, ok := p.(plugin.LateSourceInjector); ok {\n\t\t\tif s := inj.InjectSourceLate(cfg.Schema); s != nil {\n\t\t\t\tcfg.Sources = append(cfg.Sources, s)\n\t\t\t}\n\t\t}\n\t\tif inj, ok := p.(plugin.LateSourcesInjector); ok {\n\t\t\ts, err := inj.InjectSourcesLate(cfg.Schema)\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"%s: %w\", p.Name(), err)\n\t\t\t}\n\t\t\tcfg.Sources = append(cfg.Sources, s...)\n\t\t}\n\t}\n\n\t// LoadSchema again now we have everything\n\tif err := cfg.LoadSchema(); err != nil {\n\t\treturn fmt.Errorf(\"failed to load schema: %w\", err)\n\t}\n\n\tcodegen.ClearInlineArgsMetadata()\n\tif err := codegen.ExpandInlineArguments(cfg.Schema); err != nil {\n\t\treturn fmt.Errorf(\"failed to expand inline arguments: %w\", err)\n\t}\n\n\tif err := cfg.Init(); err != nil {\n\t\treturn fmt.Errorf(\"generating core failed: %w\", err)\n\t}\n\n\tfor _, p := range plugins {\n\t\tif mut, ok := p.(plugin.SchemaMutator); ok {\n\t\t\terr := mut.MutateSchema(cfg.Schema)\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"%s: %w\", p.Name(), err)\n\t\t\t}\n\t\t}\n\t}\n\n\tfor _, p := range plugins {\n\t\tif mut, ok := p.(plugin.ConfigMutator); ok {\n\t\t\terr := mut.MutateConfig(cfg)\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"%s: %w\", p.Name(), err)\n\t\t\t}\n\t\t}\n\t}\n\n\t// Merge again now that the generated models have been injected into the typemap\n\tdataPlugins := make([]any, len(plugins))\n\tfor index := range plugins {\n\t\tdataPlugins[index] = plugins[index]\n\t}\n\tdata, err := codegen.BuildData(cfg, dataPlugins...)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"merging type systems failed: %w\", err)\n\t}\n\n\tfor _, p := range plugins {\n\t\tif mut, ok := p.(plugin.CodeGenerator); ok {\n\t\t\terr := mut.GenerateCode(data)\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"%s: %w\", p.Name(), err)\n\t\t\t}\n\t\t}\n\t}\n\n\t// Use incremental generation if options provided, otherwise full generation\n\tif incrementalOpts != nil {\n\t\tif err = codegen.GenerateCodeIncremental(data, *incrementalOpts); err != nil {\n\t\t\treturn fmt.Errorf(\"generating core failed: %w\", err)\n\t\t}\n\t} else {\n\t\tif err = codegen.GenerateCode(data); err != nil {\n\t\t\treturn fmt.Errorf(\"generating core failed: %w\", err)\n\t\t}\n\t}\n\n\tif !cfg.SkipModTidy {\n\t\tif err = cfg.Packages.ModTidy(); err != nil {\n\t\t\treturn fmt.Errorf(\"tidy failed: %w\", err)\n\t\t}\n\t}\n\tif !cfg.SkipValidation {\n\t\tif err := validate(cfg); err != nil {\n\t\t\treturn fmt.Errorf(\"validation failed: %w\", err)\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc validate(cfg *config.Config) error {\n\troots := []string{withSubpackages(cfg.Exec.ImportPath())}\n\tif cfg.Model.IsDefined() {\n\t\troots = append(roots, withSubpackages(cfg.Model.ImportPath()))\n\t}\n\tif cfg.Resolver.IsDefined() {\n\t\troots = append(roots, withSubpackages(cfg.Resolver.ImportPath()))\n\t}\n\n\t// Use go build for validation instead of packages.Load with NeedTypes.\n\t// go build benefits from incremental compilation - only changed files\n\t// are recompiled. Since we use content-based file writing, unchanged\n\t// generated files keep their mtime, so go build skips them.\n\t//\n\t// FastValidation uses -gcflags=\"-N -l\" to disable compiler\n\t// optimizations, making cold cache validation ~2x faster.\n\treturn code.ValidateWithBuild(cfg.GetFastValidation(), roots...)\n}\n\n// subpackagesWildcard is the Go tooling pattern for \"this package and all subpackages\".\n// Used by go build, go test, etc. (e.g., \"go build ./...\")\nconst subpackagesWildcard = \"/...\"\n\n// withSubpackages appends the Go wildcard pattern to include all subpackages.\nfunc withSubpackages(importPath string) string {\n\treturn importPath + subpackagesWildcard\n}\n"
  },
  {
    "path": "api/generate_test.go",
    "content": "package api\n\nimport (\n\t\"errors\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\n\t\"github.com/99designs/gqlgen/codegen/config\"\n)\n\nfunc cleanup(workDir string) {\n\t_ = os.Remove(filepath.Join(workDir, \"server.go\"))\n\t_ = os.Remove(filepath.Join(workDir, \"graph\", \"generated.go\"))\n\t_ = os.Remove(filepath.Join(workDir, \"graph\", \"resolver.go\"))\n\t_ = os.Remove(filepath.Join(workDir, \"graph\", \"federation.go\"))\n\t_ = os.Remove(filepath.Join(workDir, \"graph\", \"schema.resolvers.go\"))\n\t_ = os.Remove(filepath.Join(workDir, \"graph\", \"model\", \"models_gen.go\"))\n}\n\nfunc TestGenerate(t *testing.T) {\n\twd, err := os.Getwd()\n\trequire.NoError(t, err)\n\ttests := []struct {\n\t\tname    string\n\t\tworkDir string\n\t}{\n\t\t{\n\t\t\tname:    \"default\",\n\t\t\tworkDir: filepath.Join(wd, \"testdata\", \"default\"),\n\t\t},\n\t\t{\n\t\t\tname:    \"federation2\",\n\t\t\tworkDir: filepath.Join(wd, \"testdata\", \"federation2\"),\n\t\t},\n\t\t{\n\t\t\tname:    \"worker_limit\",\n\t\t\tworkDir: filepath.Join(wd, \"testdata\", \"workerlimit\"),\n\t\t},\n\t}\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tt.Cleanup(func() {\n\t\t\t\tcleanup(tt.workDir)\n\t\t\t\tt.Chdir(wd)\n\t\t\t})\n\t\t\tt.Chdir(tt.workDir)\n\t\t\tcfg, err := config.LoadConfigFromDefaultLocations()\n\t\t\trequire.NoError(t, err, \"failed to load config\")\n\t\t\terr = Generate(cfg)\n\t\t\trequire.NoError(t, err, \"failed to generate code\")\n\t\t})\n\t}\n}\n\ntype testSchemaMutator struct {\n\tname        string\n\tshouldError bool\n}\n\nfunc (t *testSchemaMutator) Name() string {\n\treturn t.name\n}\n\nfunc (t *testSchemaMutator) MutateSchema(schema *ast.Schema) error {\n\tif t.shouldError {\n\t\treturn errors.New(\"deliberate schema mutation error\")\n\t}\n\tschema.Types[\"TestType\"] = &ast.Definition{\n\t\tKind: ast.Object,\n\t\tName: \"TestType\",\n\t\tFields: ast.FieldList{\n\t\t\t{\n\t\t\t\tName: \"id\",\n\t\t\t\tType: ast.NamedType(\"ID\", nil),\n\t\t\t},\n\t\t},\n\t}\n\treturn nil\n}\n\nfunc TestGenerateWithSchemaMutator(t *testing.T) {\n\twd, err := os.Getwd()\n\trequire.NoError(t, err)\n\n\ttests := []struct {\n\t\tname        string\n\t\tmutator     *testSchemaMutator\n\t\tshouldError bool\n\t}{\n\t\t{\n\t\t\tname:        \"successful schema mutation\",\n\t\t\tmutator:     &testSchemaMutator{name: \"test-mutator\", shouldError: false},\n\t\t\tshouldError: false,\n\t\t},\n\t\t{\n\t\t\tname:        \"failed schema mutation\",\n\t\t\tmutator:     &testSchemaMutator{name: \"error-mutator\", shouldError: true},\n\t\t\tshouldError: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tworkDir := filepath.Join(wd, \"testdata\", \"default\")\n\t\t\tt.Cleanup(func() {\n\t\t\t\tcleanup(workDir)\n\t\t\t\tt.Chdir(wd)\n\t\t\t})\n\n\t\t\tt.Chdir(workDir)\n\n\t\t\tcfg, err := config.LoadConfigFromDefaultLocations()\n\t\t\trequire.NoError(t, err)\n\n\t\t\terr = Generate(cfg, AddPlugin(tt.mutator))\n\t\t\tif tt.shouldError {\n\t\t\t\trequire.Error(t, err)\n\t\t\t\trequire.Contains(t, err.Error(), \"deliberate schema mutation error\")\n\t\t\t} else {\n\t\t\t\trequire.NoError(t, err)\n\t\t\t\trequire.Contains(t, cfg.Schema.Types, \"TestType\")\n\t\t\t\trequire.Equal(t, ast.Object, cfg.Schema.Types[\"TestType\"].Kind)\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "api/option.go",
    "content": "package api\n\nimport (\n\t\"github.com/99designs/gqlgen/codegen/config\"\n\t\"github.com/99designs/gqlgen/plugin\"\n)\n\ntype Option func(cfg *config.Config, plugins *[]plugin.Plugin)\n\nfunc NoPlugins() Option {\n\treturn func(cfg *config.Config, plugins *[]plugin.Plugin) {\n\t\t*plugins = nil\n\t}\n}\n\nfunc AddPlugin(p plugin.Plugin) Option {\n\treturn func(cfg *config.Config, plugins *[]plugin.Plugin) {\n\t\t*plugins = append(*plugins, p)\n\t}\n}\n\n// PrependPlugin prepends plugin any existing plugins\nfunc PrependPlugin(p plugin.Plugin) Option {\n\treturn func(cfg *config.Config, plugins *[]plugin.Plugin) {\n\t\t*plugins = append([]plugin.Plugin{p}, *plugins...)\n\t}\n}\n\n// ReplacePlugin replaces any existing plugin with a matching plugin name\nfunc ReplacePlugin(p plugin.Plugin) Option {\n\treturn func(cfg *config.Config, plugins *[]plugin.Plugin) {\n\t\tif plugins == nil {\n\t\t\treturn\n\t\t}\n\t\tfound := false\n\t\tps := *plugins\n\t\tfor i, o := range ps {\n\t\t\tif p.Name() == o.Name() {\n\t\t\t\tps[i] = p\n\t\t\t\tfound = true\n\t\t\t}\n\t\t}\n\t\tif !found {\n\t\t\tps = append(ps, p)\n\t\t}\n\t\t*plugins = ps\n\t}\n}\n"
  },
  {
    "path": "api/option_test.go",
    "content": "package api\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/codegen/config\"\n\t\"github.com/99designs/gqlgen/plugin\"\n\t\"github.com/99designs/gqlgen/plugin/federation\"\n\t\"github.com/99designs/gqlgen/plugin/modelgen\"\n\t\"github.com/99designs/gqlgen/plugin/resolvergen\"\n)\n\ntype testPlugin struct{}\n\n// Name returns the plugin name\nfunc (t *testPlugin) Name() string {\n\treturn \"modelgen\"\n}\n\n// MutateConfig mutates the configuration\nfunc (t *testPlugin) MutateConfig(_ *config.Config) error {\n\treturn nil\n}\n\nfunc mustFederationPlugin(t *testing.T) plugin.Plugin {\n\tp, err := federation.New(1, &config.Config{\n\t\tFederation: config.PackageConfig{},\n\t})\n\tif err != nil {\n\t\trequire.Fail(t, \"failed to create federation plugin\")\n\t}\n\treturn p\n}\n\nfunc TestReplacePlugin(t *testing.T) {\n\tt.Run(\"replace plugin if exists\", func(t *testing.T) {\n\t\tpg := []plugin.Plugin{\n\t\t\tmustFederationPlugin(t),\n\t\t\tmodelgen.New(),\n\t\t\tresolvergen.New(),\n\t\t}\n\n\t\texpectedPlugin := &testPlugin{}\n\t\tReplacePlugin(expectedPlugin)(config.DefaultConfig(), &pg)\n\n\t\trequire.EqualValues(t, mustFederationPlugin(t), pg[0])\n\t\trequire.EqualValues(t, expectedPlugin, pg[1])\n\t\trequire.EqualValues(t, resolvergen.New(), pg[2])\n\t})\n\n\tt.Run(\"add plugin if doesn't exist\", func(t *testing.T) {\n\t\tpg := []plugin.Plugin{\n\t\t\tmustFederationPlugin(t),\n\t\t\tresolvergen.New(),\n\t\t}\n\n\t\texpectedPlugin := &testPlugin{}\n\t\tReplacePlugin(expectedPlugin)(config.DefaultConfig(), &pg)\n\n\t\trequire.EqualValues(t, mustFederationPlugin(t), pg[0])\n\t\trequire.EqualValues(t, resolvergen.New(), pg[1])\n\t\trequire.EqualValues(t, expectedPlugin, pg[2])\n\t})\n\n\tt.Run(\"do nothing if plugins is nil\", func(t *testing.T) {\n\t\tReplacePlugin(&testPlugin{})(config.DefaultConfig(), nil)\n\t})\n}\n\nfunc TestPrependPlugin(t *testing.T) {\n\tmodelgenPlugin := modelgen.New()\n\tpg := []plugin.Plugin{\n\t\tmodelgenPlugin,\n\t}\n\n\texpectedPlugin := &testPlugin{}\n\tPrependPlugin(expectedPlugin)(config.DefaultConfig(), &pg)\n\n\trequire.EqualValues(t, expectedPlugin, pg[0])\n\trequire.EqualValues(t, modelgenPlugin, pg[1])\n}\n"
  },
  {
    "path": "api/testdata/default/gqlgen.yml",
    "content": "# Where are all the schema files located? globs are supported eg  src/**/*.graphqls\nschema:\n  - graph/*.graphqls\n\n# Where should the generated server code go?\nexec:\n  filename: graph/generated.go\n  package: graph\n\n# Uncomment to enable federation\n# federation:\n#   filename: graph/federation.go\n#   package: graph\n\n# Where should any generated models go?\nmodel:\n  filename: graph/model/models_gen.go\n  package: model\n\n# Where should the resolver implementations go?\nresolver:\n  layout: follow-schema\n  dir: graph\n  package: graph\n\n# Optional: turn on use `gqlgen:\"fieldName\"` tags in your models\n# struct_tag: json\n\n# Optional: turn on to use []Thing instead of []*Thing\n# omit_slice_element_pointers: false\n\n# Optional: turn off to make struct-type struct fields not use pointers\n# e.g. type Thing struct { FieldA OtherThing } instead of { FieldA *OtherThing }\n# struct_fields_always_pointers: true\n\n# Optional: turn off to make resolvers return values instead of pointers for structs\n# resolvers_always_return_pointers: true\n\n# Optional: turn on to return pointers instead of values in unmarshalInput\n# return_pointers_in_unmarshalinput: false\n\n# Optional: wrap nullable input fields with Omittable\n# nullable_input_omittable: true\n\n# Optional: set to speed up generation time by not performing a final validation pass.\n# skip_validation: true\n\n# gqlgen will search for any type names in the schema in these go packages\n# if they match it will use them, otherwise it will generate them.\nautobind:\n  - \"github.com/99designs/gqlgen/api/testdata/default/graph/model\"\n\n# This section declares type mapping between the GraphQL and go type systems\n#\n# The first line in each type will be used as defaults for resolver arguments and\n# modelgen, the others will be allowed when binding to fields. Configure them to\n# your liking\nmodels:\n  ID:\n    model:\n      - github.com/99designs/gqlgen/graphql.ID\n      - github.com/99designs/gqlgen/graphql.Int\n      - github.com/99designs/gqlgen/graphql.Int64\n      - github.com/99designs/gqlgen/graphql.Int32\n  Int:\n    model:\n      - github.com/99designs/gqlgen/graphql.Int\n      - github.com/99designs/gqlgen/graphql.Int64\n      - github.com/99designs/gqlgen/graphql.Int32\n"
  },
  {
    "path": "api/testdata/default/graph/model/doc.go",
    "content": "package model\n"
  },
  {
    "path": "api/testdata/default/graph/schema.graphqls",
    "content": "# GraphQL schema example\n#\n# https://gqlgen.com/getting-started/\n\ntype Todo {\n  id: ID!\n  text: String!\n  done: Boolean!\n  user: User!\n}\n\ntype User {\n  id: ID!\n  name: String!\n}\n\ntype Query {\n  todos: [Todo!]!\n}\n\ninput NewTodo {\n  text: String!\n  userId: String!\n}\n\ntype Mutation {\n  createTodo(input: NewTodo!): Todo!\n}\n"
  },
  {
    "path": "api/testdata/federation2/gqlgen.yml",
    "content": "# Where are all the schema files located? globs are supported eg  src/**/*.graphqls\nschema:\n  - graph/*.graphqls\n\n# Where should the generated server code go?\nexec:\n  filename: graph/generated.go\n  package: graph\n\n# Uncomment to enable federation\nfederation:\n  filename: graph/federation.go\n  package: graph\n\n# Where should any generated models go?\nmodel:\n  filename: graph/model/models_gen.go\n  package: model\n\n# Where should the resolver implementations go?\nresolver:\n  layout: follow-schema\n  dir: graph\n  package: graph\n\n# Optional: turn on use `gqlgen:\"fieldName\"` tags in your models\n# struct_tag: json\n\n# Optional: turn on to use []Thing instead of []*Thing\n# omit_slice_element_pointers: false\n\n# Optional: turn off to make struct-type struct fields not use pointers\n# e.g. type Thing struct { FieldA OtherThing } instead of { FieldA *OtherThing }\n# struct_fields_always_pointers: true\n\n# Optional: turn off to make resolvers return values instead of pointers for structs\n# resolvers_always_return_pointers: true\n\n# Optional: turn on to return pointers instead of values in unmarshalInput\n# return_pointers_in_unmarshalinput: false\n\n# Optional: wrap nullable input fields with Omittable\n# nullable_input_omittable: true\n\n# Optional: set to speed up generation time by not performing a final validation pass.\n# skip_validation: true\n\n# gqlgen will search for any type names in the schema in these go packages\n# if they match it will use them, otherwise it will generate them.\nautobind:\n  - \"github.com/99designs/gqlgen/api/testdata/default/graph/model\"\n\n# This section declares type mapping between the GraphQL and go type systems\n#\n# The first line in each type will be used as defaults for resolver arguments and\n# modelgen, the others will be allowed when binding to fields. Configure them to\n# your liking\nmodels:\n  ID:\n    model:\n      - github.com/99designs/gqlgen/graphql.ID\n      - github.com/99designs/gqlgen/graphql.Int\n      - github.com/99designs/gqlgen/graphql.Int64\n      - github.com/99designs/gqlgen/graphql.Int32\n  Int:\n    model:\n      - github.com/99designs/gqlgen/graphql.Int\n      - github.com/99designs/gqlgen/graphql.Int64\n      - github.com/99designs/gqlgen/graphql.Int32\n"
  },
  {
    "path": "api/testdata/federation2/graph/model/doc.go",
    "content": "package model\n"
  },
  {
    "path": "api/testdata/federation2/graph/schema.graphqls",
    "content": "# GraphQL schema example\n#\n# https://gqlgen.com/getting-started/\nextend schema\n  @link(url: \"https://specs.apollo.dev/federation/v2.7\",\n        import: [\"@key\", \"@shareable\", \"@provides\", \"@external\", \"@tag\", \"@extends\", \"@override\", \"@inaccessible\"])\n\ntype Todo {\n  id: ID!\n  text: String!\n  done: Boolean!\n  user: User!\n}\n\ntype User {\n  id: ID!\n  name: String!\n}\n\ntype Query {\n  todos: [Todo!]!\n}\n\ninput NewTodo {\n  text: String!\n  userId: String!\n}\n\ntype Mutation {\n  createTodo(input: NewTodo!): Todo!\n}\n"
  },
  {
    "path": "api/testdata/workerlimit/gqlgen.yml",
    "content": "# Where are all the schema files located? globs are supported eg  src/**/*.graphqls\nschema:\n  - graph/*.graphqls\n\n# Where should the generated server code go?\nexec:\n  filename: graph/generated.go\n  package: graph\n  worker_limit: 1\n\n# Uncomment to enable federation\n# federation:\n#   filename: graph/federation.go\n#   package: graph\n\n# Where should any generated models go?\nmodel:\n  filename: graph/model/models_gen.go\n  package: model\n\n# Where should the resolver implementations go?\nresolver:\n  layout: follow-schema\n  dir: graph\n  package: graph\n\n# Optional: turn on use `gqlgen:\"fieldName\"` tags in your models\n# struct_tag: json\n\n# Optional: turn on to use []Thing instead of []*Thing\n# omit_slice_element_pointers: false\n\n# Optional: turn off to make struct-type struct fields not use pointers\n# e.g. type Thing struct { FieldA OtherThing } instead of { FieldA *OtherThing }\n# struct_fields_always_pointers: true\n\n# Optional: turn off to make resolvers return values instead of pointers for structs\n# resolvers_always_return_pointers: true\n\n# Optional: turn on to return pointers instead of values in unmarshalInput\n# return_pointers_in_unmarshalinput: false\n\n# Optional: wrap nullable input fields with Omittable\n# nullable_input_omittable: true\n\n# Optional: set to speed up generation time by not performing a final validation pass.\n# skip_validation: true\n\n# gqlgen will search for any type names in the schema in these go packages\n# if they match it will use them, otherwise it will generate them.\nautobind:\n  - \"github.com/99designs/gqlgen/api/testdata/default/graph/model\"\n\n# This section declares type mapping between the GraphQL and go type systems\n#\n# The first line in each type will be used as defaults for resolver arguments and\n# modelgen, the others will be allowed when binding to fields. Configure them to\n# your liking\nmodels:\n  ID:\n    model:\n      - github.com/99designs/gqlgen/graphql.ID\n      - github.com/99designs/gqlgen/graphql.Int\n      - github.com/99designs/gqlgen/graphql.Int64\n      - github.com/99designs/gqlgen/graphql.Int32\n  Int:\n    model:\n      - github.com/99designs/gqlgen/graphql.Int\n      - github.com/99designs/gqlgen/graphql.Int64\n      - github.com/99designs/gqlgen/graphql.Int32\n"
  },
  {
    "path": "api/testdata/workerlimit/graph/model/doc.go",
    "content": "package model\n"
  },
  {
    "path": "api/testdata/workerlimit/graph/schema.graphqls",
    "content": "# GraphQL schema example\n#\n# https://gqlgen.com/getting-started/\n\ntype Todo {\n  id: ID!\n  text: String!\n  done: Boolean!\n  user: User!\n}\n\ntype User {\n  id: ID!\n  name: String!\n}\n\ntype Query {\n  todos: [Todo!]!\n}\n\ninput NewTodo {\n  text: String!\n  userId: String!\n}\n\ntype Mutation {\n  createTodo(input: NewTodo!): Todo!\n}\n"
  },
  {
    "path": "bin/_tools/apollo-sandbox-sri/README.md",
    "content": "It has been so long that the details slipped had my mind.\n\nSee #2581 for the original history of this Apollo Sandbox playground feature.\n\n> This is a [Subresource Integrity](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity) check, so we can follow that the MDN documentation [Subresource Integrity - Web security | MDN](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity) to get the hash value locally to specify the RSI if we need to.\n> \n> Or take the JS URL and run it through https://www.srihash.org/ with sha256 selected?\n> \n> Or maybe downloaded that script locally and did:\n> ```\n> cat FILENAME.js | openssl dgst -sha256 -binary | openssl base64 -A\n> ```\n> Or\n> ```\n> shasum -b -a 256 FILENAME.js | awk '{ print $1 }' | xxd -r -p | base64\n> ```\n> \n\nHowever, that was a pain to have to continually manually this, so in #2686 @gitxiongpan we figured out:\n\n> The url https://embeddable-sandbox.cdn.apollographql.com/ will allow you to list the contents of the S3 bucket. I made a dumb script to figure out the latest one from the S3 bucket and calculate the [Subresource Integrity](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity). This script is https://gist.github.com/StevenACoffman/2f15cd2e64f107d1a9a5f10f9748e1b0 and when I run it:\n> \n> CDN_FILE=https://embeddable-sandbox.cdn.apollographql.com/7212121cad97028b007e974956dc951ce89d683c/embeddable-sandbox.umd.production.min.js\n> curl -s $CDN_FILE | openssl dgst -sha256 -binary | openssl base64 -A; echo\n> \n> ldbSJ7EovavF815TfCN50qKB9AMvzskb9xiG71bmg2I=\n> So instead of setting it to \"_latest\" and having to forego the subresource integrity check, let's just update both to that and now we can try to remember to periodically run this dumb script and update it. Ok?\n\nAnd then we all forgot about it and never did anything with it ever again! 😆 \n\nRunning it now, it gives me:\n```\nCDN_FILE=https://embeddable-sandbox.cdn.apollographql.com/02e2da0fccbe0240ef03d2396d6c98559bab5b06/embeddable-sandbox.umd.production.min.js\ncurl -s $CDN_FILE | openssl dgst -sha256 -binary | openssl base64 -A; echo\n```\n\n"
  },
  {
    "path": "bin/_tools/apollo-sandbox-sri/main.go",
    "content": "// Gets the latest Apollo Embedded Sandbox Playground URL from the CDN S3 bucket\n//\n// To get the Subresource Integrity check, `go run main.go` and take what that outputs and run like\n// this:\n// CDN_FILE=https://embeddable-sandbox.cdn.apollographql.com/58165cf7452dbad480c7cb85e7acba085b3bac1d/embeddable-sandbox.umd.production.min.js\n// curl -s $CDN_FILE | openssl dgst -sha256 -binary | openssl base64 -A; echo\n\npackage main\n\nimport (\n\t\"bytes\"\n\t\"crypto/md5\"\n\t\"crypto/sha256\"\n\t\"crypto/sha512\"\n\t\"encoding/base64\"\n\t\"encoding/xml\"\n\t\"errors\"\n\t\"fmt\"\n\t\"go/ast\"\n\t\"go/format\"\n\t\"go/parser\"\n\t\"go/printer\"\n\t\"go/token\"\n\t\"hash\"\n\t\"io\"\n\t\"log\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n)\n\nconst (\n\tapolloSandboxCdnUrl       = \"https://embeddable-sandbox.cdn.apollographql.com\"\n\tapolloSandboxSriAlgorithm = \"sha256\" // md5, sha256 or sha512\n)\n\ntype ListBucketResult struct {\n\tXMLName               xml.Name `xml:\"ListBucketResult\"`\n\tText                  string   `xml:\",chardata\"`\n\tXmlns                 string   `xml:\"xmlns,attr\"`\n\tName                  string   `xml:\"Name\"`\n\tPrefix                string   `xml:\"Prefix\"`\n\tNextContinuationToken string   `xml:\"NextContinuationToken\"`\n\tKeyCount              string   `xml:\"KeyCount\"`\n\tIsTruncated           bool     `xml:\"IsTruncated\"`\n\tContents              []struct {\n\t\tText           string    `xml:\",chardata\"`\n\t\tKey            string    `xml:\"Key\"`\n\t\tGeneration     string    `xml:\"Generation\"`\n\t\tMetaGeneration string    `xml:\"MetaGeneration\"`\n\t\tLastModified   time.Time `xml:\"LastModified\"`\n\t\tETag           string    `xml:\"ETag\"`\n\t\tSize           string    `xml:\"Size\"`\n\t} `xml:\"Contents\"`\n}\n\nfunc main() {\n\tif err := updateApolloSandbox(); err != nil {\n\t\tlog.Fatalln(err.Error())\n\t}\n}\n\n// updateApolloSandbox finds the latest version of apollo sandbox js and updates the\n// apollo_sandbox_playground.go.\nfunc updateApolloSandbox() error {\n\trepoRootPath, err := findRepoRootPath()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to find git directory: %w\", err)\n\t}\n\n\tlatestKey, err := findLastRelease()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to parse base url: %w\", err)\n\t}\n\n\tlatestJsUrl, err := url.JoinPath(apolloSandboxCdnUrl, latestKey)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to join url: %w\", err)\n\t}\n\n\tlatestJsSri, err := computeSRIHash(latestJsUrl, apolloSandboxSriAlgorithm)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to compute latestJsSri hash: %w\", err)\n\t}\n\n\tapolloSandBoxFile := filepath.Join(\n\t\trepoRootPath,\n\t\t\"graphql\",\n\t\t\"playground\",\n\t\t\"apollo_sandbox_playground.go\",\n\t)\n\n\tgoFileBytes, err := alterApolloSandboxContents(apolloSandBoxFile, latestJsUrl, latestJsSri)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to alter apollo sandbox contents: %w\", err)\n\t}\n\n\tif err := os.WriteFile(apolloSandBoxFile, goFileBytes, 0o644); err != nil {\n\t\treturn fmt.Errorf(\"failed to write apollo sandbox contents: %w\", err)\n\t}\n\treturn nil\n}\n\n// findRepoRootPath returns the path that contains \".git\" directory, based on the working directory.\n// It starts at the working directory, and walks up the filesystem hierarchy until it finds a valid\n// \".git\" directory. If it can't retrieve the working directory, and can't find a \".git\" directory\n// it will return an error.\nfunc findRepoRootPath() (string, error) {\n\twd, err := os.Getwd()\n\tif err != nil {\n\t\treturn \"\", fmt.Errorf(\"failed to get current working directory: %w\", err)\n\t}\n\n\tdir := wd\n\tfor {\n\t\tif fi, err := os.Stat(filepath.Join(dir, \".git\")); err == nil && fi.IsDir() {\n\t\t\treturn dir, nil\n\t\t}\n\n\t\tparent := filepath.Dir(dir)\n\t\tif parent == dir {\n\t\t\treturn \"\", fmt.Errorf(\"failed to find a .git directory starting from %s\", wd)\n\t\t}\n\n\t\tdir = parent\n\t}\n}\n\n// findLastRelease Finds the latest release from the CDN bucket.\n// Ignores the _latest, latest and v2 keys.\nfunc findLastRelease() (string, error) {\n\tbaseUrl, err := url.Parse(apolloSandboxCdnUrl)\n\tif err != nil {\n\t\treturn \"\", fmt.Errorf(\"failed to parse base url: %w\", err)\n\t}\n\n\tvar continuationToken string\n\tvar latestKey string\n\tvar latestTime time.Time\n\n\tfor {\n\t\tresult, err := getBucketFiles(baseUrl, continuationToken)\n\t\tif err != nil {\n\t\t\treturn \"\", fmt.Errorf(\"failed to get latest release: %w\", err)\n\t\t}\n\n\t\tfor _, content := range result.Contents {\n\t\t\tif strings.HasSuffix(content.Key, \"/embeddable-sandbox.umd.production.min.js\") &&\n\t\t\t\t!strings.HasPrefix(content.Key, \"_latest/\") &&\n\t\t\t\t!strings.HasPrefix(content.Key, \"latest/\") &&\n\t\t\t\t!strings.HasPrefix(content.Key, \"v2/\") {\n\t\t\t\tif latestTime.IsZero() || latestTime.Before(content.LastModified) {\n\t\t\t\t\tlatestKey = content.Key\n\t\t\t\t\tlatestTime = content.LastModified\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif !result.IsTruncated {\n\t\t\tbreak\n\t\t}\n\t\tcontinuationToken = result.NextContinuationToken\n\t}\n\n\treturn latestKey, nil\n}\n\n// getBucketFiles gets the file list from the CDN bucket.\nfunc getBucketFiles(baseUrl *url.URL, continuationToken string) (ListBucketResult, error) {\n\tquery := baseUrl.Query()\n\tquery.Set(\"list-type\", \"2\")\n\tif continuationToken != \"\" {\n\t\tquery.Set(\"continuationToken\", continuationToken)\n\t}\n\tbaseUrl.RawQuery = query.Encode()\n\n\tresp, err := http.Get(baseUrl.String())\n\tif err != nil {\n\t\treturn ListBucketResult{}, fmt.Errorf(\"client: could not make request: %w\", err)\n\t}\n\tdefer resp.Body.Close()\n\n\tdata, err := io.ReadAll(resp.Body)\n\tif err != nil {\n\t\treturn ListBucketResult{}, fmt.Errorf(\"client: could not read response body: %w\", err)\n\t}\n\n\tvar result ListBucketResult\n\tif err := xml.Unmarshal(data, &result); err != nil {\n\t\treturn ListBucketResult{}, fmt.Errorf(\"failed to unmarshal xml response %w\", err)\n\t}\n\n\treturn result, nil\n}\n\n// computeSRIHash computes the SRI hash for the given URL.\n// See https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity\nfunc computeSRIHash(reqURL string, algo string) (string, error) {\n\th, err := newHasher(algo)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\tresp, err := http.Get(reqURL)\n\tif err != nil {\n\t\treturn \"\", fmt.Errorf(\"client: could not make request: %w\", err)\n\t}\n\tdefer resp.Body.Close()\n\n\tif _, err := io.Copy(h, resp.Body); err != nil {\n\t\treturn \"\", fmt.Errorf(\"could not copy bytes into hash: %w\", err)\n\t}\n\n\treturn integrity(algo, h.Sum(nil)), nil\n}\n\n// newHasher creates a new hasher for the given algorithm.\nfunc newHasher(algo string) (hash.Hash, error) {\n\tswitch algo {\n\tcase \"md5\":\n\t\treturn md5.New(), nil\n\tcase \"sha256\":\n\t\treturn sha256.New(), nil\n\tcase \"sha512\":\n\t\treturn sha512.New(), nil\n\tdefault:\n\t\treturn nil, fmt.Errorf(\n\t\t\t\"unsupported crypto algo: %q, use either md5, sha256 or sha512\",\n\t\t\talgo,\n\t\t)\n\t}\n}\n\n// integrity computes the SRI hash for the given bytes.\nfunc integrity(algo string, sum []byte) string {\n\tencoded := base64.StdEncoding.EncodeToString(sum)\n\treturn fmt.Sprintf(\"%s-%s\", algo, encoded)\n}\n\n// alterApolloSandboxContents alters the apollo sandbox source code contents to use the latest JS\n// URL and SRI.\nfunc alterApolloSandboxContents(filename, latestJsUrl, latestJsSri string) ([]byte, error) {\n\ttokenFileSet := token.NewFileSet()\n\tnode, err := parser.ParseFile(tokenFileSet, filename, nil, parser.ParseComments)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to parse %s: %w\", filename, err)\n\t}\n\n\tvar mainJsUpdated, mainSriUpdated bool\n\tfor _, decl := range node.Decls {\n\t\tgen, ok := decl.(*ast.GenDecl)\n\t\tif !ok || gen.Tok != token.CONST {\n\t\t\tcontinue\n\t\t}\n\t\tfor _, spec := range gen.Specs {\n\t\t\tvalSpec, ok := spec.(*ast.ValueSpec)\n\t\t\tif !ok {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tfor i, name := range valSpec.Names {\n\t\t\t\tswitch name.Name {\n\t\t\t\tcase \"apolloSandboxMainJs\":\n\t\t\t\t\tvalSpec.Values[i] = &ast.BasicLit{\n\t\t\t\t\t\tKind:  token.STRING,\n\t\t\t\t\t\tValue: strconv.Quote(latestJsUrl),\n\t\t\t\t\t}\n\t\t\t\t\tmainJsUpdated = true\n\t\t\t\tcase \"apolloSandboxMainSri\":\n\t\t\t\t\tvalSpec.Values[i] = &ast.BasicLit{\n\t\t\t\t\t\tKind:  token.STRING,\n\t\t\t\t\t\tValue: strconv.Quote(latestJsSri),\n\t\t\t\t\t}\n\t\t\t\t\tmainSriUpdated = true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tif !mainJsUpdated || !mainSriUpdated {\n\t\treturn nil, errors.New(\n\t\t\t\"failed to find apolloSandboxMainJs or apolloSandboxMainSri constants\",\n\t\t)\n\t}\n\n\tvar buf bytes.Buffer\n\tif err := printer.Fprint(&buf, tokenFileSet, node); err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to format ast: %w\", err)\n\t}\n\n\tformatted, err := format.Source(buf.Bytes())\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to format source: %w\", err)\n\t}\n\treturn formatted, nil\n}\n"
  },
  {
    "path": "bin/_tools/go.mod",
    "content": "module github.com/99designs/bin/_tools\n\ngo 1.25.1\n"
  },
  {
    "path": "bin/fmt.sh",
    "content": "#!/bin/bash\n# Script to format files and regenerate\nset -o errexit\nset -o nounset\nset -o xtrace\nset -o pipefail\n\n# set -euxo pipefail is short for:\n# set -e, -o errexit: stop the script when an error occurs\n# set -u, -o nounset: detects uninitialised variables in your script and exits with an error (including Env variables)\n# set -x, -o xtrace: prints every expression before executing it\n# set -o pipefail: If any command in a pipeline fails, use that return code for whole pipeline instead of final success\n\n\ngci write -s standard -s default -s \"prefix(github.com/99designs)\" --skip-generated .\ngofumpt -w .\ngo generate ./..."
  },
  {
    "path": "bin/release",
    "content": "#!/bin/bash\n\nset -eu\n\nif ! [ $# -eq 1 ] ; then\n    echo \"usage: ./bin/release [version]\"\n    exit 1\nfi\n\nVERSION=$1\n\nif ! git diff-index --quiet HEAD -- ; then\n    echo \"uncommitted changes on HEAD, aborting\"\n    exit 1\nfi\n\nif [[ ${VERSION:0:1} != \"v\" ]] ; then\n    echo \"version strings must start with v\"\n    exit 1\nfi\n\ngit fetch origin\ngit checkout origin/master\n\ncat > graphql/version.go <<EOF\npackage graphql\n\nconst Version = \"$VERSION\"\nEOF\ngo generate ./...\ngit add .\n\ngit commit -m \"release $VERSION\"\ngit tag $VERSION\ngit push origin $VERSION\ngit push origin HEAD:master\n\ncat > graphql/version.go <<EOF\npackage graphql\n\nconst Version = \"$VERSION-dev\"\nEOF\ngo generate ./...\ngit add .\ngit commit -m \"$VERSION postrelease bump\"\ngit push origin HEAD:master\ngit checkout master\ngit pull\n\n\necho \"Now go write some release notes! https://github.com/99designs/gqlgen/releases\"\n"
  },
  {
    "path": "bin/update_gqlparser.sh",
    "content": "#!/bin/bash\n# this script will update gqlparser to the latest version (because we do it frequently)\n# and make a new branch\ngh-find-latest() {\n  local owner=$1 project=$2\n  local release_url=$(curl -Ls -o /dev/null -w '%{url_effective}' \"https://github.com/${owner}/${project}/releases/latest\")\n  export release_tag=$(basename $release_url)\n}\n\n# Get Release tag\ngh-find-latest vektah gqlparser\necho \"Latest Release is ${release_tag}\"\n\nexport branchName=\"update_gqlparser_v2_${release_tag}\"\necho \"${branchName}\"\nsanitized_branch_name=$(echo ${branchName} | sed -E 's/\\s+/\\s/g' | sed -E 's/\\./_/g')\necho \"${sanitized_branch_name}\"\ngit checkout -b \"${sanitized_branch_name}\"\n\ngo get github.com/vektah/gqlparser/v2@${release_tag}\ngo mod tidy\ncd _examples\ngo get github.com/vektah/gqlparser/v2@${release_tag}\ngo mod tidy\ncd ..\ngit commit -s -S -am \"Update github.com/vektah/gqlparser/v2@${release_tag}\"\ngo generate ./...\ngit commit -s -S -am \"Re-generate after update\"\n\ngh pr create --title \"Update gqlparser to $(gh release view -R vektah/gqlparser --json tagName --jq .tagName)\" --body \"Automated update of gqlparser. See $(gh release view -R vektah/gqlparser --json url --jq .url)\" --base \"master\"\necho \"done\"\n\n\n#gh release list --json name,isLatest --jq '.[] | select(.isLatest)|.name'\n"
  },
  {
    "path": "client/client.go",
    "content": "// client is used internally for testing. See readme for alternatives\n\npackage client\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"regexp\"\n\n\t\"github.com/go-viper/mapstructure/v2\"\n)\n\ntype (\n\t// Client used for testing GraphQL servers. Not for production use.\n\tClient struct {\n\t\th      http.Handler\n\t\tdc     *mapstructure.DecoderConfig\n\t\topts   []Option\n\t\ttarget string\n\t}\n\n\t// Option implements a visitor that mutates an outgoing GraphQL request\n\t//\n\t// This is the Option pattern -\n\t// https://dave.cheney.net/2014/10/17/functional-options-for-friendly-apis\n\tOption func(bd *Request)\n\n\t// Request represents an outgoing GraphQL request\n\tRequest struct {\n\t\tQuery         string         `json:\"query\"`\n\t\tVariables     map[string]any `json:\"variables,omitempty\"`\n\t\tOperationName string         `json:\"operationName,omitempty\"`\n\t\tExtensions    map[string]any `json:\"extensions,omitempty\"`\n\t\tHTTP          *http.Request  `json:\"-\"`\n\t}\n\n\t// Response is a GraphQL layer response from a handler.\n\tResponse struct {\n\t\tData       any\n\t\tErrors     json.RawMessage\n\t\tExtensions map[string]any\n\t}\n)\n\n// New creates a graphql client\n// Options can be set that should be applied to all requests made with this client\nfunc New(h http.Handler, opts ...Option) *Client {\n\tp := &Client{\n\t\th:      h,\n\t\topts:   opts,\n\t\ttarget: \"/\",\n\t}\n\n\treturn p\n}\n\n// MustPost is a convenience wrapper around Post that automatically panics on error\nfunc (p *Client) MustPost(query string, response any, options ...Option) {\n\tif err := p.Post(query, response, options...); err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// Post sends a http POST request to the graphql endpoint with the given query then unpacks\n// the response into the given object.\nfunc (p *Client) Post(query string, response any, options ...Option) error {\n\trespDataRaw, err := p.RawPost(query, options...)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// we want to unpack even if there is an error, so we can see partial responses\n\tunpackErr := unpack(respDataRaw.Data, response, p.dc)\n\n\tif respDataRaw.Errors != nil {\n\t\treturn RawJsonError{respDataRaw.Errors}\n\t}\n\treturn unpackErr\n}\n\n// RawPost is similar to Post, except it skips decoding the raw json response\n// unpacked onto Response. This is used to test extension keys which are not\n// available when using Post.\nfunc (p *Client) RawPost(query string, options ...Option) (*Response, error) {\n\tr, err := p.newRequest(query, options...)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"build: %w\", err)\n\t}\n\n\tw := httptest.NewRecorder()\n\tp.h.ServeHTTP(w, r)\n\n\tif w.Code >= http.StatusBadRequest {\n\t\treturn nil, fmt.Errorf(\"http %d: %s\", w.Code, w.Body.String())\n\t}\n\n\t// decode it into map string first, let mapstructure do the final decode\n\t// because it can be much stricter about unknown fields.\n\trespDataRaw := &Response{}\n\terr = json.Unmarshal(w.Body.Bytes(), &respDataRaw)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"decode: %w\", err)\n\t}\n\n\treturn respDataRaw, nil\n}\n\nvar boundaryRegex = regexp.MustCompile(`multipart/form-data; ?boundary=.*`)\n\nfunc (p *Client) newRequest(query string, options ...Option) (*http.Request, error) {\n\tbd := &Request{\n\t\tQuery: query,\n\t\tHTTP:  httptest.NewRequest(http.MethodPost, p.target, http.NoBody),\n\t}\n\tbd.HTTP.Header.Set(\"Content-Type\", \"application/json\")\n\n\t// per client options from client.New apply first\n\tfor _, option := range p.opts {\n\t\toption(bd)\n\t}\n\t// per request options\n\tfor _, option := range options {\n\t\toption(bd)\n\t}\n\n\tcontentType := bd.HTTP.Header.Get(\"Content-Type\")\n\tswitch {\n\tcase boundaryRegex.MatchString(contentType):\n\t\tbreak\n\tcase contentType == \"application/json\":\n\t\trequestBody, err := json.Marshal(bd)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"encode: %w\", err)\n\t\t}\n\t\tbd.HTTP.Body = io.NopCloser(bytes.NewBuffer(requestBody))\n\tdefault:\n\t\tpanic(\"unsupported encoding \" + bd.HTTP.Header.Get(\"Content-Type\"))\n\t}\n\n\treturn bd.HTTP, nil\n}\n\n// SetCustomDecodeConfig sets a custom decode hook for the client\nfunc (p *Client) SetCustomDecodeConfig(dc *mapstructure.DecoderConfig) {\n\tp.dc = dc\n}\n\n// SetCustomTarget sets a custom target path for the client\nfunc (p *Client) SetCustomTarget(target string) {\n\tp.target = target\n}\n\nfunc unpack(data, into any, customDc *mapstructure.DecoderConfig) error {\n\tdc := &mapstructure.DecoderConfig{\n\t\tTagName:     \"json\",\n\t\tErrorUnused: true,\n\t\tZeroFields:  true,\n\t}\n\tif customDc != nil {\n\t\tdc = customDc\n\t}\n\tdc.Result = into\n\n\td, err := mapstructure.NewDecoder(dc)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"mapstructure: %w\", err)\n\t}\n\n\treturn d.Decode(data)\n}\n"
  },
  {
    "path": "client/client_test.go",
    "content": "package client_test\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"mime/multipart\"\n\t\"net/http\"\n\t\"net/textproto\"\n\t\"reflect\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/go-viper/mapstructure/v2\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n)\n\nfunc TestClient(t *testing.T) {\n\th := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {\n\t\tb, err := io.ReadAll(r.Body)\n\t\tif assert.NoError(t, err) {\n\t\t\tassert.JSONEq(t, `{\"query\":\"user(id:$id){name}\",\"variables\":{\"id\":1}}`, string(b))\n\n\t\t\terr = json.NewEncoder(w).Encode(map[string]any{\n\t\t\t\t\"data\": map[string]any{\n\t\t\t\t\t\"name\": \"bob\",\n\t\t\t\t},\n\t\t\t})\n\t\t\tassert.NoError(t, err)\n\t\t}\n\t})\n\n\tc := client.New(h)\n\n\tvar resp struct {\n\t\tName string\n\t}\n\n\tc.MustPost(\"user(id:$id){name}\", &resp, client.Var(\"id\", 1))\n\n\trequire.Equal(t, \"bob\", resp.Name)\n}\n\nfunc TestClientMultipartFormData(t *testing.T) {\n\th := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {\n\t\tbodyBytes, err := io.ReadAll(r.Body)\n\t\tif !assert.NoError(t, err) {\n\t\t\treturn\n\t\t}\n\n\t\tassert.Contains(t, string(bodyBytes), `Content-Disposition: form-data; name=\"operations\"`)\n\t\tassert.Contains(\n\t\t\tt,\n\t\t\tstring(bodyBytes),\n\t\t\t`{\"query\":\"mutation ($input: Input!) {}\",\"variables\":{\"file\":{}}`,\n\t\t)\n\t\tassert.Contains(t, string(bodyBytes), `Content-Disposition: form-data; name=\"map\"`)\n\t\tassert.Contains(t, string(bodyBytes), `{\"0\":[\"variables.file\"]}`)\n\t\tassert.Contains(\n\t\t\tt,\n\t\t\tstring(bodyBytes),\n\t\t\t`Content-Disposition: form-data; name=\"0\"; filename=\"example.txt\"`,\n\t\t)\n\t\tassert.Contains(t, string(bodyBytes), `Content-Type: text/plain`)\n\t\tassert.Contains(t, string(bodyBytes), `Hello World`)\n\n\t\tw.Write([]byte(`{}`))\n\t})\n\n\tc := client.New(h)\n\n\tvar resp struct{}\n\tc.MustPost(\"{ id }\", &resp,\n\t\tfunc(bd *client.Request) {\n\t\t\tbodyBuf := &bytes.Buffer{}\n\t\t\tbodyWriter := multipart.NewWriter(bodyBuf)\n\t\t\tbodyWriter.WriteField(\n\t\t\t\t\"operations\",\n\t\t\t\t`{\"query\":\"mutation ($input: Input!) {}\",\"variables\":{\"file\":{}}`,\n\t\t\t)\n\t\t\tbodyWriter.WriteField(\"map\", `{\"0\":[\"variables.file\"]}`)\n\n\t\t\th := make(textproto.MIMEHeader)\n\t\t\th.Set(\"Content-Disposition\", `form-data; name=\"0\"; filename=\"example.txt\"`)\n\t\t\th.Set(\"Content-Type\", \"text/plain\")\n\t\t\tff, _ := bodyWriter.CreatePart(h)\n\t\t\tff.Write([]byte(\"Hello World\"))\n\t\t\tbodyWriter.Close()\n\n\t\t\tbd.HTTP.Body = io.NopCloser(bodyBuf)\n\t\t\tbd.HTTP.Header.Set(\"Content-Type\", bodyWriter.FormDataContentType())\n\t\t},\n\t)\n}\n\nfunc TestAddHeader(t *testing.T) {\n\th := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {\n\t\tassert.Equal(t, \"ASDF\", r.Header.Get(\"Test-Key\"))\n\n\t\tw.Write([]byte(`{}`))\n\t})\n\n\tc := client.New(h)\n\n\tvar resp struct{}\n\tc.MustPost(\"{ id }\", &resp,\n\t\tclient.AddHeader(\"Test-Key\", \"ASDF\"),\n\t)\n}\n\nfunc TestAddClientHeader(t *testing.T) {\n\th := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {\n\t\tassert.Equal(t, \"ASDF\", r.Header.Get(\"Test-Key\"))\n\n\t\tw.Write([]byte(`{}`))\n\t})\n\n\tc := client.New(h, client.AddHeader(\"Test-Key\", \"ASDF\"))\n\n\tvar resp struct{}\n\tc.MustPost(\"{ id }\", &resp)\n}\n\nfunc TestBasicAuth(t *testing.T) {\n\th := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {\n\t\tuser, pass, ok := r.BasicAuth()\n\t\tassert.True(t, ok)\n\t\tassert.Equal(t, \"user\", user)\n\t\tassert.Equal(t, \"pass\", pass)\n\n\t\tw.Write([]byte(`{}`))\n\t})\n\n\tc := client.New(h)\n\n\tvar resp struct{}\n\tc.MustPost(\"{ id }\", &resp,\n\t\tclient.BasicAuth(\"user\", \"pass\"),\n\t)\n}\n\nfunc TestAddCookie(t *testing.T) {\n\th := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {\n\t\tc, err := r.Cookie(\"foo\")\n\t\tif !assert.NoError(t, err) {\n\t\t\treturn\n\t\t}\n\t\tassert.Equal(t, \"value\", c.Value)\n\n\t\tw.Write([]byte(`{}`))\n\t})\n\n\tc := client.New(h)\n\n\tvar resp struct{}\n\tc.MustPost(\"{ id }\", &resp,\n\t\tclient.AddCookie(&http.Cookie{Name: \"foo\", Value: \"value\"}),\n\t)\n}\n\nfunc TestAddExtensions(t *testing.T) {\n\th := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {\n\t\tb, err := io.ReadAll(r.Body)\n\t\tif !assert.NoError(t, err) {\n\t\t\treturn\n\t\t}\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t`{\"query\":\"user(id:1){name}\",\"extensions\":{\"persistedQuery\":{\"sha256Hash\":\"ceec2897e2da519612279e63f24658c3e91194cbb2974744fa9007a7e1e9f9e7\",\"version\":1}}}`,\n\t\t\tstring(b),\n\t\t)\n\t\terr = json.NewEncoder(w).Encode(map[string]any{\n\t\t\t\"data\": map[string]any{\n\t\t\t\t\"Name\": \"Bob\",\n\t\t\t},\n\t\t})\n\t\tassert.NoError(t, err)\n\t})\n\n\tc := client.New(h)\n\n\tvar resp struct {\n\t\tName string\n\t}\n\tc.MustPost(\n\t\t\"user(id:1){name}\",\n\t\t&resp,\n\t\tclient.Extensions(\n\t\t\tmap[string]any{\n\t\t\t\t\"persistedQuery\": map[string]any{\n\t\t\t\t\t\"version\":    1,\n\t\t\t\t\t\"sha256Hash\": \"ceec2897e2da519612279e63f24658c3e91194cbb2974744fa9007a7e1e9f9e7\",\n\t\t\t\t},\n\t\t\t},\n\t\t),\n\t)\n}\n\nfunc TestSetCustomDecodeConfig(t *testing.T) {\n\tnow := time.Now()\n\n\th := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {\n\t\tw.WriteHeader(http.StatusOK)\n\t\tw.Header().Set(\"Content-Type\", \"application/json\")\n\t\tfmt.Fprintf(w, `{\"data\": {\"created_at\":\"%s\"}}`, now.Format(time.RFC3339))\n\t})\n\n\tdc := &mapstructure.DecoderConfig{\n\t\tTagName:     \"json\",\n\t\tErrorUnused: true,\n\t\tZeroFields:  true,\n\t\tDecodeHook: func(f reflect.Type, t reflect.Type, data any) (any, error) {\n\t\t\tif t != reflect.TypeFor[time.Time]() {\n\t\t\t\treturn data, nil\n\t\t\t}\n\n\t\t\tswitch f.Kind() {\n\t\t\tcase reflect.String:\n\t\t\t\treturn time.Parse(time.RFC3339, data.(string))\n\t\t\tdefault:\n\t\t\t\treturn data, nil\n\t\t\t}\n\t\t},\n\t}\n\n\tc := client.New(h)\n\n\tvar resp struct {\n\t\tCreatedAt time.Time `json:\"created_at\"`\n\t}\n\n\terr := c.Post(\"user(id: 1) {created_at}\", &resp)\n\trequire.Error(t, err)\n\n\tc.SetCustomDecodeConfig(dc)\n\n\tc.MustPost(\"user(id: 1) {created_at}\", &resp)\n\trequire.WithinDuration(t, now, resp.CreatedAt, time.Second)\n}\n\nfunc TestClientWithCustomTarget(t *testing.T) {\n\th := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {\n\t\tb, err := io.ReadAll(r.Body)\n\t\tif assert.NoError(t, err) {\n\t\t\tassert.JSONEq(t, `{\"query\":\"user(id:$id){name}\",\"variables\":{\"id\":1}}`, string(b))\n\n\t\t\terr = json.NewEncoder(w).Encode(map[string]any{\n\t\t\t\t\"data\": map[string]any{\n\t\t\t\t\t\"name\": \"bob\",\n\t\t\t\t},\n\t\t\t})\n\t\t\tassert.NoError(t, err)\n\t\t}\n\t})\n\n\tmux := http.NewServeMux()\n\tmux.HandleFunc(\"/test\", h)\n\n\tc := client.New(mux)\n\tc.SetCustomTarget(\"/test\")\n\n\tvar resp struct {\n\t\tName string\n\t}\n\n\tc.MustPost(\"user(id:$id){name}\", &resp, client.Var(\"id\", 1))\n\n\trequire.Equal(t, \"bob\", resp.Name)\n}\n"
  },
  {
    "path": "client/errors.go",
    "content": "package client\n\nimport \"encoding/json\"\n\n// RawJsonError is a json formatted error from a GraphQL server.\ntype RawJsonError struct {\n\tjson.RawMessage\n}\n\nfunc (r RawJsonError) Error() string {\n\treturn string(r.RawMessage)\n}\n"
  },
  {
    "path": "client/incremental_http.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"mime\"\n\t\"mime/multipart\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n)\n\ntype IncrementalHandler struct {\n\tclose func() error\n\tnext  func(response any) error\n}\n\nfunc (i *IncrementalHandler) Close() error {\n\treturn i.close()\n}\n\nfunc (i *IncrementalHandler) Next(response any) error {\n\treturn i.next(response)\n}\n\ntype IncrementalInitialResponse struct {\n\tData       any             `json:\"data\"`\n\tLabel      string          `json:\"label\"`\n\tPath       []any           `json:\"path\"`\n\tHasNext    bool            `json:\"hasNext\"`\n\tErrors     json.RawMessage `json:\"errors\"`\n\tExtensions map[string]any  `json:\"extensions\"`\n}\n\ntype IncrementalData struct {\n\t// Support for \"items\" for @stream is not yet available, only \"data\" for\n\t// @defer, as per the 2023 spec. Similarly, this retains a more complete\n\t// list of fields, but not \"id,\" and represents a mid-point between the\n\t// 2022 and 2023 specs.\n\n\tData       any             `json:\"data\"`\n\tLabel      string          `json:\"label\"`\n\tPath       []any           `json:\"path\"`\n\tHasNext    bool            `json:\"hasNext\"`\n\tErrors     json.RawMessage `json:\"errors\"`\n\tExtensions map[string]any  `json:\"extensions\"`\n}\n\ntype IncrementalResponse struct {\n\t// Does not include the pending or completed fields from the 2023 spec.\n\n\tIncremental []IncrementalData `json:\"incremental\"`\n\tHasNext     bool              `json:\"hasNext\"`\n\tErrors      json.RawMessage   `json:\"errors\"`\n\tExtensions  map[string]any    `json:\"extensions\"`\n}\n\nfunc errorIncremental(err error) *IncrementalHandler {\n\treturn &IncrementalHandler{\n\t\tclose: func() error { return nil },\n\t\tnext: func(response any) error {\n\t\t\treturn err\n\t\t},\n\t}\n}\n\n// IncrementalHTTP returns a GraphQL response handler for the current\n// GQLGen implementation of the [incremental delivery over HTTP spec].\n// The IncrementalHTTP spec provides for \"streaming\" responses triggered by\n// the use of @stream or @defer as an alternate approach to SSE. To that end,\n// the client retains the interface of the handler returned from\n// Client.SSE.\n//\n// IncrementalHTTP delivery using multipart/mixed is just the structure\n// of the response: the payloads are specified by the defer-stream spec,\n// which are in transition. For more detail, see the links in the\n// definition for transport.MultipartMixed. We use the name\n// IncrementalHTTP here to distinguish from the multipart form upload\n// (the term \"multipart\" usually referring to the latter).\n//\n// IncrementalHandler is not safe for concurrent use, or for production\n// use at all.\n//\n// [incremental delivery over HTTP spec]:\n// https://github.com/graphql/graphql-over-http/blob/main/rfcs/IncrementalDelivery.md\nfunc (p *Client) IncrementalHTTP(\n\tctx context.Context,\n\tquery string,\n\toptions ...Option,\n) *IncrementalHandler {\n\tr, err := p.newRequest(query, options...)\n\tif err != nil {\n\t\treturn errorIncremental(fmt.Errorf(\"request: %w\", err))\n\t}\n\tr.Header.Set(\"Accept\", \"multipart/mixed\")\n\n\tw := httptest.NewRecorder()\n\tp.h.ServeHTTP(w, r)\n\n\t// Remains open since we are reading from it incrementally.\n\tres := w.Result()\n\tif res.StatusCode >= http.StatusBadRequest {\n\t\treturn errorIncremental(fmt.Errorf(\"http %d: %s\", w.Code, w.Body.String()))\n\t}\n\tmediaType, params, err := mime.ParseMediaType(res.Header.Get(\"Content-Type\"))\n\tif err != nil {\n\t\treturn errorIncremental(fmt.Errorf(\"parse content-type: %w\", err))\n\t}\n\tif mediaType != \"multipart/mixed\" {\n\t\treturn errorIncremental(\n\t\t\tfmt.Errorf(\"expected content-type multipart/mixed, got %s\", mediaType),\n\t\t)\n\t}\n\n\t// TODO: worth checking the deferSpec either to confirm this client\n\t// supports it exactly, or simply to make sure it is within some\n\t// expected range.\n\tdeferSpec, ok := params[\"deferspec\"]\n\tif !ok || deferSpec == \"\" {\n\t\treturn errorIncremental(errors.New(\"expected deferSpec in content-type\"))\n\t}\n\n\tboundary, ok := params[\"boundary\"]\n\tif !ok || boundary == \"\" {\n\t\treturn errorIncremental(errors.New(\"expected boundary in content-type\"))\n\t}\n\tmr := multipart.NewReader(res.Body, boundary)\n\n\tctx, cancel := context.WithCancelCause(ctx)\n\tinitial := true\n\n\treturn &IncrementalHandler{\n\t\tclose: func() error {\n\t\t\tres.Body.Close()\n\t\t\tcancel(context.Canceled)\n\t\t\treturn nil\n\t\t},\n\t\tnext: func(response any) (err error) {\n\t\t\tdefer func() {\n\t\t\t\tif err != nil {\n\t\t\t\t\tres.Body.Close()\n\t\t\t\t\tcancel(err)\n\t\t\t\t}\n\t\t\t}()\n\n\t\t\tvar data any\n\t\t\tvar rawErrors json.RawMessage\n\n\t\t\ttype nextPart struct {\n\t\t\t\t*multipart.Part\n\t\t\t\tErr error\n\t\t\t}\n\n\t\t\tnextPartCh := make(chan nextPart)\n\t\t\tgo func() {\n\t\t\t\tvar next nextPart\n\t\t\t\tnext.Part, next.Err = mr.NextPart()\n\t\t\t\tnextPartCh <- next\n\t\t\t}()\n\n\t\t\tvar next nextPart\n\t\t\tselect {\n\t\t\tcase <-ctx.Done():\n\t\t\t\treturn ctx.Err()\n\t\t\tcase next = <-nextPartCh:\n\t\t\t}\n\n\t\t\tif next.Err == io.EOF {\n\t\t\t\tres.Body.Close()\n\t\t\t\tcancel(context.Canceled)\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tif err = next.Err; err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif ct := next.Header.Get(\"Content-Type\"); ct != \"application/json\" {\n\t\t\t\terr = fmt.Errorf(`expected content-type \"application/json\", got %q`, ct)\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif initial {\n\t\t\t\tinitial = false\n\t\t\t\tdata = IncrementalInitialResponse{}\n\t\t\t} else {\n\t\t\t\tdata = IncrementalResponse{}\n\t\t\t}\n\t\t\tif err = json.NewDecoder(next.Part).Decode(&data); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t// We want to unpack even if there is an error, so we can see partial\n\t\t\t// responses.\n\t\t\terr = unpack(data, response, p.dc)\n\t\t\tif len(rawErrors) != 0 {\n\t\t\t\terr = RawJsonError{rawErrors}\n\t\t\t\treturn err\n\t\t\t}\n\t\t\treturn err\n\t\t},\n\t}\n}\n"
  },
  {
    "path": "client/options.go",
    "content": "package client\n\nimport \"net/http\"\n\n// Var adds a variable into the outgoing request\nfunc Var(name string, value any) Option {\n\treturn func(bd *Request) {\n\t\tif bd.Variables == nil {\n\t\t\tbd.Variables = map[string]any{}\n\t\t}\n\n\t\tbd.Variables[name] = value\n\t}\n}\n\n// Operation sets the operation name for the outgoing request\nfunc Operation(name string) Option {\n\treturn func(bd *Request) {\n\t\tbd.OperationName = name\n\t}\n}\n\n// Extensions sets the extensions to be sent with the outgoing request\nfunc Extensions(extensions map[string]any) Option {\n\treturn func(bd *Request) {\n\t\tbd.Extensions = extensions\n\t}\n}\n\n// Path sets the url that this request will be made against, useful if you are mounting your entire\n// router\n// and need to specify the url to the graphql endpoint.\nfunc Path(url string) Option {\n\treturn func(bd *Request) {\n\t\tbd.HTTP.URL.Path = url\n\t}\n}\n\n// AddHeader adds a header to the outgoing request. This is useful for setting expected\n// Authentication headers for example.\nfunc AddHeader(key, value string) Option {\n\treturn func(bd *Request) {\n\t\tbd.HTTP.Header.Add(key, value)\n\t}\n}\n\n// BasicAuth authenticates the request using http basic auth.\nfunc BasicAuth(username, password string) Option {\n\treturn func(bd *Request) {\n\t\tbd.HTTP.SetBasicAuth(username, password)\n\t}\n}\n\n// AddCookie adds a cookie to the outgoing request\nfunc AddCookie(cookie *http.Cookie) Option {\n\treturn func(bd *Request) {\n\t\tbd.HTTP.AddCookie(cookie)\n\t}\n}\n"
  },
  {
    "path": "client/readme.md",
    "content": "This client is used internally for testing. I wanted a simple graphql client sent user specified queries.\n\nYou might want to look at:\n - https://github.com/shurcooL/graphql: Uses reflection to build queries from structs.\n - https://github.com/machinebox/graphql: Probably would have been a perfect fit, but it uses form encoding instead of json...\n - [Khan/genqlient](https://github.com/Khan/genqlient) - Generate go GraphQL client from GraphQL query\n - [infiotinc/gqlgenc](https://github.com/infiotinc/gqlgenc) - Generate go GraphQL client from GraphQL query\n - [Yamashou/gqlgenc](https://github.com/Yamashou/gqlgenc) - Generate go GraphQL client from GraphQL query\n"
  },
  {
    "path": "client/sse.go",
    "content": "package client\n\nimport (\n\t\"bufio\"\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/http/httptest\"\n\t\"net/textproto\"\n\t\"strings\"\n)\n\ntype SSE struct {\n\tClose func() error\n\tNext  func(response any) error\n}\n\ntype SSEResponse struct {\n\tData       any             `json:\"data\"`\n\tLabel      string          `json:\"label\"`\n\tPath       []any           `json:\"path\"`\n\tHasNext    bool            `json:\"hasNext\"`\n\tErrors     json.RawMessage `json:\"errors\"`\n\tExtensions map[string]any  `json:\"extensions\"`\n}\n\nfunc errorSSE(err error) *SSE {\n\treturn &SSE{\n\t\tClose: func() error { return nil },\n\t\tNext: func(response any) error {\n\t\t\treturn err\n\t\t},\n\t}\n}\n\nfunc (p *Client) SSE(ctx context.Context, query string, options ...Option) *SSE {\n\tr, err := p.newRequest(query, options...)\n\tif err != nil {\n\t\treturn errorSSE(fmt.Errorf(\"request: %w\", err))\n\t}\n\tr = r.WithContext(ctx)\n\n\tr.Header.Set(\"Accept\", \"text/event-stream\")\n\tr.Header.Set(\"Cache-Control\", \"no-cache\")\n\tr.Header.Set(\"Connection\", \"keep-alive\")\n\n\tsrv := httptest.NewServer(p.h)\n\tw := httptest.NewRecorder()\n\tp.h.ServeHTTP(w, r)\n\n\treader := textproto.NewReader(bufio.NewReader(w.Body))\n\tline, err := reader.ReadLine()\n\tif err != nil {\n\t\treturn errorSSE(fmt.Errorf(\"response: %w\", err))\n\t}\n\tif line != \":\" {\n\t\treturn errorSSE(fmt.Errorf(\"expected :, got %s\", line))\n\t}\n\n\treturn &SSE{\n\t\tClose: func() error {\n\t\t\tsrv.Close()\n\t\t\treturn nil\n\t\t},\n\t\tNext: func(response any) error {\n\t\t\tfor {\n\t\t\t\tline, err := reader.ReadLine()\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tkv := strings.SplitN(line, \": \", 2)\n\n\t\t\t\tswitch kv[0] {\n\t\t\t\tcase \"\":\n\t\t\t\t\tcontinue\n\t\t\t\tcase \"event\":\n\t\t\t\t\tswitch kv[1] {\n\t\t\t\t\tcase \"next\":\n\t\t\t\t\t\tcontinue\n\t\t\t\t\tcase \"complete\":\n\t\t\t\t\t\treturn nil\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn fmt.Errorf(\"expected event type: %#v\", kv[1])\n\t\t\t\t\t}\n\t\t\t\tcase \"data\":\n\t\t\t\t\tvar respDataRaw SSEResponse\n\t\t\t\t\tif err = json.Unmarshal([]byte(kv[1]), &respDataRaw); err != nil {\n\t\t\t\t\t\treturn fmt.Errorf(\"decode: %w\", err)\n\t\t\t\t\t}\n\n\t\t\t\t\t// we want to unpack even if there is an error, so we can see partial responses\n\t\t\t\t\tunpackErr := unpack(respDataRaw, response, p.dc)\n\n\t\t\t\t\tif respDataRaw.Errors != nil {\n\t\t\t\t\t\treturn RawJsonError{respDataRaw.Errors}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn unpackErr\n\t\t\t\tdefault:\n\t\t\t\t\treturn fmt.Errorf(\"unexpected sse field %s\", kv[0])\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t}\n}\n"
  },
  {
    "path": "client/websocket.go",
    "content": "package client\n\nimport (\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http/httptest\"\n\t\"reflect\"\n\t\"strings\"\n\n\t\"github.com/gorilla/websocket\"\n)\n\nconst (\n\tconnectionInitMsg = \"connection_init\" // Client -> Server\n\tstartMsg          = \"start\"           // Client -> Server\n\tconnectionAckMsg  = \"connection_ack\"  // Server -> Client\n\tconnectionKaMsg   = \"ka\"              // Server -> Client\n\tdataMsg           = \"data\"            // Server -> Client\n\terrorMsg          = \"error\"           // Server -> Client\n)\n\ntype operationMessage struct {\n\tPayload json.RawMessage `json:\"payload,omitempty\"`\n\tID      string          `json:\"id,omitempty\"`\n\tType    string          `json:\"type\"`\n}\n\ntype Subscription struct {\n\tClose func() error\n\tNext  func(response any) error\n}\n\nfunc errorSubscription(err error) *Subscription {\n\treturn &Subscription{\n\t\tClose: func() error { return nil },\n\t\tNext: func(response any) error {\n\t\t\treturn err\n\t\t},\n\t}\n}\n\nfunc (p *Client) Websocket(query string, options ...Option) *Subscription {\n\treturn p.WebsocketWithPayload(query, nil, options...)\n}\n\n// Grab a single response from a websocket based query\nfunc (p *Client) WebsocketOnce(query string, resp any, options ...Option) error {\n\tsock := p.Websocket(query, options...)\n\tdefer func() { _ = sock.Close() }()\n\tif reflect.ValueOf(resp).Kind() == reflect.Ptr {\n\t\treturn sock.Next(resp)\n\t}\n\t// TODO: verify this is never called and remove it\n\treturn sock.Next(&resp)\n}\n\nfunc (p *Client) WebsocketWithPayload(\n\tquery string,\n\tinitPayload map[string]any,\n\toptions ...Option,\n) *Subscription {\n\tr, err := p.newRequest(query, options...)\n\tif err != nil {\n\t\treturn errorSubscription(fmt.Errorf(\"request: %w\", err))\n\t}\n\n\trequestBody, err := io.ReadAll(r.Body)\n\tif err != nil {\n\t\treturn errorSubscription(fmt.Errorf(\"parse body: %w\", err))\n\t}\n\n\tsrv := httptest.NewServer(p.h)\n\thost := strings.ReplaceAll(srv.URL, \"http://\", \"ws://\")\n\tc, resp, err := websocket.DefaultDialer.Dial(host+r.URL.Path, r.Header)\n\tif err != nil {\n\t\treturn errorSubscription(fmt.Errorf(\"dial: %w\", err))\n\t}\n\tdefer resp.Body.Close()\n\n\tinitMessage := operationMessage{Type: connectionInitMsg}\n\tif initPayload != nil {\n\t\tinitMessage.Payload, err = json.Marshal(initPayload)\n\t\tif err != nil {\n\t\t\treturn errorSubscription(fmt.Errorf(\"parse payload: %w\", err))\n\t\t}\n\t}\n\n\tif err = c.WriteJSON(initMessage); err != nil {\n\t\treturn errorSubscription(fmt.Errorf(\"init: %w\", err))\n\t}\n\n\tvar ack operationMessage\n\tif err = c.ReadJSON(&ack); err != nil {\n\t\treturn errorSubscription(fmt.Errorf(\"ack: %w\", err))\n\t}\n\n\tif ack.Type != connectionAckMsg {\n\t\treturn errorSubscription(fmt.Errorf(\"expected ack message, got %#v\", ack))\n\t}\n\n\tvar ka operationMessage\n\tif err = c.ReadJSON(&ka); err != nil {\n\t\treturn errorSubscription(fmt.Errorf(\"ack: %w\", err))\n\t}\n\n\tif ka.Type != connectionKaMsg {\n\t\treturn errorSubscription(fmt.Errorf(\"expected ack message, got %#v\", ack))\n\t}\n\n\tif err = c.WriteJSON(\n\t\toperationMessage{Type: startMsg, ID: \"1\", Payload: requestBody},\n\t); err != nil {\n\t\treturn errorSubscription(fmt.Errorf(\"start: %w\", err))\n\t}\n\n\treturn &Subscription{\n\t\tClose: func() error {\n\t\t\tsrv.Close()\n\t\t\treturn c.Close()\n\t\t},\n\t\tNext: func(response any) error {\n\t\t\tfor {\n\t\t\t\tvar op operationMessage\n\t\t\t\terr := c.ReadJSON(&op)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tswitch op.Type {\n\t\t\t\tcase dataMsg:\n\t\t\t\t\tbreak\n\t\t\t\tcase connectionKaMsg:\n\t\t\t\t\tcontinue\n\t\t\t\tcase errorMsg:\n\t\t\t\t\treturn errors.New(string(op.Payload))\n\t\t\t\tdefault:\n\t\t\t\t\treturn fmt.Errorf(\"expected data message, got %#v\", op)\n\t\t\t\t}\n\n\t\t\t\tvar respDataRaw Response\n\t\t\t\terr = json.Unmarshal(op.Payload, &respDataRaw)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn fmt.Errorf(\"decode: %w\", err)\n\t\t\t\t}\n\n\t\t\t\t// we want to unpack even if there is an error, so we can see partial responses\n\t\t\t\tunpackErr := unpack(respDataRaw.Data, response, p.dc)\n\n\t\t\t\tif respDataRaw.Errors != nil {\n\t\t\t\t\treturn RawJsonError{respDataRaw.Errors}\n\t\t\t\t}\n\t\t\t\treturn unpackErr\n\t\t\t}\n\t\t},\n\t}\n}\n"
  },
  {
    "path": "client/withfilesoption.go",
    "content": "package client\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"mime/multipart\"\n\t\"net/http\"\n\t\"net/textproto\"\n\t\"os\"\n\t\"strings\"\n)\n\ntype fileFormDataMap struct {\n\tmapKey string\n\tfile   *os.File\n}\n\nfunc findFiles(parentMapKey string, variables map[string]any) []*fileFormDataMap {\n\tfiles := []*fileFormDataMap{}\n\tfor key, value := range variables {\n\t\tif v, ok := value.(map[string]any); ok {\n\t\t\tfiles = append(files, findFiles(parentMapKey+\".\"+key, v)...)\n\t\t} else if v, ok := value.([]map[string]any); ok {\n\t\t\tfor i, arr := range v {\n\t\t\t\tfiles = append(\n\t\t\t\t\tfiles,\n\t\t\t\t\tfindFiles(fmt.Sprintf(`%s.%s.%d`, parentMapKey, key, i), arr)...)\n\t\t\t}\n\t\t} else if v, ok := value.([]*os.File); ok {\n\t\t\tfor i, file := range v {\n\t\t\t\tfiles = append(files, &fileFormDataMap{\n\t\t\t\t\tmapKey: fmt.Sprintf(`%s.%s.%d`, parentMapKey, key, i),\n\t\t\t\t\tfile:   file,\n\t\t\t\t})\n\t\t\t}\n\t\t} else if v, ok := value.(*os.File); ok {\n\t\t\tfiles = append(files, &fileFormDataMap{\n\t\t\t\tmapKey: parentMapKey + \".\" + key,\n\t\t\t\tfile:   v,\n\t\t\t})\n\t\t}\n\t}\n\n\treturn files\n}\n\n// WithFiles encodes the outgoing request body as multipart form data for file variables\nfunc WithFiles() Option {\n\treturn func(bd *Request) {\n\t\tbodyBuf := &bytes.Buffer{}\n\t\tbodyWriter := multipart.NewWriter(bodyBuf)\n\n\t\t// -b7955bd2e1d17b67ac157b9e9ddb6238888caefc6f3541920a1debad284d\n\t\t// Content-Disposition: form-data; name=\"operations\"\n\t\t//\n\t\t// {\"query\":\"mutation ($input: Input!) {}\",\"variables\":{\"input\":{\"file\":{}}}\n\t\trequestBody, _ := json.Marshal(bd)\n\t\t_ = bodyWriter.WriteField(\"operations\", string(requestBody))\n\n\t\t// --b7955bd2e1d17b67ac157b9e9ddb6238888caefc6f3541920a1debad284d\n\t\t// Content-Disposition: form-data; name=\"map\"\n\t\t//\n\t\t// `{ \"0\":[\"variables.input.file\"] }`\n\t\t// or\n\t\t// `{ \"0\":[\"variables.input.files.0\"], \"1\":[\"variables.input.files.1\"] }`\n\t\t// or\n\t\t// `{ \"0\": [\"variables.input.0.file\"], \"1\": [\"variables.input.1.file\"] }`\n\t\t// or\n\t\t// `{ \"0\": [\"variables.req.0.file\", \"variables.req.1.file\"] }`\n\t\tmapData := \"\"\n\t\tfilesData := findFiles(\"variables\", bd.Variables)\n\t\tfilesGroup := [][]*fileFormDataMap{}\n\t\tfor _, fd := range filesData {\n\t\t\tfoundDuplicate := false\n\t\t\tfor j, fg := range filesGroup {\n\t\t\t\tf1, _ := fd.file.Stat()\n\t\t\t\tf2, _ := fg[0].file.Stat()\n\t\t\t\tif os.SameFile(f1, f2) {\n\t\t\t\t\tfoundDuplicate = true\n\t\t\t\t\tfilesGroup[j] = append(filesGroup[j], fd)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif !foundDuplicate {\n\t\t\t\tfilesGroup = append(filesGroup, []*fileFormDataMap{fd})\n\t\t\t}\n\t\t}\n\t\tif len(filesGroup) > 0 {\n\t\t\tmapDataFiles := make([]string, 0, len(filesGroup))\n\n\t\t\tfor i, fileData := range filesGroup {\n\t\t\t\tmapDataFiles = append(\n\t\t\t\t\tmapDataFiles,\n\t\t\t\t\tfmt.Sprintf(\n\t\t\t\t\t\t`\"%d\":[%s]`,\n\t\t\t\t\t\ti,\n\t\t\t\t\t\tstrings.Join(collect(fileData, wrapMapKeyInQuotes), \",\"),\n\t\t\t\t\t),\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tmapData = `{` + strings.Join(mapDataFiles, \",\") + `}`\n\t\t}\n\t\t_ = bodyWriter.WriteField(\"map\", mapData)\n\n\t\t// --b7955bd2e1d17b67ac157b9e9ddb6238888caefc6f3541920a1debad284d\n\t\t// Content-Disposition: form-data; name=\"0\"; filename=\"tempFile\"\n\t\t// Content-Type: text/plain; charset=utf-8\n\t\t// or\n\t\t// Content-Type: application/octet-stream\n\t\t//\n\t\tfor i, fileData := range filesGroup {\n\t\t\th := make(textproto.MIMEHeader)\n\t\t\th.Set(\n\t\t\t\t\"Content-Disposition\",\n\t\t\t\tfmt.Sprintf(`form-data; name=\"%d\"; filename=\"%s\"`, i, fileData[0].file.Name()),\n\t\t\t)\n\t\t\tb, _ := os.ReadFile(fileData[0].file.Name())\n\t\t\th.Set(\"Content-Type\", http.DetectContentType(b))\n\t\t\tff, _ := bodyWriter.CreatePart(h)\n\t\t\tff.Write(b)\n\t\t}\n\t\tbodyWriter.Close()\n\n\t\tbd.HTTP.Body = io.NopCloser(bodyBuf)\n\t\tbd.HTTP.Header.Set(\"Content-Type\", bodyWriter.FormDataContentType())\n\t}\n}\n\nfunc collect(strArr []*fileFormDataMap, f func(s *fileFormDataMap) string) []string {\n\tresult := make([]string, len(strArr))\n\tfor i, str := range strArr {\n\t\tresult[i] = f(str)\n\t}\n\treturn result\n}\n\nfunc wrapMapKeyInQuotes(s *fileFormDataMap) string {\n\treturn fmt.Sprintf(\"\\\"%s\\\"\", s.mapKey)\n}\n"
  },
  {
    "path": "client/withfilesoption_test.go",
    "content": "package client_test\n\nimport (\n\t\"io\"\n\t\"mime\"\n\t\"mime/multipart\"\n\t\"net/http\"\n\t\"os\"\n\t\"regexp\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n)\n\nfunc TestWithFiles(t *testing.T) {\n\ttempFile1, err := os.CreateTemp(t.TempDir(), \"tempFile1\")\n\trequire.NoError(t, err)\n\ttempFile2, err := os.CreateTemp(t.TempDir(), \"tempFile2\")\n\trequire.NoError(t, err)\n\ttempFile3, err := os.CreateTemp(t.TempDir(), \"tempFile3\")\n\trequire.NoError(t, err)\n\tdefer tempFile1.Close()\n\tdefer tempFile2.Close()\n\tdefer tempFile3.Close()\n\ttempFile1.WriteString(`The quick brown fox jumps over the lazy dog`)\n\ttempFile2.WriteString(`hello world`)\n\ttempFile3.WriteString(`La-Li-Lu-Le-Lo`)\n\n\tt.Run(\"with one file\", func(t *testing.T) {\n\t\th := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {\n\t\t\tmediaType, params, err := mime.ParseMediaType(r.Header.Get(\"Content-Type\"))\n\t\t\tif !assert.NoError(t, err) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tassert.True(t, strings.HasPrefix(mediaType, \"multipart/\"))\n\n\t\t\tmr := multipart.NewReader(r.Body, params[\"boundary\"])\n\t\t\tfor {\n\t\t\t\tp, err := mr.NextPart()\n\t\t\t\tif err == io.EOF {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tif !assert.NoError(t, err) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tslurp, err := io.ReadAll(p)\n\t\t\t\tif !assert.NoError(t, err) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tcontentDisposition := p.Header.Get(\"Content-Disposition\")\n\n\t\t\t\tif contentDisposition == `form-data; name=\"operations\"` {\n\t\t\t\t\tassert.JSONEq(t, `{\"query\":\"{ id }\",\"variables\":{\"file\":{}}}`, string(slurp))\n\t\t\t\t}\n\t\t\t\tif contentDisposition == `form-data; name=\"map\"` {\n\t\t\t\t\tassert.JSONEq(t, `{\"0\":[\"variables.file\"]}`, string(slurp))\n\t\t\t\t}\n\t\t\t\tif regexp.MustCompile(`form-data; name=\"0\"; filename=.*`).\n\t\t\t\t\tMatchString(contentDisposition) {\n\t\t\t\t\tassert.Equal(t, `text/plain; charset=utf-8`, p.Header.Get(\"Content-Type\"))\n\t\t\t\t\tassert.EqualValues(t, `The quick brown fox jumps over the lazy dog`, slurp)\n\t\t\t\t}\n\t\t\t}\n\t\t\tw.Write([]byte(`{}`))\n\t\t})\n\n\t\tc := client.New(h)\n\n\t\tvar resp struct{}\n\t\tc.MustPost(\"{ id }\", &resp,\n\t\t\tclient.Var(\"file\", tempFile1),\n\t\t\tclient.WithFiles(),\n\t\t)\n\t})\n\n\tt.Run(\"with multiple files\", func(t *testing.T) {\n\t\th := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {\n\t\t\tmediaType, params, err := mime.ParseMediaType(r.Header.Get(\"Content-Type\"))\n\t\t\tif !assert.NoError(t, err) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tassert.True(t, strings.HasPrefix(mediaType, \"multipart/\"))\n\n\t\t\tmr := multipart.NewReader(r.Body, params[\"boundary\"])\n\t\t\tfor {\n\t\t\t\tp, err := mr.NextPart()\n\t\t\t\tif err == io.EOF {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tif !assert.NoError(t, err) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tslurp, err := io.ReadAll(p)\n\t\t\t\tif !assert.NoError(t, err) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tcontentDisposition := p.Header.Get(\"Content-Disposition\")\n\n\t\t\t\tif contentDisposition == `form-data; name=\"operations\"` {\n\t\t\t\t\tassert.JSONEq(\n\t\t\t\t\t\tt,\n\t\t\t\t\t\t`{\"query\":\"{ id }\",\"variables\":{\"input\":{\"files\":[{},{}]}}}`,\n\t\t\t\t\t\tstring(slurp),\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tif contentDisposition == `form-data; name=\"map\"` {\n\t\t\t\t\t// returns `{\"0\":[\"variables.input.files.0\"],\"1\":[\"variables.input.files.1\"]}`\n\t\t\t\t\t// but the order of file inputs is unpredictable between different OS systems\n\t\t\t\t\tassert.Contains(t, string(slurp), `{\"0\":`)\n\t\t\t\t\tassert.Contains(t, string(slurp), `[\"variables.input.files.0\"]`)\n\t\t\t\t\tassert.Contains(t, string(slurp), `,\"1\":`)\n\t\t\t\t\tassert.Contains(t, string(slurp), `[\"variables.input.files.1\"]`)\n\t\t\t\t\tassert.Contains(t, string(slurp), `}`)\n\t\t\t\t}\n\t\t\t\tif regexp.MustCompile(`form-data; name=\"[0,1]\"; filename=.*`).\n\t\t\t\t\tMatchString(contentDisposition) {\n\t\t\t\t\tassert.Equal(t, `text/plain; charset=utf-8`, p.Header.Get(\"Content-Type\"))\n\t\t\t\t\tassert.Contains(t, []string{\n\t\t\t\t\t\t`The quick brown fox jumps over the lazy dog`,\n\t\t\t\t\t\t`hello world`,\n\t\t\t\t\t}, string(slurp))\n\t\t\t\t}\n\t\t\t}\n\t\t\tw.Write([]byte(`{}`))\n\t\t})\n\n\t\tc := client.New(h)\n\n\t\tvar resp struct{}\n\t\tc.MustPost(\"{ id }\", &resp,\n\t\t\tclient.Var(\"input\", map[string]any{\n\t\t\t\t\"files\": []*os.File{tempFile1, tempFile2},\n\t\t\t}),\n\t\t\tclient.WithFiles(),\n\t\t)\n\t})\n\n\tt.Run(\"with multiple files across multiple variables\", func(t *testing.T) {\n\t\th := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {\n\t\t\tmediaType, params, err := mime.ParseMediaType(r.Header.Get(\"Content-Type\"))\n\t\t\tif !assert.NoError(t, err) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tassert.True(t, strings.HasPrefix(mediaType, \"multipart/\"))\n\n\t\t\tmr := multipart.NewReader(r.Body, params[\"boundary\"])\n\t\t\tfor {\n\t\t\t\tp, err := mr.NextPart()\n\t\t\t\tif err == io.EOF {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tif !assert.NoError(t, err) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tslurp, err := io.ReadAll(p)\n\t\t\t\tif !assert.NoError(t, err) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tcontentDisposition := p.Header.Get(\"Content-Disposition\")\n\n\t\t\t\tif contentDisposition == `form-data; name=\"operations\"` {\n\t\t\t\t\tassert.JSONEq(\n\t\t\t\t\t\tt,\n\t\t\t\t\t\t`{\"query\":\"{ id }\",\"variables\":{\"req\":{\"files\":[{},{}],\"foo\":{\"bar\":{}}}}}`,\n\t\t\t\t\t\tstring(slurp),\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tif contentDisposition == `form-data; name=\"map\"` {\n\t\t\t\t\t// returns\n\t\t\t\t\t// `{\"0\":[\"variables.req.files.0\"],\"1\":[\"variables.req.files.1\"],\"2\":[\"variables.req.foo.bar\"]}`\n\t\t\t\t\t// but the order of file inputs is unpredictable between different OS systems\n\t\t\t\t\tassert.Contains(t, string(slurp), `{\"0\":`)\n\t\t\t\t\tassert.Contains(t, string(slurp), `[\"variables.req.files.0\"]`)\n\t\t\t\t\tassert.Contains(t, string(slurp), `,\"1\":`)\n\t\t\t\t\tassert.Contains(t, string(slurp), `[\"variables.req.files.1\"]`)\n\t\t\t\t\tassert.Contains(t, string(slurp), `,\"2\":`)\n\t\t\t\t\tassert.Contains(t, string(slurp), `[\"variables.req.foo.bar\"]`)\n\t\t\t\t\tassert.Contains(t, string(slurp), `}`)\n\t\t\t\t}\n\t\t\t\tif regexp.MustCompile(`form-data; name=\"[0,1,2]\"; filename=.*`).\n\t\t\t\t\tMatchString(contentDisposition) {\n\t\t\t\t\tassert.Equal(t, `text/plain; charset=utf-8`, p.Header.Get(\"Content-Type\"))\n\t\t\t\t\tassert.Contains(t, []string{\n\t\t\t\t\t\t`The quick brown fox jumps over the lazy dog`,\n\t\t\t\t\t\t`La-Li-Lu-Le-Lo`,\n\t\t\t\t\t\t`hello world`,\n\t\t\t\t\t}, string(slurp))\n\t\t\t\t}\n\t\t\t}\n\t\t\tw.Write([]byte(`{}`))\n\t\t})\n\n\t\tc := client.New(h)\n\n\t\tvar resp struct{}\n\t\tc.MustPost(\"{ id }\", &resp,\n\t\t\tclient.Var(\"req\", map[string]any{\n\t\t\t\t\"files\": []*os.File{tempFile1, tempFile2},\n\t\t\t\t\"foo\": map[string]any{\n\t\t\t\t\t\"bar\": tempFile3,\n\t\t\t\t},\n\t\t\t}),\n\t\t\tclient.WithFiles(),\n\t\t)\n\t})\n\n\tt.Run(\"with multiple files and file reuse\", func(t *testing.T) {\n\t\th := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {\n\t\t\tmediaType, params, err := mime.ParseMediaType(r.Header.Get(\"Content-Type\"))\n\t\t\tif !assert.NoError(t, err) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tassert.True(t, strings.HasPrefix(mediaType, \"multipart/\"))\n\n\t\t\tmr := multipart.NewReader(r.Body, params[\"boundary\"])\n\t\t\tfor {\n\t\t\t\tp, err := mr.NextPart()\n\t\t\t\tif err == io.EOF {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tif !assert.NoError(t, err) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tslurp, err := io.ReadAll(p)\n\t\t\t\tif !assert.NoError(t, err) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tcontentDisposition := p.Header.Get(\"Content-Disposition\")\n\n\t\t\t\tif contentDisposition == `form-data; name=\"operations\"` {\n\t\t\t\t\tassert.JSONEq(\n\t\t\t\t\t\tt,\n\t\t\t\t\t\t`{\"query\":\"{ id }\",\"variables\":{\"files\":[{},{},{}]}}`,\n\t\t\t\t\t\tstring(slurp),\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tif contentDisposition == `form-data; name=\"map\"` {\n\t\t\t\t\tassert.JSONEq(\n\t\t\t\t\t\tt,\n\t\t\t\t\t\t`{\"0\":[\"variables.files.0\",\"variables.files.2\"],\"1\":[\"variables.files.1\"]}`,\n\t\t\t\t\t\tstring(slurp),\n\t\t\t\t\t)\n\t\t\t\t\t// returns\n\t\t\t\t\t// `{\"0\":[\"variables.files.0\",\"variables.files.2\"],\"1\":[\"variables.files.1\"]}`\n\t\t\t\t\t// but the order of file inputs is unpredictable between different OS systems\n\t\t\t\t\tassert.Contains(t, string(slurp), `{\"0\":`)\n\t\t\t\t\tassert.Contains(t, string(slurp), `[\"variables.files.0\"`)\n\t\t\t\t\tassert.Contains(t, string(slurp), `,\"1\":`)\n\t\t\t\t\tassert.Contains(t, string(slurp), `\"variables.files.1\"]`)\n\t\t\t\t\tassert.Contains(t, string(slurp), `\"variables.files.2\"]`)\n\t\t\t\t\tassert.NotContains(t, string(slurp), `,\"2\":`)\n\t\t\t\t\tassert.Contains(t, string(slurp), `}`)\n\t\t\t\t}\n\t\t\t\tif regexp.MustCompile(`form-data; name=\"[0,1]\"; filename=.*`).\n\t\t\t\t\tMatchString(contentDisposition) {\n\t\t\t\t\tassert.Equal(t, `text/plain; charset=utf-8`, p.Header.Get(\"Content-Type\"))\n\t\t\t\t\tassert.Contains(t, []string{\n\t\t\t\t\t\t`The quick brown fox jumps over the lazy dog`,\n\t\t\t\t\t\t`hello world`,\n\t\t\t\t\t}, string(slurp))\n\t\t\t\t}\n\t\t\t\tassert.False(\n\t\t\t\t\tt,\n\t\t\t\t\tregexp.MustCompile(`form-data; name=\"2\"; filename=.*`).\n\t\t\t\t\t\tMatchString(contentDisposition),\n\t\t\t\t)\n\t\t\t}\n\t\t\tw.Write([]byte(`{}`))\n\t\t})\n\n\t\tc := client.New(h)\n\n\t\tvar resp struct{}\n\t\tc.MustPost(\"{ id }\", &resp,\n\t\t\tclient.Var(\"files\", []*os.File{tempFile1, tempFile2, tempFile1}),\n\t\t\tclient.WithFiles(),\n\t\t)\n\t})\n}\n"
  },
  {
    "path": "codegen/args.go",
    "content": "package codegen\n\nimport (\n\t\"fmt\"\n\t\"go/types\"\n\t\"strings\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\n\t\"github.com/99designs/gqlgen/codegen/config\"\n\t\"github.com/99designs/gqlgen/codegen/templates\"\n)\n\ntype ArgSet struct {\n\tArgs     []*FieldArgument\n\tFuncDecl string\n}\n\ntype FieldArgument struct {\n\t*ast.ArgumentDefinition\n\tTypeReference                  *config.TypeReference\n\tVarName                        string  // The name of the var in go\n\tObject                         *Object // A link back to the parent object\n\tDefault                        any     // The default value\n\tDirectives                     []*Directive\n\tValue                          any // value set in Data\n\tCallArgumentDirectivesWithNull bool\n}\n\n// ImplDirectives get not SkipRuntime and location ARGUMENT_DEFINITION directive\nfunc (f *FieldArgument) ImplDirectives() []*Directive {\n\td := make([]*Directive, 0)\n\tfor i := range f.Directives {\n\t\tif !f.Directives[i].SkipRuntime &&\n\t\t\tf.Directives[i].IsLocation(ast.LocationArgumentDefinition) {\n\t\t\td = append(d, f.Directives[i])\n\t\t}\n\t}\n\n\treturn d\n}\n\nfunc (f *FieldArgument) DirectiveObjName() string {\n\treturn \"rawArgs\"\n}\n\nfunc (f *FieldArgument) Stream() bool {\n\treturn f.Object != nil && f.Object.Stream\n}\n\nfunc (b *builder) buildArg(obj *Object, arg *ast.ArgumentDefinition) (*FieldArgument, error) {\n\ttr, err := b.Binder.TypeReference(arg.Type, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\targDirs, err := b.getDirectives(arg.Directives)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tnewArg := FieldArgument{\n\t\tArgumentDefinition:             arg,\n\t\tTypeReference:                  tr,\n\t\tObject:                         obj,\n\t\tVarName:                        templates.ToGoPrivate(arg.Name),\n\t\tDirectives:                     argDirs,\n\t\tCallArgumentDirectivesWithNull: b.Config.CallArgumentDirectivesWithNull,\n\t}\n\n\tif arg.DefaultValue != nil {\n\t\tnewArg.Default, err = arg.DefaultValue.Value(nil)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"default value is not valid: %w\", err)\n\t\t}\n\t}\n\n\treturn &newArg, nil\n}\n\nfunc (b *builder) bindArgs(\n\tfield *Field,\n\tsig *types.Signature,\n\tparams *types.Tuple,\n) ([]*FieldArgument, error) {\n\tn := params.Len()\n\tnewArgs := make([]*FieldArgument, 0, len(field.Args))\n\t// Accept variadic methods (i.e. have optional parameters).\n\tif params.Len() > len(field.Args) && sig.Variadic() {\n\t\tn = len(field.Args)\n\t}\nnextArg:\n\tfor j := 0; j < n; j++ {\n\t\tparam := params.At(j)\n\t\tfor _, oldArg := range field.Args {\n\t\t\tif strings.EqualFold(oldArg.Name, param.Name()) {\n\t\t\t\ttr, err := b.Binder.TypeReference(oldArg.Type, param.Type())\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\toldArg.TypeReference = tr\n\n\t\t\t\tnewArgs = append(newArgs, oldArg)\n\t\t\t\tcontinue nextArg\n\t\t\t}\n\t\t}\n\n\t\t// no matching arg found, abort\n\t\treturn nil, fmt.Errorf(\"arg %s not in schema\", param.Name())\n\t}\n\n\treturn newArgs, nil\n}\n\nfunc (d *Data) Args() map[string][]*FieldArgument {\n\tret := map[string][]*FieldArgument{}\n\tfor _, o := range d.Objects {\n\t\tfor _, f := range o.Fields {\n\t\t\tif len(f.Args) > 0 {\n\t\t\t\tret[f.ArgsFunc()] = f.Args\n\t\t\t}\n\t\t}\n\t}\n\n\tfor _, directive := range d.Directives() {\n\t\tif len(directive.Args) > 0 {\n\t\t\tret[directive.ArgsFunc()] = directive.Args\n\t\t}\n\t}\n\treturn ret\n}\n"
  },
  {
    "path": "codegen/args.gotpl",
    "content": "{{ $useFunctionSyntaxForExecutionContext := .Config.UseFunctionSyntaxForExecutionContext }}\n\n{{ range $name, $args := .Args }}\n{{ if $useFunctionSyntaxForExecutionContext -}}\nfunc {{ $name }}(ctx context.Context, ec *executionContext, rawArgs map[string]any) (map[string]any, error) {\n{{- else -}}\nfunc (ec *executionContext) {{ $name }}(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n{{- end }}\n\tvar err error\n\targs := map[string]any{}\n\n\t{{- range $i, $arg := . }}\n\t\t{{ if $arg.ImplDirectives }}\n\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\targ{{$i}}, err := {{ $name }}{{$arg.Name | go}}(ctx, ec, rawArgs)\n\t\t\t{{- else -}}\n\t\t\targ{{$i}}, err := ec.{{ $name }}{{$arg.Name | go}}(ctx, rawArgs)\n\t\t\t{{- end }}\n\t\t{{- else -}}\n\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\targ{{$i}}, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, {{$arg.Name|quote}}, {{ $arg.TypeReference.UnmarshalFunc }})\n\t\t\t{{- else -}}\n\t\t\targ{{$i}}, err := graphql.ProcessArgField(ctx, rawArgs, {{$arg.Name|quote}}, ec.{{ $arg.TypeReference.UnmarshalFunc }})\n\t\t\t{{- end }}\n\t\t{{- end }}\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\targs[{{$arg.Name|quote}}] = arg{{$i}}\n\t{{- end }}\n\treturn args, nil\n}\n\n\t{{- range $i, $arg := . }}\n\t\t{{ if not $arg.ImplDirectives -}}\n\t\t\t{{- continue -}}\n\t\t{{- end }}\n\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\tfunc {{ $name }}{{$arg.Name | go}}(\n\t\t\tctx context.Context,\n\t\t\tec *executionContext,\n\t\t\trawArgs map[string]any,\n\t\t) ({{ $arg.TypeReference.GO | ref}}, error) {\n\t\t{{- else -}}\n\t\tfunc (ec *executionContext) {{ $name }}{{$arg.Name | go}}(\n\t\t\tctx context.Context,\n\t\t\trawArgs map[string]any,\n\t\t) ({{ $arg.TypeReference.GO | ref}}, error) {\n\t\t{{- end }}\n\t\t\t{{- if not .CallArgumentDirectivesWithNull}}\n\t\t\t\t{{- /*\n\t\t\t\tWe won't call the directive if the argument is null.\n\t\t\t\tSet call_argument_directives_with_null to true to call directives\n\t\t\t\teven if the argument is null.\n\t\t\t\t*/ -}}\n\t\t\t\tif _, ok := rawArgs[{{$arg.Name|quote}}]; !ok {\n\t\t\t\t\tvar zeroVal {{ $arg.TypeReference.GO | ref}}\n\t\t\t\t\treturn zeroVal, nil\n\t\t\t\t}\n\t\t\t{{end}}\n\t\t\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField({{$arg.Name|quote}}))\n\t\t\t{{- if $arg.ImplDirectives }}\n\t\t\t\tdirective0 := func(ctx context.Context) (any, error) {\n\t\t\t\t\ttmp, ok := rawArgs[{{$arg.Name|quote}}]\n\t\t\t\t\tif !ok {\n\t\t\t\t\t\tvar zeroVal {{ $arg.TypeReference.GO | ref}}\n\t\t\t\t\t\treturn zeroVal, nil\n\t\t\t\t\t}\n\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\treturn {{ $arg.TypeReference.UnmarshalFunc }}(ctx, ec, tmp)\n\t\t\t\t\t{{- else -}}\n\t\t\t\t\treturn ec.{{ $arg.TypeReference.UnmarshalFunc }}(ctx, tmp)\n\t\t\t\t\t{{- end }}\n\t\t\t\t}\n\t\t\t\t{{ template \"implDirectives\" (dict \"Field\" $arg \"UseFunctionSyntaxForExecutionContext\" $useFunctionSyntaxForExecutionContext) }}\n\t\t\t\ttmp, err := directive{{$arg.ImplDirectives|len}}(ctx)\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal {{ $arg.TypeReference.GO | ref}}\n\t\t\t\t\treturn zeroVal, graphql.ErrorOnPath(ctx, err)\n\t\t\t\t}\n\t\t\t\tif data, ok := tmp.({{ $arg.TypeReference.GO | ref }}) ; ok {\n\t\t\t\t\treturn data, nil\n\t\t\t\t{{- if $arg.TypeReference.IsNilable }}\n\t\t\t\t\t} else if tmp == nil {\n\t\t\t\t\t\tvar zeroVal {{ $arg.TypeReference.GO | ref}}\n\t\t\t\t\t\treturn zeroVal, nil\n\t\t\t\t{{- end }}\n\t\t\t\t} else {\n\t\t\t\t\tvar zeroVal {{ $arg.TypeReference.GO | ref}}\n\t\t\t\t\treturn zeroVal, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from directive, should be {{ $arg.TypeReference.GO }}`, tmp))\n\t\t\t\t}\n\t\t\t{{- else }}\n\t\t\t\tif tmp, ok := rawArgs[{{$arg.Name|quote}}]; ok {\n\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\treturn {{ $arg.TypeReference.UnmarshalFunc }}(ctx, ec, tmp)\n\t\t\t\t\t{{- else -}}\n\t\t\t\t\treturn ec.{{ $arg.TypeReference.UnmarshalFunc }}(ctx, tmp)\n\t\t\t\t\t{{- end }}\n\t\t\t\t}\n\n\t\t\t\tvar zeroVal {{ $arg.TypeReference.GO | ref}}\n\t\t\t\treturn zeroVal, nil\n\t\t\t{{- end }}\n\t\t}\n\t{{end}}\n{{ end }}\n"
  },
  {
    "path": "codegen/autobind_test.go",
    "content": "package codegen\n\nimport (\n\t\"go/types\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/codegen/config\"\n)\n\nfunc TestFindBindTarget_Autobind(t *testing.T) {\n\tinput := `\npackage test\n\ntype Model struct {\n\tName string\n}\n\nfunc (m Model) GetName() string {\n\treturn m.Name\n}\n\nfunc (m Model) HasName() bool {\n\treturn true\n}\n`\n\tscope, err := parseScope(input, \"test\")\n\trequire.NoError(t, err)\n\n\tmodel := scope.Lookup(\"Model\").Type().(*types.Named)\n\n\ttests := []struct {\n\t\tName                string\n\t\tField               string\n\t\tAutoBindGetterHaser bool\n\t\tExpected            string // Expected method/field name\n\t}{\n\t\t{\n\t\t\tName:                \"Autobind enabled, should find GetName\",\n\t\t\tField:               \"name\",\n\t\t\tAutoBindGetterHaser: true,\n\t\t\tExpected:            \"GetName\",\n\t\t},\n\t\t{\n\t\t\tName:                \"Autobind disabled, should find Name field\",\n\t\t\tField:               \"name\",\n\t\t\tAutoBindGetterHaser: false,\n\t\t\tExpected:            \"Name\",\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.Name, func(t *testing.T) {\n\t\t\tb := builder{Config: &config.Config{}}\n\t\t\ttarget, err := b.findBindTarget(model, tt.Field, tt.AutoBindGetterHaser)\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.NotNil(t, target)\n\t\t\trequire.Equal(t, tt.Expected, target.Name())\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "codegen/complexity.go",
    "content": "package codegen\n\nfunc (o *Object) UniqueFields() map[string][]*Field {\n\tm := map[string][]*Field{}\n\n\tfor _, f := range o.Fields {\n\t\tm[f.GoFieldName] = append(m[f.GoFieldName], f)\n\t}\n\n\treturn m\n}\n"
  },
  {
    "path": "codegen/config/binder.go",
    "content": "package config\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"go/token\"\n\t\"go/types\"\n\t\"strings\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\t\"golang.org/x/tools/go/packages\"\n\n\t\"github.com/99designs/gqlgen/codegen/templates\"\n\t\"github.com/99designs/gqlgen/internal/code\"\n)\n\nvar ErrTypeNotFound = errors.New(\"unable to find type\")\n\n// Binder connects graphql types to golang types using static analysis\ntype Binder struct {\n\tpkgs        *code.Packages\n\tschema      *ast.Schema\n\tcfg         *Config\n\ttctx        *types.Context\n\tReferences  []*TypeReference\n\tSawInvalid  bool\n\tobjectCache map[string]map[string]types.Object\n}\n\nfunc (c *Config) NewBinder() *Binder {\n\treturn &Binder{\n\t\tpkgs:   c.Packages,\n\t\tschema: c.Schema,\n\t\tcfg:    c,\n\t}\n}\n\nfunc (b *Binder) TypePosition(typ types.Type) token.Position {\n\tnamed, isNamed := code.Unalias(typ).(*types.Named)\n\tif !isNamed {\n\t\treturn token.Position{\n\t\t\tFilename: \"unknown\",\n\t\t}\n\t}\n\n\treturn b.ObjectPosition(named.Obj())\n}\n\nfunc (b *Binder) ObjectPosition(typ types.Object) token.Position {\n\tif typ == nil {\n\t\treturn token.Position{\n\t\t\tFilename: \"unknown\",\n\t\t}\n\t}\n\tpkg := b.pkgs.Load(typ.Pkg().Path())\n\treturn pkg.Fset.Position(typ.Pos())\n}\n\nfunc (b *Binder) FindTypeFromName(name string) (types.Type, error) {\n\tpkgName, typeName := code.PkgAndType(name)\n\treturn b.FindType(pkgName, typeName)\n}\n\nfunc (b *Binder) FindType(pkgName, typeName string) (types.Type, error) {\n\tif pkgName == \"\" {\n\t\tif typeName == \"map[string]any\" || typeName == \"map[string]interface{}\" {\n\t\t\treturn MapType, nil\n\t\t}\n\n\t\tif typeName == \"any\" || typeName == \"interface{}\" {\n\t\t\treturn InterfaceType, nil\n\t\t}\n\t}\n\n\tobj, err := b.FindObject(pkgName, typeName)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tt := code.Unalias(obj.Type())\n\tif _, isFunc := obj.(*types.Func); isFunc {\n\t\treturn code.Unalias(t.(*types.Signature).Params().At(0).Type()), nil\n\t}\n\treturn t, nil\n}\n\nfunc (b *Binder) InstantiateType(orig types.Type, targs []types.Type) (types.Type, error) {\n\tif b.tctx == nil {\n\t\tb.tctx = types.NewContext()\n\t}\n\n\treturn types.Instantiate(b.tctx, orig, targs, false)\n}\n\nvar (\n\tMapType       = types.NewMap(types.Typ[types.String], types.Universe.Lookup(\"any\").Type())\n\tInterfaceType = types.Universe.Lookup(\"any\").Type()\n)\n\nfunc (b *Binder) DefaultUserObject(name string) (types.Type, error) {\n\tmodels := b.cfg.Models[name].Model\n\tif len(models) == 0 {\n\t\treturn nil, fmt.Errorf(\"%s not found in typemap\", name)\n\t}\n\n\tif models[0] == \"map[string]any\" || models[0] == \"map[string]interface{}\" {\n\t\treturn MapType, nil\n\t}\n\n\tif models[0] == \"any\" || models[0] == \"interface{}\" {\n\t\treturn InterfaceType, nil\n\t}\n\n\tpkgName, typeName := code.PkgAndType(models[0])\n\tif pkgName == \"\" {\n\t\treturn nil, fmt.Errorf(\"missing package name for %s\", name)\n\t}\n\n\tobj, err := b.FindObject(pkgName, typeName)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn code.Unalias(obj.Type()), nil\n}\n\nfunc (b *Binder) FindObject(pkgName, typeName string) (types.Object, error) {\n\tif pkgName == \"\" {\n\t\treturn nil, fmt.Errorf(\"package cannot be nil in FindObject for type: %s\", typeName)\n\t}\n\n\tpkg := b.pkgs.LoadWithTypes(pkgName)\n\tif pkg == nil {\n\t\terr := b.pkgs.Errors()\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"package could not be loaded: %s.%s: %w\", pkgName, typeName, err)\n\t\t}\n\t\treturn nil, fmt.Errorf(\"required package was not loaded: %s.%s\", pkgName, typeName)\n\t}\n\n\tif b.objectCache == nil {\n\t\tb.objectCache = make(map[string]map[string]types.Object, b.pkgs.Count())\n\t}\n\n\tdefsIndex, ok := b.objectCache[pkgName]\n\tif !ok {\n\t\tdefsIndex = indexDefs(pkg)\n\t\tb.objectCache[pkgName] = defsIndex\n\t}\n\n\t// function based marshalers take precedence\n\tif val, ok := defsIndex[\"Marshal\"+typeName]; ok {\n\t\treturn val, nil\n\t}\n\n\tif val, ok := defsIndex[typeName]; ok {\n\t\treturn val, nil\n\t}\n\n\treturn nil, fmt.Errorf(\"%w: %s.%s\", ErrTypeNotFound, pkgName, typeName)\n}\n\nfunc indexDefs(pkg *packages.Package) map[string]types.Object {\n\t// Pre-allocate with capacity to avoid map rehashing\n\tres := make(map[string]types.Object, len(pkg.TypesInfo.Defs))\n\n\tscope := pkg.Types.Scope()\n\tfor astNode, def := range pkg.TypesInfo.Defs {\n\t\t// only look at defs in the top scope\n\t\tif def == nil {\n\t\t\tcontinue\n\t\t}\n\t\tparent := def.Parent()\n\t\tif parent == nil || parent != scope {\n\t\t\tcontinue\n\t\t}\n\n\t\tif _, ok := res[astNode.Name]; !ok {\n\t\t\t// The above check may not be really needed, it is only here to have a consistent\n\t\t\t// behavior with previous implementation of FindObject() function which only honored the\n\t\t\t// first inclusion of a def. If this is still needed, we can consider something like\n\t\t\t// sync.Map.LoadOrStore() to avoid two lookups.\n\t\t\tres[astNode.Name] = def\n\t\t}\n\t}\n\n\treturn res\n}\n\nfunc (b *Binder) PointerTo(ref *TypeReference) *TypeReference {\n\tnewRef := *ref\n\tnewRef.GO = types.NewPointer(ref.GO)\n\tb.References = append(b.References, &newRef)\n\treturn &newRef\n}\n\n// TypeReference is used by args and field types. The Definition can refer to both input and output\n// types.\ntype TypeReference struct {\n\tDefinition               *ast.Definition\n\tGQL                      *ast.Type\n\tGO                       types.Type  // Type of the field being bound. Could be a pointer or a value type of Target.\n\tTarget                   types.Type  // The actual type that we know how to bind to. May require pointer juggling when traversing to fields.\n\tCastType                 types.Type  // Before calling marshalling functions cast from/to this base type\n\tMarshaler                *types.Func // When using external marshalling functions this will point to the Marshal function\n\tUnmarshaler              *types.Func // When using external marshalling functions this will point to the Unmarshal function\n\tIsMarshaler              bool        // Does the type implement graphql.Marshaler and graphql.Unmarshaler\n\tIsOmittable              bool        // Is the type wrapped with Omittable\n\tIsContext                bool        // Is the Marshaler/Unmarshaller the context version; applies to either the method or interface variety.\n\tPointersInUnmarshalInput bool        // Inverse values and pointers in return.\n\tIsRoot                   bool        // Is the type a root level definition such as Query, Mutation or Subscription\n\tEnumValues               []EnumValueReference\n}\n\nfunc (ref *TypeReference) Elem() *TypeReference {\n\tif p, isPtr := ref.GO.(*types.Pointer); isPtr {\n\t\tnewRef := *ref\n\t\tnewRef.GO = p.Elem()\n\t\treturn &newRef\n\t}\n\n\tif ref.IsSlice() {\n\t\tnewRef := *ref\n\t\tnewRef.GO = ref.GO.(*types.Slice).Elem()\n\t\tnewRef.GQL = ref.GQL.Elem\n\t\treturn &newRef\n\t}\n\treturn nil\n}\n\nfunc (ref *TypeReference) IsPtr() bool {\n\t_, isPtr := ref.GO.(*types.Pointer)\n\treturn isPtr\n}\n\n// fix for https://github.com/golang/go/issues/31103 may make it possible to remove this (may still\n// be useful)\nfunc (ref *TypeReference) IsPtrToPtr() bool {\n\tif p, isPtr := ref.GO.(*types.Pointer); isPtr {\n\t\t_, isPtr := p.Elem().(*types.Pointer)\n\t\treturn isPtr\n\t}\n\treturn false\n}\n\nfunc (ref *TypeReference) IsNilable() bool {\n\treturn IsNilable(ref.GO)\n}\n\nfunc (ref *TypeReference) IsSlice() bool {\n\t_, isSlice := ref.GO.(*types.Slice)\n\treturn ref.GQL.Elem != nil && isSlice\n}\n\nfunc (ref *TypeReference) IsPtrToSlice() bool {\n\tif ref.IsPtr() {\n\t\t_, isPointerToSlice := ref.GO.(*types.Pointer).Elem().(*types.Slice)\n\t\treturn isPointerToSlice\n\t}\n\treturn false\n}\n\nfunc (ref *TypeReference) IsPtrToIntf() bool {\n\tif ref.IsPtr() {\n\t\t_, isPointerToInterface := types.Unalias(ref.GO.(*types.Pointer).Elem()).(*types.Interface)\n\t\treturn isPointerToInterface\n\t}\n\treturn false\n}\n\nfunc (ref *TypeReference) IsNamed() bool {\n\t_, ok := ref.GO.(*types.Named)\n\treturn ok\n}\n\nfunc (ref *TypeReference) IsStruct() bool {\n\t_, ok := ref.GO.Underlying().(*types.Struct)\n\treturn ok\n}\n\nfunc (ref *TypeReference) IsScalar() bool {\n\treturn ref.Definition.Kind == ast.Scalar\n}\n\nfunc (ref *TypeReference) IsMap() bool {\n\treturn ref.GO == MapType\n}\n\nfunc (ref *TypeReference) UniquenessKey() string {\n\tnullability := \"O\"\n\tif ref.GQL.NonNull {\n\t\tnullability = \"N\"\n\t}\n\n\telemNullability := \"\"\n\tif ref.GQL.Elem != nil && ref.GQL.Elem.NonNull {\n\t\t// Fix for #896\n\t\telemNullability = \"ᚄ\"\n\t}\n\treturn nullability + ref.Definition.Name + \"2\" + templates.TypeIdentifier(\n\t\tref.GO,\n\t) + elemNullability\n}\n\nfunc (ref *TypeReference) MarshalFunc() string {\n\tif ref.Definition == nil {\n\t\tpanic(errors.New(\"Definition missing for \" + ref.GQL.Name()))\n\t}\n\n\tif ref.Definition.Kind == ast.InputObject {\n\t\treturn \"\"\n\t}\n\n\treturn \"marshal\" + ref.UniquenessKey()\n}\n\nfunc (ref *TypeReference) MarshalFuncFunctionSyntax() string {\n\treturn ref.MarshalFunc() + \"F\"\n}\n\nfunc (ref *TypeReference) UnmarshalFunc() string {\n\tif ref.Definition == nil {\n\t\tpanic(errors.New(\"Definition missing for \" + ref.GQL.Name()))\n\t}\n\n\tif !ref.Definition.IsInputType() {\n\t\treturn \"\"\n\t}\n\n\treturn \"unmarshal\" + ref.UniquenessKey()\n}\n\nfunc (ref *TypeReference) UnmarshalFuncFunctionSyntax() string {\n\treturn ref.UnmarshalFunc() + \"F\"\n}\n\nfunc (ref *TypeReference) IsTargetNilable() bool {\n\treturn IsNilable(ref.Target)\n}\n\nfunc (ref *TypeReference) HasEnumValues() bool {\n\treturn len(ref.EnumValues) > 0\n}\n\nfunc (b *Binder) PushRef(ret *TypeReference) {\n\tb.References = append(b.References, ret)\n}\n\nfunc isMap(t types.Type) bool {\n\tif t == nil {\n\t\treturn true\n\t}\n\t_, ok := t.(*types.Map)\n\treturn ok\n}\n\nfunc isIntf(t types.Type) bool {\n\tif t == nil {\n\t\treturn true\n\t}\n\t_, ok := types.Unalias(t).(*types.Interface)\n\treturn ok\n}\n\nfunc unwrapOmittable(t types.Type) (types.Type, bool) {\n\tif t == nil {\n\t\treturn nil, false\n\t}\n\tnamed, ok := t.(*types.Named)\n\tif !ok {\n\t\treturn t, false\n\t}\n\tif named.Origin().String() != \"github.com/99designs/gqlgen/graphql.Omittable[T any]\" {\n\t\treturn t, false\n\t}\n\treturn named.TypeArgs().At(0), true\n}\n\nfunc (b *Binder) TypeReference(\n\tschemaType *ast.Type,\n\tbindTarget types.Type,\n) (ret *TypeReference, err error) {\n\tif bindTarget != nil {\n\t\tbindTarget = code.Unalias(bindTarget)\n\t}\n\tif innerType, ok := unwrapOmittable(bindTarget); ok {\n\t\tif schemaType.NonNull {\n\t\t\treturn nil, fmt.Errorf(\"%s is wrapped with Omittable but non-null\", schemaType.Name())\n\t\t}\n\n\t\tref, err := b.TypeReference(schemaType, innerType)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tref.IsOmittable = true\n\t\treturn ref, err\n\t}\n\n\tif !isValid(bindTarget) {\n\t\tb.SawInvalid = true\n\t\treturn nil, fmt.Errorf(\"%s has an invalid type\", schemaType.Name())\n\t}\n\n\tvar pkgName, typeName string\n\tdef := b.schema.Types[schemaType.Name()]\n\tdefer func() {\n\t\tif err == nil && ret != nil {\n\t\t\tb.PushRef(ret)\n\t\t}\n\t}()\n\n\tif len(b.cfg.Models[schemaType.Name()].Model) == 0 {\n\t\treturn nil, fmt.Errorf(\"%s was not found\", schemaType.Name())\n\t}\n\n\tfor _, model := range b.cfg.Models[schemaType.Name()].Model {\n\t\tif model == \"map[string]any\" || model == \"map[string]interface{}\" {\n\t\t\tif !isMap(bindTarget) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn &TypeReference{\n\t\t\t\tDefinition: def,\n\t\t\t\tGQL:        schemaType,\n\t\t\t\tGO:         b.CopyModifiersFromAst(schemaType, MapType),\n\t\t\t\tIsRoot:     b.cfg.IsRoot(def),\n\t\t\t}, nil\n\t\t}\n\n\t\tif model == \"any\" || model == \"interface{}\" {\n\t\t\tif !isIntf(bindTarget) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn &TypeReference{\n\t\t\t\tDefinition: def,\n\t\t\t\tGQL:        schemaType,\n\t\t\t\tGO:         b.CopyModifiersFromAst(schemaType, InterfaceType),\n\t\t\t\tIsRoot:     b.cfg.IsRoot(def),\n\t\t\t}, nil\n\t\t}\n\n\t\tpkgName, typeName = code.PkgAndType(model)\n\t\tif pkgName == \"\" {\n\t\t\treturn nil, fmt.Errorf(\"missing package name for %s\", schemaType.Name())\n\t\t}\n\n\t\tref := &TypeReference{\n\t\t\tDefinition: def,\n\t\t\tGQL:        schemaType,\n\t\t\tIsRoot:     b.cfg.IsRoot(def),\n\t\t}\n\n\t\tobj, err := b.FindObject(pkgName, typeName)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tt := code.Unalias(obj.Type())\n\t\tif values := b.enumValues(def); len(values) > 0 {\n\t\t\terr = b.enumReference(ref, obj, values)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t} else if fun, isFunc := obj.(*types.Func); isFunc {\n\t\t\tref.GO = code.Unalias(t.(*types.Signature).Params().At(0).Type())\n\t\t\tref.IsContext = code.Unalias(t.(*types.Signature).Results().At(0).Type()).\n\t\t\t\tString() ==\n\t\t\t\t\"github.com/99designs/gqlgen/graphql.ContextMarshaler\"\n\t\t\tref.Marshaler = fun\n\t\t\tref.Unmarshaler = types.NewFunc(0, fun.Pkg(), \"Unmarshal\"+typeName, nil)\n\t\t} else if hasMethod(t, \"MarshalGQLContext\") && hasMethod(t, \"UnmarshalGQLContext\") {\n\t\t\tref.GO = t\n\t\t\tref.IsContext = true\n\t\t\tref.IsMarshaler = true\n\t\t} else if hasMethod(t, \"MarshalGQL\") && hasMethod(t, \"UnmarshalGQL\") {\n\t\t\tref.GO = t\n\t\t\tref.IsMarshaler = true\n\t\t} else if underlying := basicUnderlying(t); def.IsLeafType() && underlying != nil && underlying.Kind() == types.String {\n\t\t\t// TODO delete before v1. Backwards compatibility case for named types wrapping strings\n\t\t\t// (see #595)\n\n\t\t\tref.GO = t\n\t\t\tref.CastType = underlying\n\n\t\t\tunderlyingRef, err := b.TypeReference(&ast.Type{NamedType: \"String\"}, nil)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tref.Marshaler = underlyingRef.Marshaler\n\t\t\tref.Unmarshaler = underlyingRef.Unmarshaler\n\t\t} else {\n\t\t\tref.GO = t\n\t\t}\n\n\t\tref.Target = ref.GO\n\t\tref.GO = b.CopyModifiersFromAst(schemaType, ref.GO)\n\n\t\tif bindTarget != nil {\n\t\t\tif err = code.CompatibleTypes(ref.GO, bindTarget); err != nil {\n\t\t\t\t// if the bind type implements the\n\t\t\t\t// graphql.ContextMarshaler/graphql.ContextUnmarshaler/graphql.Marshaler/graphql.Unmarshaler\n\t\t\t\t// interface, we can use it\n\t\t\t\tif hasMethod(bindTarget, \"MarshalGQLContext\") &&\n\t\t\t\t\thasMethod(bindTarget, \"UnmarshalGQLContext\") {\n\t\t\t\t\tref.IsContext = true\n\t\t\t\t\tref.IsMarshaler = true\n\t\t\t\t\tref.Marshaler = nil\n\t\t\t\t\tref.Unmarshaler = nil\n\t\t\t\t} else if hasMethod(bindTarget, \"MarshalGQL\") && hasMethod(bindTarget, \"UnmarshalGQL\") {\n\t\t\t\t\tref.IsContext = false\n\t\t\t\t\tref.IsMarshaler = true\n\t\t\t\t\tref.Marshaler = nil\n\t\t\t\t\tref.Unmarshaler = nil\n\t\t\t\t} else {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\tref.GO = bindTarget\n\t\t}\n\n\t\tref.PointersInUnmarshalInput = b.cfg.ReturnPointersInUnmarshalInput\n\n\t\treturn ref, nil\n\t}\n\n\treturn nil, fmt.Errorf(\"%s is incompatible with %s\", schemaType.Name(), bindTarget.String())\n}\n\nfunc isValid(t types.Type) bool {\n\tbasic, isBasic := t.(*types.Basic)\n\tif !isBasic {\n\t\treturn true\n\t}\n\treturn basic.Kind() != types.Invalid\n}\n\nfunc (b *Binder) CopyModifiersFromAst(t *ast.Type, base types.Type) types.Type {\n\tbase = types.Unalias(base)\n\tif t.Elem != nil {\n\t\tchild := b.CopyModifiersFromAst(t.Elem, base)\n\t\tif _, isStruct := child.Underlying().(*types.Struct); isStruct &&\n\t\t\t!b.cfg.OmitSliceElementPointers {\n\t\t\tchild = types.NewPointer(child)\n\t\t}\n\t\treturn types.NewSlice(child)\n\t}\n\n\tvar isInterface bool\n\tif named, ok := base.(*types.Named); ok {\n\t\t_, isInterface = named.Underlying().(*types.Interface)\n\t}\n\n\tif !isInterface && !IsNilable(base) && !t.NonNull {\n\t\treturn types.NewPointer(base)\n\t}\n\n\treturn base\n}\n\nfunc IsNilable(t types.Type) bool {\n\t// Note that we use types.Unalias rather than code.Unalias here\n\t// because we want to always check the underlying type.\n\t// code.Unalias only unwraps aliases in Go 1.23\n\tt = types.Unalias(t)\n\tif namedType, isNamed := t.(*types.Named); isNamed {\n\t\treturn IsNilable(namedType.Underlying())\n\t}\n\t_, isPtr := t.(*types.Pointer)\n\t_, isNilableMap := t.(*types.Map)\n\t_, isInterface := t.(*types.Interface)\n\t_, isSlice := t.(*types.Slice)\n\t_, isChan := t.(*types.Chan)\n\treturn isPtr || isNilableMap || isInterface || isSlice || isChan\n}\n\nfunc hasMethod(it types.Type, name string) bool {\n\tif ptr, isPtr := it.(*types.Pointer); isPtr {\n\t\tit = ptr.Elem()\n\t}\n\tnamedType, ok := it.(*types.Named)\n\tif !ok {\n\t\treturn false\n\t}\n\n\tfor method := range namedType.Methods() {\n\t\tif method.Name() == name {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc basicUnderlying(it types.Type) *types.Basic {\n\tit = types.Unalias(it)\n\tif ptr, isPtr := it.(*types.Pointer); isPtr {\n\t\tit = types.Unalias(ptr.Elem())\n\t}\n\tnamedType, ok := it.(*types.Named)\n\tif !ok {\n\t\treturn nil\n\t}\n\n\tif basic, ok := namedType.Underlying().(*types.Basic); ok {\n\t\treturn basic\n\t}\n\n\treturn nil\n}\n\ntype EnumValueReference struct {\n\tDefinition *ast.EnumValueDefinition\n\tObject     types.Object\n}\n\nfunc (b *Binder) enumValues(def *ast.Definition) map[string]EnumValue {\n\tif def.Kind != ast.Enum {\n\t\treturn nil\n\t}\n\n\tif strings.HasPrefix(def.Name, \"__\") {\n\t\treturn nil\n\t}\n\n\tmodel, ok := b.cfg.Models[def.Name]\n\tif !ok {\n\t\treturn nil\n\t}\n\n\treturn model.EnumValues\n}\n\nfunc (b *Binder) enumReference(\n\tref *TypeReference,\n\tobj types.Object,\n\tvalues map[string]EnumValue,\n) error {\n\tif len(ref.Definition.EnumValues) != len(values) {\n\t\treturn fmt.Errorf(\"not all enum values are binded for %v\", ref.Definition.Name)\n\t}\n\n\tt := code.Unalias(obj.Type())\n\tif fn, ok := t.(*types.Signature); ok {\n\t\tref.GO = code.Unalias(fn.Params().At(0).Type())\n\t} else {\n\t\tref.GO = t\n\t}\n\n\tstr, err := b.TypeReference(&ast.Type{NamedType: \"String\"}, nil)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tref.Marshaler = str.Marshaler\n\tref.Unmarshaler = str.Unmarshaler\n\tref.EnumValues = make([]EnumValueReference, 0, len(values))\n\n\tfor _, value := range ref.Definition.EnumValues {\n\t\tv, ok := values[value.Name]\n\t\tif !ok {\n\t\t\treturn fmt.Errorf(\n\t\t\t\t\"enum value not found for: %v, of enum: %v\",\n\t\t\t\tvalue.Name,\n\t\t\t\tref.Definition.Name,\n\t\t\t)\n\t\t}\n\n\t\tpkgName, typeName := code.PkgAndType(v.Value)\n\t\tif pkgName == \"\" {\n\t\t\treturn fmt.Errorf(\"missing package name for %v\", value.Name)\n\t\t}\n\n\t\tvalueObj, err := b.FindObject(pkgName, typeName)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tvalueTyp := code.Unalias(valueObj.Type())\n\t\tif !types.AssignableTo(valueTyp, ref.GO) {\n\t\t\treturn fmt.Errorf(\"wrong type: %v, for enum value: %v, expected type: %v, of enum: %v\",\n\t\t\t\tvalueTyp, value.Name, ref.GO, ref.Definition.Name)\n\t\t}\n\n\t\tswitch valueObj.(type) {\n\t\tcase *types.Const, *types.Var:\n\t\t\tref.EnumValues = append(ref.EnumValues, EnumValueReference{\n\t\t\t\tDefinition: value,\n\t\t\t\tObject:     valueObj,\n\t\t\t})\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\n\t\t\t\t\"unsupported enum value for: %v, of enum: %v, only const and var allowed\",\n\t\t\t\tvalue.Name,\n\t\t\t\tref.Definition.Name,\n\t\t\t)\n\t\t}\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "codegen/config/binder_test.go",
    "content": "package config\n\nimport (\n\t\"fmt\"\n\t\"go/token\"\n\t\"go/types\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\n\t\"github.com/99designs/gqlgen/internal/code\"\n)\n\nfunc TestBindingToInvalid(t *testing.T) {\n\tbinder, schema := createBinder(Config{})\n\t_, err := binder.TypeReference(schema.Query.Fields.ForName(\"messages\").Type, &types.Basic{})\n\trequire.EqualError(t, err, \"Message has an invalid type\")\n}\n\nfunc TestSlicePointerBinding(t *testing.T) {\n\tt.Run(\"without OmitSliceElementPointers\", func(t *testing.T) {\n\t\tbinder, schema := createBinder(Config{\n\t\t\tOmitSliceElementPointers: false,\n\t\t})\n\n\t\tta, err := binder.TypeReference(schema.Query.Fields.ForName(\"messages\").Type, nil)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Equal(\n\t\t\tt,\n\t\t\t\"[]*github.com/99designs/gqlgen/codegen/config/testdata/autobinding/chat.Message\",\n\t\t\tta.GO.String(),\n\t\t)\n\t})\n\n\tt.Run(\"with OmitSliceElementPointers\", func(t *testing.T) {\n\t\tbinder, schema := createBinder(Config{\n\t\t\tOmitSliceElementPointers: true,\n\t\t})\n\n\t\tta, err := binder.TypeReference(schema.Query.Fields.ForName(\"messages\").Type, nil)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Equal(\n\t\t\tt,\n\t\t\t\"[]github.com/99designs/gqlgen/codegen/config/testdata/autobinding/chat.Message\",\n\t\t\tta.GO.String(),\n\t\t)\n\t})\n}\n\nfunc TestOmittableBinding(t *testing.T) {\n\tt.Run(\"bind nullable string with Omittable[string]\", func(t *testing.T) {\n\t\tbinder, schema := createBinder(Config{})\n\n\t\tot, err := binder.FindType(\"github.com/99designs/gqlgen/graphql\", \"Omittable\")\n\t\trequire.NoError(t, err)\n\n\t\tit, err := binder.InstantiateType(ot, []types.Type{types.Universe.Lookup(\"string\").Type()})\n\t\trequire.NoError(t, err)\n\n\t\tta, err := binder.TypeReference(\n\t\t\tschema.Types[\"FooInput\"].Fields.ForName(\"nullableString\").Type,\n\t\t\tit,\n\t\t)\n\t\trequire.NoError(t, err)\n\n\t\trequire.True(t, ta.IsOmittable)\n\t})\n\n\tt.Run(\"bind nullable string with Omittable[*string]\", func(t *testing.T) {\n\t\tbinder, schema := createBinder(Config{})\n\n\t\tot, err := binder.FindType(\"github.com/99designs/gqlgen/graphql\", \"Omittable\")\n\t\trequire.NoError(t, err)\n\n\t\tit, err := binder.InstantiateType(\n\t\t\tot,\n\t\t\t[]types.Type{types.NewPointer(types.Universe.Lookup(\"string\").Type())},\n\t\t)\n\t\trequire.NoError(t, err)\n\n\t\tta, err := binder.TypeReference(\n\t\t\tschema.Types[\"FooInput\"].Fields.ForName(\"nullableString\").Type,\n\t\t\tit,\n\t\t)\n\t\trequire.NoError(t, err)\n\n\t\trequire.True(t, ta.IsOmittable)\n\t})\n\n\tt.Run(\"fail binding non-nullable string with Omittable[string]\", func(t *testing.T) {\n\t\tbinder, schema := createBinder(Config{})\n\n\t\tot, err := binder.FindType(\"github.com/99designs/gqlgen/graphql\", \"Omittable\")\n\t\trequire.NoError(t, err)\n\n\t\tit, err := binder.InstantiateType(ot, []types.Type{types.Universe.Lookup(\"string\").Type()})\n\t\trequire.NoError(t, err)\n\n\t\t_, err = binder.TypeReference(\n\t\t\tschema.Types[\"FooInput\"].Fields.ForName(\"nonNullableString\").Type,\n\t\t\tit,\n\t\t)\n\t\trequire.Error(t, err)\n\t})\n\n\tt.Run(\"fail binding non-nullable string with Omittable[*string]\", func(t *testing.T) {\n\t\tbinder, schema := createBinder(Config{})\n\n\t\tot, err := binder.FindType(\"github.com/99designs/gqlgen/graphql\", \"Omittable\")\n\t\trequire.NoError(t, err)\n\n\t\tit, err := binder.InstantiateType(\n\t\t\tot,\n\t\t\t[]types.Type{types.NewPointer(types.Universe.Lookup(\"string\").Type())},\n\t\t)\n\t\trequire.NoError(t, err)\n\n\t\t_, err = binder.TypeReference(\n\t\t\tschema.Types[\"FooInput\"].Fields.ForName(\"nonNullableString\").Type,\n\t\t\tit,\n\t\t)\n\t\trequire.Error(t, err)\n\t})\n\n\tt.Run(\"bind nullable object with Omittable[T]\", func(t *testing.T) {\n\t\tbinder, schema := createBinder(Config{})\n\n\t\ttyp, err := binder.FindType(\n\t\t\t\"github.com/99designs/gqlgen/codegen/config/testdata/autobinding/chat\",\n\t\t\t\"Message\",\n\t\t)\n\t\trequire.NoError(t, err)\n\n\t\tot, err := binder.FindType(\"github.com/99designs/gqlgen/graphql\", \"Omittable\")\n\t\trequire.NoError(t, err)\n\n\t\tit, err := binder.InstantiateType(ot, []types.Type{typ})\n\t\trequire.NoError(t, err)\n\n\t\tta, err := binder.TypeReference(\n\t\t\tschema.Types[\"FooInput\"].Fields.ForName(\"nullableObject\").Type,\n\t\t\tit,\n\t\t)\n\t\trequire.NoError(t, err)\n\n\t\trequire.True(t, ta.IsOmittable)\n\t})\n\n\tt.Run(\"bind nullable object with Omittable[*T]\", func(t *testing.T) {\n\t\tbinder, schema := createBinder(Config{})\n\n\t\ttyp, err := binder.FindType(\n\t\t\t\"github.com/99designs/gqlgen/codegen/config/testdata/autobinding/chat\",\n\t\t\t\"Message\",\n\t\t)\n\t\trequire.NoError(t, err)\n\n\t\tot, err := binder.FindType(\"github.com/99designs/gqlgen/graphql\", \"Omittable\")\n\t\trequire.NoError(t, err)\n\n\t\tit, err := binder.InstantiateType(ot, []types.Type{types.NewPointer(typ)})\n\t\trequire.NoError(t, err)\n\n\t\tta, err := binder.TypeReference(\n\t\t\tschema.Types[\"FooInput\"].Fields.ForName(\"nullableObject\").Type,\n\t\t\tit,\n\t\t)\n\t\trequire.NoError(t, err)\n\n\t\trequire.True(t, ta.IsOmittable)\n\t})\n}\n\nfunc createBinder(cfg Config) (*Binder, *ast.Schema) {\n\tcfg.Models = TypeMap{\n\t\t\"Message\": TypeMapEntry{\n\t\t\tModel: []string{\n\t\t\t\t\"github.com/99designs/gqlgen/codegen/config/testdata/autobinding/chat.Message\",\n\t\t\t},\n\t\t},\n\t\t\"BarInput\": TypeMapEntry{\n\t\t\tModel: []string{\n\t\t\t\t\"github.com/99designs/gqlgen/codegen/config/testdata/autobinding/chat.Message\",\n\t\t\t},\n\t\t},\n\t\t\"String\": TypeMapEntry{\n\t\t\tModel: []string{\"github.com/99designs/gqlgen/graphql.String\"},\n\t\t},\n\t}\n\tcfg.Packages = code.NewPackages()\n\n\tcfg.Schema = gqlparser.MustLoadSchema(&ast.Source{Name: \"TestAutobinding.schema\", Input: `\n\t\ttype Message { id: ID }\n\n\t\tinput FooInput {\n\t\t\tnullableString: String\n\t\t\tnonNullableString: String!\n\t\t\tnullableObject: BarInput\n\t\t}\n\n\t\tinput BarInput {\n\t\t\tid: ID\n\t\t\ttext: String!\n\t\t}\n\n\t\ttype Query {\n\t\t\tmessages: [Message!]!\n\t\t}\n\t`})\n\n\tb := cfg.NewBinder()\n\n\treturn b, cfg.Schema\n}\n\nfunc TestEnumBinding(t *testing.T) {\n\tcf := Config{}\n\tcf.Packages = code.NewPackages()\n\tcf.Models = TypeMap{\n\t\t\"Bar\": TypeMapEntry{\n\t\t\tModel: []string{\"github.com/99designs/gqlgen/codegen/config/testdata/enum.Bar\"},\n\t\t\tEnumValues: map[string]EnumValue{\n\t\t\t\t\"ONE\": {Value: \"github.com/99designs/gqlgen/codegen/config/testdata/enum.BarOne\"},\n\t\t\t\t\"TWO\": {Value: \"github.com/99designs/gqlgen/codegen/config/testdata/enum.BarTwo\"},\n\t\t\t},\n\t\t},\n\t\t\"Baz\": TypeMapEntry{\n\t\t\tModel: []string{\"github.com/99designs/gqlgen/graphql.Int\"},\n\t\t\tEnumValues: map[string]EnumValue{\n\t\t\t\t\"ONE\": {Value: \"github.com/99designs/gqlgen/codegen/config/testdata/enum.BazOne\"},\n\t\t\t\t\"TWO\": {Value: \"github.com/99designs/gqlgen/codegen/config/testdata/enum.BazTwo\"},\n\t\t\t},\n\t\t},\n\t\t\"String\": TypeMapEntry{\n\t\t\tModel: []string{\"github.com/99designs/gqlgen/graphql.String\"},\n\t\t},\n\t}\n\tcf.Schema = gqlparser.MustLoadSchema(&ast.Source{Name: \"schema\", Input: `\n\ttype Query {\n\t    foo(arg: Bar!): Baz\n\t}\n\n\tenum Bar {\n\t    ONE\n\t    TWO\n\t}\n\tenum Baz {\n\t    ONE\n\t    TWO\n\t}\n\t`})\n\n\tbinder := cf.NewBinder()\n\n\tbarType, err := binder.FindType(\n\t\t\"github.com/99designs/gqlgen/codegen/config/testdata/enum\",\n\t\t\"Bar\",\n\t)\n\n\trequire.NotNil(t, barType)\n\trequire.NoError(t, err)\n\n\tbar, err := binder.TypeReference(\n\t\tcf.Schema.Query.Fields.ForName(\"foo\").Arguments.ForName(\"arg\").Type,\n\t\tnil,\n\t)\n\n\trequire.NotNil(t, bar)\n\trequire.NoError(t, err)\n\trequire.True(t, bar.HasEnumValues())\n\trequire.Len(t, bar.EnumValues, 2)\n\n\tbarOne, err := binder.FindObject(\n\t\t\"github.com/99designs/gqlgen/codegen/config/testdata/enum\",\n\t\t\"BarOne\",\n\t)\n\n\trequire.NotNil(t, barOne)\n\trequire.NoError(t, err)\n\trequire.Equal(t, barOne, bar.EnumValues[0].Object)\n\trequire.Equal(t, cf.Schema.Types[\"Bar\"].EnumValues[0], bar.EnumValues[0].Definition)\n\n\tbarTwo, err := binder.FindObject(\n\t\t\"github.com/99designs/gqlgen/codegen/config/testdata/enum\",\n\t\t\"BarTwo\",\n\t)\n\n\trequire.NotNil(t, barTwo)\n\trequire.NoError(t, err)\n\trequire.Equal(t, barTwo, bar.EnumValues[1].Object)\n\trequire.Equal(t, cf.Schema.Types[\"Bar\"].EnumValues[1], bar.EnumValues[1].Definition)\n\n\tbazType, err := binder.FindType(\"github.com/99designs/gqlgen/graphql\", \"Int\")\n\n\trequire.NotNil(t, bazType)\n\trequire.NoError(t, err)\n\n\tbaz, err := binder.TypeReference(cf.Schema.Query.Fields.ForName(\"foo\").Type, nil)\n\n\trequire.NotNil(t, baz)\n\trequire.NoError(t, err)\n\trequire.True(t, baz.HasEnumValues())\n\trequire.Len(t, baz.EnumValues, 2)\n\n\tbazOne, err := binder.FindObject(\n\t\t\"github.com/99designs/gqlgen/codegen/config/testdata/enum\",\n\t\t\"BazOne\",\n\t)\n\n\trequire.NotNil(t, bazOne)\n\trequire.NoError(t, err)\n\trequire.Equal(t, bazOne, baz.EnumValues[0].Object)\n\trequire.Equal(t, cf.Schema.Types[\"Baz\"].EnumValues[0], baz.EnumValues[0].Definition)\n\n\tbazTwo, err := binder.FindObject(\n\t\t\"github.com/99designs/gqlgen/codegen/config/testdata/enum\",\n\t\t\"BazTwo\",\n\t)\n\n\trequire.NotNil(t, bazTwo)\n\trequire.NoError(t, err)\n\trequire.Equal(t, bazTwo, baz.EnumValues[1].Object)\n\trequire.Equal(t, cf.Schema.Types[\"Baz\"].EnumValues[1], baz.EnumValues[1].Definition)\n}\n\nfunc TestTargetBinding(t *testing.T) {\n\tcf := Config{}\n\tcf.Packages = code.NewPackages()\n\tcf.Models = TypeMap{\n\t\t\"Int\": TypeMapEntry{\n\t\t\tModel: []string{\n\t\t\t\t\"github.com/99designs/gqlgen/codegen/config/testdata/binding.Number\",\n\t\t\t\t\"github.com/99designs/gqlgen/codegen/config/testdata/binding.ContextNumber\",\n\t\t\t},\n\t\t},\n\t}\n\tcf.Schema = gqlparser.MustLoadSchema(&ast.Source{Name: \"schema\", Input: `\n\tdirective @goField(\n    forceResolver: Boolean\n    name: String\n    omittable: Boolean\n    type: String\n) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION\n\ttype Query {\n\t\tnumber: Int! @goField(type:\"github.com/99designs/gqlgen/codegen/config/testdata/binding.Number\")\n\t    contextNumber: Int! @goField(type:\"github.com/99designs/gqlgen/codegen/config/testdata/binding.ContextNumber\")\n\t}\n\t`})\n\tbinder := cf.NewBinder()\n\n\tctxTarget, err := binder.FindType(\n\t\t\"github.com/99designs/gqlgen/codegen/config/testdata/binding\",\n\t\t\"ContextNumber\",\n\t)\n\trequire.NoError(t, err)\n\tgot, err := binder.TypeReference(\n\t\tcf.Schema.Query.Fields.ForName(\"contextNumber\").Type,\n\t\tctxTarget,\n\t)\n\trequire.NotNil(t, got)\n\trequire.NoError(t, err)\n\trequire.True(t, got.IsContext)\n\trequire.True(t, got.IsMarshaler)\n\trequire.Nil(t, got.Marshaler)\n\trequire.Nil(t, got.Unmarshaler)\n\trequire.Equal(t, got.GO, ctxTarget)\n\n\ttarget, err := binder.FindType(\n\t\t\"github.com/99designs/gqlgen/codegen/config/testdata/binding\",\n\t\t\"Number\",\n\t)\n\trequire.NoError(t, err)\n\tgot, err = binder.TypeReference(cf.Schema.Query.Fields.ForName(\"number\").Type, target)\n\trequire.NotNil(t, got)\n\trequire.NoError(t, err)\n\trequire.False(t, got.IsContext)\n\trequire.True(t, got.IsMarshaler)\n\trequire.Nil(t, got.Marshaler)\n\trequire.Nil(t, got.Unmarshaler)\n\trequire.Equal(t, got.GO, target)\n}\n\nfunc createTypeAlias(name string, t types.Type) *types.Alias {\n\tvar nopos token.Pos\n\treturn types.NewAlias(types.NewTypeName(nopos, nil, name, nil), t)\n}\n\nfunc TestIsNilable(t *testing.T) {\n\ttype aTest struct {\n\t\tinput    types.Type\n\t\texpected bool\n\t}\n\n\ttheTests := []aTest{\n\t\t{types.Universe.Lookup(\"any\").Type(), true},\n\t\t{types.Universe.Lookup(\"rune\").Type(), false},\n\t\t{types.Universe.Lookup(\"byte\").Type(), false},\n\t\t{types.Universe.Lookup(\"error\").Type(), true},\n\t\t{types.Typ[types.Int], false},\n\t\t{types.Typ[types.String], false},\n\t\t{types.NewChan(types.SendOnly, types.Typ[types.Int]), true},\n\t\t{types.NewPointer(types.Typ[types.Int]), true},\n\t\t{types.NewPointer(types.Typ[types.String]), true},\n\t\t{types.NewMap(types.Typ[types.Int], types.Typ[types.Int]), true},\n\t\t{types.NewSlice(types.Typ[types.Int]), true},\n\t\t{types.NewInterfaceType(nil, nil), true},\n\t\t{createTypeAlias(\"interfaceAlias\", types.Universe.Lookup(\"any\").Type()), true},\n\t\t{\n\t\t\tcreateTypeAlias(\n\t\t\t\t\"interfaceNestedAlias\",\n\t\t\t\tcreateTypeAlias(\"interfaceAlias\", types.Universe.Lookup(\"any\").Type()),\n\t\t\t),\n\t\t\ttrue,\n\t\t},\n\t\t{createTypeAlias(\"intAlias\", types.Typ[types.Int]), false},\n\t\t{\n\t\t\tcreateTypeAlias(\"intNestedAlias\", createTypeAlias(\"intAlias\", types.Typ[types.Int])),\n\t\t\tfalse,\n\t\t},\n\t}\n\n\tfor _, at := range theTests {\n\t\tt.Run(fmt.Sprintf(\"nilable-%s\", at.input.String()), func(t *testing.T) {\n\t\t\trequire.Equal(t, at.expected, IsNilable(at.input))\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "codegen/config/config.go",
    "content": "package config\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"go/types\"\n\t\"io\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"regexp\"\n\t\"slices\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"github.com/goccy/go-yaml\"\n\t\"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\t\"golang.org/x/tools/go/packages\"\n\n\t\"github.com/99designs/gqlgen/codegen/templates\"\n\t\"github.com/99designs/gqlgen/internal/code\"\n\t\"github.com/99designs/gqlgen/internal/imports\"\n)\n\ntype Config struct {\n\tSchemaFilename                       StringList                 `yaml:\"schema,omitempty\"`\n\tExec                                 ExecConfig                 `yaml:\"exec\"`\n\tModel                                PackageConfig              `yaml:\"model,omitempty\"`\n\tFederation                           PackageConfig              `yaml:\"federation,omitempty\"`\n\tResolver                             ResolverConfig             `yaml:\"resolver,omitempty\"`\n\tAutoBind                             []string                   `yaml:\"autobind\"`\n\tAutobindGetterHaser                  bool                       `yaml:\"autobind_getter_haser,omitempty\"`\n\tModels                               TypeMap                    `yaml:\"models,omitempty\"`\n\tStructTag                            string                     `yaml:\"struct_tag,omitempty\"`\n\tEmbeddedStructsPrefix                string                     `yaml:\"embedded_structs_prefix,omitempty\"`\n\tDirectives                           map[string]DirectiveConfig `yaml:\"directives,omitempty\"`\n\tLocalPrefix                          string                     `yaml:\"local_prefix,omitempty\"`\n\tGoBuildTags                          StringList                 `yaml:\"go_build_tags,omitempty\"`\n\tGoInitialisms                        GoInitialismsConfig        `yaml:\"go_initialisms,omitempty\"`\n\tOmitSliceElementPointers             bool                       `yaml:\"omit_slice_element_pointers,omitempty\"`\n\tOmitGetters                          bool                       `yaml:\"omit_getters,omitempty\"`\n\tOmitInterfaceChecks                  bool                       `yaml:\"omit_interface_checks,omitempty\"`\n\tOmitComplexity                       bool                       `yaml:\"omit_complexity,omitempty\"`\n\tOmitGQLGenFileNotice                 bool                       `yaml:\"omit_gqlgen_file_notice,omitempty\"`\n\tOmitGQLGenVersionInFileNotice        bool                       `yaml:\"omit_gqlgen_version_in_file_notice,omitempty\"`\n\tOmitRootModels                       bool                       `yaml:\"omit_root_models,omitempty\"`\n\tOmitResolverFields                   bool                       `yaml:\"omit_resolver_fields,omitempty\"`\n\tOmitPanicHandler                     bool                       `yaml:\"omit_panic_handler,omitempty\"`\n\tOmitEnumJSONMarshalers               bool                       `yaml:\"omit_enum_json_marshalers,omitempty\"`\n\tUseFunctionSyntaxForExecutionContext bool                       `yaml:\"use_function_syntax_for_execution_context,omitempty\"`\n\t// If this is set to true, argument directives that\n\t// decorate a field with a null value will still be called.\n\t//\n\t// This enables argument directives to not just mutate\n\t// argument values but to set them even if they're null.\n\tCallArgumentDirectivesWithNull bool  `yaml:\"call_argument_directives_with_null,omitempty\"`\n\tStructFieldsAlwaysPointers     bool  `yaml:\"struct_fields_always_pointers,omitempty\"`\n\tReturnPointersInUnmarshalInput bool  `yaml:\"return_pointers_in_unmarshalinput,omitempty\"`\n\tResolversAlwaysReturnPointers  bool  `yaml:\"resolvers_always_return_pointers,omitempty\"`\n\tNullableInputOmittable         bool  `yaml:\"nullable_input_omittable,omitempty\"`\n\tEnableModelJsonOmitemptyTag    *bool `yaml:\"enable_model_json_omitempty_tag,omitempty\"`\n\tEnableModelJsonOmitzeroTag     *bool `yaml:\"enable_model_json_omitzero_tag,omitempty\"`\n\tSkipValidation                 bool  `yaml:\"skip_validation,omitempty\"`\n\tSkipModTidy                    bool  `yaml:\"skip_mod_tidy,omitempty\"`\n\t// FastValidation uses -gcflags=\"-N -l\" to disable compiler optimizations\n\t// during validation, making cold cache validation ~2x faster. The generated\n\t// code is only used for error checking, not execution. Default: false\n\tFastValidation *bool `yaml:\"fast_validation,omitempty\"`\n\t// SkipImportGrouping uses go/format.Source instead of imports.Process for\n\t// formatting generated code. This is faster but doesn't group imports\n\t// (stdlib/external/internal). Default: false (uses imports.Process)\n\tSkipImportGrouping *bool `yaml:\"skip_import_grouping,omitempty\"`\n\t// UseLightModePrefetch uses NeedName|NeedFiles|NeedModule instead of full\n\t// NeedTypes for initial package loading. This avoids triggering compilation\n\t// until types are actually needed. Default: false\n\tUseLightModePrefetch *bool `yaml:\"use_light_mode_prefetch,omitempty\"`\n\t// UseBufferPooling reuses byte buffers via sync.Pool during code formatting\n\t// to reduce GC pressure. Default: false\n\tUseBufferPooling *bool          `yaml:\"use_buffer_pooling,omitempty\"`\n\tSources          []*ast.Source  `yaml:\"-\"`\n\tPackages         *code.Packages `yaml:\"-\"`\n\tSchema           *ast.Schema    `yaml:\"-\"`\n}\n\n// boolOrFalse returns the value of a *bool pointer, or false if nil.\nfunc boolOrFalse(ptr *bool) bool {\n\treturn ptr != nil && *ptr\n}\n\n// GetFastValidation returns the value of FastValidation with default false.\nfunc (c *Config) GetFastValidation() bool {\n\treturn boolOrFalse(c.FastValidation)\n}\n\n// GetSkipImportGrouping returns the value of SkipImportGrouping with default false.\nfunc (c *Config) GetSkipImportGrouping() bool {\n\treturn boolOrFalse(c.SkipImportGrouping)\n}\n\n// GetUseLightModePrefetch returns the value of UseLightModePrefetch with default false.\nfunc (c *Config) GetUseLightModePrefetch() bool {\n\treturn boolOrFalse(c.UseLightModePrefetch)\n}\n\n// GetUseBufferPooling returns the value of UseBufferPooling with default false.\nfunc (c *Config) GetUseBufferPooling() bool {\n\treturn boolOrFalse(c.UseBufferPooling)\n}\n\n// GetPruneOptions returns the PruneOptions based on the config settings.\nfunc (c *Config) GetPruneOptions() imports.PruneOptions {\n\treturn imports.PruneOptions{\n\t\tSkipImportGrouping: c.GetSkipImportGrouping(),\n\t\tUseBufferPooling:   c.GetUseBufferPooling(),\n\t}\n}\n\nconst (\n\tDirGoModel         = \"goModel\"\n\tDirGoExtraField    = \"goExtraField\"\n\tDirGoField         = \"goField\"\n\tDirGoTag           = \"goTag\"\n\tDirGoEnum          = \"goEnum\"\n\tDirInlineArguments = \"inlineArguments\"\n\n\tDirArgName                = \"name\"\n\tDirArgModel               = \"model\"\n\tDirArgModels              = \"models\"\n\tDirArgType                = \"type\"\n\tDirArgValue               = \"value\"\n\tDirArgForceGenerate       = \"forceGenerate\"\n\tDirArgForceResolver       = \"forceResolver\"\n\tDirArgOverrideTags        = \"overrideTags\"\n\tDirArgDescription         = \"description\"\n\tDirArgOmittable           = \"omittable\"\n\tDirArgAutoBindGetterHaser = \"autoBindGetterHaser\"\n\tDirArgBatch               = \"batch\"\n)\n\nvar cfgFilenames = []string{\".gqlgen.yml\", \"gqlgen.yml\", \"gqlgen.yaml\"}\n\n// templatePackageNames is a list of packages names that the default templates use, in order to\n// preload those for performance considerations any additional package added to the base templates\n// should be added here to improve performance and load all packages in bulk\nvar templatePackageNames = []string{\n\t\"context\",\n\t\"fmt\",\n\t\"io\",\n\t\"strconv\",\n\t\"time\",\n\t\"sync\",\n\t\"strings\",\n\t\"sync/atomic\",\n\t\"embed\",\n\t\"golang.org/x/sync/semaphore\",\n\t\"errors\",\n\t\"bytes\",\n\t\"github.com/vektah/gqlparser/v2\",\n\t\"github.com/vektah/gqlparser/v2/ast\",\n\t\"github.com/99designs/gqlgen/graphql\",\n\t\"github.com/99designs/gqlgen/graphql/introspection\",\n}\n\n// DefaultConfig creates a copy of the default config\nfunc DefaultConfig() *Config {\n\tfalseValue := false\n\treturn &Config{\n\t\tSchemaFilename:                 StringList{\"schema.graphql\"},\n\t\tModel:                          PackageConfig{Filename: \"models_gen.go\"},\n\t\tExec:                           ExecConfig{Filename: \"generated.go\"},\n\t\tDirectives:                     map[string]DirectiveConfig{},\n\t\tModels:                         TypeMap{},\n\t\tStructFieldsAlwaysPointers:     true,\n\t\tReturnPointersInUnmarshalInput: false,\n\t\tResolversAlwaysReturnPointers:  true,\n\t\tNullableInputOmittable:         false,\n\t\tEnableModelJsonOmitzeroTag:     &falseValue,\n\t\tEmbeddedStructsPrefix:          \"Base\",\n\t}\n}\n\n// LoadDefaultConfig loads the default config so that it is ready to be used\nfunc LoadDefaultConfig() (*Config, error) {\n\tconfig := DefaultConfig()\n\n\tfor _, filename := range config.SchemaFilename {\n\t\tfilename = filepath.ToSlash(filename)\n\t\tvar err error\n\t\tvar schemaRaw []byte\n\t\tschemaRaw, err = os.ReadFile(filename)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"unable to open schema: %w\", err)\n\t\t}\n\n\t\tconfig.Sources = append(\n\t\t\tconfig.Sources,\n\t\t\t&ast.Source{Name: filename, Input: string(schemaRaw)},\n\t\t)\n\t}\n\n\treturn config, nil\n}\n\n// LoadConfigFromDefaultLocations looks for a config file in the current directory, and all parent\n// directories\n// walking up the tree. The closest config file will be returned.\nfunc LoadConfigFromDefaultLocations() (*Config, error) {\n\tcfgFile, err := findCfg()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\terr = os.Chdir(filepath.Dir(cfgFile))\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"unable to enter config dir: %w\", err)\n\t}\n\treturn LoadConfig(cfgFile)\n}\n\nvar path2regex = strings.NewReplacer(\n\t`.`, `\\.`,\n\t`*`, `.+`,\n\t`\\`, `[\\\\/]`,\n\t`/`, `[\\\\/]`,\n)\n\n// LoadConfig reads the gqlgen.yml config file\nfunc LoadConfig(filename string) (*Config, error) {\n\tb, err := os.ReadFile(filename)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"unable to read config: %w\", err)\n\t}\n\n\treturn ReadConfig(bytes.NewReader(b))\n}\n\nfunc ReadConfig(cfgFile io.Reader) (cfg *Config, err error) {\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tcfg = nil\n\t\t\terr = fmt.Errorf(\"unable to parse config: panic during decode: %v\", r)\n\t\t}\n\t}()\n\n\tconfig := DefaultConfig()\n\n\tdec := yaml.NewDecoder(cfgFile, yaml.DisallowUnknownField())\n\n\tif err := dec.Decode(config); err != nil {\n\t\treturn nil, fmt.Errorf(\"unable to parse config: %w\", err)\n\t}\n\n\tif err := CompleteConfig(config); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn config, nil\n}\n\n// CompleteConfig fills in the schema and other values to a config loaded from\n// YAML.\nfunc CompleteConfig(config *Config) error {\n\tdefaultDirectives := map[string]DirectiveConfig{\n\t\t\"skip\":        {SkipRuntime: true},\n\t\t\"include\":     {SkipRuntime: true},\n\t\t\"deprecated\":  {SkipRuntime: true},\n\t\t\"specifiedBy\": {SkipRuntime: true},\n\t\t\"oneOf\":       {SkipRuntime: true},\n\t}\n\n\tfor key, value := range defaultDirectives {\n\t\tif _, defined := config.Directives[key]; !defined {\n\t\t\tconfig.Directives[key] = value\n\t\t}\n\t}\n\n\tpreGlobbing := config.SchemaFilename\n\tconfig.SchemaFilename = StringList{}\n\tfor _, f := range preGlobbing {\n\t\tvar matches []string\n\n\t\t// for ** we want to override default globbing patterns and walk all\n\t\t// subdirectories to match schema files.\n\t\tif strings.Contains(f, \"**\") {\n\t\t\tpathParts := strings.SplitN(f, \"**\", 2)\n\t\t\trest := strings.TrimPrefix(strings.TrimPrefix(pathParts[1], `\\`), `/`)\n\t\t\t// turn the rest of the glob into a regex, anchored only at the end because ** allows\n\t\t\t// for any number of dirs in between and walk will let us match against the full path\n\t\t\t// name\n\t\t\tglobRe := regexp.MustCompile(path2regex.Replace(rest) + `$`)\n\n\t\t\tif err := filepath.Walk(\n\t\t\t\tpathParts[0],\n\t\t\t\tfunc(path string, info os.FileInfo, err error) error {\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\n\t\t\t\t\tif globRe.MatchString(strings.TrimPrefix(path, pathParts[0])) {\n\t\t\t\t\t\tmatches = append(matches, path)\n\t\t\t\t\t}\n\n\t\t\t\t\treturn nil\n\t\t\t\t},\n\t\t\t); err != nil {\n\t\t\t\treturn fmt.Errorf(\"failed to walk schema at root %s: %w\", pathParts[0], err)\n\t\t\t}\n\t\t} else {\n\t\t\tvar err error\n\t\t\tmatches, err = filepath.Glob(f)\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"failed to glob schema filename %s: %w\", f, err)\n\t\t\t}\n\t\t}\n\n\t\tfor _, m := range matches {\n\t\t\tif config.SchemaFilename.Has(m) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tconfig.SchemaFilename = append(config.SchemaFilename, m)\n\t\t}\n\t}\n\n\tfor _, filename := range config.SchemaFilename {\n\t\tfilename = filepath.ToSlash(filename)\n\t\tvar err error\n\t\tvar schemaRaw []byte\n\t\tschemaRaw, err = os.ReadFile(filename)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"unable to open schema: %w\", err)\n\t\t}\n\n\t\tconfig.Sources = append(\n\t\t\tconfig.Sources,\n\t\t\t&ast.Source{Name: filename, Input: string(schemaRaw)},\n\t\t)\n\t}\n\n\tconfig.GoInitialisms.setInitialisms()\n\n\treturn nil\n}\n\nfunc (c *Config) Init() error {\n\tif c.Packages == nil {\n\t\tc.Packages = code.NewPackages(\n\t\t\tcode.WithBuildTags(c.GoBuildTags...),\n\t\t\tcode.PackagePrefixToCache(\"github.com/99designs/gqlgen/graphql\"),\n\t\t\tcode.WithPreloadNames(templatePackageNames...),\n\t\t\tcode.WithLightModePrefetch(c.GetUseLightModePrefetch()),\n\t\t)\n\t}\n\n\tif c.Schema == nil {\n\t\tif err := c.LoadSchema(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\terr := c.injectTypesFromSchema()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// prefetch all packages with light mode (no type checking, fast)\n\t// Type info will be loaded on-demand only for packages that need it (e.g., autobind)\n\tc.Packages.LoadAllLight(c.packageList()...)\n\n\terr = c.autobind()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tc.injectBuiltins()\n\n\t//  check everything is valid on the way out\n\terr = c.check()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (c *Config) packageList() []string {\n\tpkgs := []string{\n\t\t\"github.com/99designs/gqlgen/graphql\",\n\t\t\"github.com/99designs/gqlgen/graphql/introspection\",\n\t}\n\tpkgs = append(pkgs, c.Models.ReferencedPackages()...)\n\tpkgs = append(pkgs, c.AutoBind...)\n\treturn pkgs\n}\n\nfunc (c *Config) ReloadAllPackages() {\n\tc.Packages.ReloadAll(c.packageList()...)\n}\n\nfunc (c *Config) IsRoot(def *ast.Definition) bool {\n\treturn def == c.Schema.Query || def == c.Schema.Mutation || def == c.Schema.Subscription\n}\n\nfunc (c *Config) injectTypesFromSchema() error {\n\tfor _, d := range []string{\n\t\tDirGoModel,\n\t\tDirGoExtraField,\n\t\tDirGoField,\n\t\tDirGoTag,\n\t\tDirGoEnum,\n\t\tDirInlineArguments,\n\t} {\n\t\tc.Directives[d] = DirectiveConfig{SkipRuntime: true}\n\t}\n\n\tfor _, schemaType := range c.Schema.Types {\n\t\tif c.IsRoot(schemaType) {\n\t\t\tcontinue\n\t\t}\n\n\t\tc.injectGoModelDirective(schemaType)\n\n\t\tif schemaType.Kind == ast.Object ||\n\t\t\tschemaType.Kind == ast.InputObject ||\n\t\t\tschemaType.Kind == ast.Interface {\n\t\t\tif err := c.injectGoFieldDirectives(schemaType); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif err := c.injectGoExtraFieldDirectives(schemaType); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\tc.injectGoEnumDirectives(schemaType)\n\t}\n\n\treturn nil\n}\n\nfunc (c *Config) injectGoModelDirective(schemaType *ast.Definition) {\n\tbd := schemaType.Directives.ForName(DirGoModel)\n\tif bd == nil {\n\t\treturn\n\t}\n\n\tif ma := bd.Arguments.ForName(DirArgModel); ma != nil {\n\t\tif mv, err := ma.Value.Value(nil); err == nil {\n\t\t\tc.Models.Add(schemaType.Name, mv.(string))\n\t\t}\n\t}\n\n\tif ma := bd.Arguments.ForName(DirArgModels); ma != nil {\n\t\tif mvs, err := ma.Value.Value(nil); err == nil {\n\t\t\tfor _, mv := range mvs.([]any) {\n\t\t\t\tc.Models.Add(schemaType.Name, mv.(string))\n\t\t\t}\n\t\t}\n\t}\n\n\tif fg := bd.Arguments.ForName(DirArgForceGenerate); fg != nil {\n\t\tif mv, err := fg.Value.Value(nil); err == nil {\n\t\t\tc.Models.ForceGenerate(schemaType.Name, mv.(bool))\n\t\t}\n\t}\n}\n\nfunc (c *Config) injectGoFieldDirectives(schemaType *ast.Definition) error {\n\tfor _, field := range schemaType.Fields {\n\t\tfd := field.Directives.ForName(DirGoField)\n\t\tif fd == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\t// First, copy map entry for type and field to do modifications\n\t\ttypeMapEntry := c.Models[schemaType.Name]\n\t\ttypeMapFieldEntry := typeMapEntry.Fields[field.Name]\n\n\t\tif ta := fd.Arguments.ForName(DirArgType); ta != nil {\n\t\t\tif c.Models.UserDefined(schemaType.Name) {\n\t\t\t\treturn newNotApplicableError(DirGoField, DirArgType, *fd.Position)\n\t\t\t}\n\n\t\t\tif ft, err := ta.Value.Value(nil); err == nil {\n\t\t\t\ttypeMapFieldEntry.Type = ft.(string)\n\t\t\t}\n\t\t}\n\n\t\tif ra := fd.Arguments.ForName(DirArgForceResolver); ra != nil {\n\t\t\tif fr, err := ra.Value.Value(nil); err == nil {\n\t\t\t\ttypeMapFieldEntry.Resolver = fr.(bool)\n\t\t\t}\n\t\t}\n\n\t\tif na := fd.Arguments.ForName(DirArgName); na != nil {\n\t\t\tif fr, err := na.Value.Value(nil); err == nil {\n\t\t\t\ttypeMapFieldEntry.FieldName = fr.(string)\n\t\t\t}\n\t\t}\n\n\t\tif arg := fd.Arguments.ForName(DirArgOmittable); arg != nil {\n\t\t\tif k, err := arg.Value.Value(nil); err == nil {\n\t\t\t\tval := k.(bool)\n\t\t\t\ttypeMapFieldEntry.Omittable = &val\n\t\t\t}\n\t\t}\n\n\t\tif arg := fd.Arguments.ForName(DirArgAutoBindGetterHaser); arg != nil {\n\t\t\tif k, err := arg.Value.Value(nil); err == nil {\n\t\t\t\tval := k.(bool)\n\t\t\t\ttypeMapFieldEntry.AutoBindGetterHaser = &val\n\t\t\t}\n\t\t}\n\n\t\tif arg := fd.Arguments.ForName(DirArgBatch); arg != nil {\n\t\t\tif k, err := arg.Value.Value(nil); err == nil {\n\t\t\t\ttypeMapFieldEntry.Batch = k.(bool)\n\t\t\t}\n\t\t}\n\n\t\tif arg := fd.Arguments.ForName(DirArgForceGenerate); arg != nil {\n\t\t\tif c.Models.UserDefined(schemaType.Name) {\n\t\t\t\treturn newNotApplicableError(\n\t\t\t\t\tDirGoField,\n\t\t\t\t\tDirArgForceGenerate,\n\t\t\t\t\t*fd.Position,\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tif k, err := arg.Value.Value(nil); err == nil {\n\t\t\t\tval := k.(bool)\n\t\t\t\ttypeMapFieldEntry.ForceGenerate = val\n\t\t\t}\n\t\t}\n\n\t\t// May be uninitialized, so do it now.\n\t\tif typeMapEntry.Fields == nil {\n\t\t\ttypeMapEntry.Fields = make(map[string]TypeMapField)\n\t\t}\n\n\t\t// First, copy back probably modificated field settings\n\t\ttypeMapEntry.Fields[field.Name] = typeMapFieldEntry\n\n\t\t// And final copy back probably modificated all type map\n\t\tc.Models[schemaType.Name] = typeMapEntry\n\t}\n\n\treturn nil\n}\n\nfunc (c *Config) injectGoExtraFieldDirectives(schemaType *ast.Definition) error {\n\tefds := schemaType.Directives.ForNames(DirGoExtraField)\n\tif len(efds) == 0 {\n\t\treturn nil\n\t}\n\n\tfor _, efd := range efds {\n\t\tt := efd.Arguments.ForName(DirArgType)\n\t\tif t == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\textraField := ModelExtraField{}\n\n\t\tif tv, err := t.Value.Value(nil); err == nil {\n\t\t\textraField.Type = tv.(string)\n\t\t}\n\n\t\tif extraField.Type == \"\" {\n\t\t\treturn newCannotBeEmptyError(\n\t\t\t\tDirGoExtraField,\n\t\t\t\tDirArgType,\n\t\t\t\t*efd.Position,\n\t\t\t)\n\t\t}\n\n\t\tif ot := efd.Arguments.ForName(DirArgOverrideTags); ot != nil {\n\t\t\tif otv, err := ot.Value.Value(nil); err == nil {\n\t\t\t\textraField.OverrideTags = otv.(string)\n\t\t\t}\n\t\t}\n\n\t\tif d := efd.Arguments.ForName(DirArgDescription); d != nil {\n\t\t\tif dv, err := d.Value.Value(nil); err == nil {\n\t\t\t\textraField.Description = dv.(string)\n\t\t\t}\n\t\t}\n\n\t\textraFieldName := \"\"\n\t\tif fn := efd.Arguments.ForName(DirArgName); fn != nil {\n\t\t\tif fnv, err := fn.Value.Value(nil); err == nil {\n\t\t\t\textraFieldName = fnv.(string)\n\t\t\t}\n\t\t}\n\n\t\t// First copy, then modify map entry.\n\t\ttypeMapEntry := c.Models[schemaType.Name]\n\n\t\tif extraFieldName == \"\" {\n\t\t\t// Embeddable fields\n\t\t\ttypeMapEntry.EmbedExtraFields = append(\n\t\t\t\ttypeMapEntry.EmbedExtraFields,\n\t\t\t\textraField,\n\t\t\t)\n\t\t} else {\n\t\t\t// Regular fields\n\t\t\tif typeMapEntry.ExtraFields == nil {\n\t\t\t\ttypeMapEntry.ExtraFields = make(map[string]ModelExtraField)\n\t\t\t}\n\t\t\ttypeMapEntry.ExtraFields[extraFieldName] = extraField\n\t\t}\n\n\t\t// Copy back modified map entry\n\t\tc.Models[schemaType.Name] = typeMapEntry\n\t}\n\n\treturn nil\n}\n\nfunc (c *Config) injectGoEnumDirectives(schemaType *ast.Definition) {\n\tif schemaType.Kind != ast.Enum || strings.HasPrefix(schemaType.Name, \"__\") {\n\t\treturn\n\t}\n\n\tvalues := make(map[string]EnumValue)\n\n\tfor _, value := range schemaType.EnumValues {\n\t\tif directive := value.Directives.ForName(DirGoEnum); directive != nil {\n\t\t\tif arg := directive.Arguments.ForName(DirArgValue); arg != nil {\n\t\t\t\tif v, err := arg.Value.Value(nil); err == nil {\n\t\t\t\t\tvalues[value.Name] = EnumValue{\n\t\t\t\t\t\tValue: v.(string),\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif len(values) > 0 {\n\t\tmodel := c.Models[schemaType.Name]\n\t\tmodel.EnumValues = values\n\t\tc.Models[schemaType.Name] = model\n\t}\n}\n\ntype TypeMapEntry struct {\n\tModel         StringList              `yaml:\"model,omitempty\"`\n\tForceGenerate bool                    `yaml:\"forceGenerate,omitempty\"`\n\tFields        map[string]TypeMapField `yaml:\"fields,omitempty\"`\n\tEnumValues    map[string]EnumValue    `yaml:\"enum_values,omitempty\"`\n\n\t// Key is the Go name of the field.\n\tExtraFields      map[string]ModelExtraField `yaml:\"extraFields,omitempty\"`\n\tEmbedExtraFields []ModelExtraField          `yaml:\"embedExtraFields,omitempty\"`\n}\n\ntype TypeMapField struct {\n\t// Type is the Go type of the field.\n\t//\n\t// It supports the builtin basic types (like string or int64), named types\n\t// (qualified by the full package path), pointers to those types (prefixed\n\t// with `*`), and slices of those types (prefixed with `[]`).\n\t//\n\t// For example, the following are valid types:\n\t//  string\n\t//  *github.com/author/package.Type\n\t//  []string\n\t//  []*github.com/author/package.Type\n\t//\n\t// Note that the type will be referenced from the generated/graphql, which\n\t// means the package it lives in must not reference the generated/graphql\n\t// package to avoid circular imports.\n\t// restrictions.\n\tType string `yaml:\"type\"`\n\n\tResolver            bool   `yaml:\"resolver\"`\n\tFieldName           string `yaml:\"fieldName\"`\n\tOmittable           *bool  `yaml:\"omittable\"`\n\tGeneratedMethod     string `yaml:\"-\"`\n\tAutoBindGetterHaser *bool  `yaml:\"autoBindGetterHaser\"`\n\n\t// Batch enables batch resolver generation for this field.\n\t// When true, a batch resolver method (e.g., PostsBatch) will be generated\n\t// that accepts multiple parent objects and returns ([]T, error) for all of them\n\t// in a single call, reducing N+1 query problems. For partial failures, return\n\t// a graphql.BatchErrors implementation as the error.\n\tBatch bool `yaml:\"batch,omitempty\"`\n\t// ForceGenerate forces the field to be generated in the model struct\n\t// even when OmitResolverFields is enabled and the field has forceResolver: true.\n\tForceGenerate bool `yaml:\"forceGenerate\"`\n}\n\ntype EnumValue struct {\n\tValue string\n}\n\ntype ModelExtraField struct {\n\t// Type is the Go type of the field.\n\t//\n\t// It supports the builtin basic types (like string or int64), named types\n\t// (qualified by the full package path), pointers to those types (prefixed\n\t// with `*`), and slices of those types (prefixed with `[]`).\n\t//\n\t// For example, the following are valid types:\n\t//  string\n\t//  *github.com/author/package.Type\n\t//  []string\n\t//  []*github.com/author/package.Type\n\t//\n\t// Note that the type will be referenced from the generated/graphql, which\n\t// means the package it lives in must not reference the generated/graphql\n\t// package to avoid circular imports.\n\t// restrictions.\n\tType string `yaml:\"type\"`\n\n\t// OverrideTags is an optional override of the Go field tag.\n\tOverrideTags string `yaml:\"overrideTags\"`\n\n\t// Description is an optional the Go field doc-comment.\n\tDescription string `yaml:\"description\"`\n}\n\ntype StringList []string\n\nfunc (a *StringList) UnmarshalYAML(unmarshal func(any) error) error {\n\tvar single string\n\terr := unmarshal(&single)\n\tif err == nil {\n\t\t*a = []string{single}\n\t\treturn nil\n\t}\n\n\tvar multi []string\n\terr = unmarshal(&multi)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*a = multi\n\treturn nil\n}\n\nfunc (a StringList) Has(file string) bool {\n\treturn slices.Contains(a, file)\n}\n\nfunc (c *Config) check() error {\n\tif c.Models == nil {\n\t\tc.Models = TypeMap{}\n\t}\n\n\ttype FilenamePackage struct {\n\t\tFilename string\n\t\tPackage  string\n\t\tDeclaree string\n\t}\n\n\tfileList := map[string][]FilenamePackage{}\n\n\tif err := c.Models.Check(); err != nil {\n\t\treturn fmt.Errorf(\"config.models: %w\", err)\n\t}\n\tif err := c.Exec.Check(); err != nil {\n\t\treturn fmt.Errorf(\"config.exec: %w\", err)\n\t}\n\tfileList[c.Exec.ImportPath()] = append(fileList[c.Exec.ImportPath()], FilenamePackage{\n\t\tFilename: c.Exec.Filename,\n\t\tPackage:  c.Exec.Package,\n\t\tDeclaree: \"exec\",\n\t})\n\n\tif c.Model.IsDefined() {\n\t\tif err := c.Model.Check(); err != nil {\n\t\t\treturn fmt.Errorf(\"config.model: %w\", err)\n\t\t}\n\t\tfileList[c.Model.ImportPath()] = append(fileList[c.Model.ImportPath()], FilenamePackage{\n\t\t\tFilename: c.Model.Filename,\n\t\t\tPackage:  c.Model.Package,\n\t\t\tDeclaree: \"model\",\n\t\t})\n\t}\n\tif c.Resolver.IsDefined() {\n\t\tif err := c.Resolver.Check(); err != nil {\n\t\t\treturn fmt.Errorf(\"config.resolver: %w\", err)\n\t\t}\n\t\tfileList[c.Resolver.ImportPath()] = append(\n\t\t\tfileList[c.Resolver.ImportPath()],\n\t\t\tFilenamePackage{\n\t\t\t\tFilename: c.Resolver.Filename,\n\t\t\t\tPackage:  c.Resolver.Package,\n\t\t\t\tDeclaree: \"resolver\",\n\t\t\t},\n\t\t)\n\t}\n\tif c.Federation.IsDefined() {\n\t\tif err := c.Federation.Check(); err != nil {\n\t\t\treturn fmt.Errorf(\"config.federation: %w\", err)\n\t\t}\n\t\tfileList[c.Federation.ImportPath()] = append(\n\t\t\tfileList[c.Federation.ImportPath()],\n\t\t\tFilenamePackage{\n\t\t\t\tFilename: c.Federation.Filename,\n\t\t\t\tPackage:  c.Federation.Package,\n\t\t\t\tDeclaree: \"federation\",\n\t\t\t},\n\t\t)\n\t\tif c.Federation.ImportPath() != c.Exec.ImportPath() {\n\t\t\treturn errors.New(\"federation and exec must be in the same package\")\n\t\t}\n\t}\n\n\tfor importPath, pkg := range fileList {\n\t\tfor _, file1 := range pkg {\n\t\t\tfor _, file2 := range pkg {\n\t\t\t\tif file1.Package != file2.Package {\n\t\t\t\t\treturn fmt.Errorf(\n\t\t\t\t\t\t\"%s and %s define the same import path (%s) with different package names (%s vs %s)\",\n\t\t\t\t\t\tfile1.Declaree,\n\t\t\t\t\t\tfile2.Declaree,\n\t\t\t\t\t\timportPath,\n\t\t\t\t\t\tfile1.Package,\n\t\t\t\t\t\tfile2.Package,\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn nil\n}\n\ntype TypeMap map[string]TypeMapEntry\n\nfunc (tm TypeMap) Exists(typeName string) bool {\n\t_, ok := tm[typeName]\n\treturn ok\n}\n\nfunc (tm TypeMap) UserDefined(typeName string) bool {\n\tm, ok := tm[typeName]\n\treturn ok && len(m.Model) > 0\n}\n\nfunc (tm TypeMap) Check() error {\n\tfor typeName, entry := range tm {\n\t\tfor _, model := range entry.Model {\n\t\t\tif strings.LastIndex(model, \".\") < strings.LastIndex(model, \"/\") {\n\t\t\t\treturn fmt.Errorf(\n\t\t\t\t\t\"model %s: invalid type specifier \\\"%s\\\" - you need to specify a struct to map to\",\n\t\t\t\t\ttypeName,\n\t\t\t\t\tentry.Model,\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\n\t\tif len(entry.Model) == 0 {\n\t\t\tfor enum, v := range entry.EnumValues {\n\t\t\t\tif v.Value != \"\" {\n\t\t\t\t\treturn fmt.Errorf(\n\t\t\t\t\t\t\"model is empty for: %v, but enum value is specified for %v\",\n\t\t\t\t\t\ttypeName,\n\t\t\t\t\t\tenum,\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (tm TypeMap) ReferencedPackages() []string {\n\tvar pkgs []string\n\n\tfor _, typ := range tm {\n\t\tfor _, model := range typ.Model {\n\t\t\tif model == \"map[string]any\" ||\n\t\t\t\tmodel == \"map[string]interface{}\" ||\n\t\t\t\tmodel == \"any\" ||\n\t\t\t\tmodel == \"interface{}\" {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tpkg, _ := code.PkgAndType(model)\n\t\t\tif pkg == \"\" || slices.Contains(pkgs, pkg) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tpkgs = append(pkgs, code.QualifyPackagePath(pkg))\n\t\t}\n\t}\n\n\tsort.Slice(pkgs, func(i, j int) bool {\n\t\treturn pkgs[i] > pkgs[j]\n\t})\n\treturn pkgs\n}\n\nfunc (tm TypeMap) Add(name, goType string) {\n\tmodelCfg := tm[name]\n\tmodelCfg.Model = append(modelCfg.Model, goType)\n\ttm[name] = modelCfg\n}\n\nfunc (tm TypeMap) ForceGenerate(name string, forceGenerate bool) {\n\tmodelCfg := tm[name]\n\tmodelCfg.ForceGenerate = forceGenerate\n\ttm[name] = modelCfg\n}\n\ntype DirectiveConfig struct {\n\tSkipRuntime bool `yaml:\"skip_runtime\"`\n\n\t// If the directive implementation is statically defined, don't provide a hook for it\n\t// in the generated server. This is useful for directives that are implemented\n\t// by plugins or the runtime itself.\n\t//\n\t// The function implemmentation should be provided here as a string.\n\t//\n\t// The function should have the following signature:\n\t// func(ctx context.Context, obj any, next graphql.Resolver[, directive arguments if any]) (res\n\t// any, err error)\n\tImplementation *string\n}\n\n// findCfg searches for the config file in this directory and all parents up the tree\n// looking for the closest match\nfunc findCfg() (string, error) {\n\tdir, err := os.Getwd()\n\tif err != nil {\n\t\treturn \"\", fmt.Errorf(\"unable to get working dir to findCfg: %w\", err)\n\t}\n\n\tcfg := findCfgInDir(dir)\n\n\tfor cfg == \"\" && dir != filepath.Dir(dir) {\n\t\tdir = filepath.Dir(dir)\n\t\tcfg = findCfgInDir(dir)\n\t}\n\n\tif cfg == \"\" {\n\t\treturn \"\", os.ErrNotExist\n\t}\n\n\treturn cfg, nil\n}\n\nfunc findCfgInDir(dir string) string {\n\tfor _, cfgName := range cfgFilenames {\n\t\tpath := filepath.Join(dir, cfgName)\n\t\tif _, err := os.Stat(path); err == nil {\n\t\t\treturn path\n\t\t}\n\t}\n\treturn \"\"\n}\n\nfunc (c *Config) autobind() error {\n\tif len(c.AutoBind) == 0 {\n\t\treturn nil\n\t}\n\n\tps := c.Packages.LoadAll(c.AutoBind...)\n\n\tfor _, t := range c.Schema.Types {\n\t\tif c.Models.UserDefined(t.Name) || c.Models[t.Name].ForceGenerate {\n\t\t\tcontinue\n\t\t}\n\n\t\tfor i, p := range ps {\n\t\t\tif p == nil || p.Module == nil {\n\t\t\t\treturn fmt.Errorf(\n\t\t\t\t\t\"unable to load %s - make sure you're using an import path to a package that exists\",\n\t\t\t\t\tc.AutoBind[i],\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tautobindType := c.lookupAutobindType(p, t)\n\t\t\tif autobindType != nil {\n\t\t\t\tc.Models.Add(t.Name, autobindType.Pkg().Path()+\".\"+autobindType.Name())\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\tfor i, t := range c.Models {\n\t\tif t.ForceGenerate {\n\t\t\tcontinue\n\t\t}\n\n\t\tfor j, m := range t.Model {\n\t\t\tpkg, typename := code.PkgAndType(m)\n\n\t\t\t// skip anything that looks like an import path\n\t\t\tif strings.Contains(pkg, \"/\") {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tfor _, p := range ps {\n\t\t\t\tif p.Name != pkg {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif t := p.Types.Scope().Lookup(typename); t != nil {\n\t\t\t\t\tc.Models[i].Model[j] = t.Pkg().Path() + \".\" + t.Name()\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (c *Config) lookupAutobindType(p *packages.Package, schemaType *ast.Definition) types.Object {\n\t// Try binding to either the original schema type name, or the normalized go type name\n\tfor _, lookupName := range []string{schemaType.Name, templates.ToGo(schemaType.Name)} {\n\t\tif t := p.Types.Scope().Lookup(lookupName); t != nil {\n\t\t\treturn t\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (c *Config) injectBuiltins() {\n\tbuiltins := TypeMap{\n\t\t\"__Directive\": {\n\t\t\tModel: StringList{\"github.com/99designs/gqlgen/graphql/introspection.Directive\"},\n\t\t},\n\t\t\"__DirectiveLocation\": {Model: StringList{\"github.com/99designs/gqlgen/graphql.String\"}},\n\t\t\"__Type\": {\n\t\t\tModel: StringList{\"github.com/99designs/gqlgen/graphql/introspection.Type\"},\n\t\t},\n\t\t\"__TypeKind\": {Model: StringList{\"github.com/99designs/gqlgen/graphql.String\"}},\n\t\t\"__Field\": {\n\t\t\tModel: StringList{\"github.com/99designs/gqlgen/graphql/introspection.Field\"},\n\t\t},\n\t\t\"__EnumValue\": {\n\t\t\tModel: StringList{\"github.com/99designs/gqlgen/graphql/introspection.EnumValue\"},\n\t\t},\n\t\t\"__InputValue\": {\n\t\t\tModel: StringList{\"github.com/99designs/gqlgen/graphql/introspection.InputValue\"},\n\t\t},\n\t\t\"__Schema\": {\n\t\t\tModel: StringList{\"github.com/99designs/gqlgen/graphql/introspection.Schema\"},\n\t\t},\n\t\t\"Float\": {\n\t\t\tModel: StringList{\"github.com/99designs/gqlgen/graphql.FloatContext\"},\n\t\t},\n\t\t\"String\":  {Model: StringList{\"github.com/99designs/gqlgen/graphql.String\"}},\n\t\t\"Boolean\": {Model: StringList{\"github.com/99designs/gqlgen/graphql.Boolean\"}},\n\t\t\"Int\": {\n\t\t\t// FIXME: using int / int64 for Int is not spec compliant and introduces\n\t\t\t// security risks. We should default to int32.\n\t\t\tModel: StringList{\n\t\t\t\t\"github.com/99designs/gqlgen/graphql.Int\",\n\t\t\t\t\"github.com/99designs/gqlgen/graphql.Int32\",\n\t\t\t\t\"github.com/99designs/gqlgen/graphql.Int64\",\n\t\t\t},\n\t\t},\n\t\t\"ID\": {\n\t\t\tModel: StringList{\n\t\t\t\t\"github.com/99designs/gqlgen/graphql.ID\",\n\t\t\t\t\"github.com/99designs/gqlgen/graphql.IntID\",\n\t\t\t},\n\t\t},\n\t}\n\n\tfor typeName, entry := range builtins {\n\t\tif !c.Models.Exists(typeName) {\n\t\t\tc.Models[typeName] = entry\n\t\t}\n\t}\n\n\t// These are additional types that are injected if defined in the schema as scalars.\n\textraBuiltins := TypeMap{\n\t\t\"Int64\": {\n\t\t\tModel: StringList{\n\t\t\t\t\"github.com/99designs/gqlgen/graphql.Int\",\n\t\t\t\t\"github.com/99designs/gqlgen/graphql.Int64\",\n\t\t\t},\n\t\t},\n\t\t\"Time\":   {Model: StringList{\"github.com/99designs/gqlgen/graphql.Time\"}},\n\t\t\"Map\":    {Model: StringList{\"github.com/99designs/gqlgen/graphql.Map\"}},\n\t\t\"Upload\": {Model: StringList{\"github.com/99designs/gqlgen/graphql.Upload\"}},\n\t\t\"Any\":    {Model: StringList{\"github.com/99designs/gqlgen/graphql.Any\"}},\n\t}\n\n\tfor typeName, entry := range extraBuiltins {\n\t\tif t, ok := c.Schema.Types[typeName]; !c.Models.Exists(typeName) && ok &&\n\t\t\tt.Kind == ast.Scalar {\n\t\t\tc.Models[typeName] = entry\n\t\t}\n\t}\n}\n\nfunc (c *Config) LoadSchema() error {\n\tif c.Packages != nil {\n\t\tc.Packages = code.NewPackages(\n\t\t\tcode.WithBuildTags(c.GoBuildTags...),\n\t\t\tcode.PackagePrefixToCache(\"github.com/99designs/gqlgen/graphql\"),\n\t\t\tcode.WithPreloadNames(templatePackageNames...),\n\t\t\tcode.WithLightModePrefetch(c.GetUseLightModePrefetch()),\n\t\t)\n\t}\n\n\tif err := c.check(); err != nil {\n\t\treturn err\n\t}\n\n\tschema, err := gqlparser.LoadSchema(c.Sources...)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif schema.Query == nil {\n\t\tschema.Query = &ast.Definition{\n\t\t\tKind: ast.Object,\n\t\t\tName: \"Query\",\n\t\t}\n\t\tschema.Types[\"Query\"] = schema.Query\n\t}\n\n\tc.Schema = schema\n\treturn nil\n}\n\nfunc abs(path string) string {\n\tabsPath, err := filepath.Abs(path)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn filepath.ToSlash(absPath)\n}\n\nfunc newNotApplicableError(directive, argument string, pos ast.Position) error {\n\treturn fmt.Errorf(\n\t\t\"argument '%s' for directive @%s (src: %s, line: %d) not applicable for user-defined models\",\n\t\targument,\n\t\tdirective,\n\t\tpos.Src.Name,\n\t\tpos.Line,\n\t)\n}\n\nfunc newCannotBeEmptyError(directive, argument string, pos ast.Position) error {\n\treturn fmt.Errorf(\n\t\t\"argument '%s' for directive @%s (src: %s, line: %d) cannot by empty\",\n\t\targument,\n\t\tdirective,\n\t\tpos.Src.Name,\n\t\tpos.Line,\n\t)\n}\n"
  },
  {
    "path": "codegen/config/config_directive_test.go",
    "content": "package config\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\nfunc TestDirectiveParsing(t *testing.T) {\n\tt.Run(\"autoBindGetterHaser argument in goField\", func(t *testing.T) {\n\t\tcfg := Config{\n\t\t\tModels:     TypeMap{},\n\t\t\tDirectives: map[string]DirectiveConfig{},\n\t\t}\n\n\t\tcfg.Schema = gqlparser.MustLoadSchema(&ast.Source{Name: \"schema.graphql\", Input: `\n\t\t\tdirective @goField(\n\t\t\t\tforceResolver: Boolean\n\t\t\t\tname: String\n\t\t\t\tomittable: Boolean\n\t\t\t\tautoBindGetterHaser: Boolean\n\t\t\t) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION\n\n\t\t\ttype MyType {\n\t\t\t\tfield1: String @goField(autoBindGetterHaser: true)\n\t\t\t\tfield2: String @goField(autoBindGetterHaser: false)\n\t\t\t\tfield3: String\n\t\t\t}\n\t\t`})\n\n\t\terr := cfg.injectTypesFromSchema()\n\t\trequire.NoError(t, err)\n\n\t\tfield1 := cfg.Models[\"MyType\"].Fields[\"field1\"]\n\t\trequire.NotNil(t, field1.AutoBindGetterHaser)\n\t\trequire.True(t, *field1.AutoBindGetterHaser)\n\n\t\tfield2 := cfg.Models[\"MyType\"].Fields[\"field2\"]\n\t\trequire.NotNil(t, field2.AutoBindGetterHaser)\n\t\trequire.False(t, *field2.AutoBindGetterHaser)\n\n\t\tfield3 := cfg.Models[\"MyType\"].Fields[\"field3\"]\n\t\trequire.Nil(t, field3.AutoBindGetterHaser)\n\t})\n}\n"
  },
  {
    "path": "codegen/config/config_schema_json_test.go",
    "content": "package config\n\nimport (\n\t\"encoding/json\"\n\t\"os\"\n\t\"reflect\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n)\n\n// jsonSchemaProperty represents a node in a JSON Schema tree, capturing\n// the three ways sub-fields can be described: direct properties, map-like\n// additionalProperties, and array items.\ntype jsonSchemaProperty struct {\n\tProperties           map[string]jsonSchemaProperty `json:\"properties\"`\n\tAdditionalProperties *jsonSchemaProperty           `json:\"additionalProperties\"`\n\tItems                *jsonSchemaProperty           `json:\"items\"`\n}\n\n// extractYAMLTagName returns the yaml tag name for a struct field,\n// or \"\" if the field should be skipped (no tag, \"-\", or empty name).\nfunc extractYAMLTagName(field reflect.StructField) string {\n\ttag := field.Tag.Get(\"yaml\")\n\tif tag == \"\" || tag == \"-\" {\n\t\treturn \"\"\n\t}\n\tname, _, _ := strings.Cut(tag, \",\")\n\treturn name\n}\n\n// resolveSchemaProps determines which JSON Schema property map should be used\n// to validate sub-fields for the given Go type:\n//   - struct / *struct       → properties\n//   - map[K]struct           → additionalProperties.properties\n//   - []struct               → items.properties\nfunc resolveSchemaProps(\n\tgoType reflect.Type,\n\tprop jsonSchemaProperty,\n) (structType reflect.Type, schemaProps map[string]jsonSchemaProperty) {\n\t// Unwrap pointer(s).\n\tfor goType.Kind() == reflect.Ptr {\n\t\tgoType = goType.Elem()\n\t}\n\n\tswitch goType.Kind() {\n\tcase reflect.Struct:\n\t\treturn goType, prop.Properties\n\n\tcase reflect.Map:\n\t\tvalType := goType.Elem()\n\t\tfor valType.Kind() == reflect.Ptr {\n\t\t\tvalType = valType.Elem()\n\t\t}\n\t\tif valType.Kind() == reflect.Struct && prop.AdditionalProperties != nil {\n\t\t\treturn valType, prop.AdditionalProperties.Properties\n\t\t}\n\n\tcase reflect.Slice:\n\t\telemType := goType.Elem()\n\t\tfor elemType.Kind() == reflect.Ptr {\n\t\t\telemType = elemType.Elem()\n\t\t}\n\t\tif elemType.Kind() == reflect.Struct && prop.Items != nil {\n\t\t\treturn elemType, prop.Items.Properties\n\t\t}\n\t}\n\n\treturn nil, nil\n}\n\n// checkStructFieldsInSchema recursively verifies that every yaml-tagged field\n// in structType has a corresponding key in schemaProps, then recurses into\n// nested structs, maps-with-struct-values, and slices-of-structs.\nfunc checkStructFieldsInSchema(\n\tt *testing.T,\n\tstructType reflect.Type,\n\tschemaProps map[string]jsonSchemaProperty,\n\tpath string,\n) {\n\tt.Helper()\n\tif len(schemaProps) == 0 {\n\t\treturn\n\t}\n\n\tfor i := range structType.NumField() {\n\t\tfield := structType.Field(i)\n\t\tyamlName := extractYAMLTagName(field)\n\t\tif yamlName == \"\" {\n\t\t\tcontinue\n\t\t}\n\n\t\tassert.Contains(t, schemaProps, yamlName,\n\t\t\t\"%s.%s (yaml:%q) is missing from gqlgen.schema.json at path %s\",\n\t\t\tstructType.Name(), field.Name, yamlName, path)\n\n\t\tprop, ok := schemaProps[yamlName]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\n\t\t// Recurse into nested types.\n\t\tchildStruct, childProps := resolveSchemaProps(field.Type, prop)\n\t\tif childStruct != nil && len(childProps) > 0 {\n\t\t\tcheckStructFieldsInSchema(t, childStruct, childProps, path+\".\"+yamlName)\n\t\t}\n\t}\n}\n\n// TestConfigFieldsPresentInSchemaJSON verifies that every yaml-tagged field\n// in the Config struct (and all nested structs, map-value structs, slice-element\n// structs) has a corresponding property in the gqlgen.schema.json file.\n//\n// All nested sections are discovered via reflection — no manual list needed.\nfunc TestConfigFieldsPresentInSchemaJSON(t *testing.T) {\n\tschemaPath := \"../../gqlgen.schema.json\"\n\tdata, err := os.ReadFile(schemaPath)\n\trequire.NoError(t, err, \"failed to read gqlgen.schema.json\")\n\n\tvar schema jsonSchemaProperty\n\trequire.NoError(t, json.Unmarshal(data, &schema), \"failed to parse gqlgen.schema.json\")\n\n\t// Deprecated fields we intentionally do NOT require in the schema.\n\tdeprecated := map[string]bool{\n\t\t\"federated\": true,\n\t}\n\n\tconfigType := reflect.TypeOf(Config{})\n\tfor i := range configType.NumField() {\n\t\tfield := configType.Field(i)\n\t\tyamlName := extractYAMLTagName(field)\n\t\tif yamlName == \"\" || deprecated[yamlName] {\n\t\t\tcontinue\n\t\t}\n\n\t\tassert.Contains(t, schema.Properties, yamlName,\n\t\t\t\"Config.%s (yaml:%q) is missing from gqlgen.schema.json top-level properties\",\n\t\t\tfield.Name, yamlName)\n\n\t\tprop, ok := schema.Properties[yamlName]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\n\t\t// Recurse into nested struct / map / slice types.\n\t\tchildStruct, childProps := resolveSchemaProps(field.Type, prop)\n\t\tif childStruct != nil && len(childProps) > 0 {\n\t\t\tcheckStructFieldsInSchema(t, childStruct, childProps, yamlName)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "codegen/config/config_test.go",
    "content": "package config\n\nimport (\n\t\"io/fs\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"runtime\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\n\t\"github.com/99designs/gqlgen/internal/code\"\n)\n\nfunc TestLoadConfig(t *testing.T) {\n\tt.Run(\"config does not exist\", func(t *testing.T) {\n\t\t_, err := LoadConfig(\"doesnotexist.yml\")\n\t\trequire.Error(t, err)\n\t})\n}\n\nfunc TestReadConfig(t *testing.T) {\n\tt.Run(\"empty config\", func(t *testing.T) {\n\t\t_, err := ReadConfig(strings.NewReader(\"\"))\n\t\trequire.EqualError(t, err, \"unable to parse config: EOF\")\n\t})\n\n\tt.Run(\"malformed config\", func(t *testing.T) {\n\t\tcfgFile, err := os.Open(\"testdata/cfg/malformedconfig.yml\")\n\t\trequire.NoError(t, err)\n\t\tt.Cleanup(func() { _ = cfgFile.Close() })\n\t\t_, err = ReadConfig(cfgFile)\n\n\t\tactualErr := strings.ReplaceAll(err.Error(), \"\\r\\n\", \"\\n\")\n\t\trequire.Equal(\n\t\t\tt,\n\t\t\t\"unable to parse config: [1:1] string was used where mapping is expected\\n>  1 | asdf\\n       ^\\n\",\n\t\t\tactualErr,\n\t\t)\n\t})\n\n\tt.Run(\"unknown keys\", func(t *testing.T) {\n\t\tcfgFile, err := os.Open(\"testdata/cfg/unknownkeys.yml\")\n\t\trequire.NoError(t, err)\n\t\tt.Cleanup(func() { _ = cfgFile.Close() })\n\t\t_, err = ReadConfig(cfgFile)\n\n\t\tactualErr := strings.ReplaceAll(err.Error(), \"\\r\\n\", \"\\n\")\n\t\trequire.Equal(\n\t\t\tt,\n\t\t\t\"unable to parse config: [2:1] unknown field \\\"unknown\\\"\\n   1 | schema: outer\\n>  2 | unknown: foo\\n       ^\\n\",\n\t\t\tactualErr,\n\t\t)\n\t})\n\n\tt.Run(\"globbed filenames\", func(t *testing.T) {\n\t\tcfgFile, err := os.Open(\"testdata/cfg/glob.yml\")\n\t\trequire.NoError(t, err)\n\t\tt.Cleanup(func() { _ = cfgFile.Close() })\n\t\tc, err := ReadConfig(cfgFile)\n\t\trequire.NoError(t, err)\n\n\t\tif runtime.GOOS == \"windows\" {\n\t\t\trequire.Equal(t, `testdata\\cfg\\glob\\bar\\bar with spaces.graphql`, c.SchemaFilename[0])\n\t\t\trequire.Equal(t, `testdata\\cfg\\glob\\foo\\foo.graphql`, c.SchemaFilename[1])\n\t\t} else {\n\t\t\trequire.Equal(t, \"testdata/cfg/glob/bar/bar with spaces.graphql\", c.SchemaFilename[0])\n\t\t\trequire.Equal(t, \"testdata/cfg/glob/foo/foo.graphql\", c.SchemaFilename[1])\n\t\t}\n\t})\n\n\tt.Run(\"unwalkable path\", func(t *testing.T) {\n\t\tcfgFile, err := os.Open(\"testdata/cfg/unwalkable.yml\")\n\t\trequire.NoError(t, err)\n\t\tt.Cleanup(func() { _ = cfgFile.Close() })\n\t\t_, err = ReadConfig(cfgFile)\n\n\t\tif runtime.GOOS == \"windows\" {\n\t\t\trequire.ErrorContains(t, err, \"failed to walk schema at root not_walkable/: \")\n\t\t\t// TODO(steve): Now that Go 1.25 is min supported, this could be improved.\n\t\t\t// Go 1.24 and below report \"CreateFile\" but 1.25 and above report \"GetFileAttributesEx\"\n\t\t\t// in error\n\t\t\t// See https://go.dev/doc/go1.25#ospkgos\n\t\t\trequire.ErrorContains(\n\t\t\t\tt,\n\t\t\t\terr,\n\t\t\t\t\" not_walkable/: The system cannot find the file specified.\",\n\t\t\t)\n\t\t} else {\n\t\t\trequire.EqualError(\n\t\t\t\tt,\n\t\t\t\terr,\n\t\t\t\t\"failed to walk schema at root not_walkable/: lstat not_walkable/: no such file or directory\",\n\t\t\t)\n\t\t}\n\t})\n}\n\nfunc TestLoadConfigFromDefaultLocation(t *testing.T) {\n\ttestDir, err := os.Getwd()\n\trequire.NoError(t, err)\n\tvar cfg *Config\n\n\tt.Run(\"will find closest match\", func(t *testing.T) {\n\t\tt.Chdir(filepath.Join(testDir, \"testdata\", \"cfg\", \"subdir\"))\n\n\t\tcfg, err = LoadConfigFromDefaultLocations()\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, StringList{\"inner\"}, cfg.SchemaFilename)\n\t})\n\n\tt.Run(\"will find config in parent dirs\", func(t *testing.T) {\n\t\tt.Chdir(filepath.Join(testDir, \"testdata\", \"cfg\", \"otherdir\"))\n\n\t\tcfg, err = LoadConfigFromDefaultLocations()\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, StringList{\"outer\"}, cfg.SchemaFilename)\n\t})\n\n\tt.Run(\"will return error if config doesn't exist\", func(t *testing.T) {\n\t\tt.Chdir(testDir)\n\n\t\tcfg, err = LoadConfigFromDefaultLocations()\n\t\trequire.ErrorIs(t, err, fs.ErrNotExist)\n\t})\n}\n\nfunc TestLoadDefaultConfig(t *testing.T) {\n\ttestDir, err := os.Getwd()\n\trequire.NoError(t, err)\n\tvar cfg *Config\n\n\tt.Run(\"will find the schema\", func(t *testing.T) {\n\t\tt.Chdir(filepath.Join(testDir, \"testdata\", \"defaultconfig\"))\n\n\t\tcfg, err = LoadDefaultConfig()\n\t\trequire.NoError(t, err)\n\t\trequire.NotEmpty(t, cfg.Sources)\n\t})\n\n\tt.Run(\"will return error if schema doesn't exist\", func(t *testing.T) {\n\t\tt.Chdir(testDir)\n\n\t\tcfg, err = LoadDefaultConfig()\n\t\trequire.ErrorIs(t, err, fs.ErrNotExist)\n\t})\n}\n\nfunc TestReferencedPackages(t *testing.T) {\n\tt.Run(\"valid\", func(t *testing.T) {\n\t\ttm := TypeMap{\n\t\t\t\"Foo\": {Model: StringList{\"github.com/test.Foo\"}},\n\t\t\t\"Bar\": {Model: StringList{\"github.com/test.Bar\"}},\n\t\t\t\"Baz\": {Model: StringList{\"github.com/otherpkg.Baz\"}},\n\t\t\t\"Map\": {Model: StringList{\"map[string]any\"}},\n\t\t\t\"SkipResolver\": {\n\t\t\t\tFields: map[string]TypeMapField{\n\t\t\t\t\t\"field\": {Resolver: false},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tpkgs := tm.ReferencedPackages()\n\n\t\tassert.Equal(t, []string{\"github.com/test\", \"github.com/otherpkg\"}, pkgs)\n\t})\n}\n\nfunc TestTypeMapFieldBatch(t *testing.T) {\n\tt.Run(\"batch flag is parsed from config\", func(t *testing.T) {\n\t\tcfg, err := ReadConfig(strings.NewReader(`\nschema: schema.graphql\nexec:\n  filename: generated.go\nmodels:\n  User:\n    fields:\n      posts:\n        resolver: true\n        batch: true\n      name:\n        resolver: false\n`))\n\t\trequire.NoError(t, err)\n\t\trequire.True(t, cfg.Models[\"User\"].Fields[\"posts\"].Batch)\n\t\trequire.True(t, cfg.Models[\"User\"].Fields[\"posts\"].Resolver)\n\t\trequire.False(t, cfg.Models[\"User\"].Fields[\"name\"].Batch)\n\t})\n\n\tt.Run(\"batch flag defaults to false when not specified\", func(t *testing.T) {\n\t\tcfg, err := ReadConfig(strings.NewReader(`\nschema: schema.graphql\nexec:\n  filename: generated.go\nmodels:\n  User:\n    fields:\n      posts:\n        resolver: true\n`))\n\t\trequire.NoError(t, err)\n\t\trequire.False(t, cfg.Models[\"User\"].Fields[\"posts\"].Batch)\n\t})\n}\n\nfunc TestConfigCheck(t *testing.T) {\n\tfor _, execLayout := range []ExecLayout{ExecLayoutSingleFile, ExecLayoutFollowSchema} {\n\t\tt.Run(string(execLayout), func(t *testing.T) {\n\t\t\tt.Run(\"invalid config format due to conflicting package names\", func(t *testing.T) {\n\t\t\t\tconfig := Config{\n\t\t\t\t\tExec: ExecConfig{\n\t\t\t\t\t\tLayout:   execLayout,\n\t\t\t\t\t\tFilename: \"generated/exec.go\",\n\t\t\t\t\t\tDirName:  \"generated\",\n\t\t\t\t\t\tPackage:  \"graphql\",\n\t\t\t\t\t},\n\t\t\t\t\tModel: PackageConfig{Filename: \"generated/models.go\"},\n\t\t\t\t}\n\n\t\t\t\trequire.EqualError(\n\t\t\t\t\tt,\n\t\t\t\t\tconfig.check(),\n\t\t\t\t\t\"exec and model define the same import path (github.com/99designs/gqlgen/codegen/config/generated) with different package names (graphql vs generated)\",\n\t\t\t\t)\n\t\t\t})\n\n\t\t\tt.Run(\"federation must be in exec package\", func(t *testing.T) {\n\t\t\t\tconfig := Config{\n\t\t\t\t\tExec: ExecConfig{\n\t\t\t\t\t\tLayout:   execLayout,\n\t\t\t\t\t\tFilename: \"generated/exec.go\",\n\t\t\t\t\t\tDirName:  \"generated\",\n\t\t\t\t\t},\n\t\t\t\t\tFederation: PackageConfig{Filename: \"anotherpkg/federation.go\"},\n\t\t\t\t}\n\n\t\t\t\trequire.EqualError(\n\t\t\t\t\tt,\n\t\t\t\t\tconfig.check(),\n\t\t\t\t\t\"federation and exec must be in the same package\",\n\t\t\t\t)\n\t\t\t})\n\n\t\t\tt.Run(\"federation must have same package name as exec\", func(t *testing.T) {\n\t\t\t\tconfig := Config{\n\t\t\t\t\tExec: ExecConfig{\n\t\t\t\t\t\tLayout:   execLayout,\n\t\t\t\t\t\tFilename: \"generated/exec.go\",\n\t\t\t\t\t\tDirName:  \"generated\",\n\t\t\t\t\t},\n\t\t\t\t\tFederation: PackageConfig{\n\t\t\t\t\t\tFilename: \"generated/federation.go\",\n\t\t\t\t\t\tPackage:  \"federation\",\n\t\t\t\t\t},\n\t\t\t\t}\n\n\t\t\t\trequire.EqualError(\n\t\t\t\t\tt,\n\t\t\t\t\tconfig.check(),\n\t\t\t\t\t\"exec and federation define the same import path (github.com/99designs/gqlgen/codegen/config/generated) with different package names (generated vs federation)\",\n\t\t\t\t)\n\t\t\t})\n\t\t})\n\t}\n}\n\nfunc TestAutobinding(t *testing.T) {\n\tt.Run(\"valid paths\", func(t *testing.T) {\n\t\tcfg := Config{\n\t\t\tModels: TypeMap{},\n\t\t\tAutoBind: []string{\n\t\t\t\t\"github.com/99designs/gqlgen/codegen/config/testdata/autobinding/chat\",\n\t\t\t\t\"github.com/99designs/gqlgen/codegen/config/testdata/autobinding/scalars/model\",\n\t\t\t},\n\t\t\tPackages: code.NewPackages(),\n\t\t}\n\n\t\tcfg.Schema = gqlparser.MustLoadSchema(&ast.Source{Name: \"TestAutobinding.schema\", Input: `\n\t\t\tscalar Banned\n\t\t\ttype Message { id: ID }\n\t\t`})\n\n\t\trequire.NoError(t, cfg.autobind())\n\n\t\trequire.Equal(\n\t\t\tt,\n\t\t\t\"github.com/99designs/gqlgen/codegen/config/testdata/autobinding/scalars/model.Banned\",\n\t\t\tcfg.Models[\"Banned\"].Model[0],\n\t\t)\n\t\trequire.Equal(\n\t\t\tt,\n\t\t\t\"github.com/99designs/gqlgen/codegen/config/testdata/autobinding/chat.Message\",\n\t\t\tcfg.Models[\"Message\"].Model[0],\n\t\t)\n\t})\n\n\tt.Run(\"normalized type names\", func(t *testing.T) {\n\t\tcfg := Config{\n\t\t\tModels: TypeMap{},\n\t\t\tAutoBind: []string{\n\t\t\t\t\"github.com/99designs/gqlgen/codegen/config/testdata/autobinding/chat\",\n\t\t\t\t\"github.com/99designs/gqlgen/codegen/config/testdata/autobinding/scalars/model\",\n\t\t\t},\n\t\t\tPackages: code.NewPackages(),\n\t\t}\n\n\t\tcfg.Schema = gqlparser.MustLoadSchema(&ast.Source{Name: \"TestAutobinding.schema\", Input: `\n\t\t\tscalar Banned\n\t\t\ttype Message { id: ID }\n\t\t\tenum ProductSKU { ProductSkuTrial }\n\t\t\ttype ChatAPI { id: ID }\n\t\t`})\n\n\t\trequire.NoError(t, cfg.autobind())\n\n\t\trequire.Equal(\n\t\t\tt,\n\t\t\t\"github.com/99designs/gqlgen/codegen/config/testdata/autobinding/scalars/model.Banned\",\n\t\t\tcfg.Models[\"Banned\"].Model[0],\n\t\t)\n\t\trequire.Equal(\n\t\t\tt,\n\t\t\t\"github.com/99designs/gqlgen/codegen/config/testdata/autobinding/chat.Message\",\n\t\t\tcfg.Models[\"Message\"].Model[0],\n\t\t)\n\t\trequire.Equal(\n\t\t\tt,\n\t\t\t\"github.com/99designs/gqlgen/codegen/config/testdata/autobinding/chat.ProductSku\",\n\t\t\tcfg.Models[\"ProductSKU\"].Model[0],\n\t\t)\n\t\trequire.Equal(\n\t\t\tt,\n\t\t\t\"github.com/99designs/gqlgen/codegen/config/testdata/autobinding/chat.ChatAPI\",\n\t\t\tcfg.Models[\"ChatAPI\"].Model[0],\n\t\t)\n\t})\n\n\tt.Run(\"with file path\", func(t *testing.T) {\n\t\tcfg := Config{\n\t\t\tModels: TypeMap{},\n\t\t\tAutoBind: []string{\n\t\t\t\t\"../chat\",\n\t\t\t},\n\t\t\tPackages: code.NewPackages(),\n\t\t}\n\n\t\tcfg.Schema = gqlparser.MustLoadSchema(&ast.Source{Name: \"TestAutobinding.schema\", Input: `\n\t\t\tscalar Banned\n\t\t\ttype Message { id: ID }\n\t\t`})\n\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\tcfg.autobind(),\n\t\t\t\"unable to load ../chat - make sure you're using an import path to a package that exists\",\n\t\t)\n\t})\n\n\tt.Run(\"protobuf getters and hasers\", func(t *testing.T) {\n\t\tcfg := Config{\n\t\t\tModels: TypeMap{},\n\t\t\tAutoBind: []string{\n\t\t\t\t\"github.com/99designs/gqlgen/codegen/config/testdata/autobinding/protomodel\",\n\t\t\t},\n\t\t\tAutobindGetterHaser: true, // Enable protobuf getter/haser support\n\t\t\tPackages:            code.NewPackages(),\n\t\t}\n\n\t\tcfg.Schema = gqlparser.MustLoadSchema(&ast.Source{Name: \"TestAutobinding.schema\", Input: `\n\t\t\ttype ProtoMessage {\n\t\t\t\tname: String\n\t\t\t\tdescription: String\n\t\t\t\tcount: Int!\n\t\t\t}\n\t\t`})\n\n\t\trequire.NoError(t, cfg.autobind())\n\n\t\trequire.Equal(\n\t\t\tt,\n\t\t\t\"github.com/99designs/gqlgen/codegen/config/testdata/autobinding/protomodel.ProtoMessage\",\n\t\t\tcfg.Models[\"ProtoMessage\"].Model[0],\n\t\t)\n\t})\n}\n\nfunc TestLoadSchema(t *testing.T) {\n\tt.Parallel()\n\n\tgetConfig := func(t *testing.T) *Config {\n\t\tt.Helper()\n\n\t\tcfgFile, err := os.Open(\"testdata/cfg/glob.yml\")\n\t\trequire.NoError(t, err)\n\t\tt.Cleanup(func() { _ = cfgFile.Close() })\n\t\tc, err := ReadConfig(cfgFile)\n\t\trequire.NoError(t, err)\n\t\treturn c\n\t}\n\n\tt.Run(\"valid schema\", func(t *testing.T) {\n\t\tcfg := getConfig(t)\n\n\t\tcfg.Sources = []*ast.Source{\n\t\t\t{\n\t\t\t\tInput: `\n\t\t\t\t\ttype Query {\n\t\t\t\t\t  message: Message\n\t\t\t\t\t}\n\t\t\t\t\ttype Message { id: ID }\n\t\t\t\t`,\n\t\t\t},\n\t\t}\n\t\terr := cfg.LoadSchema()\n\t\trequire.NoError(t, err)\n\t\trequire.NotNil(t, cfg.Schema)\n\t})\n\n\tt.Run(\"invalid schema\", func(t *testing.T) {\n\t\tcfg := getConfig(t)\n\n\t\tcfg.Sources = []*ast.Source{\n\t\t\t{\n\t\t\t\tInput: `\n\t\t\t\t\ttype Query {\n\t\t\t\t\t\t// should have fields here\n\t\t\t\t\t}\n\t\t\t\t\ttype Message { id: ID }\n\t\t\t\t`,\n\t\t\t},\n\t\t}\n\t\terr := cfg.LoadSchema()\n\t\trequire.Error(t, err)\n\t\trequire.Nil(t, cfg.Schema)\n\t})\n}\n\nfunc FuzzReadConfig(f *testing.F) {\n\tf.Add([]byte(`schema: schema.graphql`))\n\tf.Add([]byte(`schema:\n  - \"*.graphql\"\nmodel:\n  filename: models_gen.go`))\n\tf.Add([]byte(`schema: schema.graphql\nexec:\n  filename: generated.go\n  package: graphql`))\n\tf.Add([]byte(`schema: schema.graphql\nmodel:\n  filename: models.go\n  package: models\nexec:\n  filename: exec.go`))\n\tf.Add([]byte(``))\n\tf.Add([]byte(`asdf`))\n\tf.Add([]byte(`schema: outer\nunknown: foo`))\n\n\tf.Fuzz(func(t *testing.T, configData []byte) {\n\t\tcfg, err := ReadConfig(strings.NewReader(string(configData)))\n\n\t\tif err == nil && cfg == nil {\n\t\t\tt.Fatal(\"ReadConfig returned nil config without error\")\n\t\t}\n\t})\n}\n\nfunc TestPerformanceOptions(t *testing.T) {\n\tt.Run(\"GetFastValidation defaults to false\", func(t *testing.T) {\n\t\tcfg := &Config{}\n\t\trequire.False(t, cfg.GetFastValidation())\n\t})\n\n\tt.Run(\"GetFastValidation returns true when set\", func(t *testing.T) {\n\t\tval := true\n\t\tcfg := &Config{FastValidation: &val}\n\t\trequire.True(t, cfg.GetFastValidation())\n\t})\n\n\tt.Run(\"GetSkipImportGrouping defaults to false\", func(t *testing.T) {\n\t\tcfg := &Config{}\n\t\trequire.False(t, cfg.GetSkipImportGrouping())\n\t})\n\n\tt.Run(\"GetSkipImportGrouping returns true when set\", func(t *testing.T) {\n\t\tval := true\n\t\tcfg := &Config{SkipImportGrouping: &val}\n\t\trequire.True(t, cfg.GetSkipImportGrouping())\n\t})\n\n\tt.Run(\"GetUseLightModePrefetch defaults to false\", func(t *testing.T) {\n\t\tcfg := &Config{}\n\t\trequire.False(t, cfg.GetUseLightModePrefetch())\n\t})\n\n\tt.Run(\"GetUseLightModePrefetch returns true when set\", func(t *testing.T) {\n\t\tval := true\n\t\tcfg := &Config{UseLightModePrefetch: &val}\n\t\trequire.True(t, cfg.GetUseLightModePrefetch())\n\t})\n\n\tt.Run(\"GetUseBufferPooling defaults to false\", func(t *testing.T) {\n\t\tcfg := &Config{}\n\t\trequire.False(t, cfg.GetUseBufferPooling())\n\t})\n\n\tt.Run(\"GetUseBufferPooling returns true when set\", func(t *testing.T) {\n\t\tval := true\n\t\tcfg := &Config{UseBufferPooling: &val}\n\t\trequire.True(t, cfg.GetUseBufferPooling())\n\t})\n\n\tt.Run(\"GetPruneOptions returns correct values\", func(t *testing.T) {\n\t\tskipImport := true\n\t\tuseBuffer := true\n\t\tcfg := &Config{SkipImportGrouping: &skipImport, UseBufferPooling: &useBuffer}\n\t\topts := cfg.GetPruneOptions()\n\t\trequire.True(t, opts.SkipImportGrouping)\n\t\trequire.True(t, opts.UseBufferPooling)\n\t})\n}\n"
  },
  {
    "path": "codegen/config/exec.go",
    "content": "package config\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"go/types\"\n\t\"path/filepath\"\n\t\"strings\"\n\n\t\"github.com/99designs/gqlgen/internal/code\"\n)\n\ntype ExecConfig struct {\n\tPackage string     `yaml:\"package,omitempty\"`\n\tLayout  ExecLayout `yaml:\"layout,omitempty\"` // Default: single-file\n\n\t// Only for single-file layout:\n\tFilename string `yaml:\"filename,omitempty\"`\n\n\t// Only for follow-schema layout:\n\tFilenameTemplate string `yaml:\"filename_template,omitempty\"` // String template with {name} as placeholder for base name.\n\tDirName          string `yaml:\"dir\"`\n\n\t// Maximum number of goroutines in concurrency to use when running multiple child resolvers\n\t// Suppressing the number of goroutines generated can reduce memory consumption per request,\n\t// but processing time may increase due to the reduced number of concurrences\n\t// Default: 0 (unlimited)\n\tWorkerLimit uint `yaml:\"worker_limit\"`\n}\n\ntype ExecLayout string\n\nvar (\n\t// Write all generated code to a single file.\n\tExecLayoutSingleFile ExecLayout = \"single-file\"\n\t// Write generated code to a directory, generating one Go source file for each GraphQL schema\n\t// file.\n\tExecLayoutFollowSchema ExecLayout = \"follow-schema\"\n)\n\nfunc (r *ExecConfig) Check() error {\n\tif r.Layout == \"\" {\n\t\tr.Layout = ExecLayoutSingleFile\n\t}\n\n\tswitch r.Layout {\n\tcase ExecLayoutSingleFile:\n\t\tif r.Filename == \"\" {\n\t\t\treturn errors.New(\"filename must be specified when using single-file layout\")\n\t\t}\n\t\tif !strings.HasSuffix(r.Filename, \".go\") {\n\t\t\treturn errors.New(\n\t\t\t\t\"filename should be path to a go source file when using single-file layout\",\n\t\t\t)\n\t\t}\n\t\tr.Filename = abs(r.Filename)\n\tcase ExecLayoutFollowSchema:\n\t\tif r.DirName == \"\" {\n\t\t\treturn errors.New(\"dir must be specified when using follow-schema layout\")\n\t\t}\n\t\tr.DirName = abs(r.DirName)\n\tdefault:\n\t\treturn fmt.Errorf(\"invalid layout %s\", r.Layout)\n\t}\n\n\tif strings.ContainsAny(r.Package, \"./\\\\\") {\n\t\treturn errors.New(\n\t\t\t\"package should be the output package name only, do not include the output filename\",\n\t\t)\n\t}\n\n\tif r.Package == \"\" && r.Dir() != \"\" {\n\t\tr.Package = code.NameForDir(r.Dir())\n\t}\n\n\treturn nil\n}\n\nfunc (r *ExecConfig) ImportPath() string {\n\tif r.Dir() == \"\" {\n\t\treturn \"\"\n\t}\n\treturn code.ImportPathForDir(r.Dir())\n}\n\nfunc (r *ExecConfig) Dir() string {\n\tswitch r.Layout {\n\tcase ExecLayoutSingleFile:\n\t\tif r.Filename == \"\" {\n\t\t\treturn \"\"\n\t\t}\n\t\treturn filepath.Dir(r.Filename)\n\tcase ExecLayoutFollowSchema:\n\t\treturn abs(r.DirName)\n\tdefault:\n\t\tpanic(\"invalid layout \" + r.Layout)\n\t}\n}\n\nfunc (r *ExecConfig) Pkg() *types.Package {\n\tif r.Dir() == \"\" {\n\t\treturn nil\n\t}\n\treturn types.NewPackage(r.ImportPath(), r.Package)\n}\n\nfunc (r *ExecConfig) IsDefined() bool {\n\treturn r.Filename != \"\" || r.DirName != \"\"\n}\n"
  },
  {
    "path": "codegen/config/initialisms.go",
    "content": "package config\n\nimport (\n\t\"strings\"\n\n\t\"github.com/99designs/gqlgen/codegen/templates\"\n)\n\n// GoInitialismsConfig allows to modify the default behavior of naming Go methods, types and\n// properties\ntype GoInitialismsConfig struct {\n\t// If true, the Initialisms won't get appended to the default ones but replace them\n\tReplaceDefaults bool `yaml:\"replace_defaults\"`\n\t// Custom initialisms to be added or to replace the default ones\n\tInitialisms []string `yaml:\"initialisms\"`\n}\n\n// setInitialisms adjusts GetInitialisms based on its settings.\nfunc (i GoInitialismsConfig) setInitialisms() {\n\ttoUse := i.determineGoInitialisms()\n\ttemplates.GetInitialisms = func() map[string]bool {\n\t\treturn toUse\n\t}\n}\n\n// determineGoInitialisms returns the Go initialisms to be used, based on its settings.\nfunc (i GoInitialismsConfig) determineGoInitialisms() (initialismsToUse map[string]bool) {\n\tif i.ReplaceDefaults {\n\t\tinitialismsToUse = make(map[string]bool, len(i.Initialisms))\n\t\tfor _, initialism := range i.Initialisms {\n\t\t\tinitialismsToUse[strings.ToUpper(initialism)] = true\n\t\t}\n\t} else {\n\t\tinitialismsToUse = make(\n\t\t\tmap[string]bool,\n\t\t\tlen(templates.CommonInitialisms)+len(i.Initialisms),\n\t\t)\n\t\tfor initialism, value := range templates.CommonInitialisms {\n\t\t\tinitialismsToUse[strings.ToUpper(initialism)] = value\n\t\t}\n\t\tfor _, initialism := range i.Initialisms {\n\t\t\tinitialismsToUse[strings.ToUpper(initialism)] = true\n\t\t}\n\t}\n\treturn initialismsToUse\n}\n"
  },
  {
    "path": "codegen/config/initialisms_test.go",
    "content": "package config\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/codegen/templates\"\n)\n\nfunc TestGoInitialismsConfig(t *testing.T) {\n\tt.Run(\"load go initialisms config\", func(t *testing.T) {\n\t\tconfig, err := LoadConfig(\"testdata/cfg/goInitialisms.yml\")\n\t\trequire.NoError(t, err)\n\t\trequire.True(t, config.GoInitialisms.ReplaceDefaults)\n\t\trequire.Len(t, config.GoInitialisms.Initialisms, 2)\n\t})\n\tt.Run(\"empty initialism config doesn't change anything\", func(t *testing.T) {\n\t\ttt := GoInitialismsConfig{}\n\t\tresult := tt.determineGoInitialisms()\n\t\tassert.Len(t, result, len(templates.CommonInitialisms))\n\t})\n\tt.Run(\"initialism config appends if desired\", func(t *testing.T) {\n\t\ttt := GoInitialismsConfig{ReplaceDefaults: false, Initialisms: []string{\"ASDF\"}}\n\t\tresult := tt.determineGoInitialisms()\n\t\tassert.Len(t, result, len(templates.CommonInitialisms)+1)\n\t\tassert.True(t, result[\"ASDF\"])\n\t})\n\tt.Run(\"initialism config replaces if desired\", func(t *testing.T) {\n\t\ttt := GoInitialismsConfig{ReplaceDefaults: true, Initialisms: []string{\"ASDF\"}}\n\t\tresult := tt.determineGoInitialisms()\n\t\tassert.Len(t, result, 1)\n\t\tassert.True(t, result[\"ASDF\"])\n\t})\n\tt.Run(\"initialism config uppercases the initialisms\", func(t *testing.T) {\n\t\ttt := GoInitialismsConfig{Initialisms: []string{\"asdf\"}}\n\t\tresult := tt.determineGoInitialisms()\n\t\tassert.True(t, result[\"ASDF\"])\n\t})\n}\n"
  },
  {
    "path": "codegen/config/package.go",
    "content": "package config\n\nimport (\n\t\"errors\"\n\t\"go/types\"\n\t\"path/filepath\"\n\t\"strings\"\n\n\t\"github.com/99designs/gqlgen/internal/code\"\n)\n\ntype PackageConfig struct {\n\tFilename      string          `yaml:\"filename,omitempty\"`\n\tPackage       string          `yaml:\"package,omitempty\"`\n\tVersion       int             `yaml:\"version,omitempty\"`\n\tModelTemplate string          `yaml:\"model_template,omitempty\"`\n\tOptions       map[string]bool `yaml:\"options,omitempty\"`\n}\n\nfunc (c *PackageConfig) ImportPath() string {\n\tif !c.IsDefined() {\n\t\treturn \"\"\n\t}\n\treturn code.ImportPathForDir(c.Dir())\n}\n\nfunc (c *PackageConfig) Dir() string {\n\tif !c.IsDefined() {\n\t\treturn \"\"\n\t}\n\treturn filepath.Dir(c.Filename)\n}\n\nfunc (c *PackageConfig) Pkg() *types.Package {\n\tif !c.IsDefined() {\n\t\treturn nil\n\t}\n\treturn types.NewPackage(c.ImportPath(), c.Package)\n}\n\nfunc (c *PackageConfig) IsDefined() bool {\n\treturn c.Filename != \"\"\n}\n\nfunc (c *PackageConfig) Check() error {\n\tif strings.ContainsAny(c.Package, \"./\\\\\") {\n\t\treturn errors.New(\n\t\t\t\"package should be the output package name only, do not include the output filename\",\n\t\t)\n\t}\n\tif c.Filename == \"\" {\n\t\treturn errors.New(\"filename must be specified\")\n\t}\n\tif !strings.HasSuffix(c.Filename, \".go\") {\n\t\treturn errors.New(\"filename should be path to a go source file\")\n\t}\n\n\tc.Filename = abs(c.Filename)\n\n\t// If Package is not set, first attempt to load the package at the output dir. If that fails\n\t// fallback to just the base dir name of the output filename.\n\tif c.Package == \"\" {\n\t\tc.Package = code.NameForDir(c.Dir())\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "codegen/config/package_test.go",
    "content": "package config\n\nimport (\n\t\"path/filepath\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestPackageConfig(t *testing.T) {\n\tt.Run(\"when given just a filename\", func(t *testing.T) {\n\t\tp := PackageConfig{Filename: \"testdata/example.go\"}\n\t\trequire.True(t, p.IsDefined())\n\n\t\trequire.NoError(t, p.Check())\n\n\t\trequire.Equal(t, \"config_test_data\", p.Package)\n\t\trequire.Equal(t, \"github.com/99designs/gqlgen/codegen/config/testdata\", p.ImportPath())\n\n\t\trequire.Equal(t, \"config_test_data\", p.Pkg().Name())\n\t\trequire.Equal(t, \"github.com/99designs/gqlgen/codegen/config/testdata\", p.Pkg().Path())\n\n\t\trequire.Contains(t, filepath.ToSlash(p.Filename), \"codegen/config/testdata/example.go\")\n\t\trequire.Contains(t, filepath.ToSlash(p.Dir()), \"codegen/config/testdata\")\n\t})\n\n\tt.Run(\"when given both\", func(t *testing.T) {\n\t\tp := PackageConfig{Filename: \"testdata/example.go\", Package: \"wololo\"}\n\t\trequire.True(t, p.IsDefined())\n\n\t\trequire.NoError(t, p.Check())\n\n\t\trequire.Equal(t, \"wololo\", p.Package)\n\t\trequire.Equal(t, \"github.com/99designs/gqlgen/codegen/config/testdata\", p.ImportPath())\n\n\t\trequire.Equal(t, \"wololo\", p.Pkg().Name())\n\t\trequire.Equal(t, \"github.com/99designs/gqlgen/codegen/config/testdata\", p.Pkg().Path())\n\n\t\trequire.Contains(t, filepath.ToSlash(p.Filename), \"codegen/config/testdata/example.go\")\n\t\trequire.Contains(t, filepath.ToSlash(p.Dir()), \"codegen/config/testdata\")\n\t})\n\n\tt.Run(\"when given nothing\", func(t *testing.T) {\n\t\tp := PackageConfig{}\n\t\trequire.False(t, p.IsDefined())\n\n\t\trequire.EqualError(t, p.Check(), \"filename must be specified\")\n\n\t\trequire.Empty(t, p.Package)\n\t\trequire.Empty(t, p.ImportPath())\n\n\t\trequire.Nil(t, p.Pkg())\n\n\t\trequire.Empty(t, p.Filename)\n\t\trequire.Empty(t, p.Dir())\n\t})\n\n\tt.Run(\"when given invalid filename\", func(t *testing.T) {\n\t\tp := PackageConfig{Filename: \"wololo.sql\"}\n\t\trequire.True(t, p.IsDefined())\n\n\t\trequire.EqualError(t, p.Check(), \"filename should be path to a go source file\")\n\t})\n\n\tt.Run(\"when package includes a filename\", func(t *testing.T) {\n\t\tp := PackageConfig{Filename: \"foo.go\", Package: \"foo/foo.go\"}\n\t\trequire.True(t, p.IsDefined())\n\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\tp.Check(),\n\t\t\t\"package should be the output package name only, do not include the output filename\",\n\t\t)\n\t})\n}\n"
  },
  {
    "path": "codegen/config/resolver.go",
    "content": "package config\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"go/types\"\n\t\"path/filepath\"\n\t\"strings\"\n\n\t\"github.com/99designs/gqlgen/internal/code\"\n)\n\ntype ResolverConfig struct {\n\tFilename            string         `yaml:\"filename,omitempty\"`\n\tFilenameTemplate    string         `yaml:\"filename_template,omitempty\"`\n\tPackage             string         `yaml:\"package,omitempty\"`\n\tType                string         `yaml:\"type,omitempty\"`\n\tLayout              ResolverLayout `yaml:\"layout,omitempty\"`\n\tDirName             string         `yaml:\"dir\"`\n\tOmitTemplateComment bool           `yaml:\"omit_template_comment,omitempty\"`\n\tResolverTemplate    string         `yaml:\"resolver_template,omitempty\"`\n\tPreserveResolver    bool           `yaml:\"preserve_resolver,omitempty\"`\n}\n\ntype ResolverLayout string\n\nvar (\n\tLayoutSingleFile   ResolverLayout = \"single-file\"\n\tLayoutFollowSchema ResolverLayout = \"follow-schema\"\n)\n\nfunc (r *ResolverConfig) Check() error {\n\tif r.Layout == \"\" {\n\t\tr.Layout = LayoutSingleFile\n\t}\n\tif r.Type == \"\" {\n\t\tr.Type = \"Resolver\"\n\t}\n\n\tswitch r.Layout {\n\tcase LayoutSingleFile:\n\t\tif r.Filename == \"\" {\n\t\t\treturn fmt.Errorf(\"filename must be specified with layout=%s\", r.Layout)\n\t\t}\n\t\tif !strings.HasSuffix(r.Filename, \".go\") {\n\t\t\treturn fmt.Errorf(\n\t\t\t\t\"filename should be path to a go source file with layout=%s\",\n\t\t\t\tr.Layout,\n\t\t\t)\n\t\t}\n\t\tr.Filename = abs(r.Filename)\n\tcase LayoutFollowSchema:\n\t\tif r.DirName == \"\" {\n\t\t\treturn fmt.Errorf(\"dirname must be specified with layout=%s\", r.Layout)\n\t\t}\n\t\tr.DirName = abs(r.DirName)\n\t\tif r.Filename == \"\" {\n\t\t\tr.Filename = filepath.Join(r.DirName, \"resolver.go\")\n\t\t} else {\n\t\t\tr.Filename = abs(r.Filename)\n\t\t}\n\tdefault:\n\t\treturn fmt.Errorf(\n\t\t\t\"invalid layout %s. must be %s or %s\",\n\t\t\tr.Layout,\n\t\t\tLayoutSingleFile,\n\t\t\tLayoutFollowSchema,\n\t\t)\n\t}\n\n\tif strings.ContainsAny(r.Package, \"./\\\\\") {\n\t\treturn errors.New(\n\t\t\t\"package should be the output package name only, do not include the output filename\",\n\t\t)\n\t}\n\n\tif r.Package == \"\" && r.Dir() != \"\" {\n\t\tr.Package = code.NameForDir(r.Dir())\n\t}\n\n\treturn nil\n}\n\nfunc (r *ResolverConfig) ImportPath() string {\n\tif r.Dir() == \"\" {\n\t\treturn \"\"\n\t}\n\treturn code.ImportPathForDir(r.Dir())\n}\n\nfunc (r *ResolverConfig) Dir() string {\n\tswitch r.Layout {\n\tcase LayoutSingleFile:\n\t\tif r.Filename == \"\" {\n\t\t\treturn \"\"\n\t\t}\n\t\treturn filepath.Dir(r.Filename)\n\tcase LayoutFollowSchema:\n\t\treturn r.DirName\n\tdefault:\n\t\tpanic(\"invalid layout \" + r.Layout)\n\t}\n}\n\nfunc (r *ResolverConfig) Pkg() *types.Package {\n\tif r.Dir() == \"\" {\n\t\treturn nil\n\t}\n\treturn types.NewPackage(r.ImportPath(), r.Package)\n}\n\nfunc (r *ResolverConfig) IsDefined() bool {\n\treturn r.Filename != \"\" || r.DirName != \"\"\n}\n"
  },
  {
    "path": "codegen/config/resolver_test.go",
    "content": "package config\n\nimport (\n\t\"path/filepath\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestResolverConfig(t *testing.T) {\n\tt.Run(\"single-file\", func(t *testing.T) {\n\t\tt.Run(\"when given just a filename\", func(t *testing.T) {\n\t\t\tp := ResolverConfig{Filename: \"testdata/example.go\"}\n\t\t\trequire.True(t, p.IsDefined())\n\n\t\t\trequire.NoError(t, p.Check())\n\t\t\trequire.NoError(t, p.Check())\n\n\t\t\trequire.Equal(t, \"config_test_data\", p.Package)\n\t\t\trequire.Equal(t, \"github.com/99designs/gqlgen/codegen/config/testdata\", p.ImportPath())\n\n\t\t\trequire.Equal(t, \"config_test_data\", p.Pkg().Name())\n\t\t\trequire.Equal(t, \"github.com/99designs/gqlgen/codegen/config/testdata\", p.Pkg().Path())\n\n\t\t\trequire.Contains(t, filepath.ToSlash(p.Filename), \"codegen/config/testdata/example.go\")\n\t\t\trequire.Contains(t, filepath.ToSlash(p.Dir()), \"codegen/config/testdata\")\n\t\t})\n\n\t\tt.Run(\"when given both\", func(t *testing.T) {\n\t\t\tp := ResolverConfig{Filename: \"testdata/example.go\", Package: \"wololo\"}\n\t\t\trequire.True(t, p.IsDefined())\n\n\t\t\trequire.NoError(t, p.Check())\n\t\t\trequire.NoError(t, p.Check())\n\n\t\t\trequire.Equal(t, \"wololo\", p.Package)\n\t\t\trequire.Equal(t, \"github.com/99designs/gqlgen/codegen/config/testdata\", p.ImportPath())\n\n\t\t\trequire.Equal(t, \"wololo\", p.Pkg().Name())\n\t\t\trequire.Equal(t, \"github.com/99designs/gqlgen/codegen/config/testdata\", p.Pkg().Path())\n\n\t\t\trequire.Contains(t, filepath.ToSlash(p.Filename), \"codegen/config/testdata/example.go\")\n\t\t\trequire.Contains(t, filepath.ToSlash(p.Dir()), \"codegen/config/testdata\")\n\t\t})\n\n\t\tt.Run(\"when given nothing\", func(t *testing.T) {\n\t\t\tp := ResolverConfig{}\n\t\t\trequire.False(t, p.IsDefined())\n\n\t\t\trequire.EqualError(t, p.Check(), \"filename must be specified with layout=single-file\")\n\n\t\t\trequire.Empty(t, p.Package)\n\t\t\trequire.Empty(t, p.ImportPath())\n\n\t\t\trequire.Nil(t, p.Pkg())\n\n\t\t\trequire.Empty(t, p.Filename)\n\t\t\trequire.Empty(t, p.Dir())\n\t\t})\n\n\t\tt.Run(\"when given invalid filename\", func(t *testing.T) {\n\t\t\tp := ResolverConfig{Filename: \"wololo.sql\"}\n\t\t\trequire.True(t, p.IsDefined())\n\n\t\t\trequire.EqualError(\n\t\t\t\tt,\n\t\t\t\tp.Check(),\n\t\t\t\t\"filename should be path to a go source file with layout=single-file\",\n\t\t\t)\n\t\t})\n\n\t\tt.Run(\"when package includes a filename\", func(t *testing.T) {\n\t\t\tp := ResolverConfig{Filename: \"foo.go\", Package: \"foo/foo.go\"}\n\t\t\trequire.True(t, p.IsDefined())\n\n\t\t\trequire.EqualError(\n\t\t\t\tt,\n\t\t\t\tp.Check(),\n\t\t\t\t\"package should be the output package name only, do not include the output filename\",\n\t\t\t)\n\t\t})\n\t})\n\n\tt.Run(\"follow-schema\", func(t *testing.T) {\n\t\tt.Run(\"when given just a dir\", func(t *testing.T) {\n\t\t\tp := ResolverConfig{Layout: LayoutFollowSchema, DirName: \"testdata\"}\n\t\t\trequire.True(t, p.IsDefined())\n\n\t\t\trequire.NoError(t, p.Check())\n\t\t\trequire.NoError(t, p.Check())\n\n\t\t\trequire.Equal(t, \"config_test_data\", p.Package)\n\t\t\trequire.Equal(t, \"github.com/99designs/gqlgen/codegen/config/testdata\", p.ImportPath())\n\n\t\t\trequire.Equal(t, \"config_test_data\", p.Pkg().Name())\n\t\t\trequire.Equal(t, \"github.com/99designs/gqlgen/codegen/config/testdata\", p.Pkg().Path())\n\n\t\t\trequire.Contains(t, filepath.ToSlash(p.Filename), \"codegen/config/testdata/resolver.go\")\n\t\t\trequire.Contains(t, p.Dir(), \"codegen/config/testdata\")\n\t\t})\n\n\t\tt.Run(\"when given dir and package name\", func(t *testing.T) {\n\t\t\tp := ResolverConfig{Layout: LayoutFollowSchema, DirName: \"testdata\", Package: \"wololo\"}\n\t\t\trequire.True(t, p.IsDefined())\n\n\t\t\trequire.NoError(t, p.Check())\n\t\t\trequire.NoError(t, p.Check())\n\n\t\t\trequire.Equal(t, \"wololo\", p.Package)\n\t\t\trequire.Equal(t, \"github.com/99designs/gqlgen/codegen/config/testdata\", p.ImportPath())\n\n\t\t\trequire.Equal(t, \"wololo\", p.Pkg().Name())\n\t\t\trequire.Equal(t, \"github.com/99designs/gqlgen/codegen/config/testdata\", p.Pkg().Path())\n\n\t\t\trequire.Contains(t, filepath.ToSlash(p.Filename), \"codegen/config/testdata/resolver.go\")\n\t\t\trequire.Contains(t, p.Dir(), \"codegen/config/testdata\")\n\t\t})\n\n\t\tt.Run(\"when given a filename\", func(t *testing.T) {\n\t\t\tp := ResolverConfig{\n\t\t\t\tLayout:   LayoutFollowSchema,\n\t\t\t\tDirName:  \"testdata\",\n\t\t\t\tFilename: \"testdata/asdf.go\",\n\t\t\t}\n\t\t\trequire.True(t, p.IsDefined())\n\n\t\t\trequire.NoError(t, p.Check())\n\t\t\trequire.NoError(t, p.Check())\n\n\t\t\trequire.Equal(t, \"config_test_data\", p.Package)\n\t\t\trequire.Equal(t, \"github.com/99designs/gqlgen/codegen/config/testdata\", p.ImportPath())\n\n\t\t\trequire.Equal(t, \"config_test_data\", p.Pkg().Name())\n\t\t\trequire.Equal(t, \"github.com/99designs/gqlgen/codegen/config/testdata\", p.Pkg().Path())\n\n\t\t\trequire.Contains(t, filepath.ToSlash(p.Filename), \"codegen/config/testdata/asdf.go\")\n\t\t\trequire.Contains(t, p.Dir(), \"codegen/config/testdata\")\n\t\t})\n\n\t\tt.Run(\"when given nothing\", func(t *testing.T) {\n\t\t\tp := ResolverConfig{Layout: LayoutFollowSchema}\n\t\t\trequire.False(t, p.IsDefined())\n\n\t\t\trequire.EqualError(t, p.Check(), \"dirname must be specified with layout=follow-schema\")\n\n\t\t\trequire.Empty(t, p.Package)\n\t\t\trequire.Empty(t, p.ImportPath())\n\n\t\t\trequire.Nil(t, p.Pkg())\n\n\t\t\trequire.Empty(t, p.Filename)\n\t\t\trequire.Empty(t, p.Dir())\n\t\t})\n\t})\n\n\tt.Run(\"invalid layout\", func(t *testing.T) {\n\t\tp := ResolverConfig{Layout: \"pies\", Filename: \"asdf.go\"}\n\t\trequire.True(t, p.IsDefined())\n\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\tp.Check(),\n\t\t\t\"invalid layout pies. must be single-file or follow-schema\",\n\t\t)\n\t})\n}\n"
  },
  {
    "path": "codegen/config/testdata/autobinding/chat/model.go",
    "content": "package chat\n\nimport (\n\t\"time\"\n)\n\ntype Message struct {\n\tID        string    `json:\"id\"`\n\tText      string    `json:\"text\"`\n\tCreatedBy string    `json:\"createdBy\"`\n\tCreatedAt time.Time `json:\"createdAt\"`\n}\n\ntype ProductSku string\n\nconst (\n\tProductSkuTrial ProductSku = \"Trial\"\n)\n\ntype ChatAPI struct {\n\tID string `json:\"id\"`\n}\n"
  },
  {
    "path": "codegen/config/testdata/autobinding/protomodel/model.go",
    "content": "package protomodel\n\n// ProtoMessage simulates a protobuf editions message with getters and hasers\ntype ProtoMessage struct {\n\tname        *string\n\tdescription *string\n\tcount       int32\n}\n\n// GetName is a protobuf-style getter\nfunc (m *ProtoMessage) GetName() string {\n\tif m.name == nil {\n\t\treturn \"\"\n\t}\n\treturn *m.name\n}\n\n// HasName is a protobuf-style haser\nfunc (m *ProtoMessage) HasName() bool {\n\treturn m.name != nil\n}\n\n// GetDescription is a protobuf-style getter\nfunc (m *ProtoMessage) GetDescription() string {\n\tif m.description == nil {\n\t\treturn \"\"\n\t}\n\treturn *m.description\n}\n\n// HasDescription is a protobuf-style haser\nfunc (m *ProtoMessage) HasDescription() bool {\n\treturn m.description != nil\n}\n\n// GetCount is a protobuf-style getter for a non-nullable field\nfunc (m *ProtoMessage) GetCount() int32 {\n\treturn m.count\n}\n"
  },
  {
    "path": "codegen/config/testdata/autobinding/scalars/model/model.go",
    "content": "package model\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"strings\"\n)\n\ntype Banned bool\n\nfunc (b Banned) MarshalGQL(w io.Writer) {\n\tif b {\n\t\tw.Write([]byte(\"true\"))\n\t} else {\n\t\tw.Write([]byte(\"false\"))\n\t}\n}\n\nfunc (b *Banned) UnmarshalGQL(v any) error {\n\tswitch v := v.(type) {\n\tcase string:\n\t\t*b = strings.ToLower(v) == \"true\"\n\t\treturn nil\n\tcase bool:\n\t\t*b = Banned(v)\n\t\treturn nil\n\tdefault:\n\t\treturn fmt.Errorf(\"%T is not a bool\", v)\n\t}\n}\n"
  },
  {
    "path": "codegen/config/testdata/binding/model.go",
    "content": "package binding\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"io\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\ntype Number int\n\nfunc (e *Number) UnmarshalGQL(v any) error {\n\tnum, err := graphql.UnmarshalInt(v)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*e = Number(num)\n\treturn nil\n}\n\nfunc (e Number) MarshalGQL(w io.Writer) error {\n\tfmt.Fprint(w, e)\n\treturn nil\n}\n\ntype ContextNumber int\n\nfunc (e *ContextNumber) UnmarshalGQLContext(ctx context.Context, v any) error {\n\tnum, err := graphql.UnmarshalInt(v)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*e = Number(num)\n\treturn nil\n}\n\nfunc (e ContextNumber) MarshalGQLContext(_ context.Context, w io.Writer) error {\n\tfmt.Fprint(w, e)\n\treturn nil\n}\n"
  },
  {
    "path": "codegen/config/testdata/cfg/glob/bar/bar with spaces.graphql",
    "content": "type Query {\n  todos: [Todo!]!\n}\n\ninput NewTodo {\n  text: String!\n  userId: String!\n}\n\ntype Mutation {\n  createTodo(input: NewTodo!): Todo!\n}\n"
  },
  {
    "path": "codegen/config/testdata/cfg/glob/foo/foo.graphql",
    "content": "type Todo {\n  id: ID!\n  text: String!\n  done: Boolean!\n  user: User!\n}\n\ntype User {\n  id: ID!\n  name: String!\n}\n"
  },
  {
    "path": "codegen/config/testdata/cfg/glob.yml",
    "content": "schema:\n- testdata/cfg/glob/**/*.graphql\nexec:\n  filename: generated.go\nmodel:\n  filename: models_gen.go\nresolver:\n  filename: resolver.go\n  type: Resolver\n"
  },
  {
    "path": "codegen/config/testdata/cfg/goInitialisms.yml",
    "content": "go_initialisms:\n  replace_defaults: true\n  initialisms:\n    - 'CC'\n    - 'BCC'\n"
  },
  {
    "path": "codegen/config/testdata/cfg/gqlgen.yml",
    "content": "schema: outer\n"
  },
  {
    "path": "codegen/config/testdata/cfg/malformedconfig.yml",
    "content": "asdf\n"
  },
  {
    "path": "codegen/config/testdata/cfg/otherdir/.gitkeep",
    "content": ""
  },
  {
    "path": "codegen/config/testdata/cfg/outer",
    "content": ""
  },
  {
    "path": "codegen/config/testdata/cfg/subdir/gqlgen.yaml",
    "content": "schema: inner\n"
  },
  {
    "path": "codegen/config/testdata/cfg/subdir/inner",
    "content": ""
  },
  {
    "path": "codegen/config/testdata/cfg/unknownkeys.yml",
    "content": "schema: outer\nunknown: foo\n"
  },
  {
    "path": "codegen/config/testdata/cfg/unwalkable.yml",
    "content": "schema:\n- not_walkable/**/*.graphql\nexec:\n  filename: generated.go\nmodel:\n  filename: models_gen.go\nresolver:\n  filename: resolver.go\n  type: Resolver\n"
  },
  {
    "path": "codegen/config/testdata/defaultconfig/schema.graphql",
    "content": ""
  },
  {
    "path": "codegen/config/testdata/enum/model.go",
    "content": "package enum\n\ntype Bar int\n\nconst (\n\tBarOne Bar = iota + 1\n\tBarTwo\n)\n\nconst (\n\tBazOne = iota + 1\n\tBazTwo\n)\n"
  },
  {
    "path": "codegen/config/testdata/example.go",
    "content": "package config_test_data\n"
  },
  {
    "path": "codegen/config/testdata/fuzz/FuzzReadConfig/d76a9a281aa1168d",
    "content": "go test fuzz v1\n[]byte(\"schema: !0000\\n0000000: 0000\")\n"
  },
  {
    "path": "codegen/data.go",
    "content": "package codegen\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\n\t\"github.com/99designs/gqlgen/codegen/config\"\n)\n\n// Data is a unified model of the code to be generated. Plugins may modify this structure to do\n// things like implement\n// resolvers or directives automatically (eg grpc, validation)\ntype Data struct {\n\tConfig *config.Config\n\tSchema *ast.Schema\n\t// If a schema is broken up into multiple Data instance, each representing part of the schema,\n\t// AllDirectives should contain the directives for the entire schema. Directives() can\n\t// then be used to get the directives that were defined in this Data instance's sources.\n\t// If a single Data instance is used for the entire schema, AllDirectives and Directives()\n\t// will be identical.\n\t// AllDirectives should rarely be used directly.\n\tAllDirectives   DirectiveList\n\tObjects         Objects\n\tInputs          Objects\n\tInterfaces      map[string]*Interface\n\tReferencedTypes map[string]*config.TypeReference\n\tComplexityRoots map[string]*Object\n\n\tQueryRoot        *Object\n\tMutationRoot     *Object\n\tSubscriptionRoot *Object\n\tAugmentedSources []AugmentedSource\n\tPlugins          []any\n}\n\nfunc (d *Data) HasEmbeddableSources() bool {\n\thasEmbeddableSources := false\n\tfor _, s := range d.AugmentedSources {\n\t\tif s.Embeddable {\n\t\t\thasEmbeddableSources = true\n\t\t}\n\t}\n\treturn hasEmbeddableSources\n}\n\nfunc (d *Data) HasBatchResolverFields() bool {\n\tfor _, obj := range d.Objects {\n\t\tif obj.Root {\n\t\t\tcontinue\n\t\t}\n\t\tfor _, field := range obj.Fields {\n\t\t\tif field.IsBatch() {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t}\n\treturn false\n}\n\n// AugmentedSource contains extra information about graphql schema files which is not known directly\n// from the Config.Sources data\ntype AugmentedSource struct {\n\t// path relative to Config.Exec.Filename\n\tRelativePath string\n\tEmbeddable   bool\n\tBuiltIn      bool\n\tSource       string\n}\n\ntype builder struct {\n\tConfig     *config.Config\n\tSchema     *ast.Schema\n\tBinder     *config.Binder\n\tDirectives map[string]*Directive\n}\n\n// Get only the directives which should have a user provided definition on server instantiation\nfunc (d *Data) UserDirectives() DirectiveList {\n\tres := DirectiveList{}\n\tdirectives := d.Directives()\n\tfor k, directive := range directives {\n\t\tif directive.Implementation == nil {\n\t\t\tres[k] = directive\n\t\t}\n\t}\n\treturn res\n}\n\n// Get only the directives which should have a statically provided definition\nfunc (d *Data) BuiltInDirectives() DirectiveList {\n\tres := DirectiveList{}\n\tdirectives := d.Directives()\n\tfor k, directive := range directives {\n\t\tif directive.Implementation != nil {\n\t\t\tres[k] = directive\n\t\t}\n\t}\n\treturn res\n}\n\n// Get only the directives which are defined in the config's sources.\nfunc (d *Data) Directives() DirectiveList {\n\tres := DirectiveList{}\n\tfor k, directive := range d.AllDirectives {\n\t\tfor _, s := range d.Config.Sources {\n\t\t\tif directive.Position.Src.Name == s.Name {\n\t\t\t\tres[k] = directive\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\treturn res\n}\n\nfunc BuildData(cfg *config.Config, plugins ...any) (*Data, error) {\n\tcfg.ReloadAllPackages()\n\n\tb := builder{\n\t\tConfig: cfg,\n\t\tSchema: cfg.Schema,\n\t}\n\n\tb.Binder = b.Config.NewBinder()\n\n\tvar err error\n\tb.Directives, err = b.buildDirectives()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdataDirectives := make(map[string]*Directive)\n\tfor name, d := range b.Directives {\n\t\tif !d.SkipRuntime {\n\t\t\tdataDirectives[name] = d\n\t\t}\n\t}\n\n\ts := Data{\n\t\tConfig:        cfg,\n\t\tAllDirectives: dataDirectives,\n\t\tSchema:        b.Schema,\n\t\tInterfaces:    map[string]*Interface{},\n\t\tPlugins:       plugins,\n\t}\n\n\tfor _, schemaType := range b.Schema.Types {\n\t\tswitch schemaType.Kind {\n\t\tcase ast.Object:\n\t\t\tobj, err := b.buildObject(schemaType)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"unable to build object definition: %w\", err)\n\t\t\t}\n\n\t\t\ts.Objects = append(s.Objects, obj)\n\t\tcase ast.InputObject:\n\t\t\tinput, err := b.buildObject(schemaType)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"unable to build input definition: %w\", err)\n\t\t\t}\n\n\t\t\ts.Inputs = append(s.Inputs, input)\n\n\t\tcase ast.Union, ast.Interface:\n\t\t\ts.Interfaces[schemaType.Name], err = b.buildInterface(schemaType)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"unable to bind to interface: %w\", err)\n\t\t\t}\n\t\t}\n\t}\n\n\tif s.Schema.Query != nil {\n\t\ts.QueryRoot = s.Objects.ByName(s.Schema.Query.Name)\n\t} else {\n\t\treturn nil, errors.New(\"query entry point missing\")\n\t}\n\n\tif s.Schema.Mutation != nil {\n\t\ts.MutationRoot = s.Objects.ByName(s.Schema.Mutation.Name)\n\t}\n\n\tif s.Schema.Subscription != nil {\n\t\ts.SubscriptionRoot = s.Objects.ByName(s.Schema.Subscription.Name)\n\t}\n\n\tif err := b.injectIntrospectionRoots(&s); err != nil {\n\t\treturn nil, err\n\t}\n\n\ts.ReferencedTypes = b.buildTypes()\n\n\tsort.Slice(s.Objects, func(i, j int) bool {\n\t\treturn s.Objects[i].Name < s.Objects[j].Name\n\t})\n\n\tsort.Slice(s.Inputs, func(i, j int) bool {\n\t\treturn s.Inputs[i].Name < s.Inputs[j].Name\n\t})\n\n\tif b.Binder.SawInvalid {\n\t\t// if we have a syntax error, show it\n\t\terr := cfg.Packages.Errors()\n\t\tif len(err) > 0 {\n\t\t\treturn nil, err\n\t\t}\n\n\t\t// otherwise show a generic error message\n\t\treturn nil, errors.New(\n\t\t\t\"invalid types were encountered while traversing the go source code, this probably means the invalid code generated isnt correct. add try adding -v to debug\",\n\t\t)\n\t}\n\tvar sources []*ast.Source\n\tsources, err = SerializeTransformedSchema(cfg.Schema, cfg.Sources)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to serialize transformed schema: %w\", err)\n\t}\n\n\taSources := []AugmentedSource{}\n\tfor _, s := range sources {\n\t\twd, err := os.Getwd()\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to get working directory: %w\", err)\n\t\t}\n\t\toutputDir := cfg.Exec.Dir()\n\t\tsourcePath := filepath.Join(wd, s.Name)\n\t\trelative, err := filepath.Rel(outputDir, sourcePath)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\n\t\t\t\t\"failed to compute path of %s relative to %s: %w\",\n\t\t\t\tsourcePath,\n\t\t\t\toutputDir,\n\t\t\t\terr,\n\t\t\t)\n\t\t}\n\t\trelative = filepath.ToSlash(relative)\n\t\tembeddable := true\n\t\tif strings.HasPrefix(relative, \"..\") || s.BuiltIn {\n\t\t\tembeddable = false\n\t\t}\n\t\taSources = append(aSources, AugmentedSource{\n\t\t\tRelativePath: relative,\n\t\t\tEmbeddable:   embeddable,\n\t\t\tBuiltIn:      s.BuiltIn,\n\t\t\tSource:       s.Input,\n\t\t})\n\t}\n\ts.AugmentedSources = aSources\n\n\treturn &s, nil\n}\n\nfunc (b *builder) injectIntrospectionRoots(s *Data) error {\n\tobj := s.Objects.ByName(b.Schema.Query.Name)\n\tif obj == nil {\n\t\treturn errors.New(\"root query type must be defined\")\n\t}\n\n\t__type, err := b.buildField(obj, &ast.FieldDefinition{\n\t\tName: \"__type\",\n\t\tType: ast.NamedType(\"__Type\", nil),\n\t\tArguments: []*ast.ArgumentDefinition{\n\t\t\t{\n\t\t\t\tName: \"name\",\n\t\t\t\tType: ast.NonNullNamedType(\"String\", nil),\n\t\t\t},\n\t\t},\n\t})\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t__schema, err := b.buildField(obj, &ast.FieldDefinition{\n\t\tName: \"__schema\",\n\t\tType: ast.NamedType(\"__Schema\", nil),\n\t})\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tobj.Fields = append(obj.Fields, __type, __schema)\n\n\treturn nil\n}\n"
  },
  {
    "path": "codegen/data_test.go",
    "content": "package codegen\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\n\t\"github.com/99designs/gqlgen/codegen/config\"\n)\n\nfunc TestData_Directives(t *testing.T) {\n\td := Data{\n\t\tConfig: &config.Config{\n\t\t\tSources: []*ast.Source{\n\t\t\t\t{\n\t\t\t\t\tName: \"schema.graphql\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tAllDirectives: DirectiveList{\n\t\t\t\"includeDirective\": {\n\t\t\t\tDirectiveDefinition: &ast.DirectiveDefinition{\n\t\t\t\t\tName: \"includeDirective\",\n\t\t\t\t\tPosition: &ast.Position{\n\t\t\t\t\t\tSrc: &ast.Source{\n\t\t\t\t\t\t\tName: \"schema.graphql\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tName: \"includeDirective\",\n\t\t\t\tArgs: nil,\n\t\t\t\tDirectiveConfig: config.DirectiveConfig{\n\t\t\t\t\tSkipRuntime: false,\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"excludeDirective\": {\n\t\t\t\tDirectiveDefinition: &ast.DirectiveDefinition{\n\t\t\t\t\tName: \"excludeDirective\",\n\t\t\t\t\tPosition: &ast.Position{\n\t\t\t\t\t\tSrc: &ast.Source{\n\t\t\t\t\t\t\tName: \"anothersource.graphql\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tName: \"excludeDirective\",\n\t\t\t\tArgs: nil,\n\t\t\t\tDirectiveConfig: config.DirectiveConfig{\n\t\t\t\t\tSkipRuntime: false,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n\n\texpected := DirectiveList{\n\t\t\"includeDirective\": {\n\t\t\tDirectiveDefinition: &ast.DirectiveDefinition{\n\t\t\t\tName: \"includeDirective\",\n\t\t\t\tPosition: &ast.Position{\n\t\t\t\t\tSrc: &ast.Source{\n\t\t\t\t\t\tName: \"schema.graphql\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tName: \"includeDirective\",\n\t\t\tArgs: nil,\n\t\t\tDirectiveConfig: config.DirectiveConfig{\n\t\t\t\tSkipRuntime: false,\n\t\t\t},\n\t\t},\n\t}\n\n\tassert.Equal(t, expected, d.Directives())\n}\n"
  },
  {
    "path": "codegen/depgraph.go",
    "content": "package codegen\n\nimport (\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// DependencyGraph tracks type definitions and their cross-schema dependencies.\n// This enables incremental generation by computing which schemas are affected\n// when a subset of schema files change.\ntype DependencyGraph struct {\n\t// SchemaToTypes maps schema file path -> type names defined in that file\n\tSchemaToTypes map[string][]string\n\n\t// TypeToSchema maps type name -> schema file path where it's defined\n\tTypeToSchema map[string]string\n\n\t// TypeDependencies maps type name -> type names it references\n\tTypeDependencies map[string][]string\n\n\t// SchemaDependencies maps schema file -> schema files it depends on\n\tSchemaDependencies map[string]map[string]bool\n}\n\n// NewDependencyGraph creates a new empty dependency graph\nfunc NewDependencyGraph() *DependencyGraph {\n\treturn &DependencyGraph{\n\t\tSchemaToTypes:      make(map[string][]string),\n\t\tTypeToSchema:       make(map[string]string),\n\t\tTypeDependencies:   make(map[string][]string),\n\t\tSchemaDependencies: make(map[string]map[string]bool),\n\t}\n}\n\n// BuildDependencyGraph constructs a dependency graph from the parsed schema\nfunc BuildDependencyGraph(schema *ast.Schema) *DependencyGraph {\n\tg := NewDependencyGraph()\n\n\t// First pass: map each type to its source schema file\n\tfor _, typ := range schema.Types {\n\t\tif typ.BuiltIn || typ.Position == nil || typ.Position.Src == nil {\n\t\t\tcontinue\n\t\t}\n\t\tschemaFile := typ.Position.Src.Name\n\t\tg.TypeToSchema[typ.Name] = schemaFile\n\t\tg.SchemaToTypes[schemaFile] = append(g.SchemaToTypes[schemaFile], typ.Name)\n\t}\n\n\t// Second pass: find type dependencies\n\tfor _, typ := range schema.Types {\n\t\tif typ.BuiltIn || typ.Position == nil || typ.Position.Src == nil {\n\t\t\tcontinue\n\t\t}\n\t\tif deps := g.extractTypeDependencies(typ); len(deps) > 0 {\n\t\t\tg.TypeDependencies[typ.Name] = deps\n\t\t}\n\t}\n\n\t// Third pass: build schema-level dependencies\n\tfor schemaFile, types := range g.SchemaToTypes {\n\t\tg.SchemaDependencies[schemaFile] = make(map[string]bool)\n\t\tfor _, typeName := range types {\n\t\t\tfor _, depType := range g.TypeDependencies[typeName] {\n\t\t\t\tif depSchema, ok := g.TypeToSchema[depType]; ok && depSchema != schemaFile {\n\t\t\t\t\tg.SchemaDependencies[schemaFile][depSchema] = true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn g\n}\n\n// extractTypeDependencies finds all types referenced by the given type definition\nfunc (g *DependencyGraph) extractTypeDependencies(typ *ast.Definition) []string {\n\tdeps := make(map[string]bool)\n\n\tfor _, iface := range typ.Interfaces {\n\t\tdeps[iface] = true\n\t}\n\tfor _, unionType := range typ.Types {\n\t\tdeps[unionType] = true\n\t}\n\tfor _, field := range typ.Fields {\n\t\tg.extractTypeRef(field.Type, deps)\n\t\tfor _, arg := range field.Arguments {\n\t\t\tg.extractTypeRef(arg.Type, deps)\n\t\t}\n\t}\n\n\tresult := make([]string, 0, len(deps))\n\tfor dep := range deps {\n\t\tif !isBuiltInScalar(dep) {\n\t\t\tresult = append(result, dep)\n\t\t}\n\t}\n\treturn result\n}\n\nfunc (g *DependencyGraph) extractTypeRef(t *ast.Type, deps map[string]bool) {\n\tif t == nil {\n\t\treturn\n\t}\n\tif t.Elem != nil {\n\t\tg.extractTypeRef(t.Elem, deps)\n\t} else {\n\t\tdeps[t.NamedType] = true\n\t}\n}\n\nfunc isBuiltInScalar(name string) bool {\n\tswitch name {\n\tcase \"Int\", \"Float\", \"String\", \"Boolean\", \"ID\":\n\t\treturn true\n\t}\n\treturn false\n}\n\n// GetAffectedSchemas returns all schema files that need regeneration when\n// the given schemas have changed. Computes transitive closure of dependencies.\nfunc (g *DependencyGraph) GetAffectedSchemas(changedSchemas []string) []string {\n\taffected := make(map[string]bool)\n\tfor _, s := range changedSchemas {\n\t\taffected[s] = true\n\t}\n\n\t// Iterate until fixed point (transitive closure)\n\tchanged := true\n\tfor changed {\n\t\tchanged = false\n\t\tfor schema := range affected {\n\t\t\tfor otherSchema, deps := range g.SchemaDependencies {\n\t\t\t\tif !affected[otherSchema] && deps[schema] {\n\t\t\t\t\taffected[otherSchema] = true\n\t\t\t\t\tchanged = true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tresult := make([]string, 0, len(affected))\n\tfor s := range affected {\n\t\tresult = append(result, s)\n\t}\n\treturn result\n}\n\n// GetTypesForSchemas returns all type names defined in the given schema files\nfunc (g *DependencyGraph) GetTypesForSchemas(schemas []string) map[string]bool {\n\ttypes := make(map[string]bool)\n\tfor _, schema := range schemas {\n\t\tfor _, typeName := range g.SchemaToTypes[schema] {\n\t\t\ttypes[typeName] = true\n\t\t}\n\t}\n\treturn types\n}\n"
  },
  {
    "path": "codegen/depgraph_test.go",
    "content": "package codegen\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\nfunc TestBuildDependencyGraph(t *testing.T) {\n\tschema := &ast.Schema{\n\t\tTypes: map[string]*ast.Definition{\n\t\t\t\"User\": {\n\t\t\t\tName: \"User\",\n\t\t\t\tKind: ast.Object,\n\t\t\t\tFields: ast.FieldList{\n\t\t\t\t\t{Name: \"id\", Type: ast.NamedType(\"ID\", nil)},\n\t\t\t\t\t{Name: \"posts\", Type: ast.ListType(ast.NamedType(\"Post\", nil), nil)},\n\t\t\t\t},\n\t\t\t\tPosition: &ast.Position{Src: &ast.Source{Name: \"user.graphqls\"}},\n\t\t\t},\n\t\t\t\"Post\": {\n\t\t\t\tName: \"Post\",\n\t\t\t\tKind: ast.Object,\n\t\t\t\tFields: ast.FieldList{\n\t\t\t\t\t{Name: \"id\", Type: ast.NamedType(\"ID\", nil)},\n\t\t\t\t\t{Name: \"author\", Type: ast.NamedType(\"User\", nil)},\n\t\t\t\t\t{Name: \"comments\", Type: ast.ListType(ast.NamedType(\"Comment\", nil), nil)},\n\t\t\t\t},\n\t\t\t\tPosition: &ast.Position{Src: &ast.Source{Name: \"post.graphqls\"}},\n\t\t\t},\n\t\t\t\"Comment\": {\n\t\t\t\tName: \"Comment\",\n\t\t\t\tKind: ast.Object,\n\t\t\t\tFields: ast.FieldList{\n\t\t\t\t\t{Name: \"id\", Type: ast.NamedType(\"ID\", nil)},\n\t\t\t\t\t{Name: \"text\", Type: ast.NamedType(\"String\", nil)},\n\t\t\t\t},\n\t\t\t\tPosition: &ast.Position{Src: &ast.Source{Name: \"comment.graphqls\"}},\n\t\t\t},\n\t\t\t\"String\": {Name: \"String\", Kind: ast.Scalar, BuiltIn: true},\n\t\t\t\"ID\":     {Name: \"ID\", Kind: ast.Scalar, BuiltIn: true},\n\t\t},\n\t}\n\n\tgraph := BuildDependencyGraph(schema)\n\n\t// Verify type-to-schema mapping\n\trequire.Equal(t, \"user.graphqls\", graph.TypeToSchema[\"User\"])\n\trequire.Equal(t, \"post.graphqls\", graph.TypeToSchema[\"Post\"])\n\trequire.Equal(t, \"comment.graphqls\", graph.TypeToSchema[\"Comment\"])\n\n\t// Verify schema-to-types mapping\n\trequire.ElementsMatch(t, []string{\"User\"}, graph.SchemaToTypes[\"user.graphqls\"])\n\trequire.ElementsMatch(t, []string{\"Post\"}, graph.SchemaToTypes[\"post.graphqls\"])\n\trequire.ElementsMatch(t, []string{\"Comment\"}, graph.SchemaToTypes[\"comment.graphqls\"])\n\n\t// Verify type dependencies (User -> Post, Post -> User + Comment)\n\trequire.Contains(t, graph.TypeDependencies[\"User\"], \"Post\")\n\trequire.Contains(t, graph.TypeDependencies[\"Post\"], \"User\")\n\trequire.Contains(t, graph.TypeDependencies[\"Post\"], \"Comment\")\n\n\t// Verify schema dependencies (cross-schema references)\n\trequire.True(t, graph.SchemaDependencies[\"user.graphqls\"][\"post.graphqls\"])\n\trequire.True(t, graph.SchemaDependencies[\"post.graphqls\"][\"user.graphqls\"])\n\trequire.True(t, graph.SchemaDependencies[\"post.graphqls\"][\"comment.graphqls\"])\n\n\t// Verify built-in types are not included\n\trequire.Empty(t, graph.TypeToSchema[\"String\"])\n\trequire.Empty(t, graph.TypeToSchema[\"ID\"])\n}\n\nfunc TestBuildDependencyGraph_Interfaces(t *testing.T) {\n\tschema := &ast.Schema{\n\t\tTypes: map[string]*ast.Definition{\n\t\t\t\"Node\": {\n\t\t\t\tName:     \"Node\",\n\t\t\t\tKind:     ast.Interface,\n\t\t\t\tFields:   ast.FieldList{{Name: \"id\", Type: ast.NamedType(\"ID\", nil)}},\n\t\t\t\tPosition: &ast.Position{Src: &ast.Source{Name: \"node.graphqls\"}},\n\t\t\t},\n\t\t\t\"User\": {\n\t\t\t\tName:       \"User\",\n\t\t\t\tKind:       ast.Object,\n\t\t\t\tInterfaces: []string{\"Node\"},\n\t\t\t\tFields:     ast.FieldList{{Name: \"id\", Type: ast.NamedType(\"ID\", nil)}},\n\t\t\t\tPosition:   &ast.Position{Src: &ast.Source{Name: \"user.graphqls\"}},\n\t\t\t},\n\t\t\t\"ID\": {Name: \"ID\", Kind: ast.Scalar, BuiltIn: true},\n\t\t},\n\t}\n\n\tgraph := BuildDependencyGraph(schema)\n\n\t// User implements Node, so User depends on Node\n\trequire.Contains(t, graph.TypeDependencies[\"User\"], \"Node\")\n\trequire.True(t, graph.SchemaDependencies[\"user.graphqls\"][\"node.graphqls\"])\n}\n\nfunc TestBuildDependencyGraph_Union(t *testing.T) {\n\tschema := &ast.Schema{\n\t\tTypes: map[string]*ast.Definition{\n\t\t\t\"SearchResult\": {\n\t\t\t\tName:     \"SearchResult\",\n\t\t\t\tKind:     ast.Union,\n\t\t\t\tTypes:    []string{\"User\", \"Post\"},\n\t\t\t\tPosition: &ast.Position{Src: &ast.Source{Name: \"search.graphqls\"}},\n\t\t\t},\n\t\t\t\"User\": {\n\t\t\t\tName:     \"User\",\n\t\t\t\tKind:     ast.Object,\n\t\t\t\tFields:   ast.FieldList{{Name: \"name\", Type: ast.NamedType(\"String\", nil)}},\n\t\t\t\tPosition: &ast.Position{Src: &ast.Source{Name: \"user.graphqls\"}},\n\t\t\t},\n\t\t\t\"Post\": {\n\t\t\t\tName:     \"Post\",\n\t\t\t\tKind:     ast.Object,\n\t\t\t\tFields:   ast.FieldList{{Name: \"title\", Type: ast.NamedType(\"String\", nil)}},\n\t\t\t\tPosition: &ast.Position{Src: &ast.Source{Name: \"post.graphqls\"}},\n\t\t\t},\n\t\t\t\"String\": {Name: \"String\", Kind: ast.Scalar, BuiltIn: true},\n\t\t},\n\t}\n\n\tgraph := BuildDependencyGraph(schema)\n\n\t// SearchResult union depends on User and Post\n\trequire.Contains(t, graph.TypeDependencies[\"SearchResult\"], \"User\")\n\trequire.Contains(t, graph.TypeDependencies[\"SearchResult\"], \"Post\")\n\trequire.True(t, graph.SchemaDependencies[\"search.graphqls\"][\"user.graphqls\"])\n\trequire.True(t, graph.SchemaDependencies[\"search.graphqls\"][\"post.graphqls\"])\n}\n\nfunc TestBuildDependencyGraph_FieldArguments(t *testing.T) {\n\tschema := &ast.Schema{\n\t\tTypes: map[string]*ast.Definition{\n\t\t\t\"Query\": {\n\t\t\t\tName: \"Query\",\n\t\t\t\tKind: ast.Object,\n\t\t\t\tFields: ast.FieldList{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"user\",\n\t\t\t\t\t\tType: ast.NamedType(\"User\", nil),\n\t\t\t\t\t\tArguments: ast.ArgumentDefinitionList{\n\t\t\t\t\t\t\t{Name: \"filter\", Type: ast.NamedType(\"UserFilter\", nil)},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tPosition: &ast.Position{Src: &ast.Source{Name: \"query.graphqls\"}},\n\t\t\t},\n\t\t\t\"User\": {\n\t\t\t\tName:     \"User\",\n\t\t\t\tKind:     ast.Object,\n\t\t\t\tFields:   ast.FieldList{{Name: \"id\", Type: ast.NamedType(\"ID\", nil)}},\n\t\t\t\tPosition: &ast.Position{Src: &ast.Source{Name: \"user.graphqls\"}},\n\t\t\t},\n\t\t\t\"UserFilter\": {\n\t\t\t\tName:     \"UserFilter\",\n\t\t\t\tKind:     ast.InputObject,\n\t\t\t\tFields:   ast.FieldList{{Name: \"name\", Type: ast.NamedType(\"String\", nil)}},\n\t\t\t\tPosition: &ast.Position{Src: &ast.Source{Name: \"filter.graphqls\"}},\n\t\t\t},\n\t\t\t\"ID\":     {Name: \"ID\", Kind: ast.Scalar, BuiltIn: true},\n\t\t\t\"String\": {Name: \"String\", Kind: ast.Scalar, BuiltIn: true},\n\t\t},\n\t}\n\n\tgraph := BuildDependencyGraph(schema)\n\n\t// Query depends on User (return type) and UserFilter (argument type)\n\trequire.Contains(t, graph.TypeDependencies[\"Query\"], \"User\")\n\trequire.Contains(t, graph.TypeDependencies[\"Query\"], \"UserFilter\")\n\trequire.True(t, graph.SchemaDependencies[\"query.graphqls\"][\"user.graphqls\"])\n\trequire.True(t, graph.SchemaDependencies[\"query.graphqls\"][\"filter.graphqls\"])\n}\n\nfunc TestGetAffectedSchemas(t *testing.T) {\n\t// Build a dependency chain: C -> B -> A (C depends on B, B depends on A)\n\tgraph := &DependencyGraph{\n\t\tSchemaToTypes: map[string][]string{\n\t\t\t\"a.graphqls\": {\"TypeA\"},\n\t\t\t\"b.graphqls\": {\"TypeB\"},\n\t\t\t\"c.graphqls\": {\"TypeC\"},\n\t\t\t\"d.graphqls\": {\"TypeD\"},\n\t\t},\n\t\tTypeToSchema: map[string]string{\n\t\t\t\"TypeA\": \"a.graphqls\",\n\t\t\t\"TypeB\": \"b.graphqls\",\n\t\t\t\"TypeC\": \"c.graphqls\",\n\t\t\t\"TypeD\": \"d.graphqls\",\n\t\t},\n\t\tSchemaDependencies: map[string]map[string]bool{\n\t\t\t\"a.graphqls\": {},\n\t\t\t\"b.graphqls\": {\"a.graphqls\": true}, // B depends on A\n\t\t\t\"c.graphqls\": {\"b.graphqls\": true}, // C depends on B\n\t\t\t\"d.graphqls\": {},                   // D is independent\n\t\t},\n\t}\n\n\ttests := []struct {\n\t\tname     string\n\t\tchanged  []string\n\t\texpected []string\n\t}{\n\t\t{\n\t\t\tname:     \"change at root propagates transitively\",\n\t\t\tchanged:  []string{\"a.graphqls\"},\n\t\t\texpected: []string{\"a.graphqls\", \"b.graphqls\", \"c.graphqls\"},\n\t\t},\n\t\t{\n\t\t\tname:     \"change at middle propagates to dependents only\",\n\t\t\tchanged:  []string{\"b.graphqls\"},\n\t\t\texpected: []string{\"b.graphqls\", \"c.graphqls\"},\n\t\t},\n\t\t{\n\t\t\tname:     \"change at leaf affects only itself\",\n\t\t\tchanged:  []string{\"c.graphqls\"},\n\t\t\texpected: []string{\"c.graphqls\"},\n\t\t},\n\t\t{\n\t\t\tname:     \"independent schema affects only itself\",\n\t\t\tchanged:  []string{\"d.graphqls\"},\n\t\t\texpected: []string{\"d.graphqls\"},\n\t\t},\n\t\t{\n\t\t\tname:     \"multiple changes are merged\",\n\t\t\tchanged:  []string{\"a.graphqls\", \"d.graphqls\"},\n\t\t\texpected: []string{\"a.graphqls\", \"b.graphqls\", \"c.graphqls\", \"d.graphqls\"},\n\t\t},\n\t\t{\n\t\t\tname:     \"empty input returns empty\",\n\t\t\tchanged:  []string{},\n\t\t\texpected: []string{},\n\t\t},\n\t\t{\n\t\t\tname:     \"unknown schema is still included\",\n\t\t\tchanged:  []string{\"unknown.graphqls\"},\n\t\t\texpected: []string{\"unknown.graphqls\"},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\taffected := graph.GetAffectedSchemas(tt.changed)\n\t\t\trequire.ElementsMatch(t, tt.expected, affected)\n\t\t})\n\t}\n}\n\nfunc TestGetAffectedSchemas_CircularDependency(t *testing.T) {\n\t// A -> B -> C -> A (circular)\n\tgraph := &DependencyGraph{\n\t\tSchemaToTypes: map[string][]string{\n\t\t\t\"a.graphqls\": {\"TypeA\"},\n\t\t\t\"b.graphqls\": {\"TypeB\"},\n\t\t\t\"c.graphqls\": {\"TypeC\"},\n\t\t},\n\t\tSchemaDependencies: map[string]map[string]bool{\n\t\t\t\"a.graphqls\": {\"c.graphqls\": true}, // A depends on C\n\t\t\t\"b.graphqls\": {\"a.graphqls\": true}, // B depends on A\n\t\t\t\"c.graphqls\": {\"b.graphqls\": true}, // C depends on B\n\t\t},\n\t}\n\n\t// Changing any one should affect all three\n\taffected := graph.GetAffectedSchemas([]string{\"a.graphqls\"})\n\trequire.ElementsMatch(t, []string{\"a.graphqls\", \"b.graphqls\", \"c.graphqls\"}, affected)\n\n\taffected = graph.GetAffectedSchemas([]string{\"b.graphqls\"})\n\trequire.ElementsMatch(t, []string{\"a.graphqls\", \"b.graphqls\", \"c.graphqls\"}, affected)\n}\n\nfunc TestGetTypesForSchemas(t *testing.T) {\n\tgraph := &DependencyGraph{\n\t\tSchemaToTypes: map[string][]string{\n\t\t\t\"a.graphqls\": {\"TypeA1\", \"TypeA2\"},\n\t\t\t\"b.graphqls\": {\"TypeB\"},\n\t\t\t\"c.graphqls\": {},\n\t\t},\n\t}\n\n\ttests := []struct {\n\t\tname     string\n\t\tschemas  []string\n\t\texpected map[string]bool\n\t}{\n\t\t{\n\t\t\tname:     \"single schema with multiple types\",\n\t\t\tschemas:  []string{\"a.graphqls\"},\n\t\t\texpected: map[string]bool{\"TypeA1\": true, \"TypeA2\": true},\n\t\t},\n\t\t{\n\t\t\tname:     \"multiple schemas\",\n\t\t\tschemas:  []string{\"a.graphqls\", \"b.graphqls\"},\n\t\t\texpected: map[string]bool{\"TypeA1\": true, \"TypeA2\": true, \"TypeB\": true},\n\t\t},\n\t\t{\n\t\t\tname:     \"empty schema\",\n\t\t\tschemas:  []string{\"c.graphqls\"},\n\t\t\texpected: map[string]bool{},\n\t\t},\n\t\t{\n\t\t\tname:     \"unknown schema\",\n\t\t\tschemas:  []string{\"unknown.graphqls\"},\n\t\t\texpected: map[string]bool{},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\ttypes := graph.GetTypesForSchemas(tt.schemas)\n\t\t\trequire.Equal(t, tt.expected, types)\n\t\t})\n\t}\n}\n\nfunc TestIsBuiltInScalar(t *testing.T) {\n\tbuiltIns := []string{\"Int\", \"Float\", \"String\", \"Boolean\", \"ID\"}\n\tfor _, name := range builtIns {\n\t\trequire.True(t, isBuiltInScalar(name), \"%s should be a built-in scalar\", name)\n\t}\n\n\tnonBuiltIns := []string{\"User\", \"Post\", \"DateTime\", \"JSON\", \"\"}\n\tfor _, name := range nonBuiltIns {\n\t\trequire.False(t, isBuiltInScalar(name), \"%s should not be a built-in scalar\", name)\n\t}\n}\n"
  },
  {
    "path": "codegen/directive.go",
    "content": "package codegen\n\nimport (\n\t\"fmt\"\n\t\"slices\"\n\t\"strings\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\n\t\"github.com/99designs/gqlgen/codegen/config\"\n\t\"github.com/99designs/gqlgen/codegen/templates\"\n)\n\ntype DirectiveList map[string]*Directive\n\n// LocationDirectives filter directives by location\nfunc (dl DirectiveList) LocationDirectives(location string) DirectiveList {\n\treturn locationDirectives(dl, ast.DirectiveLocation(location))\n}\n\ntype Directive struct {\n\t*ast.DirectiveDefinition\n\tName string\n\tArgs []*FieldArgument\n\n\tconfig.DirectiveConfig\n}\n\n// IsLocation check location directive\nfunc (d *Directive) IsLocation(location ...ast.DirectiveLocation) bool {\n\tfor _, l := range d.Locations {\n\t\tif slices.Contains(location, l) {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n\nfunc locationDirectives(\n\tdirectives DirectiveList,\n\tlocation ...ast.DirectiveLocation,\n) map[string]*Directive {\n\tmDirectives := make(map[string]*Directive)\n\tfor name, d := range directives {\n\t\tif d.IsLocation(location...) {\n\t\t\tmDirectives[name] = d\n\t\t}\n\t}\n\treturn mDirectives\n}\n\nfunc (b *builder) buildDirectives() (map[string]*Directive, error) {\n\tdirectives := make(map[string]*Directive, len(b.Schema.Directives))\n\n\tfor name, dir := range b.Schema.Directives {\n\t\tif _, ok := directives[name]; ok {\n\t\t\treturn nil, fmt.Errorf(\"directive with name %s already exists\", name)\n\t\t}\n\n\t\tvar args []*FieldArgument\n\t\tfor _, arg := range dir.Arguments {\n\t\t\ttr, err := b.Binder.TypeReference(arg.Type, nil)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tnewArg := &FieldArgument{\n\t\t\t\tArgumentDefinition: arg,\n\t\t\t\tTypeReference:      tr,\n\t\t\t\tVarName:            templates.ToGoPrivate(arg.Name),\n\t\t\t}\n\n\t\t\tif arg.DefaultValue != nil {\n\t\t\t\tvar err error\n\t\t\t\tnewArg.Default, err = arg.DefaultValue.Value(nil)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, fmt.Errorf(\n\t\t\t\t\t\t\"default value for directive argument %s(%s) is not valid: %w\",\n\t\t\t\t\t\tdir.Name,\n\t\t\t\t\t\targ.Name,\n\t\t\t\t\t\terr,\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t}\n\t\t\targs = append(args, newArg)\n\t\t}\n\n\t\tdirectives[name] = &Directive{\n\t\t\tDirectiveDefinition: dir,\n\t\t\tName:                name,\n\t\t\tArgs:                args,\n\t\t\tDirectiveConfig:     b.Config.Directives[name],\n\t\t}\n\t}\n\n\treturn directives, nil\n}\n\nfunc (b *builder) getDirectives(list ast.DirectiveList) ([]*Directive, error) {\n\tdirs := make([]*Directive, len(list))\n\tfor i, d := range list {\n\t\targValues := make(map[string]any, len(d.Arguments))\n\t\tfor _, da := range d.Arguments {\n\t\t\tval, err := da.Value.Value(nil)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\targValues[da.Name] = val\n\t\t}\n\t\tdef, ok := b.Directives[d.Name]\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"directive %s not found\", d.Name)\n\t\t}\n\n\t\tvar args []*FieldArgument\n\t\tfor _, a := range def.Args {\n\t\t\tvalue := a.Default\n\t\t\tif argValue, ok := argValues[a.Name]; ok {\n\t\t\t\tvalue = argValue\n\t\t\t}\n\t\t\targs = append(args, &FieldArgument{\n\t\t\t\tArgumentDefinition: a.ArgumentDefinition,\n\t\t\t\tValue:              value,\n\t\t\t\tVarName:            a.VarName,\n\t\t\t\tTypeReference:      a.TypeReference,\n\t\t\t})\n\t\t}\n\t\tdirs[i] = &Directive{\n\t\t\tName:                d.Name,\n\t\t\tArgs:                args,\n\t\t\tDirectiveDefinition: list[i].Definition,\n\t\t\tDirectiveConfig:     b.Config.Directives[d.Name],\n\t\t}\n\t}\n\n\treturn dirs, nil\n}\n\nfunc (d *Directive) ArgsFunc() string {\n\tif len(d.Args) == 0 {\n\t\treturn \"\"\n\t}\n\n\treturn \"dir_\" + d.Name + \"_args\"\n}\n\nfunc (d *Directive) CallArgs() string {\n\targs := []string{\"ctx\", \"obj\", \"n\"}\n\n\tfor _, arg := range d.Args {\n\t\targs = append(\n\t\t\targs,\n\t\t\tfmt.Sprintf(\n\t\t\t\t\"args[%q].(%s)\",\n\t\t\t\targ.Name,\n\t\t\t\ttemplates.CurrentImports.LookupType(arg.TypeReference.GO),\n\t\t\t),\n\t\t)\n\t}\n\n\treturn strings.Join(args, \", \")\n}\n\nfunc (d *Directive) ResolveArgs(obj string, next int) string {\n\targs := []string{\"ctx\", obj, fmt.Sprintf(\"directive%d\", next)}\n\n\tfor _, arg := range d.Args {\n\t\tdArg := arg.VarName\n\t\tif arg.Value == nil && arg.Default == nil {\n\t\t\tdArg = \"nil\"\n\t\t}\n\n\t\targs = append(args, dArg)\n\t}\n\n\treturn strings.Join(args, \", \")\n}\n\nfunc (d *Directive) CallName() string {\n\treturn ucFirst(d.Name)\n}\n\nfunc (d *Directive) Declaration() string {\n\tres := d.CallName() + \" func(ctx context.Context, obj any, next graphql.Resolver\"\n\n\tvar resSb173 strings.Builder\n\tfor _, arg := range d.Args {\n\t\tfmt.Fprintf(\n\t\t\t&resSb173,\n\t\t\t\", %s %s\",\n\t\t\ttemplates.ToGoPrivate(arg.Name),\n\t\t\ttemplates.CurrentImports.LookupType(arg.TypeReference.GO),\n\t\t)\n\t}\n\tres += resSb173.String()\n\n\tres += \") (res any, err error)\"\n\treturn res\n}\n\nfunc (d *Directive) IsBuiltIn() bool {\n\treturn d.Implementation != nil\n}\n\nfunc (d *Directive) CallPath() string {\n\tif d.IsBuiltIn() {\n\t\treturn \"builtInDirective\" + d.CallName()\n\t}\n\n\treturn \"ec.Directives.\" + d.CallName()\n}\n\nfunc (d *Directive) FunctionImpl() string {\n\tif d.Implementation == nil {\n\t\treturn \"\"\n\t}\n\n\treturn d.CallPath() + \" = \" + *d.Implementation\n}\n"
  },
  {
    "path": "codegen/directive_test.go",
    "content": "package codegen\n\nimport (\n\t\"go/types\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\n\t\"github.com/99designs/gqlgen/codegen/config\"\n)\n\nfunc TestDirectiveCallArgs(t *testing.T) {\n\td := &Directive{\n\t\tArgs: []*FieldArgument{\n\t\t\t{\n\t\t\t\tArgumentDefinition: &ast.ArgumentDefinition{\n\t\t\t\t\tName: \"def1\",\n\t\t\t\t},\n\t\t\t\tTypeReference: &config.TypeReference{\n\t\t\t\t\tGO: types.Default(\n\t\t\t\t\t\ttypes.NewNamed(\n\t\t\t\t\t\t\ttypes.NewTypeName(0, nil, \"string\", nil),\n\t\t\t\t\t\t\ttypes.Typ[types.String],\n\t\t\t\t\t\t\tnil,\n\t\t\t\t\t\t),\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tArgumentDefinition: &ast.ArgumentDefinition{\n\t\t\t\t\tName: \"def2\",\n\t\t\t\t},\n\t\t\t\tTypeReference: &config.TypeReference{\n\t\t\t\t\tGO: types.Default(types.NewStruct(nil, nil)),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n\n\tgot := d.CallArgs()\n\n\tassert.Equal(t, `ctx, obj, n, args[\"def1\"].(string), args[\"def2\"].(struct{})`, got)\n}\n"
  },
  {
    "path": "codegen/directives.gotpl",
    "content": "{{ $useFunctionSyntaxForExecutionContext := .Config.UseFunctionSyntaxForExecutionContext }}\n\n{{ define \"implDirectives\" }}\n\t{{ $in := .Field.DirectiveObjName }}\n\t{{ $useFunctionSyntaxForExecutionContext := .UseFunctionSyntaxForExecutionContext }}\n\t{{ $zeroVal := .Field.TypeReference.GO | ref}}\n\t{{- range $i, $directive := .Field.ImplDirectives -}}\n\t\tdirective{{add $i 1}} := func(ctx context.Context) (any, error) {\n\t\t\t{{- range $arg := $directive.Args }}\n\t\t\t\t{{- if notNil \"Value\" $arg }}\n\t\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\t\t{{ $arg.VarName }}, err := {{ $arg.TypeReference.UnmarshalFunc }}(ctx, ec, {{ $arg.Value | dump }})\n\t\t\t\t\t\t{{- else -}}\n\t\t\t\t\t\t{{ $arg.VarName }}, err := ec.{{ $arg.TypeReference.UnmarshalFunc }}(ctx, {{ $arg.Value | dump }})\n\t\t\t\t\t\t{{- end }}\n\t\t\t\t\t\tif err != nil{\n\t\t\t\t\t\t\tvar zeroVal {{$zeroVal}}\n\t\t\t\t\t\t\treturn zeroVal, err\n\t\t\t\t\t\t}\n\t\t\t\t\t{{- else if notNil \"Default\" $arg }}\n\t\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\t\t{{ $arg.VarName }}, err := {{ $arg.TypeReference.UnmarshalFunc }}(ctx, ec, {{ $arg.Default | dump }})\n\t\t\t\t\t\t{{- else -}}\n\t\t\t\t\t\t{{ $arg.VarName }}, err := ec.{{ $arg.TypeReference.UnmarshalFunc }}(ctx, {{ $arg.Default | dump }})\n\t\t\t\t\t\t{{- end }}\n\t\t\t\t\t\tif err != nil{\n\t\t\t\t\t\t\tvar zeroVal {{$zeroVal}}\n\t\t\t\t\t\t\treturn zeroVal, err\n\t\t\t\t\t\t}\n\t\t\t\t\t{{- end }}\n\t\t\t{{- end }}\n\t\t\t{{- if not $directive.IsBuiltIn}}\n\t\t\t\tif {{$directive.CallPath}} == nil {\n\t\t\t\t\tvar zeroVal {{$zeroVal}}\n\t\t\t\t\treturn zeroVal, errors.New(\"directive {{$directive.Name}} is not implemented\")\n\t\t\t\t}\n\t\t\t{{- end}}\n\t\t\treturn {{$directive.CallPath}}({{$directive.ResolveArgs $in $i }})\n\t\t}\n\t{{ end -}}\n{{ end }}\n\n{{define \"queryDirectives\"}}\n\t{{ $useFunctionSyntaxForExecutionContext := .UseFunctionSyntaxForExecutionContext }}\n\tfor _, d := range obj.Directives {\n\t\tswitch d.Name {\n\t\t{{- range $directive := .DirectiveList }}\n\t\tcase \"{{$directive.Name}}\":\n\t\t\t{{- if $directive.Args }}\n\t\t\t\trawArgs := d.ArgumentMap(ec.Variables)\n\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\targs, err := {{ $directive.ArgsFunc }}(ctx,ec,rawArgs)\n\t\t\t\t{{- else -}}\n\t\t\t\targs, err := ec.{{ $directive.ArgsFunc }}(ctx,rawArgs)\n\t\t\t\t{{- end }}\n\t\t\t\tif err != nil {\n\t\t\t\t\tec.Error(ctx, err)\n\t\t\t\t\treturn graphql.Null\n\t\t\t\t}\n\t\t\t{{- end }}\n\t\t\tn := next\n\t\t\tnext = func(ctx context.Context) (any, error) {\n\t\t\t\t{{- template \"callDirective\" $directive -}}\n\t\t\t}\n\t\t{{- end }}\n\t\t}\n\t}\n\ttmp, err := next(ctx)\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif data, ok := tmp.(graphql.Marshaler); ok {\n\t\treturn data\n\t}\n\tgraphql.AddErrorf(ctx, `unexpected type %T from directive, should be graphql.Marshaler`, tmp)\n\treturn graphql.Null\n{{end}}\n\n{{define \"callDirective\"}}\n\t{{- if not .IsBuiltIn}}\n\t\tif {{.CallPath}} == nil {\n\t\t\treturn nil, errors.New(\"directive {{.Name}} is not implemented\")\n\t\t}\n\t{{- end}}\n\treturn {{.CallPath}}({{.CallArgs}})\n{{end}}\n\n{{ if .Directives.LocationDirectives \"QUERY\" }}\n{{ if $useFunctionSyntaxForExecutionContext -}}\nfunc _queryMiddleware(ctx context.Context, ec *executionContext, obj *ast.OperationDefinition, next func(ctx context.Context) (any, error)) graphql.Marshaler {\n{{- else -}}\nfunc (ec *executionContext) _queryMiddleware(ctx context.Context, obj *ast.OperationDefinition, next func(ctx context.Context) (any, error)) graphql.Marshaler {\n{{- end }}\n\t{{ template \"queryDirectives\" (dict \"DirectiveList\" (.Directives.LocationDirectives \"QUERY\") \"UseFunctionSyntaxForExecutionContext\" $useFunctionSyntaxForExecutionContext) }}\n}\n{{ end }}\n\n{{ if .Directives.LocationDirectives \"MUTATION\" }}\n{{ if $useFunctionSyntaxForExecutionContext -}}\nfunc _mutationMiddleware(ctx context.Context, ec *executionContext, obj *ast.OperationDefinition, next func(ctx context.Context) (any, error)) graphql.Marshaler {\n{{- else -}}\nfunc (ec *executionContext) _mutationMiddleware(ctx context.Context, obj *ast.OperationDefinition, next func(ctx context.Context) (any, error)) graphql.Marshaler {\n{{- end }}\n\t{{ template \"queryDirectives\" (dict \"DirectiveList\" (.Directives.LocationDirectives \"MUTATION\") \"UseFunctionSyntaxForExecutionContext\" $useFunctionSyntaxForExecutionContext) }}\n}\n{{ end }}\n\n{{ if .Directives.LocationDirectives \"SUBSCRIPTION\" }}\n{{ if $useFunctionSyntaxForExecutionContext -}}\nfunc _subscriptionMiddleware(ctx context.Context, ec *executionContext, obj *ast.OperationDefinition, next func(ctx context.Context) (any, error)) func(ctx context.Context) graphql.Marshaler {\n{{- else -}}\nfunc (ec *executionContext) _subscriptionMiddleware(ctx context.Context, obj *ast.OperationDefinition, next func(ctx context.Context) (any, error)) func(ctx context.Context) graphql.Marshaler {\n{{- end }}\n\tfor _, d := range obj.Directives {\n\t\tswitch d.Name {\n\t\t{{- range $directive := .Directives.LocationDirectives \"SUBSCRIPTION\" }}\n\t\tcase \"{{$directive.Name}}\":\n\t\t\t{{- if $directive.Args }}\n\t\t\t\trawArgs := d.ArgumentMap(ec.Variables)\n\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\targs, err := {{ $directive.ArgsFunc }}(ctx,ec,rawArgs)\n\t\t\t\t{{- else -}}\n\t\t\t\targs, err := ec.{{ $directive.ArgsFunc }}(ctx,rawArgs)\n\t\t\t\t{{- end }}\n\t\t\t\tif err != nil {\n\t\t\t\t\tec.Error(ctx, err)\n\t\t\t\t\treturn func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\t\treturn graphql.Null\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t{{- end }}\n\t\t\tn := next\n\t\t\tnext = func(ctx context.Context) (any, error) {\n\t\t\t\t{{- template \"callDirective\" $directive -}}\n\t\t\t}\n\t\t{{- end }}\n\t\t}\n\t}\n\ttmp, err := next(ctx)\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn func(ctx context.Context) graphql.Marshaler {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\tif data, ok := tmp.(func(ctx context.Context) graphql.Marshaler); ok {\n\t\treturn data\n\t}\n\tgraphql.AddErrorf(ctx, `unexpected type %T from directive, should be graphql.Marshaler`, tmp)\n\treturn func(ctx context.Context) graphql.Marshaler {\n\t\treturn graphql.Null\n\t}\n}\n{{ end }}\n\n{{ if .Directives.LocationDirectives \"FIELD\" }}\n\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\tfunc _fieldMiddleware(ctx context.Context, ec *executionContext, obj any, next graphql.Resolver) graphql.Resolver {\n\t{{- else -}}\n\tfunc (ec *executionContext) _fieldMiddleware(ctx context.Context, obj any, next graphql.Resolver) graphql.Resolver {\n\t{{- end }}\n\t\t{{- if .Directives.LocationDirectives \"FIELD\" }}\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfor _, d := range fc.Field.Directives {\n\t\t\tswitch d.Name {\n\t\t\t{{- range $directive := .Directives.LocationDirectives \"FIELD\" }}\n\t\t\tcase \"{{$directive.Name}}\":\n\t\t\t\t{{- if $directive.Args }}\n\t\t\t\t\trawArgs := d.ArgumentMap(ec.Variables)\n\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\targs, err := {{ $directive.ArgsFunc }}(ctx,ec,rawArgs)\n\t\t\t\t\t{{- else -}}\n\t\t\t\t\targs, err := ec.{{ $directive.ArgsFunc }}(ctx,rawArgs)\n\t\t\t\t\t{{- end }}\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\tec.Error(ctx, err)\n\t\t\t\t\t\treturn nil\n\t\t\t\t\t}\n\t\t\t\t{{- end }}\n\t\t\t\tn := next\n\t\t\t\tnext = func(ctx context.Context) (any, error) {\n\t\t\t\t\t{{- template \"callDirective\" $directive -}}\n\t\t\t\t}\n\t\t\t{{- end }}\n\t\t\t}\n\t\t}\n\t\t{{- end }}\n\t\treturn next\n\t}\n{{ end }}\n"
  },
  {
    "path": "codegen/field.go",
    "content": "package codegen\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\tgoast \"go/ast\"\n\t\"go/types\"\n\t\"log\"\n\t\"reflect\"\n\t\"slices\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\t\"golang.org/x/text/cases\"\n\t\"golang.org/x/text/language\"\n\n\t\"github.com/99designs/gqlgen/codegen/config\"\n\t\"github.com/99designs/gqlgen/codegen/templates\"\n\t\"github.com/99designs/gqlgen/internal/code\"\n)\n\ntype Field struct {\n\t*ast.FieldDefinition\n\n\tTypeReference    *config.TypeReference\n\tGoFieldType      GoFieldType      // The field type in go, if any\n\tGoReceiverName   string           // The name of method & var receiver in go, if any\n\tGoFieldName      string           // The name of the method or var in go, if any\n\tIsResolver       bool             // Does this field need a resolver\n\tArgs             []*FieldArgument // A list of arguments to be passed to this field\n\tMethodHasContext bool             // If this is bound to a go method, does the method also take a context\n\tNoErr            bool             // If this is bound to a go method, does that method have an error as the second argument\n\tVOkFunc          bool             // If this is bound to a go method, is it of shape (any, bool)\n\tObject           *Object          // A link back to the parent object\n\tDefault          any              // The default value\n\tStream           bool             // does this field return a channel?\n\tDirectives       []*Directive\n\tHasHaser         bool   // Whether a haser method is available (e.g., HasName())\n\tHaserMethodName  string // Name of the haser method\n\tBatch            bool   // Enable batch resolver for this field\n}\n\nfunc (b *builder) buildField(obj *Object, field *ast.FieldDefinition) (*Field, error) {\n\tdirs, err := b.getDirectives(field.Directives)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tf := Field{\n\t\tFieldDefinition: field,\n\t\tObject:          obj,\n\t\tDirectives:      dirs,\n\t\tGoFieldName:     templates.ToGo(field.Name),\n\t\tGoFieldType:     GoFieldVariable,\n\t\tGoReceiverName:  \"obj\",\n\t}\n\n\tif field.DefaultValue != nil {\n\t\tvar err error\n\t\tf.Default, err = field.DefaultValue.Value(nil)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"default value %s is not valid: %w\", field.Name, err)\n\t\t}\n\t}\n\n\tfor _, arg := range field.Arguments {\n\t\tnewArg, err := b.buildArg(obj, arg)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tf.Args = append(f.Args, newArg)\n\t}\n\n\tif err = b.bindField(obj, &f); err != nil {\n\t\tf.IsResolver = true\n\t\tif errors.Is(err, config.ErrTypeNotFound) {\n\t\t\treturn nil, err\n\t\t}\n\t\tlog.Println(err.Error())\n\t}\n\n\t// Set Batch flag from config (independent of resolver setting)\n\tif fieldCfg, ok := b.Config.Models[obj.Name]; ok {\n\t\tif fieldEntry, ok := fieldCfg.Fields[field.Name]; ok {\n\t\t\tf.Batch = fieldEntry.Batch\n\t\t\tif f.Batch {\n\t\t\t\tif f.Object.Root {\n\t\t\t\t\treturn nil, fmt.Errorf(\n\t\t\t\t\t\t\"batch resolver is not supported for root field %s.%s\",\n\t\t\t\t\t\tobj.Name,\n\t\t\t\t\t\tfield.Name,\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\t// batch resolvers are always user-provided\n\t\t\t\tf.IsResolver = true\n\t\t\t}\n\t\t}\n\t}\n\n\tif f.IsResolver && b.Config.ResolversAlwaysReturnPointers && !f.TypeReference.IsPtr() &&\n\t\tf.TypeReference.IsStruct() {\n\t\tf.TypeReference = b.Binder.PointerTo(f.TypeReference)\n\t}\n\n\treturn &f, nil\n}\n\nfunc (b *builder) bindField(obj *Object, f *Field) (errret error) {\n\tdefer func() {\n\t\tif f.TypeReference == nil {\n\t\t\ttr, err := b.Binder.TypeReference(f.Type, nil)\n\t\t\tif err != nil {\n\t\t\t\terrret = err\n\t\t\t}\n\t\t\tf.TypeReference = tr\n\t\t}\n\t\tif f.TypeReference != nil {\n\t\t\tdirs, err := b.getDirectives(f.TypeReference.Definition.Directives)\n\t\t\tif err != nil {\n\t\t\t\terrret = err\n\t\t\t}\n\t\t\t// Filter out INPUT_OBJECT directives from type references - they should\n\t\t\t// only be executed on the input object itself, not on fields that use the type.\n\t\t\t// See: https://github.com/99designs/gqlgen/issues/2281\n\t\t\tvar filteredDirs []*Directive\n\t\t\tfor _, dir := range dirs {\n\t\t\t\tif !dir.IsLocation(ast.LocationInputObject) {\n\t\t\t\t\tfilteredDirs = append(filteredDirs, dir)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tf.Directives = append(filteredDirs, f.Directives...)\n\t\t}\n\t}()\n\n\tf.Stream = obj.Stream\n\n\tswitch {\n\tcase f.Name == \"__schema\":\n\t\tf.GoFieldType = GoFieldMethod\n\t\tf.GoReceiverName = \"ec\"\n\t\tf.GoFieldName = \"IntrospectSchema\"\n\t\treturn nil\n\tcase f.Name == \"__type\":\n\t\tf.GoFieldType = GoFieldMethod\n\t\tf.GoReceiverName = \"ec\"\n\t\tf.GoFieldName = \"IntrospectType\"\n\t\treturn nil\n\tcase f.Name == \"_entities\":\n\t\tf.GoFieldType = GoFieldMethod\n\t\tf.GoReceiverName = \"ec\"\n\t\tf.GoFieldName = \"__resolve_entities\"\n\t\tf.MethodHasContext = true\n\t\tf.NoErr = true\n\t\treturn nil\n\tcase f.Name == \"_service\":\n\t\tf.GoFieldType = GoFieldMethod\n\t\tf.GoReceiverName = \"ec\"\n\t\tf.GoFieldName = \"__resolve__service\"\n\t\tf.MethodHasContext = true\n\t\treturn nil\n\tcase obj.Root:\n\t\tf.IsResolver = true\n\t\treturn nil\n\tcase b.Config.Models[obj.Name].Fields[f.Name].Resolver:\n\t\tf.IsResolver = true\n\t\treturn nil\n\tcase obj.Type == config.MapType:\n\t\tf.GoFieldType = GoFieldMap\n\t\treturn nil\n\tcase b.Config.Models[obj.Name].Fields[f.Name].FieldName != \"\":\n\t\tf.GoFieldName = b.Config.Models[obj.Name].Fields[f.Name].FieldName\n\t}\n\n\t// Check for protobuf-style haser method (only if enabled and field is nullable)\n\t// Use the original field name, not the bound method/field name\n\t// (e.g., for field \"name\" bound to \"GetName()\", look for \"HasName\" not \"HasGetName\")\n\t// Check for protobuf-style haser method (only if enabled and field is nullable)\n\t// Use the original field name, not the bound method/field name\n\t// (e.g., for field \"name\" bound to \"GetName()\", look for \"HasName\" not \"HasGetName\")\n\tautoBindGetterHaser := b.Config.AutobindGetterHaser\n\tif val := b.Config.Models[obj.Name].Fields[f.Name].AutoBindGetterHaser; val != nil {\n\t\tautoBindGetterHaser = *val\n\t}\n\n\tif autoBindGetterHaser && !f.Type.NonNull {\n\t\thaser, _ := b.findBindHaserMethod(obj.Type, f.GoFieldName)\n\t\tif haser != nil {\n\t\t\tf.HasHaser = true\n\t\t\tf.HaserMethodName = haser.Name()\n\t\t}\n\t}\n\n\ttarget, err := b.findBindTarget(obj.Type, f.GoFieldName, autoBindGetterHaser)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tpos := b.Binder.ObjectPosition(target)\n\n\tswitch target := target.(type) {\n\tcase nil:\n\t\t// Skips creating a resolver for any root types\n\t\tif b.Config.IsRoot(b.Schema.Types[f.Type.Name()]) {\n\t\t\treturn nil\n\t\t}\n\n\t\tobjPos := b.Binder.TypePosition(obj.Type)\n\t\treturn fmt.Errorf(\n\t\t\t\"%s:%d adding resolver method for %s.%s, nothing matched\",\n\t\t\tobjPos.Filename,\n\t\t\tobjPos.Line,\n\t\t\tobj.Name,\n\t\t\tf.Name,\n\t\t)\n\n\tcase *types.Func:\n\t\tsig := target.Type().(*types.Signature)\n\t\tif sig.Results().Len() == 1 {\n\t\t\tf.NoErr = true\n\t\t} else if s := sig.Results(); s.Len() == 2 && s.At(1).Type().String() == \"bool\" {\n\t\t\tf.VOkFunc = true\n\t\t} else if sig.Results().Len() != 2 {\n\t\t\treturn errors.New(\"method has wrong number of args\")\n\t\t}\n\t\tparams := sig.Params()\n\t\t// If the first argument is the context, remove it from the comparison and set\n\t\t// the MethodHasContext flag so that the context will be passed to this model's method\n\t\tif params.Len() > 0 && params.At(0).Type().String() == \"context.Context\" {\n\t\t\tf.MethodHasContext = true\n\t\t\tvars := make([]*types.Var, params.Len()-1)\n\t\t\tfor i := 1; i < params.Len(); i++ {\n\t\t\t\tvars[i-1] = params.At(i)\n\t\t\t}\n\t\t\tparams = types.NewTuple(vars...)\n\t\t}\n\n\t\t// Try to match target function's arguments with GraphQL field arguments.\n\t\tnewArgs, err := b.bindArgs(f, sig, params)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"%s:%d: %w\", pos.Filename, pos.Line, err)\n\t\t}\n\n\t\t// Try to match target function's return types with GraphQL field return type\n\t\tresult := sig.Results().At(0)\n\t\ttr, err := b.Binder.TypeReference(f.Type, result.Type())\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t// success, args and return type match. Bind to method\n\t\tf.GoFieldType = GoFieldMethod\n\t\tf.GoReceiverName = \"obj\"\n\t\tf.GoFieldName = target.Name()\n\t\tf.Args = newArgs\n\t\tf.TypeReference = tr\n\n\t\treturn nil\n\tcase *types.Var:\n\t\ttr, err := b.Binder.TypeReference(f.Type, target.Type())\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t// success, bind to var\n\t\tf.GoFieldType = GoFieldVariable\n\t\tf.GoReceiverName = \"obj\"\n\t\tf.GoFieldName = target.Name()\n\t\tf.TypeReference = tr\n\n\t\treturn nil\n\tdefault:\n\t\tpanic(fmt.Errorf(\"unknown bind target %T for %s\", target, f.Name))\n\t}\n}\n\n// findBindTarget attempts to match the name to a field or method on a Type\n// with the following priorities:\n// 1. Any Fields with a struct tag (see config.StructTag). Errors if more than one match is found\n// 2. If enabled, try getter pattern (GetFieldName)\n// 3. Any method or field with a matching name. Errors if more than one match is found\n// 4. Same logic again for embedded fields\nfunc (b *builder) findBindTarget(\n\tt types.Type,\n\tname string,\n\tautoBindGetterHaser bool,\n) (types.Object, error) {\n\t// NOTE: a struct tag will override both methods and fields\n\t// Bind to struct tag\n\tfound, err := b.findBindStructTagTarget(t, name)\n\tif found != nil || err != nil {\n\t\treturn found, err\n\t}\n\n\t// If enabled, try getter pattern (GetFieldName) first\n\tvar foundGetter types.Object\n\tif autoBindGetterHaser {\n\t\tgetterName := \"Get\" + name\n\t\tfoundGetter, err = b.findBindMethodTarget(t, getterName)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif foundGetter != nil {\n\t\t\treturn foundGetter, nil\n\t\t}\n\t}\n\n\t// Search for a method to bind to\n\tfoundMethod, err := b.findBindMethodTarget(t, name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Search for a field to bind to\n\tfoundField, err := b.findBindFieldTarget(t, name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tswitch {\n\tcase foundField == nil && foundMethod != nil:\n\t\t// Bind to method\n\t\treturn foundMethod, nil\n\tcase foundField != nil && foundMethod == nil:\n\t\t// Bind to field\n\t\treturn foundField, nil\n\tcase foundField != nil && foundMethod != nil:\n\t\t// Error\n\t\treturn nil, fmt.Errorf(\"found more than one way to bind for %s\", name)\n\t}\n\n\t// Search embeds\n\treturn b.findBindEmbedsTarget(t, name, autoBindGetterHaser)\n}\n\nfunc (b *builder) findBindStructTagTarget(in types.Type, name string) (types.Object, error) {\n\tif b.Config.StructTag == \"\" {\n\t\treturn nil, nil\n\t}\n\n\tswitch t := in.(type) {\n\tcase *types.Named:\n\t\treturn b.findBindStructTagTarget(t.Underlying(), name)\n\tcase *types.Struct:\n\t\tvar found types.Object\n\t\tfor i := 0; i < t.NumFields(); i++ {\n\t\t\tfield := t.Field(i)\n\t\t\tif !field.Exported() || field.Embedded() {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\ttags := reflect.StructTag(t.Tag(i))\n\t\t\tif val, ok := tags.Lookup(b.Config.StructTag); ok && equalFieldName(val, name) {\n\t\t\t\tif found != nil {\n\t\t\t\t\treturn nil, fmt.Errorf(\n\t\t\t\t\t\t\"tag %s is ambiguous; multiple fields have the same tag value of %s\",\n\t\t\t\t\t\tb.Config.StructTag,\n\t\t\t\t\t\tval,\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\tfound = field\n\t\t\t}\n\t\t}\n\n\t\treturn found, nil\n\t}\n\n\treturn nil, nil\n}\n\nfunc (b *builder) findBindMethodTarget(in types.Type, name string) (types.Object, error) {\n\tswitch t := in.(type) {\n\tcase *types.Named:\n\t\tif _, ok := t.Underlying().(*types.Interface); ok {\n\t\t\treturn b.findBindMethodTarget(t.Underlying(), name)\n\t\t}\n\n\t\treturn b.findBindMethoderTarget(t.Method, t.NumMethods(), name)\n\tcase *types.Interface:\n\t\t// FIX-ME: Should use ExplicitMethod here? What's the difference?\n\t\treturn b.findBindMethoderTarget(t.Method, t.NumMethods(), name)\n\t}\n\n\treturn nil, nil\n}\n\nfunc (b *builder) findBindMethoderTarget(\n\tmethodFunc func(i int) *types.Func,\n\tmethodCount int,\n\tname string,\n) (types.Object, error) {\n\tvar found types.Object\n\tfor i := range methodCount {\n\t\tmethod := methodFunc(i)\n\t\tif !method.Exported() || !strings.EqualFold(method.Name(), name) {\n\t\t\tcontinue\n\t\t}\n\n\t\tif found != nil {\n\t\t\treturn nil, fmt.Errorf(\"found more than one matching method to bind for %s\", name)\n\t\t}\n\n\t\tfound = method\n\t}\n\n\treturn found, nil\n}\n\nfunc (b *builder) findBindFieldTarget(in types.Type, name string) (types.Object, error) {\n\tswitch t := in.(type) {\n\tcase *types.Named:\n\t\treturn b.findBindFieldTarget(t.Underlying(), name)\n\tcase *types.Struct:\n\t\tvar found types.Object\n\t\tfor field := range t.Fields() {\n\t\t\tif !field.Exported() || !equalFieldName(field.Name(), name) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif found != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"found more than one matching field to bind for %s\", name)\n\t\t\t}\n\n\t\t\tfound = field\n\t\t}\n\n\t\treturn found, nil\n\t}\n\n\treturn nil, nil\n}\n\nfunc (b *builder) findBindEmbedsTarget(\n\tin types.Type,\n\tname string,\n\tautoBindGetterHaser bool,\n) (types.Object, error) {\n\tswitch t := in.(type) {\n\tcase *types.Named:\n\t\treturn b.findBindEmbedsTarget(t.Underlying(), name, autoBindGetterHaser)\n\tcase *types.Struct:\n\t\treturn b.findBindStructEmbedsTarget(t, name, autoBindGetterHaser)\n\tcase *types.Interface:\n\t\treturn b.findBindInterfaceEmbedsTarget(t, name, autoBindGetterHaser)\n\t}\n\n\treturn nil, nil\n}\n\nfunc (b *builder) findBindStructEmbedsTarget(\n\tstrukt *types.Struct,\n\tname string,\n\tautoBindGetterHaser bool,\n) (types.Object, error) {\n\tvar found types.Object\n\tfor field := range strukt.Fields() {\n\t\tif !field.Embedded() {\n\t\t\tcontinue\n\t\t}\n\n\t\tfieldType := code.Unalias(field.Type())\n\t\tif ptr, ok := fieldType.(*types.Pointer); ok {\n\t\t\tfieldType = ptr.Elem()\n\t\t}\n\n\t\tf, err := b.findBindTarget(fieldType, name, autoBindGetterHaser)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif f != nil && found != nil {\n\t\t\treturn nil, fmt.Errorf(\"found more than one way to bind for %s\", name)\n\t\t}\n\n\t\tif f != nil {\n\t\t\tfound = f\n\t\t}\n\t}\n\n\treturn found, nil\n}\n\nfunc (b *builder) findBindInterfaceEmbedsTarget(\n\tiface *types.Interface,\n\tname string,\n\tautoBindGetterHaser bool,\n) (types.Object, error) {\n\tvar found types.Object\n\tfor embeddedType := range iface.EmbeddedTypes() {\n\t\tf, err := b.findBindTarget(embeddedType, name, autoBindGetterHaser)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif f != nil && found != nil {\n\t\t\treturn nil, fmt.Errorf(\"found more than one way to bind for %s\", name)\n\t\t}\n\n\t\tif f != nil {\n\t\t\tfound = f\n\t\t}\n\t}\n\n\treturn found, nil\n}\n\n// findBindHaserMethod looks for a protobuf-style haser method (e.g., HasName for field Name)\n// Haser methods are used to check if an optional field is set\nfunc (b *builder) findBindHaserMethod(in types.Type, name string) (types.Object, error) {\n\thaserName := \"Has\" + name\n\n\tswitch t := in.(type) {\n\tcase *types.Named:\n\t\tif _, ok := t.Underlying().(*types.Interface); ok {\n\t\t\treturn b.findBindHaserMethod(t.Underlying(), name)\n\t\t}\n\n\t\t// Search for haser method\n\t\tmethod, err := b.findBindMethoderTarget(t.Method, t.NumMethods(), haserName)\n\t\tif err != nil || method == nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\t// Verify haser signature: no parameters, returns bool\n\t\tsig := method.Type().(*types.Signature)\n\t\tif sig.Params().Len() != 0 || sig.Results().Len() != 1 {\n\t\t\treturn nil, nil\n\t\t}\n\t\tif sig.Results().At(0).Type().String() != \"bool\" {\n\t\t\treturn nil, nil\n\t\t}\n\n\t\treturn method, nil\n\n\tcase *types.Interface:\n\t\tmethod, err := b.findBindMethoderTarget(t.Method, t.NumMethods(), haserName)\n\t\tif err != nil || method == nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\t// Verify haser signature\n\t\tsig := method.Type().(*types.Signature)\n\t\tif sig.Params().Len() != 0 || sig.Results().Len() != 1 {\n\t\t\treturn nil, nil\n\t\t}\n\t\tif sig.Results().At(0).Type().String() != \"bool\" {\n\t\t\treturn nil, nil\n\t\t}\n\n\t\treturn method, nil\n\t}\n\n\treturn nil, nil\n}\n\nfunc (f *Field) HasDirectives() bool {\n\treturn len(f.ImplDirectives()) > 0\n}\n\nfunc (f *Field) DirectiveObjName() string {\n\tif f.Object.Root {\n\t\treturn \"nil\"\n\t}\n\treturn f.GoReceiverName\n}\n\nfunc (f *Field) ImplDirectives() []*Directive {\n\tvar d []*Directive\n\tloc := ast.LocationFieldDefinition\n\tif f.Object.IsInputType() {\n\t\tloc = ast.LocationInputFieldDefinition\n\t}\n\tfor i := range f.Directives {\n\t\tif !f.Directives[i].SkipRuntime &&\n\t\t\t(f.Directives[i].IsLocation(loc, ast.LocationObject) || f.Directives[i].IsLocation(loc, ast.LocationInputObject)) {\n\t\t\td = append(d, f.Directives[i])\n\t\t}\n\t}\n\treturn d\n}\n\nfunc (f *Field) IsReserved() bool {\n\treturn strings.HasPrefix(f.Name, \"__\")\n}\n\nfunc (f *Field) IsMethod() bool {\n\treturn f.GoFieldType == GoFieldMethod\n}\n\nfunc (f *Field) IsVariable() bool {\n\treturn f.GoFieldType == GoFieldVariable\n}\n\nfunc (f *Field) IsMap() bool {\n\treturn f.GoFieldType == GoFieldMap\n}\n\nfunc (f *Field) IsConcurrent() bool {\n\tif f.Object.DisableConcurrency {\n\t\treturn false\n\t}\n\treturn f.MethodHasContext || f.IsResolver\n}\n\n// IsBatch returns true if this field has batch resolver enabled.\nfunc (f *Field) IsBatch() bool {\n\treturn f.Batch\n}\n\n// ShortBatchResolverDeclaration returns the method signature for a batch resolver.\n// Batch resolvers accept multiple parent objects and return results for all of them.\n// For example, if the normal resolver is:\n//\n//\tPosts(ctx context.Context, obj *User) ([]*Post, error)\n//\n// The batch resolver would be:\n//\n//\tPosts(ctx context.Context, objs []*User) ([][]*Post, error)\nfunc (f *Field) ShortBatchResolverDeclaration() string {\n\tif f.Object.Root {\n\t\t// Root fields don't have a parent object, so batch doesn't make sense\n\t\treturn \"\"\n\t}\n\n\tparentType := templates.CurrentImports.LookupType(f.Object.Reference())\n\tres := fmt.Sprintf(\"(ctx context.Context, objs []%s\", parentType)\n\n\tvar resSb strings.Builder\n\tvar inlineInfo *InlineArgsInfo\n\tif f.Object != nil && f.Object.Definition != nil {\n\t\tinlineInfo = GetInlineArgsMetadata(f.Object.Name, f.Name)\n\t}\n\tif inlineInfo != nil {\n\t\tgoType := formatGoType(inlineInfo.GoType)\n\t\tfmt.Fprintf(&resSb, \", %s %s\", inlineInfo.OriginalArgName, goType)\n\n\t\tfor _, arg := range f.Args {\n\t\t\tif !slices.Contains(inlineInfo.ExpandedArgs, arg.Name) {\n\t\t\t\tfmt.Fprintf(\n\t\t\t\t\t&resSb,\n\t\t\t\t\t\", %s %s\",\n\t\t\t\t\targ.VarName,\n\t\t\t\t\ttemplates.CurrentImports.LookupType(arg.TypeReference.GO),\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfor _, arg := range f.Args {\n\t\t\tfmt.Fprintf(\n\t\t\t\t&resSb,\n\t\t\t\t\", %s %s\",\n\t\t\t\targ.VarName,\n\t\t\t\ttemplates.CurrentImports.LookupType(arg.TypeReference.GO),\n\t\t\t)\n\t\t}\n\t}\n\tres += resSb.String()\n\n\treturn fmt.Sprintf(\n\t\t\"%s) ([]%s, error)\",\n\t\tres,\n\t\ttemplates.CurrentImports.LookupType(f.TypeReference.GO),\n\t)\n}\n\nfunc (f *Field) GoNameUnexported() string {\n\treturn templates.ToGoPrivate(f.Name)\n}\n\nfunc (f *Field) ShortInvocation() string {\n\tcaser := cases.Title(language.English, cases.NoLower)\n\tif f.Object.Kind == ast.InputObject {\n\t\treturn fmt.Sprintf(\"%s().%s(ctx, &it, data)\", caser.String(f.Object.Name), f.GoFieldName)\n\t}\n\treturn fmt.Sprintf(\"%s().%s(%s)\", caser.String(f.Object.Name), f.GoFieldName, f.CallArgs())\n}\n\nfunc (f *Field) ArgsFunc() string {\n\tif len(f.Args) == 0 {\n\t\treturn \"\"\n\t}\n\n\treturn \"field_\" + f.Object.Name + \"_\" + f.Name + \"_args\"\n}\n\nfunc (f *Field) FieldContextFunc() string {\n\treturn \"fieldContext_\" + f.Object.Name + \"_\" + f.Name\n}\n\nfunc (f *Field) ChildFieldContextFunc(name string) string {\n\treturn \"fieldContext_\" + f.TypeReference.Definition.Name + \"_\" + name\n}\n\nfunc (f *Field) ResolverType() string {\n\tif !f.IsResolver {\n\t\treturn \"\"\n\t}\n\n\treturn fmt.Sprintf(\"%s().%s(%s)\", f.Object.Name, f.GoFieldName, f.CallArgs())\n}\n\nfunc (f *Field) IsInputObject() bool {\n\treturn f.Object.Kind == ast.InputObject\n}\n\nfunc (f *Field) IsRoot() bool {\n\treturn f.Object.Root\n}\n\nfunc formatGoType(goType string) string {\n\tif strings.Contains(goType, \"/\") {\n\t\tlastDot := strings.LastIndex(goType, \".\")\n\t\tif lastDot == -1 {\n\t\t\treturn goType\n\t\t}\n\n\t\tpackagePath := goType[:lastDot]\n\t\ttypeName := goType[lastDot+1:]\n\n\t\talias := templates.CurrentImports.Lookup(packagePath)\n\t\tif alias == \"\" {\n\t\t\treturn typeName\n\t\t}\n\n\t\treturn alias + \".\" + typeName\n\t}\n\n\treturn goType\n}\n\nfunc (f *Field) ShortResolverDeclaration() string {\n\treturn f.ShortResolverSignature(nil)\n}\n\n// ShortResolverSignature is identical to ShortResolverDeclaration,\n// but respects previous naming (return) conventions, if any.\nfunc (f *Field) ShortResolverSignature(ft *goast.FuncType) string {\n\tif f.Object.Kind == ast.InputObject {\n\t\treturn fmt.Sprintf(\"(ctx context.Context, obj %s, data %s) error\",\n\t\t\ttemplates.CurrentImports.LookupType(f.Object.Reference()),\n\t\t\ttemplates.CurrentImports.LookupType(f.TypeReference.GO),\n\t\t)\n\t}\n\n\tres := \"(ctx context.Context\"\n\n\tif !f.Object.Root {\n\t\tres += fmt.Sprintf(\", obj %s\", templates.CurrentImports.LookupType(f.Object.Reference()))\n\t}\n\tvar resSb540 strings.Builder\n\n\tvar inlineInfo *InlineArgsInfo\n\tif f.Object != nil && f.Object.Definition != nil {\n\t\tinlineInfo = GetInlineArgsMetadata(f.Object.Name, f.Name)\n\t}\n\tif inlineInfo != nil {\n\t\tgoType := formatGoType(inlineInfo.GoType)\n\t\tfmt.Fprintf(&resSb540, \", %s %s\", inlineInfo.OriginalArgName, goType)\n\n\t\tfor _, arg := range f.Args {\n\t\t\tif !slices.Contains(inlineInfo.ExpandedArgs, arg.Name) {\n\t\t\t\tfmt.Fprintf(\n\t\t\t\t\t&resSb540,\n\t\t\t\t\t\", %s %s\",\n\t\t\t\t\targ.VarName,\n\t\t\t\t\ttemplates.CurrentImports.LookupType(arg.TypeReference.GO),\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfor _, arg := range f.Args {\n\t\t\tfmt.Fprintf(\n\t\t\t\t&resSb540,\n\t\t\t\t\", %s %s\",\n\t\t\t\targ.VarName,\n\t\t\t\ttemplates.CurrentImports.LookupType(arg.TypeReference.GO),\n\t\t\t)\n\t\t}\n\t}\n\tres += resSb540.String()\n\n\tresult := templates.CurrentImports.LookupType(f.TypeReference.GO)\n\tif f.Object.Stream {\n\t\tresult = \"<-chan \" + result\n\t}\n\t// Named return.\n\tvar namedV, namedE string\n\tif ft != nil {\n\t\tif ft.Results != nil && len(ft.Results.List) > 0 && len(ft.Results.List[0].Names) > 0 {\n\t\t\tnamedV = ft.Results.List[0].Names[0].Name\n\t\t}\n\t\tif ft.Results != nil && len(ft.Results.List) > 1 && len(ft.Results.List[1].Names) > 0 {\n\t\t\tnamedE = ft.Results.List[1].Names[0].Name\n\t\t}\n\t}\n\tif namedV != \"\" || namedE != \"\" {\n\t\tres += fmt.Sprintf(\") (%s %s, %s error)\", namedV, result, namedE)\n\t} else {\n\t\tres += fmt.Sprintf(\") (%s, error)\", result)\n\t}\n\treturn res\n}\n\nfunc (f *Field) GoResultName() (string, bool) {\n\tname := fmt.Sprintf(\"%v\", f.TypeReference.GO)\n\tsplits := strings.Split(name, \"/\")\n\n\treturn splits[len(splits)-1], strings.HasPrefix(name, \"[]\")\n}\n\nfunc (f *Field) ComplexitySignature() string {\n\tres := \"func(childComplexity int\"\n\tvar resSb571 strings.Builder\n\tfor _, arg := range f.Args {\n\t\tfmt.Fprintf(\n\t\t\t&resSb571,\n\t\t\t\", %s %s\",\n\t\t\targ.VarName,\n\t\t\ttemplates.CurrentImports.LookupType(arg.TypeReference.GO),\n\t\t)\n\t}\n\tres += resSb571.String()\n\tres += \") int\"\n\treturn res\n}\n\nfunc (f *Field) ComplexityArgs() string {\n\targs := make([]string, len(f.Args))\n\tfor i, arg := range f.Args {\n\t\targs[i] = \"args[\" + strconv.Quote(\n\t\t\targ.Name,\n\t\t) + \"].(\" + templates.CurrentImports.LookupType(\n\t\t\targ.TypeReference.GO,\n\t\t) + \")\"\n\t}\n\n\treturn strings.Join(args, \", \")\n}\n\nfunc (f *Field) CallArgs() string {\n\targs := make([]string, 0, len(f.Args)+2)\n\n\tif f.IsResolver {\n\t\targs = append(args, \"ctx\")\n\n\t\tif !f.Object.Root {\n\t\t\targs = append(args, \"obj\")\n\t\t}\n\t} else if f.MethodHasContext {\n\t\targs = append(args, \"ctx\")\n\t}\n\n\targs = append(args, f.callArgExpressions()...)\n\treturn strings.Join(args, \", \")\n}\n\nfunc (f *Field) callArgExpressions() []string {\n\targs := make([]string, 0, len(f.Args))\n\tvar inlineInfo *InlineArgsInfo\n\tif f.Object != nil && f.Object.Definition != nil {\n\t\tinlineInfo = GetInlineArgsMetadata(f.Object.Name, f.Name)\n\t}\n\tif inlineInfo != nil {\n\t\tisMap := strings.Contains(inlineInfo.GoType, \"map[\")\n\n\t\tvar entries []string\n\t\tfor _, argName := range inlineInfo.ExpandedArgs {\n\t\t\tvar argRef *FieldArgument\n\t\t\tfor _, arg := range f.Args {\n\t\t\t\tif arg.Name == argName {\n\t\t\t\t\targRef = arg\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif argRef != nil {\n\t\t\t\tgoType := templates.CurrentImports.LookupType(argRef.TypeReference.GO)\n\t\t\t\tvar entry string\n\t\t\t\tif isMap {\n\t\t\t\t\tentry = fmt.Sprintf(\"%q: fc.Args[%q].(%s)\", argName, argName, goType)\n\t\t\t\t} else {\n\t\t\t\t\tfieldName := templates.ToGo(argName)\n\t\t\t\t\tentry = fmt.Sprintf(\"%s: fc.Args[%q].(%s)\", fieldName, argName, goType)\n\t\t\t\t}\n\t\t\t\tentries = append(entries, entry)\n\t\t\t}\n\t\t}\n\n\t\tgoType := formatGoType(inlineInfo.GoType)\n\t\tbundled := fmt.Sprintf(\"%s{\\n\\t\\t%s,\\n\\t}\", goType, strings.Join(entries, \",\\n\\t\\t\"))\n\t\targs = append(args, bundled)\n\n\t\tfor _, arg := range f.Args {\n\t\t\tif !slices.Contains(inlineInfo.ExpandedArgs, arg.Name) {\n\t\t\t\ttmp := \"fc.Args[\" + strconv.Quote(\n\t\t\t\t\targ.Name,\n\t\t\t\t) + \"].(\" + templates.CurrentImports.LookupType(\n\t\t\t\t\targ.TypeReference.GO,\n\t\t\t\t) + \")\"\n\n\t\t\t\tif iface, ok := arg.TypeReference.GO.(*types.Interface); ok && iface.Empty() {\n\t\t\t\t\ttmp = fmt.Sprintf(`\n\t\t\t\tfunc () any {\n\t\t\t\t\tif fc.Args[\"%s\"] == nil {\n\t\t\t\t\t\treturn nil\n\t\t\t\t\t}\n\t\t\t\t\treturn fc.Args[\"%s\"].(any)\n\t\t\t\t}()`, arg.Name, arg.Name,\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\targs = append(args, tmp)\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfor _, arg := range f.Args {\n\t\t\ttmp := \"fc.Args[\" + strconv.Quote(\n\t\t\t\targ.Name,\n\t\t\t) + \"].(\" + templates.CurrentImports.LookupType(\n\t\t\t\targ.TypeReference.GO,\n\t\t\t) + \")\"\n\n\t\t\tif iface, ok := arg.TypeReference.GO.(*types.Interface); ok && iface.Empty() {\n\t\t\t\ttmp = fmt.Sprintf(`\n\t\t\t\tfunc () any {\n\t\t\t\t\tif fc.Args[\"%s\"] == nil {\n\t\t\t\t\t\treturn nil\n\t\t\t\t\t}\n\t\t\t\t\treturn fc.Args[\"%s\"].(any)\n\t\t\t\t}()`, arg.Name, arg.Name,\n\t\t\t\t)\n\t\t\t}\n\n\t\t\targs = append(args, tmp)\n\t\t}\n\t}\n\n\treturn args\n}\n\n// BatchCallArgs returns a comma-separated list of resolver call arguments for batch resolvers.\nfunc (f *Field) BatchCallArgs(parentVar string) string {\n\targs := make([]string, 0, len(f.Args)+2)\n\targs = append(args, \"ctx\")\n\tif parentVar != \"\" {\n\t\targs = append(args, parentVar)\n\t}\n\n\targs = append(args, f.callArgExpressions()...)\n\treturn strings.Join(args, \", \")\n}\n\n// StubCallArgs returns a comma-separated list of argument variable names for stub code.\nfunc (f *Field) StubCallArgs() string {\n\targs := make([]string, 0, len(f.Args)+2)\n\n\tinlineInfo := GetInlineArgsMetadata(f.Object.Name, f.Name)\n\tif inlineInfo != nil {\n\t\targs = append(args, inlineInfo.OriginalArgName)\n\n\t\tfor _, arg := range f.Args {\n\t\t\tif !slices.Contains(inlineInfo.ExpandedArgs, arg.Name) {\n\t\t\t\targs = append(args, arg.VarName)\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfor _, arg := range f.Args {\n\t\t\targs = append(args, arg.VarName)\n\t\t}\n\t}\n\n\treturn strings.Join(args, \", \")\n}\n"
  },
  {
    "path": "codegen/field.gotpl",
    "content": "{{ $useFunctionSyntaxForExecutionContext := .Config.UseFunctionSyntaxForExecutionContext }}\n\n{{- range $object := .Objects }}{{- range $field := $object.Fields }}\n\n{{ if $useFunctionSyntaxForExecutionContext -}}\nfunc _{{$object.Name}}_{{$field.Name}}(ctx context.Context, ec *executionContext, field graphql.CollectedField{{ if not $object.Root }}, obj {{$object.Reference | ref}}{{end}}) (ret {{ if $object.Stream }}func(ctx context.Context){{ end }}graphql.Marshaler) {\n{{- else -}}\nfunc (ec *executionContext) _{{$object.Name}}_{{$field.Name}}(ctx context.Context, field graphql.CollectedField{{ if not $object.Root }}, obj {{$object.Reference | ref}}{{end}}) (ret {{ if $object.Stream }}func(ctx context.Context){{ end }}graphql.Marshaler) {\n{{- end }}\n\t{{- $null := \"graphql.Null\" }}\n\t{{- if $object.Stream }}\n\t\t{{- $null = \"nil\" }}\n\t{{- end }}\n\n\t{{- if $field.TypeReference.IsRoot }}\n\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\tfc, err := {{ $field.FieldContextFunc }}(ctx, ec, field)\n\t\t{{- else -}}\n\t\tfc, err := ec.{{ $field.FieldContextFunc }}(ctx, field)\n\t\t{{- end }}\n\t\tif err != nil {\n\t\t\treturn {{ $null }}\n\t\t}\n\t\tctx = graphql.WithFieldContext(ctx, fc)\n\t\t{{- if not $.Config.OmitPanicHandler }}\n\t\tdefer func () {\n\t\t\tif r := recover(); r != nil {\n\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\tret = {{ $null }}\n\t\t\t}\n\t\t}()\n\t\t{{- end }}\n\n\t\t{{- if $field.TypeReference.IsPtr }}\n\t\t\tres := &{{ $field.TypeReference.Elem.GO | ref }}{}\n\t\t{{- else }}\n\t\t\tres := {{ $field.TypeReference.GO | ref }}{}\n\t\t{{- end }}\n\t\tfc.Result = res\n\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\treturn {{ $field.TypeReference.MarshalFunc }}(ctx, ec, field.Selections, res)\n\t\t{{- else -}}\n\t\treturn ec.{{ $field.TypeReference.MarshalFunc }}(ctx, field.Selections, res)\n\t\t{{- end }}\n\t{{- else}}\n\t\treturn graphql.ResolveField{{- if $object.Stream }}Stream{{- end }}(\n\t\t\tctx,\n\t\t\tec.OperationContext,\n\t\t\tfield,\n\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { return {{ $field.FieldContextFunc }}(ctx, ec, field) },\n\t\t\t{{- else -}}\n\t\t\tec.{{ $field.FieldContextFunc }},\n\t\t\t{{- end }}\n\t\t\tfunc(ctx context.Context) (any, error) {\n\t\t\t\t{{- template \"fieldDefinition\" $field }}\n\t\t\t},\n\t\t\t{{if or ($.AllDirectives.LocationDirectives \"FIELD\") $field.HasDirectives -}}\n\t\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\t\t{{- if $field.HasDirectives -}}\n\t\t\t\tdirective0 := next\n\t\t\t\t{{ template \"implDirectives\" (dict \"Field\" $field \"UseFunctionSyntaxForExecutionContext\" $useFunctionSyntaxForExecutionContext) }}\n\t\t\t\tnext = directive{{$field.ImplDirectives|len}}\n\t\t\t\t{{end}}\n\t\t\t\t{{- if  $.AllDirectives.LocationDirectives \"FIELD\" -}}\n\t\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\t\treturn _fieldMiddleware(ctx, ec, {{if $object.Root}}nil{{else}}obj{{end}}, next)\n\t\t\t\t\t\t{{- else -}}\n\t\t\t\t\t\treturn ec._fieldMiddleware(ctx, {{if $object.Root}}nil{{else}}obj{{end}}, next)\n\t\t\t\t\t\t{{- end }}\n\t\t\t\t{{- else -}}\n\t\t\t\treturn next\n\t\t\t\t{{end -}}\n\t\t\t},\n\t\t\t{{else -}}\n\t\t    nil,\n\t\t\t{{end -}}\n\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\tfunc(ctx context.Context, selections ast.SelectionSet, v {{ $field.TypeReference.GO | ref }}) graphql.Marshaler { return {{ $field.TypeReference.MarshalFunc }}(ctx, ec, selections, v) },\n\t\t\t{{- else -}}\n\t\t\tec.{{ $field.TypeReference.MarshalFunc }},\n\t\t\t{{- end }}\n\t\t\t{{ not $.Config.OmitPanicHandler }},\n\t\t\t{{ $field.TypeReference.GQL.NonNull }},\n\t\t)\n\t{{- end }}\n}\n\n{{ if $useFunctionSyntaxForExecutionContext -}}\nfunc {{ $field.FieldContextFunc }}({{ if not $field.Args }}_{{ else }}ctx{{ end }} context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n{{- else -}}\nfunc (ec *executionContext) {{ $field.FieldContextFunc }}({{ if not $field.Args }}_{{ else }}ctx{{ end }} context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n{{- end }}\n\tfc = &graphql.FieldContext{\n\t\tObject: {{quote $field.Object.Name}},\n\t\tField: field,\n\t\tIsMethod: {{or $field.IsMethod $field.IsResolver}},\n\t\tIsResolver: {{ $field.IsResolver }},\n\t\tChild: func (ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\t{{- if not $field.TypeReference.Definition.Fields }}\n\t\t\t\treturn nil, errors.New(\"field of type {{ $field.TypeReference.Definition.Name }} does not have child fields\")\n\t\t\t{{- else if ne $field.TypeReference.Definition.Kind \"OBJECT\" }}\n\t\t\t\treturn nil, errors.New(\"FieldContext.Child cannot be called on type {{ $field.TypeReference.Definition.Kind }}\")\n\t\t\t{{- else }}\n\t\t\t\tswitch field.Name {\n\t\t\t\t\t{{- range $f := $field.TypeReference.Definition.Fields }}\n\t\t\t\t\t\tcase \"{{ $f.Name }}\":\n\t\t\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\t\t\treturn {{ $field.ChildFieldContextFunc $f.Name }}(ctx, ec, field)\n\t\t\t\t\t\t\t{{- else -}}\n\t\t\t\t\t\t\treturn ec.{{ $field.ChildFieldContextFunc $f.Name }}(ctx, field)\n\t\t\t\t\t\t\t{{- end }}\n\t\t\t\t\t{{- end }}\n\t\t\t\t}\n\t\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type {{ $field.TypeReference.Definition.Name }}\", field.Name)\n\t\t\t{{- end }}\n\t\t},\n\t}\n\t{{- if $field.Args }}\n\t\t{{- if not $.Config.OmitPanicHandler }}\n\t\tdefer func () {\n\t\t\tif r := recover(); r != nil {\n\t\t\t\terr = ec.Recover(ctx, r)\n\t\t\t\tec.Error(ctx, err)\n\t\t\t}\n\t\t}()\n\t\t{{- end }}\n\t\tctx = graphql.WithFieldContext(ctx, fc)\n\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\tif fc.Args, err = {{ $field.ArgsFunc }}(ctx, ec, field.ArgumentMap(ec.Variables)); err != nil {\n\t\t{{- else -}}\n\t\tif fc.Args, err = ec.{{ $field.ArgsFunc }}(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\t{{- end }}\n\t\t\tec.Error(ctx, err)\n\t\t\treturn fc, err\n\t\t}\n\t{{- end }}\n\treturn fc, nil\n}\n\n{{- if and $field.IsBatch (not $object.Root) }}\nfunc (ec *executionContext) resolveBatch_{{$object.Name}}_{{$field.Name}}(ctx context.Context, field graphql.CollectedField, obj {{$object.Reference | ref}}) (any, error) {\n\tresolver := ec.Resolvers.{{ ucFirst $object.Name }}()\n\t{{- if $field.Args }}\n\tfc := graphql.GetFieldContext(ctx)\n\t{{- end }}\n\tgroup := graphql.GetBatchParentGroup(ctx, {{ $object.Name | quote }})\n\tif group != nil {\n\t\tparents, ok := group.Parents.([]{{$object.Reference | ref}})\n\t\tif ok {\n\t\t\tidx, ok := graphql.BatchParentIndex(ctx)\n\t\t\tif ok {\n\t\t\t\tkey := field.Alias\n\t\t\t\tif key == \"\" {\n\t\t\t\t\tkey = field.Name\n\t\t\t\t}\n\t\t\t\t{{/* TODO: resolveBatch_* runs per parent even when grouped; consider a single\n\t\t\t\tdispatch per field if the execution flow can support it. */ -}}\n\t\t\t\tresult := group.GetFieldResult(key, func() (any, error) {\n\t\t\t\t\treturn resolver.{{ $field.GoFieldName }}({{ $field.BatchCallArgs \"parents\" }})\n\t\t\t\t})\n\t\t\t\treturn graphql.ResolveBatchGroupResult[{{ $field.TypeReference.GO | ref }}](\n\t\t\t\t\tctx,\n\t\t\t\t\tidx,\n\t\t\t\t\tlen(parents),\n\t\t\t\t\tresult,\n\t\t\t\t\t{{ printf \"%s.%s\" $object.Name $field.Name | quote }},\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n\n\tresults, err := resolver.{{ $field.GoFieldName }}({{ $field.BatchCallArgs (printf \"[]%s{obj}\" ($object.Reference | ref)) }})\n\treturn graphql.ResolveBatchSingleResult[{{ $field.TypeReference.GO | ref }}](\n\t\tctx,\n\t\tresults,\n\t\terr,\n\t\t{{ printf \"%s.%s\" $object.Name $field.Name | quote }},\n\t)\n}\n{{- end }}\n\n{{- end }}{{- end}}\n\n{{ define \"fieldDefinition\" }}\n\t{{- if and .IsBatch (not .Object.Root) }}\n\t\treturn ec.resolveBatch_{{ .Object.Name }}_{{ .Name }}(ctx, field, obj)\n\t{{- else }}\n\t\t{{- template \"singleFieldDefinition\" . }}\n\t{{- end }}\n{{- end }}\n\n{{ define \"singleFieldDefinition\" }}\n\t{{- if or .IsResolver .IsMethod -}}\n\t{{- if gt (len .Args) 0 -}}\n\tfc := graphql.GetFieldContext(ctx)\n\t{{- end }}\n\t{{ end }}\n\t{{- if .IsResolver -}}\n\t\treturn ec.Resolvers.{{ .ShortInvocation }}\n\t{{- else if .IsMap -}}\n\t\tswitch v := {{.GoReceiverName}}[{{.Name|quote}}].(type) {\n\t\tcase {{if .Stream}}<-chan {{end}}{{.TypeReference.GO | ref}}:\n\t\t\treturn v, nil\n\t\tcase {{if .Stream}}<-chan {{end}}{{.TypeReference.Elem.GO | ref}}:\n\t\t\treturn &v, nil\n\t\tcase nil:\n\t\t\treturn ({{.TypeReference.GO | ref}})(nil), nil\n\t\tdefault:\n\t\t\treturn nil, fmt.Errorf(\"unexpected type %T for field %s\", v, {{ .Name | quote}})\n\t\t}\n\t{{- else if .IsMethod -}}\n\t\t{{- if .HasHaser -}}\n\t\tif !{{.GoReceiverName}}.{{.HaserMethodName}}() {\n\t\t\treturn nil, nil\n\t\t}\n\t\t{{ end }}\n\t\t{{- if .VOkFunc -}}\n\t\t\tv, ok := {{.GoReceiverName}}.{{.GoFieldName}}({{ .CallArgs }})\n\t\t\tif !ok {\n\t\t\t\treturn nil, nil\n\t\t\t}\n\t\t\treturn v, nil\n\t\t{{- else if .NoErr -}}\n\t\t\treturn {{.GoReceiverName}}.{{.GoFieldName}}({{ .CallArgs }}), nil\n\t\t{{- else -}}\n\t\t\treturn {{.GoReceiverName}}.{{.GoFieldName}}({{ .CallArgs }})\n\t\t{{- end -}}\n\t{{- else if .IsVariable -}}\n\t\t{{- if .HasHaser -}}\n\t\tif !{{.GoReceiverName}}.{{.HaserMethodName}}() {\n\t\t\treturn nil, nil\n\t\t}\n\t\t{{- end -}}\n\t\treturn {{.GoReceiverName}}.{{.GoFieldName}}, nil\n\t{{- end }}\n\t{{- end }}\n"
  },
  {
    "path": "codegen/field_test.go",
    "content": "package codegen\n\nimport (\n\t\"go/ast\"\n\t\"go/importer\"\n\t\"go/parser\"\n\t\"go/token\"\n\t\"go/types\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2\"\n\tast2 \"github.com/vektah/gqlparser/v2/ast\"\n\n\t\"github.com/99designs/gqlgen/codegen/config\"\n\t\"github.com/99designs/gqlgen/internal/code\"\n)\n\nfunc TestFindField(t *testing.T) {\n\tinput := `\npackage test\n\ntype Std struct {\n\tName string\n\tValue int\n}\ntype Anon struct {\n\tName string\n\tTags\n}\ntype Tags struct {\n\tBar string ` + \"`\" + `gqlgen:\"foo\"` + \"`\" + `\n\tFoo int    ` + \"`\" + `gqlgen:\"bar\"` + \"`\" + `\n}\ntype Amb struct {\n\tBar string ` + \"`\" + `gqlgen:\"foo\"` + \"`\" + `\n\tFoo int    ` + \"`\" + `gqlgen:\"foo\"` + \"`\" + `\n}\ntype Embed struct {\n\tStd\n\tTest string\n}\n`\n\tscope, err := parseScope(input, \"test\")\n\trequire.NoError(t, err)\n\n\tstd := scope.Lookup(\"Std\").Type().(*types.Named)\n\tanon := scope.Lookup(\"Anon\").Type().(*types.Named)\n\ttags := scope.Lookup(\"Tags\").Type().(*types.Named)\n\tamb := scope.Lookup(\"Amb\").Type().(*types.Named)\n\tembed := scope.Lookup(\"Embed\").Type().(*types.Named)\n\n\ttests := []struct {\n\t\tName        string\n\t\tNamed       *types.Named\n\t\tField       string\n\t\tTag         string\n\t\tExpected    string\n\t\tShouldError bool\n\t}{\n\t\t{\"Finds a field by name with no tag\", std, \"name\", \"\", \"Name\", false},\n\t\t{\n\t\t\t\"Finds a field by name when passed tag but tag not used\",\n\t\t\tstd,\n\t\t\t\"name\",\n\t\t\t\"gqlgen\",\n\t\t\t\"Name\",\n\t\t\tfalse,\n\t\t},\n\t\t{\"Ignores tags when not passed a tag\", tags, \"foo\", \"\", \"Foo\", false},\n\t\t{\n\t\t\t\"Picks field with tag over field name when passed a tag\",\n\t\t\ttags,\n\t\t\t\"foo\",\n\t\t\t\"gqlgen\",\n\t\t\t\"Bar\",\n\t\t\tfalse,\n\t\t},\n\t\t{\"Errors when ambiguous\", amb, \"foo\", \"gqlgen\", \"\", true},\n\t\t{\"Finds a field that is in embedded struct\", anon, \"bar\", \"\", \"Bar\", false},\n\t\t{\"Finds field that is not in embedded struct\", embed, \"test\", \"\", \"Test\", false},\n\t}\n\n\tfor _, tt := range tests {\n\t\tb := builder{Config: &config.Config{StructTag: tt.Tag}}\n\t\ttarget, err := b.findBindTarget(tt.Named, tt.Field, false)\n\t\tif tt.ShouldError {\n\t\t\trequire.Nil(t, target, tt.Name)\n\t\t\trequire.Error(t, err, tt.Name)\n\t\t} else {\n\t\t\trequire.NoError(t, err, tt.Name)\n\t\t\trequire.Equal(t, tt.Expected, target.Name(), tt.Name)\n\t\t}\n\t}\n}\n\nfunc parseScope(input any, packageName string) (*types.Scope, error) {\n\t// test setup to parse the types\n\tfset := token.NewFileSet()\n\tf, err := parser.ParseFile(fset, \"test.go\", input, 0)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tconf := types.Config{Importer: importer.Default()}\n\tpkg, err := conf.Check(packageName, fset, []*ast.File{f}, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn pkg.Scope(), nil\n}\n\nfunc TestEqualFieldName(t *testing.T) {\n\ttt := []struct {\n\t\tName     string\n\t\tSource   string\n\t\tTarget   string\n\t\tExpected bool\n\t}{\n\t\t{Name: \"words with same case\", Source: \"test\", Target: \"test\", Expected: true},\n\t\t{Name: \"words different case\", Source: \"test\", Target: \"tEsT\", Expected: true},\n\t\t{Name: \"different words\", Source: \"foo\", Target: \"bar\", Expected: false},\n\t\t{Name: \"separated with underscore\", Source: \"the_test\", Target: \"TheTest\", Expected: true},\n\t\t{Name: \"empty values\", Source: \"\", Target: \"\", Expected: true},\n\t}\n\n\tfor _, tc := range tt {\n\t\tt.Run(tc.Name, func(t *testing.T) {\n\t\t\tresult := equalFieldName(tc.Source, tc.Target)\n\t\t\trequire.Equal(t, tc.Expected, result)\n\t\t})\n\t}\n}\n\nfunc TestField_Batch(t *testing.T) {\n\tt.Run(\"Batch flag defaults to false\", func(t *testing.T) {\n\t\tf := Field{}\n\t\trequire.False(t, f.Batch)\n\t\trequire.False(t, f.IsBatch())\n\t})\n\n\tt.Run(\"Batch flag can be set\", func(t *testing.T) {\n\t\tf := Field{Batch: true}\n\t\trequire.True(t, f.Batch)\n\t\trequire.True(t, f.IsBatch())\n\t})\n}\n\nfunc TestField_BatchRootFieldUnsupported(t *testing.T) {\n\tcfg := &config.Config{\n\t\tExec: config.ExecConfig{\n\t\t\tLayout:   config.ExecLayoutSingleFile,\n\t\t\tFilename: \"generated.go\",\n\t\t\tPackage:  \"generated\",\n\t\t},\n\t\tModels: config.TypeMap{\n\t\t\t\"Query\": {\n\t\t\t\tFields: map[string]config.TypeMapField{\n\t\t\t\t\t\"version\": {Batch: true},\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"Boolean\": {\n\t\t\t\tModel: config.StringList{\"github.com/99designs/gqlgen/graphql.Boolean\"},\n\t\t\t},\n\t\t\t\"Float\": {\n\t\t\t\tModel: config.StringList{\"github.com/99designs/gqlgen/graphql.Float\"},\n\t\t\t},\n\t\t\t\"ID\": {\n\t\t\t\tModel: config.StringList{\"github.com/99designs/gqlgen/graphql.ID\"},\n\t\t\t},\n\t\t\t\"Int\": {\n\t\t\t\tModel: config.StringList{\"github.com/99designs/gqlgen/graphql.Int\"},\n\t\t\t},\n\t\t\t\"String\": {\n\t\t\t\tModel: config.StringList{\"github.com/99designs/gqlgen/graphql.String\"},\n\t\t\t},\n\t\t},\n\t\tDirectives: map[string]config.DirectiveConfig{},\n\t\tPackages:   code.NewPackages(),\n\t}\n\tcfg.Schema = gqlparser.MustLoadSchema(&ast2.Source{\n\t\tName: \"schema.graphql\",\n\t\tInput: `\n\t\t\tschema { query: Query }\n\t\t\ttype Query { version: String }\n\t\t`,\n\t})\n\n\tb := builder{\n\t\tConfig: cfg,\n\t\tSchema: cfg.Schema,\n\t}\n\tb.Binder = b.Config.NewBinder()\n\tvar err error\n\tb.Directives, err = b.buildDirectives()\n\trequire.NoError(t, err)\n\n\t_, err = b.buildObject(cfg.Schema.Query)\n\trequire.Error(t, err)\n\trequire.Contains(t, err.Error(), \"batch resolver is not supported for root field Query.version\")\n}\n\nfunc TestField_CallArgs(t *testing.T) {\n\ttt := []struct {\n\t\tName string\n\t\tField\n\t\tExpected string\n\t}{\n\t\t{\n\t\t\tName: \"Field with method that has context, and three args (string, interface, named interface)\",\n\t\t\tField: Field{\n\t\t\t\tMethodHasContext: true,\n\t\t\t\tArgs: []*FieldArgument{\n\t\t\t\t\t{\n\t\t\t\t\t\tArgumentDefinition: &ast2.ArgumentDefinition{\n\t\t\t\t\t\t\tName: \"test\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tTypeReference: &config.TypeReference{\n\t\t\t\t\t\t\tGO: (&types.Interface{}).Complete(),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tArgumentDefinition: &ast2.ArgumentDefinition{\n\t\t\t\t\t\t\tName: \"test2\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tTypeReference: &config.TypeReference{\n\t\t\t\t\t\t\tGO: types.NewNamed(\n\t\t\t\t\t\t\t\ttypes.NewTypeName(token.NoPos, nil, \"TestInterface\", nil),\n\t\t\t\t\t\t\t\t(&types.Interface{}).Complete(),\n\t\t\t\t\t\t\t\tnil,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tArgumentDefinition: &ast2.ArgumentDefinition{\n\t\t\t\t\t\t\tName: \"test3\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tTypeReference: &config.TypeReference{\n\t\t\t\t\t\t\tGO: types.Typ[types.String],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tExpected: `ctx, ` + `\n\t\t\t\tfunc () any {\n\t\t\t\t\tif fc.Args[\"test\"] == nil {\n\t\t\t\t\t\treturn nil\n\t\t\t\t\t}\n\t\t\t\t\treturn fc.Args[\"test\"].(any)\n\t\t\t\t}(), fc.Args[\"test2\"].(TestInterface), fc.Args[\"test3\"].(string)`,\n\t\t},\n\t\t{\n\t\t\tName: \"Resolver field that isn't root object with single int argument\",\n\t\t\tField: Field{\n\t\t\t\tObject: &Object{\n\t\t\t\t\tRoot: false,\n\t\t\t\t},\n\t\t\t\tIsResolver: true,\n\t\t\t\tArgs: []*FieldArgument{\n\t\t\t\t\t{\n\t\t\t\t\t\tArgumentDefinition: &ast2.ArgumentDefinition{\n\t\t\t\t\t\t\tName: \"test\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tTypeReference: &config.TypeReference{\n\t\t\t\t\t\t\tGO: types.Typ[types.Int],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tExpected: `ctx, obj, fc.Args[\"test\"].(int)`,\n\t\t},\n\t}\n\n\tfor _, tc := range tt {\n\t\tt.Run(tc.Name, func(t *testing.T) {\n\t\t\trequire.Equal(t, tc.Expected, tc.CallArgs())\n\t\t})\n\t}\n}\n\nfunc TestField_BatchCallArgs(t *testing.T) {\n\ttt := []struct {\n\t\tName     string\n\t\tField    Field\n\t\tExpected string\n\t}{\n\t\t{\n\t\t\tName: \"Batch args with single int argument\",\n\t\t\tField: Field{\n\t\t\t\tArgs: []*FieldArgument{\n\t\t\t\t\t{\n\t\t\t\t\t\tArgumentDefinition: &ast2.ArgumentDefinition{\n\t\t\t\t\t\t\tName: \"test\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tTypeReference: &config.TypeReference{\n\t\t\t\t\t\t\tGO: types.Typ[types.Int],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tExpected: `ctx, parents, fc.Args[\"test\"].(int)`,\n\t\t},\n\t\t{\n\t\t\tName: \"Batch args with empty interface and string\",\n\t\t\tField: Field{\n\t\t\t\tArgs: []*FieldArgument{\n\t\t\t\t\t{\n\t\t\t\t\t\tArgumentDefinition: &ast2.ArgumentDefinition{\n\t\t\t\t\t\t\tName: \"test\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tTypeReference: &config.TypeReference{\n\t\t\t\t\t\t\tGO: (&types.Interface{}).Complete(),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tArgumentDefinition: &ast2.ArgumentDefinition{\n\t\t\t\t\t\t\tName: \"test2\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tTypeReference: &config.TypeReference{\n\t\t\t\t\t\t\tGO: types.Typ[types.String],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tExpected: `ctx, parents, ` + `\n\t\t\t\tfunc () any {\n\t\t\t\t\tif fc.Args[\"test\"] == nil {\n\t\t\t\t\t\treturn nil\n\t\t\t\t\t}\n\t\t\t\t\treturn fc.Args[\"test\"].(any)\n\t\t\t\t}(), fc.Args[\"test2\"].(string)`,\n\t\t},\n\t}\n\n\tfor _, tc := range tt {\n\t\tt.Run(tc.Name, func(t *testing.T) {\n\t\t\trequire.Equal(t, tc.Expected, tc.Field.BatchCallArgs(\"parents\"))\n\t\t})\n\t}\n}\n\nfunc TestField_ShortBatchResolverDeclaration(t *testing.T) {\n\tf := Field{\n\t\tFieldDefinition: &ast2.FieldDefinition{\n\t\t\tName: \"value\",\n\t\t},\n\t\tObject: &Object{\n\t\t\tDefinition: &ast2.Definition{\n\t\t\t\tName: \"User\",\n\t\t\t},\n\t\t\tType: types.Typ[types.Int],\n\t\t},\n\t\tTypeReference: &config.TypeReference{\n\t\t\tGO: types.Typ[types.String],\n\t\t},\n\t\tArgs: []*FieldArgument{\n\t\t\t{\n\t\t\t\tArgumentDefinition: &ast2.ArgumentDefinition{\n\t\t\t\t\tName: \"limit\",\n\t\t\t\t},\n\t\t\t\tVarName: \"limit\",\n\t\t\t\tTypeReference: &config.TypeReference{\n\t\t\t\t\tGO: types.Typ[types.Int],\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n\n\trequire.Equal(\n\t\tt,\n\t\t\"(ctx context.Context, objs []*int, limit int) ([]string, error)\",\n\t\tf.ShortBatchResolverDeclaration(),\n\t)\n}\n"
  },
  {
    "path": "codegen/generate.go",
    "content": "package codegen\n\nimport (\n\t\"embed\"\n\t\"errors\"\n\t\"fmt\"\n\t\"path/filepath\"\n\t\"strings\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\n\t\"github.com/99designs/gqlgen/codegen/config\"\n\t\"github.com/99designs/gqlgen/codegen/templates\"\n)\n\n//go:embed *.gotpl\nvar codegenTemplates embed.FS\n\nfunc GenerateCode(data *Data) error {\n\tif !data.Config.Exec.IsDefined() {\n\t\treturn errors.New(\"missing exec config\")\n\t}\n\n\tswitch data.Config.Exec.Layout {\n\tcase config.ExecLayoutSingleFile:\n\t\treturn generateSingleFile(data)\n\tcase config.ExecLayoutFollowSchema:\n\t\treturn generatePerSchema(data)\n\t}\n\n\treturn fmt.Errorf(\"unrecognized exec layout %s\", data.Config.Exec.Layout)\n}\n\nfunc generateSingleFile(data *Data) error {\n\treturn templates.Render(templates.Options{\n\t\tPackageName:     data.Config.Exec.Package,\n\t\tFilename:        data.Config.Exec.Filename,\n\t\tData:            data,\n\t\tRegionTags:      true,\n\t\tGeneratedHeader: true,\n\t\tPackages:        data.Config.Packages,\n\t\tTemplateFS:      codegenTemplates,\n\t\tPruneOptions:    data.Config.GetPruneOptions(),\n\t})\n}\n\nfunc generatePerSchema(data *Data) error {\n\terr := generateRootFile(data)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tbuilds := map[string]*Data{}\n\n\terr = addObjects(data, &builds)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\terr = addInputs(data, &builds)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\terr = addInterfaces(data, &builds)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\terr = addReferencedTypes(data, &builds)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor filename, build := range builds {\n\t\tif filename == \"\" {\n\t\t\tcontinue\n\t\t}\n\n\t\tdir := data.Config.Exec.DirName\n\t\tpath := filepath.Join(dir, filename)\n\n\t\terr = templates.Render(templates.Options{\n\t\t\tPackageName:     data.Config.Exec.Package,\n\t\t\tFilename:        path,\n\t\t\tData:            build,\n\t\t\tRegionTags:      true,\n\t\t\tGeneratedHeader: true,\n\t\t\tPackages:        data.Config.Packages,\n\t\t\tTemplateFS:      codegenTemplates,\n\t\t\tPruneOptions:    data.Config.GetPruneOptions(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc filename(p *ast.Position, config *config.Config) string {\n\tname := \"common!\"\n\tif p != nil && p.Src != nil {\n\t\tgqlname := filepath.Base(p.Src.Name)\n\t\text := filepath.Ext(p.Src.Name)\n\t\tname = strings.TrimSuffix(gqlname, ext)\n\t}\n\n\tfilenameTempl := config.Exec.FilenameTemplate\n\tif filenameTempl == \"\" {\n\t\tfilenameTempl = \"{name}.generated.go\"\n\t}\n\n\treturn strings.ReplaceAll(filenameTempl, \"{name}\", name)\n}\n\nfunc addBuild(filename string, p *ast.Position, data *Data, builds *map[string]*Data) {\n\tbuildConfig := *data.Config\n\tif p != nil {\n\t\tbuildConfig.Sources = []*ast.Source{p.Src}\n\t}\n\n\t(*builds)[filename] = &Data{\n\t\tConfig:           &buildConfig,\n\t\tQueryRoot:        data.QueryRoot,\n\t\tMutationRoot:     data.MutationRoot,\n\t\tSubscriptionRoot: data.SubscriptionRoot,\n\t\tAllDirectives:    data.AllDirectives,\n\t}\n}\n\n//go:embed root_.gotpl\nvar rootTemplate string\n\n// Root file contains top-level definitions that should not be duplicated across the generated\n// files for each schema file.\nfunc generateRootFile(data *Data) error {\n\tdir := data.Config.Exec.DirName\n\tpath := filepath.Join(dir, \"root_.generated.go\")\n\n\treturn templates.Render(templates.Options{\n\t\tPackageName:     data.Config.Exec.Package,\n\t\tTemplate:        rootTemplate,\n\t\tFilename:        path,\n\t\tData:            data,\n\t\tRegionTags:      false,\n\t\tGeneratedHeader: true,\n\t\tPackages:        data.Config.Packages,\n\t\tTemplateFS:      codegenTemplates,\n\t\tPruneOptions:    data.Config.GetPruneOptions(),\n\t})\n}\n\nfunc addObjects(data *Data, builds *map[string]*Data) error {\n\tfor _, o := range data.Objects {\n\t\tfilename := filename(o.Position, data.Config)\n\t\tif (*builds)[filename] == nil {\n\t\t\taddBuild(filename, o.Position, data, builds)\n\t\t}\n\n\t\t(*builds)[filename].Objects = append((*builds)[filename].Objects, o)\n\t}\n\treturn nil\n}\n\nfunc addInputs(data *Data, builds *map[string]*Data) error {\n\tfor _, in := range data.Inputs {\n\t\tfilename := filename(in.Position, data.Config)\n\t\tif (*builds)[filename] == nil {\n\t\t\taddBuild(filename, in.Position, data, builds)\n\t\t}\n\n\t\t(*builds)[filename].Inputs = append((*builds)[filename].Inputs, in)\n\t}\n\treturn nil\n}\n\nfunc addInterfaces(data *Data, builds *map[string]*Data) error {\n\tfor k, inf := range data.Interfaces {\n\t\tfilename := filename(inf.Position, data.Config)\n\t\tif (*builds)[filename] == nil {\n\t\t\taddBuild(filename, inf.Position, data, builds)\n\t\t}\n\t\tbuild := (*builds)[filename]\n\n\t\tif build.Interfaces == nil {\n\t\t\tbuild.Interfaces = map[string]*Interface{}\n\t\t}\n\t\tif build.Interfaces[k] != nil {\n\t\t\treturn errors.New(\"conflicting interface keys\")\n\t\t}\n\n\t\tbuild.Interfaces[k] = inf\n\t}\n\treturn nil\n}\n\nfunc addReferencedTypes(data *Data, builds *map[string]*Data) error {\n\tfor k, rt := range data.ReferencedTypes {\n\t\tfilename := filename(rt.Definition.Position, data.Config)\n\t\tif (*builds)[filename] == nil {\n\t\t\taddBuild(filename, rt.Definition.Position, data, builds)\n\t\t}\n\t\tbuild := (*builds)[filename]\n\n\t\tif build.ReferencedTypes == nil {\n\t\t\tbuild.ReferencedTypes = map[string]*config.TypeReference{}\n\t\t}\n\t\tif build.ReferencedTypes[k] != nil {\n\t\t\treturn errors.New(\"conflicting referenced type keys\")\n\t\t}\n\n\t\tbuild.ReferencedTypes[k] = rt\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "codegen/generated!.gotpl",
    "content": "{{/* Context object: codegen.Data */}}\n{{ reserveImport \"context\"  }}\n{{ reserveImport \"fmt\"  }}\n{{ reserveImport \"io\"  }}\n{{ reserveImport \"strconv\"  }}\n{{ reserveImport \"time\"  }}\n{{ reserveImport \"sync\"  }}\n{{ reserveImport \"sync/atomic\" }}\n{{ reserveImport \"errors\"  }}\n{{ reserveImport \"bytes\"  }}\n{{ reserveImport \"embed\"  }}\n\n{{ reserveImport \"golang.org/x/sync/semaphore\"}}\n{{ reserveImport \"github.com/vektah/gqlparser/v2\" \"gqlparser\" }}\n{{ reserveImport \"github.com/vektah/gqlparser/v2/ast\" }}\n{{ reserveImport \"github.com/99designs/gqlgen/graphql\" }}\n{{ reserveImport \"github.com/99designs/gqlgen/graphql/introspection\" }}\n\n{{ $useFunctionSyntaxForExecutionContext := .Config.UseFunctionSyntaxForExecutionContext }}\n\n{{ if eq .Config.Exec.Layout \"single-file\" }}\n\t// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\n\tfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\t\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n\t}\n\n\ttype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\n\ttype ResolverRoot interface {\n\t{{- range $object := .Objects -}}\n\t\t{{ if $object.HasResolvers -}}\n\t\t\t{{ucFirst $object.Name}}() {{ucFirst $object.Name}}Resolver\n\t\t{{ end }}\n\t{{- end }}\n\t{{- range $object := .Inputs -}}\n\t{{ if $object.HasResolvers -}}\n\t\t{{ucFirst $object.Name}}() {{ucFirst $object.Name}}Resolver\n\t{{ end }}\n{{- end }}\n}\n\n\ttype DirectiveRoot struct {\n\t{{ range $directive := .UserDirectives }}\n\t\t{{- $directive.Declaration }}\n\t{{ end }}\n\t}\n\n\ttype ComplexityRoot struct {\n\t{{- if not .Config.OmitComplexity }}\n\t{{ range $object := .Objects }}\n\t\t{{ if not $object.IsReserved -}}\n\t\t\t{{ ucFirst $object.Name }} struct {\n\t\t\t{{ range $_, $fields := $object.UniqueFields }}\n\t\t\t\t{{- $field := index $fields 0 -}}\n\t\t\t\t{{ if not $field.IsReserved -}}\n\t\t\t\t\t{{ $field.GoFieldName }} {{ $field.ComplexitySignature }}\n\t\t\t\t{{ end }}\n\t\t\t{{- end }}\n\t\t\t}\n\t\t{{- end }}\n\t{{ end }}\n\t{{- end }}\n\t}\n{{ end }}\n\n{{ range $object := .Objects -}}\n\t{{ if $object.HasResolvers }}\n\t\ttype {{ucFirst $object.Name}}Resolver interface {\n\t\t{{ range $field := $object.Fields -}}\n\t\t\t{{- if $field.IsBatch }}\n\t\t\t\t{{- $field.GoFieldName}}{{ $field.ShortBatchResolverDeclaration }}\n\t\t\t{{- else if $field.IsResolver }}\n\t\t\t\t{{- $field.GoFieldName}}{{ $field.ShortResolverDeclaration }}\n\t\t\t{{- end }}\n\t\t{{ end }}\n\t\t}\n\t{{- end }}\n{{- end }}\n\n{{ range $object := .Inputs -}}\n\t{{ if $object.HasResolvers }}\n\t\ttype {{$object.Name}}Resolver interface {\n\t\t{{ range $field := $object.Fields -}}\n\t\t\t{{- if $field.IsResolver }}\n\t\t\t\t{{- $field.GoFieldName}}{{ $field.ShortResolverDeclaration }}\n\t\t\t{{- end }}\n\t\t{{ end }}\n\t\t}\n\t{{- end }}\n{{- end }}\n\n{{ range $directive := .BuiltInDirectives }}\n\tvar (\n\t\t{{- $directive.FunctionImpl }}\n\t)\n{{ end }}\n\n{{ if eq .Config.Exec.Layout \"single-file\" }}\n\ttype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\n\tfunc (e *executableSchema) Schema() *ast.Schema {\n\t\tif e.SchemaData != nil {\n        \t\treturn e.SchemaData\n\t\t}\n\t\treturn parsedSchema\n\t}\n\n\tfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\t\tec := newExecutionContext(nil, e, nil)\n\t\t_ = ec\n\t\t{{ if not .Config.OmitComplexity -}}\n\t\tswitch typeName + \".\" + field {\n\t\t{{ range $object := .Objects }}\n\t\t\t{{ if not $object.IsReserved }}\n\t\t\t\t{{ range $_, $fields := $object.UniqueFields }}\n\t\t\t\t\t{{- $len := len $fields }}\n\t\t\t\t\t{{- range $i, $field := $fields }}\n\t\t\t\t\t\t{{- $last := eq (add $i 1) $len }}\n\t\t\t\t\t\t{{- if not $field.IsReserved }}\n\t\t\t\t\t\t\t{{- if eq $i 0 }}case {{ end }}\"{{$object.Name}}.{{$field.Name}}\"{{ if not $last }},{{ else }}:\n\t\t\t\t\t\t\t\tif e.ComplexityRoot.{{ucFirst $object.Name}}.{{$field.GoFieldName}} == nil {\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t{{ if $field.Args }}\n\t\t\t\t\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\t\t\t\t\targs, err := {{ $field.ArgsFunc }}(ctx, &ec, rawArgs)\n\t\t\t\t\t\t\t\t\t{{- else -}}\n\t\t\t\t\t\t\t\t\targs, err := ec.{{ $field.ArgsFunc }}(ctx,rawArgs)\n\t\t\t\t\t\t\t\t\t{{- end }}\n\t\t\t\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\t\t\t\treturn 0, false\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t{{ end }}\n\t\t\t\t\t\t\t\treturn e.ComplexityRoot.{{ucFirst $object.Name}}.{{$field.GoFieldName}}(childComplexity{{if $field.Args}}, {{$field.ComplexityArgs}} {{ end }}), true\n\t\t\t\t\t\t\t{{- end }}\n\t\t\t\t\t\t{{- end }}\n\t\t\t\t\t{{- end }}\n\t\t\t\t{{ end }}\n\t\t\t{{ end }}\n\t\t{{ end }}\n\t\t}\n\t\t{{- end }}\n\t\treturn 0, false\n\t}\n\n\tfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\t\topCtx := graphql.GetOperationContext(ctx)\n\t\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\t\tinputUnmarshalMap := graphql.BuildUnmarshalerMap(\n\t\t\t{{- range $input := .Inputs -}}\n\t\t\t\t{{ if not $input.HasUnmarshal }}\n\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\tunmarshalInput{{ $input.Name }},\n\t\t\t\t\t{{- else -}}\n\t\t\t\t\tec.unmarshalInput{{ $input.Name }},\n\t\t\t\t\t{{- end }}\n\t\t\t\t{{- end }}\n\t\t\t{{- end }}\n\t\t)\n\t\tfirst := true\n\n\t\tswitch opCtx.Operation.Operation {\n\t\t{{- if .QueryRoot }} case ast.Query:\n\t\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\t\tvar response graphql.Response\n\t\t\t\tvar data graphql.Marshaler\n\t\t\t\tif first {\n\t\t\t\t\tfirst = false\n\t\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\t\t{{ if .Directives.LocationDirectives \"QUERY\" -}}\n\t\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\t\tdata = _queryMiddleware(ctx, &ec, opCtx.Operation, func(ctx context.Context) (any, error){\n\t\t\t\t\t\t\treturn _{{.QueryRoot.Name}}(ctx, ec, opCtx.Operation.SelectionSet), nil\n\t\t\t\t\t\t{{- else -}}\n\t\t\t\t\t\tdata = ec._queryMiddleware(ctx, opCtx.Operation, func(ctx context.Context) (any, error){\n\t\t\t\t\t\t\treturn ec._{{.QueryRoot.Name}}(ctx, opCtx.Operation.SelectionSet), nil\n\t\t\t\t\t\t{{- end }}\n\t\t\t\t\t\t})\n\t\t\t\t\t{{- else -}}\n\t\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\t\tdata = _{{.QueryRoot.Name}}(ctx, &ec, opCtx.Operation.SelectionSet)\n\t\t\t\t\t\t{{- else -}}\n\t\t\t\t\t\tdata = ec._{{.QueryRoot.Name}}(ctx, opCtx.Operation.SelectionSet)\n\t\t\t\t\t\t{{- end }}\n\t\t\t\t\t{{- end }}\n\t\t\t\t} else {\n\t\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\t\tdata = result.Result\n\t\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn nil\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvar buf bytes.Buffer\n\t\t\t\tdata.MarshalGQL(&buf)\n\t\t\t\tresponse.Data = buf.Bytes()\n\t\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t\t}\n\n\t\t\t\treturn &response\n\t\t\t}\n\t\t{{ end }}\n\n\t\t{{- if .MutationRoot }} case ast.Mutation:\n\t\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\t\tif !first { return nil }\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\t{{ if .Directives.LocationDirectives \"MUTATION\" -}}\n\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\tdata := _mutationMiddleware(ctx, &ec, opCtx.Operation, func(ctx context.Context) (any, error){\n\t\t\t\t\t\treturn _{{.MutationRoot.Name}}(ctx, ec, opCtx.Operation.SelectionSet), nil\n\t\t\t\t\t{{- else -}}\n\t\t\t\t\tdata := ec._mutationMiddleware(ctx, opCtx.Operation, func(ctx context.Context) (any, error){\n\t\t\t\t\t\treturn ec._{{.MutationRoot.Name}}(ctx, opCtx.Operation.SelectionSet), nil\n\t\t\t\t\t{{- end }}\n\t\t\t\t\t})\n\t\t\t\t{{- else -}}\n\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\tdata := _{{.MutationRoot.Name}}(ctx, &ec, opCtx.Operation.SelectionSet)\n\t\t\t\t\t{{- else -}}\n\t\t\t\t\tdata := ec._{{.MutationRoot.Name}}(ctx, opCtx.Operation.SelectionSet)\n\t\t\t\t\t{{- end }}\n\t\t\t\t{{- end }}\n\t\t\t\tvar buf bytes.Buffer\n\t\t\t\tdata.MarshalGQL(&buf)\n\n\t\t\t\treturn &graphql.Response{\n\t\t\t\t\tData:       buf.Bytes(),\n\t\t\t\t}\n\t\t\t}\n\t\t{{ end }}\n\n\t\t{{- if .SubscriptionRoot }} case ast.Subscription:\n\t\t\t{{ if .Directives.LocationDirectives \"SUBSCRIPTION\" -}}\n\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\tnext := _subscriptionMiddleware(ctx, &ec, opCtx.Operation, func(ctx context.Context) (any, error){\n\t\t\t\t\treturn _{{.SubscriptionRoot.Name}}(ctx, ec, opCtx.Operation.SelectionSet),nil\n\t\t\t\t{{- else -}}\n\t\t\t\tnext := ec._subscriptionMiddleware(ctx, opCtx.Operation, func(ctx context.Context) (any, error){\n\t\t\t\t\treturn ec._{{.SubscriptionRoot.Name}}(ctx, opCtx.Operation.SelectionSet),nil\n\t\t\t\t{{- end }}\n\t\t\t\t})\n\t\t\t{{- else -}}\n\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\tnext := _{{.SubscriptionRoot.Name}}(ctx, &ec, opCtx.Operation.SelectionSet)\n\t\t\t\t{{- else -}}\n\t\t\t\tnext := ec._{{.SubscriptionRoot.Name}}(ctx, opCtx.Operation.SelectionSet)\n\t\t\t\t{{- end }}\n\t\t\t{{- end }}\n\n\t\t\tvar buf bytes.Buffer\n\t\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\t\tbuf.Reset()\n\t\t\t\tdata := next(ctx)\n\n\t\t\t\tif data == nil {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t\tdata.MarshalGQL(&buf)\n\n\t\t\t\treturn &graphql.Response{\n\t\t\t\t\tData:       buf.Bytes(),\n\t\t\t\t}\n\t\t\t}\n\t\t{{ end }}\n\t\tdefault:\n\t\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t\t}\n\t}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\n\t{{if .HasEmbeddableSources }}\n\t//go:embed{{- range $source := .AugmentedSources }}{{if $source.Embeddable}} {{$source.RelativePath|quote}}{{end}}{{- end }}\n\tvar sourcesFS embed.FS\n\n\tfunc sourceData(filename string) string {\n\t\tdata, err := sourcesFS.ReadFile(filename)\n\t\tif err != nil {\n\t\t\tpanic(fmt.Sprintf(\"codegen problem: %s not available\", filename))\n\t\t}\n\t\treturn string(data)\n\t}\n\t{{- end }}\n\n\tvar sources = []*ast.Source{\n\t{{- range $source := .AugmentedSources }}\n\t\t{Name: {{$source.RelativePath|quote}}, Input: {{if (not $source.Embeddable)}}{{$source.Source|rawQuote}}{{else}}sourceData({{$source.RelativePath|quote}}){{end}}, BuiltIn: {{$source.BuiltIn}}},\n\t{{- end }}\n\t}\n\tvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n{{ end }}\n"
  },
  {
    "path": "codegen/incremental.go",
    "content": "package codegen\n\nimport (\n\t\"errors\"\n\t\"log\"\n)\n\n// IncrementalOptions configures incremental generation\ntype IncrementalOptions struct {\n\t// ChangedSchemas is the list of schema file paths that have changed.\n\t// If empty, performs full generation.\n\tChangedSchemas []string\n\n\t// Verbose enables detailed logging\n\tVerbose bool\n}\n\n// GenerateCodeIncremental generates code with content-based file writing.\n// Files are only written if their content has changed, preserving mtimes\n// for unchanged files and allowing Go's build cache to remain valid.\n//\n// The changedSchemas parameter is used for logging purposes to show what\n// triggered the regeneration. The actual optimization comes from the\n// content-based file writing in templates.write().\nfunc GenerateCodeIncremental(data *Data, opts IncrementalOptions) error {\n\tif !data.Config.Exec.IsDefined() {\n\t\treturn errors.New(\"missing exec config\")\n\t}\n\n\tif opts.Verbose && len(opts.ChangedSchemas) > 0 {\n\t\t// Build dependency graph for informational logging\n\t\tdepGraph := BuildDependencyGraph(data.Config.Schema)\n\t\taffectedSchemas := depGraph.GetAffectedSchemas(opts.ChangedSchemas)\n\t\taffectedTypes := depGraph.GetTypesForSchemas(affectedSchemas)\n\t\tlog.Printf(\"[incremental] Changed: %d, Affected: %d schemas, %d types\\n\",\n\t\t\tlen(opts.ChangedSchemas), len(affectedSchemas), len(affectedTypes))\n\t}\n\n\t// Perform full generation - the content-based write() in templates\n\t// will skip writing files whose content hasn't changed, preserving\n\t// their mtime and keeping Go's build cache valid.\n\treturn GenerateCode(data)\n}\n"
  },
  {
    "path": "codegen/incremental_test.go",
    "content": "package codegen\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\n\t\"github.com/99designs/gqlgen/codegen/config\"\n)\n\n// TestGenerateCodeIncremental_SelectiveGeneration verifies that incremental generation\n// only regenerates files for affected schemas (the core optimization).\nfunc TestGenerateCodeIncremental_SelectiveGeneration(t *testing.T) {\n\t// Create temp directory for generated files\n\t_ = t.TempDir()\n\n\t// Create schema with multiple files that have dependencies:\n\t// user.graphqls: User type\n\t// post.graphqls: Post type (references User)\n\t// comment.graphqls: Comment type (independent)\n\tuserSchema := &ast.Source{\n\t\tName: \"user.graphqls\",\n\t\tInput: `type User {\n\t\t\tid: ID!\n\t\t\tname: String!\n\t\t}`,\n\t}\n\tpostSchema := &ast.Source{\n\t\tName: \"post.graphqls\",\n\t\tInput: `type Post {\n\t\t\tid: ID!\n\t\t\ttitle: String!\n\t\t\tauthor: User!\n\t\t}`,\n\t}\n\tcommentSchema := &ast.Source{\n\t\tName: \"comment.graphqls\",\n\t\tInput: `type Comment {\n\t\t\tid: ID!\n\t\t\ttext: String!\n\t\t}`,\n\t}\n\tquerySchema := &ast.Source{\n\t\tName: \"schema.graphqls\",\n\t\tInput: `type Query {\n\t\t\tuser: User\n\t\t\tpost: Post\n\t\t\tcomment: Comment\n\t\t}`,\n\t}\n\n\tschema, err := gqlparser.LoadSchema(userSchema, postSchema, commentSchema, querySchema)\n\trequire.NoError(t, err)\n\n\t// Build dependency graph\n\tdepGraph := BuildDependencyGraph(schema)\n\n\t// Test 1: Changing user.graphqls should affect post.graphqls (Post references User)\n\taffected := depGraph.GetAffectedSchemas([]string{\"user.graphqls\"})\n\trequire.Contains(t, affected, \"user.graphqls\", \"changed schema should be affected\")\n\trequire.Contains(t, affected, \"post.graphqls\", \"post depends on user\")\n\trequire.NotContains(\n\t\tt, affected, \"comment.graphqls\", \"comment is independent\",\n\t)\n\n\t// Test 2: Changing comment.graphqls affects itself and schema.graphqls\n\taffected = depGraph.GetAffectedSchemas([]string{\"comment.graphqls\"})\n\trequire.Contains(t, affected, \"comment.graphqls\", \"changed schema should be affected\")\n\trequire.Contains(t, affected, \"schema.graphqls\", \"Query references Comment\")\n\trequire.NotContains(t, affected, \"user.graphqls\", \"user is independent\")\n\trequire.NotContains(t, affected, \"post.graphqls\", \"post is independent\")\n\n\t// Test 3: Verify the type filtering works correctly\n\taffectedTypes := depGraph.GetTypesForSchemas([]string{\"user.graphqls\"})\n\trequire.True(t, affectedTypes[\"User\"], \"User should be in affected types\")\n\trequire.False(\n\t\tt,\n\t\taffectedTypes[\"Post\"],\n\t\t\"Post should NOT be in affected types for user schema only\",\n\t)\n\trequire.False(t, affectedTypes[\"Comment\"], \"Comment should NOT be in affected types\")\n}\n\n// TestGenerateCodeIncremental_CorrectnessWithRealSchema verifies that incremental\n// generation produces the same filtering behavior as expected with real Data structures.\nfunc TestGenerateCodeIncremental_CorrectnessWithRealSchema(t *testing.T) {\n\t// Create a schema with cross-file dependencies\n\tsources := []*ast.Source{\n\t\t{Name: \"user.graphqls\", Input: `type User { id: ID!, name: String! }`},\n\t\t{Name: \"post.graphqls\", Input: `type Post { id: ID!, author: User! }`},\n\t\t{Name: \"tag.graphqls\", Input: `type Tag { id: ID!, label: String! }`},\n\t}\n\n\tschema, err := gqlparser.LoadSchema(sources...)\n\trequire.NoError(t, err)\n\n\tdepGraph := BuildDependencyGraph(schema)\n\n\t// Verify dependency detection\n\trequire.Contains(t, depGraph.TypeDependencies[\"Post\"], \"User\",\n\t\t\"Post should depend on User\")\n\trequire.Empty(t, depGraph.TypeDependencies[\"Tag\"],\n\t\t\"Tag should have no dependencies (only uses built-in scalars)\")\n\n\t// Verify schema-level dependencies\n\trequire.True(t, depGraph.SchemaDependencies[\"post.graphqls\"][\"user.graphqls\"],\n\t\t\"post.graphqls should depend on user.graphqls\")\n\trequire.Empty(t, depGraph.SchemaDependencies[\"tag.graphqls\"],\n\t\t\"tag.graphqls should have no schema dependencies\")\n\n\t// Test transitive closure\n\taffected := depGraph.GetAffectedSchemas([]string{\"user.graphqls\"})\n\trequire.Contains(t, affected, \"post.graphqls\",\n\t\t\"post should be affected when user changes\")\n\trequire.NotContains(t, affected, \"tag.graphqls\",\n\t\t\"tag should NOT be affected when user changes\")\n}\n\n// TestGenerateCodeIncremental_DiamondDependency tests a diamond dependency pattern:\n// D depends on B and C, both B and C depend on A.\n// Changing A should affect all four.\nfunc TestGenerateCodeIncremental_DiamondDependency(t *testing.T) {\n\tsources := []*ast.Source{\n\t\t{Name: \"a.graphqls\", Input: `type TypeA { id: ID! }`},\n\t\t{Name: \"b.graphqls\", Input: `type TypeB { id: ID!, a: TypeA! }`},\n\t\t{Name: \"c.graphqls\", Input: `type TypeC { id: ID!, a: TypeA! }`},\n\t\t{Name: \"d.graphqls\", Input: `type TypeD { id: ID!, b: TypeB!, c: TypeC! }`},\n\t}\n\n\tschema, err := gqlparser.LoadSchema(sources...)\n\trequire.NoError(t, err)\n\n\tdepGraph := BuildDependencyGraph(schema)\n\n\t// Changing A should affect B, C, and D (all depend on A directly or transitively)\n\taffected := depGraph.GetAffectedSchemas([]string{\"a.graphqls\"})\n\trequire.ElementsMatch(t,\n\t\t[]string{\"a.graphqls\", \"b.graphqls\", \"c.graphqls\", \"d.graphqls\"},\n\t\taffected,\n\t\t\"diamond dependency: all should be affected when root changes\")\n\n\t// Changing B should only affect B and D\n\taffected = depGraph.GetAffectedSchemas([]string{\"b.graphqls\"})\n\trequire.ElementsMatch(t,\n\t\t[]string{\"b.graphqls\", \"d.graphqls\"},\n\t\taffected,\n\t\t\"changing B should affect B and D only\")\n\n\t// Changing D should only affect D\n\taffected = depGraph.GetAffectedSchemas([]string{\"d.graphqls\"})\n\trequire.ElementsMatch(t,\n\t\t[]string{\"d.graphqls\"},\n\t\taffected,\n\t\t\"changing leaf D should only affect itself\")\n}\n\n// TestGenerateCodeIncremental_InputTypes verifies that input type dependencies\n// are correctly tracked (important for mutations with input arguments).\nfunc TestGenerateCodeIncremental_InputTypes(t *testing.T) {\n\tsources := []*ast.Source{\n\t\t{Name: \"input.graphqls\", Input: `input CreateUserInput { name: String!, email: String! }`},\n\t\t{Name: \"mutation.graphqls\", Input: `\n\t\t\ttype Mutation { createUser(input: CreateUserInput!): User! }\n\t\t\ttype User { id: ID!, name: String! }\n\t\t`},\n\t}\n\n\tschema, err := gqlparser.LoadSchema(sources...)\n\trequire.NoError(t, err)\n\n\tdepGraph := BuildDependencyGraph(schema)\n\n\t// Mutation schema should depend on input schema\n\trequire.True(t, depGraph.SchemaDependencies[\"mutation.graphqls\"][\"input.graphqls\"],\n\t\t\"mutation should depend on input type schema\")\n\n\t// Changing input should affect mutation\n\taffected := depGraph.GetAffectedSchemas([]string{\"input.graphqls\"})\n\trequire.Contains(t, affected, \"mutation.graphqls\",\n\t\t\"mutation should be affected when input type changes\")\n}\n\nfunc TestGenerateCodeIncremental_FallbackToFullGeneration(t *testing.T) {\n\ttests := []struct {\n\t\tname    string\n\t\tlayout  config.ExecLayout\n\t\tchanged []string\n\t}{\n\t\t{\n\t\t\tname:    \"single-file layout falls back to full generation\",\n\t\t\tlayout:  config.ExecLayoutSingleFile,\n\t\t\tchanged: []string{\"user.graphqls\"},\n\t\t},\n\t\t{\n\t\t\tname:    \"no changed schemas falls back to full generation\",\n\t\t\tlayout:  config.ExecLayoutFollowSchema,\n\t\t\tchanged: []string{},\n\t\t},\n\t\t{\n\t\t\tname:    \"nil changed schemas falls back to full generation\",\n\t\t\tlayout:  config.ExecLayoutFollowSchema,\n\t\t\tchanged: nil,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\t// Create minimal data with missing exec config to trigger early error\n\t\t\t// This validates that the fallback path is taken (GenerateCode is called)\n\t\t\tdata := &Data{\n\t\t\t\tConfig: &config.Config{\n\t\t\t\t\tExec: config.ExecConfig{\n\t\t\t\t\t\tLayout: tt.layout,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}\n\n\t\t\topts := IncrementalOptions{\n\t\t\t\tChangedSchemas: tt.changed,\n\t\t\t\tVerbose:        false,\n\t\t\t}\n\n\t\t\t// Both incremental and full generation will fail with \"missing exec config\"\n\t\t\t// This confirms the code path is working (we're not testing actual generation here)\n\t\t\terr := GenerateCodeIncremental(data, opts)\n\t\t\trequire.Error(t, err)\n\t\t\trequire.Contains(t, err.Error(), \"missing exec config\")\n\t\t})\n\t}\n}\n\nfunc TestGenerateCodeIncremental_MissingExecConfig(t *testing.T) {\n\tdata := &Data{\n\t\tConfig: &config.Config{},\n\t}\n\n\terr := GenerateCodeIncremental(data, IncrementalOptions{})\n\trequire.Error(t, err)\n\trequire.Contains(t, err.Error(), \"missing exec config\")\n}\n\nfunc TestIncrementalOptions(t *testing.T) {\n\t// Test that IncrementalOptions struct works as expected\n\topts := IncrementalOptions{\n\t\tChangedSchemas: []string{\"a.graphqls\", \"b.graphqls\"},\n\t\tVerbose:        true,\n\t}\n\n\trequire.Len(t, opts.ChangedSchemas, 2)\n\trequire.True(t, opts.Verbose)\n\n\t// Empty options\n\temptyOpts := IncrementalOptions{}\n\trequire.Nil(t, emptyOpts.ChangedSchemas)\n\trequire.False(t, emptyOpts.Verbose)\n}\n"
  },
  {
    "path": "codegen/inline_arguments.go",
    "content": "package codegen\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\t\"github.com/vektah/gqlparser/v2/formatter\"\n)\n\n// InlineArgsInfo stores metadata about arguments that were inlined.\n// Used during codegen to bundle expanded arguments back into a single resolver parameter.\ntype InlineArgsInfo struct {\n\tOriginalArgName string\n\tOriginalType    string\n\tOriginalASTType *ast.Type\n\tGoType          string\n\tExpandedArgs    []string\n}\n\n// inlineArgsMetadata maps \"TypeName.FieldName\" to inline args metadata.\nvar inlineArgsMetadata = make(map[string]*InlineArgsInfo)\n\n// ExpandInlineArguments expands arguments marked with @inlineArguments\n// and stores metadata for later codegen phase.\nfunc ExpandInlineArguments(schema *ast.Schema) error {\n\tfor typeName, typeDef := range schema.Types {\n\t\tif typeDef.Kind != ast.Object && typeDef.Kind != ast.Interface {\n\t\t\tcontinue\n\t\t}\n\n\t\tfor _, field := range typeDef.Fields {\n\t\t\tvar inlinedIndices []int\n\t\t\tvar expandedArguments [][]*ast.ArgumentDefinition\n\n\t\t\tfor i, arg := range field.Arguments {\n\t\t\t\tif arg.Directives.ForName(\"inlineArguments\") == nil {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\targTypeName := arg.Type.Name()\n\t\t\t\tinputType := schema.Types[argTypeName]\n\t\t\t\tif inputType == nil {\n\t\t\t\t\treturn fmt.Errorf(\n\t\t\t\t\t\t\"@inlineArguments on %s.%s(%s): type %s not found in schema\",\n\t\t\t\t\t\ttypeName, field.Name, arg.Name, argTypeName,\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\tif inputType.Kind != ast.InputObject {\n\t\t\t\t\treturn fmt.Errorf(\n\t\t\t\t\t\t\"@inlineArguments on %s.%s(%s): type %s must be an INPUT_OBJECT (input types only), got %s. The directive can only expand input object types into individual arguments\",\n\t\t\t\t\t\ttypeName,\n\t\t\t\t\t\tfield.Name,\n\t\t\t\t\t\targ.Name,\n\t\t\t\t\t\targTypeName,\n\t\t\t\t\t\tinputType.Kind,\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\tvar expanded []*ast.ArgumentDefinition\n\t\t\t\tvar expandedNames []string\n\n\t\t\t\tfor _, inputField := range inputType.Fields {\n\t\t\t\t\texpandedArg := &ast.ArgumentDefinition{\n\t\t\t\t\t\tName:         inputField.Name,\n\t\t\t\t\t\tType:         inputField.Type,\n\t\t\t\t\t\tDescription:  inputField.Description,\n\t\t\t\t\t\tDefaultValue: inputField.DefaultValue,\n\t\t\t\t\t\tDirectives:   inputField.Directives,\n\t\t\t\t\t\tPosition:     inputField.Position,\n\t\t\t\t\t}\n\t\t\t\t\texpanded = append(expanded, expandedArg)\n\t\t\t\t\texpandedNames = append(expandedNames, inputField.Name)\n\t\t\t\t}\n\n\t\t\t\tgoType := argTypeName\n\t\t\t\tif goModelDir := inputType.Directives.ForName(\"goModel\"); goModelDir != nil {\n\t\t\t\t\tif modelArg := goModelDir.Arguments.ForName(\"model\"); modelArg != nil {\n\t\t\t\t\t\tif modelValue, err := modelArg.Value.Value(nil); err == nil {\n\t\t\t\t\t\t\tgoType = modelValue.(string)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tkey := fmt.Sprintf(\"%s.%s\", typeName, field.Name)\n\t\t\t\tinlineArgsMetadata[key] = &InlineArgsInfo{\n\t\t\t\t\tOriginalArgName: arg.Name,\n\t\t\t\t\tOriginalType:    argTypeName,\n\t\t\t\t\tOriginalASTType: arg.Type,\n\t\t\t\t\tGoType:          goType,\n\t\t\t\t\tExpandedArgs:    expandedNames,\n\t\t\t\t}\n\n\t\t\t\tinlinedIndices = append(inlinedIndices, i)\n\t\t\t\texpandedArguments = append(expandedArguments, expanded)\n\t\t\t}\n\n\t\t\tif len(inlinedIndices) > 0 {\n\t\t\t\tvar newArgs ast.ArgumentDefinitionList\n\n\t\t\t\tfor i, arg := range field.Arguments {\n\t\t\t\t\tinlinedIdx := -1\n\t\t\t\t\tfor idx, inlined := range inlinedIndices {\n\t\t\t\t\t\tif inlined == i {\n\t\t\t\t\t\t\tinlinedIdx = idx\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif inlinedIdx >= 0 {\n\t\t\t\t\t\tnewArgs = append(newArgs, expandedArguments[inlinedIdx]...)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnewArgs = append(newArgs, arg)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfield.Arguments = newArgs\n\t\t\t}\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// GetInlineArgsMetadata retrieves metadata for a given type and field.\nfunc GetInlineArgsMetadata(typeName, fieldName string) *InlineArgsInfo {\n\tkey := fmt.Sprintf(\"%s.%s\", typeName, fieldName)\n\treturn inlineArgsMetadata[key]\n}\n\n// ClearInlineArgsMetadata clears all stored metadata.\nfunc ClearInlineArgsMetadata() {\n\tinlineArgsMetadata = make(map[string]*InlineArgsInfo)\n}\n\nfunc SerializeTransformedSchema(\n\tschema *ast.Schema,\n\toriginalSources []*ast.Source,\n) ([]*ast.Source, error) {\n\tif len(inlineArgsMetadata) == 0 {\n\t\treturn originalSources, nil\n\t}\n\n\tvar buf bytes.Buffer\n\tf := formatter.NewFormatter(&buf)\n\tf.FormatSchema(schema)\n\n\treturn []*ast.Source{\n\t\t{\n\t\t\tName:    \"inline_arguments_transformed_schema.graphql\",\n\t\t\tInput:   buf.String(),\n\t\t\tBuiltIn: true,\n\t\t},\n\t}, nil\n}\n"
  },
  {
    "path": "codegen/inline_arguments_test.go",
    "content": "package codegen\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\nfunc TestExpandInlineArguments(t *testing.T) {\n\tClearInlineArgsMetadata()\n\n\tschemaDoc := `\n\t\tdirective @inlineArguments on ARGUMENT_DEFINITION\n\t\tdirective @goModel(model: String) on INPUT_OBJECT\n\n\t\tinput SearchArgs @goModel(model: \"map[string]any\") {\n\t\t\tquery: String\n\t\t\tcategory: String\n\t\t\tminPrice: Float\n\t\t}\n\n\t\ttype Product {\n\t\t\tid: ID!\n\t\t\tname: String!\n\t\t}\n\n\t\ttype Query {\n\t\t\tsearchProducts(args: SearchArgs @inlineArguments): [Product!]!\n\t\t}\n\t`\n\n\tschema, err := gqlparser.LoadSchema(&ast.Source{Input: schemaDoc})\n\trequire.NoError(t, err)\n\n\tqueryType := schema.Types[\"Query\"]\n\trequire.NotNil(t, queryType)\n\n\t// Find searchProducts field (gqlparser adds introspection fields)\n\tvar searchField *ast.FieldDefinition\n\tfor _, f := range queryType.Fields {\n\t\tif f.Name == \"searchProducts\" {\n\t\t\tsearchField = f\n\t\t\tbreak\n\t\t}\n\t}\n\trequire.NotNil(t, searchField)\n\trequire.Len(t, searchField.Arguments, 1)\n\trequire.Equal(t, \"args\", searchField.Arguments[0].Name)\n\n\terr = ExpandInlineArguments(schema)\n\trequire.NoError(t, err)\n\n\tqueryType = schema.Types[\"Query\"]\n\tsearchField = nil\n\tfor _, f := range queryType.Fields {\n\t\tif f.Name == \"searchProducts\" {\n\t\t\tsearchField = f\n\t\t\tbreak\n\t\t}\n\t}\n\trequire.NotNil(t, searchField)\n\n\t// Should now have 3 arguments instead of 1\n\trequire.Len(t, searchField.Arguments, 3, \"Arguments should be expanded\")\n\trequire.Equal(t, \"query\", searchField.Arguments[0].Name)\n\trequire.Equal(t, \"category\", searchField.Arguments[1].Name)\n\trequire.Equal(t, \"minPrice\", searchField.Arguments[2].Name)\n\n\tmetadata := GetInlineArgsMetadata(\"Query\", \"searchProducts\")\n\trequire.NotNil(t, metadata)\n\trequire.Equal(t, \"args\", metadata.OriginalArgName)\n\trequire.Equal(t, \"SearchArgs\", metadata.OriginalType)\n\trequire.Equal(t, \"map[string]any\", metadata.GoType)\n\trequire.Equal(t, []string{\"query\", \"category\", \"minPrice\"}, metadata.ExpandedArgs)\n}\n\nfunc TestExpandInlineArgumentsError(t *testing.T) {\n\tClearInlineArgsMetadata()\n\n\tschemaDoc := `\n\t\tdirective @inlineArguments on ARGUMENT_DEFINITION\n\n\t\ttype Query {\n\t\t\ttest(arg: String @inlineArguments): String\n\t\t}\n\t`\n\n\tschema, err := gqlparser.LoadSchema(&ast.Source{Input: schemaDoc})\n\trequire.NoError(t, err)\n\n\terr = ExpandInlineArguments(schema)\n\trequire.Error(t, err)\n\trequire.Contains(t, err.Error(), \"must be an INPUT_OBJECT\")\n}\n"
  },
  {
    "path": "codegen/input.gotpl",
    "content": "{{ $useFunctionSyntaxForExecutionContext := .Config.UseFunctionSyntaxForExecutionContext }}\n\n{{- range $input := .Inputs }}\n\t{{- if not .HasUnmarshal }}\n\t{{- $it := \"it\" }}\n\t{{- if .PointersInUnmarshalInput }}\n\t  {{- $it = \"&it\" }}\n\t{{- end }}\n\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\tfunc unmarshalInput{{ .Name }}(ctx context.Context, ec *executionContext, obj any) ({{ if .PointersInUnmarshalInput }}*{{ end }}{{.Type | ref}}, error) {\n\t{{- else -}}\n\tfunc (ec *executionContext) unmarshalInput{{ .Name }}(ctx context.Context, obj any) ({{ if .PointersInUnmarshalInput }}*{{ end }}{{.Type | ref}}, error) {\n\t{{- end }}\n\t\tvar it {{.Type | ref}}\n\t\tif obj == nil {\n\t\t\treturn it, nil\n\t\t}\n\n\t\tasMap := map[string]any{}\n\t\tfor k, v := range obj.(map[string]any) {\n\t\t\tasMap[k] = v\n\t\t}\n\t\t{{ range $field := .Fields}}\n\t\t\t{{- if notNil \"Default\" $field }}\n\t\t\t\tif _, present := asMap[{{$field.Name|quote}}] ; !present {\n\t\t\t\t\tasMap[{{$field.Name|quote}}] = {{ $field.Default | dump }}\n\t\t\t\t}\n\t\t\t{{- end}}\n\t\t{{- end }}\n\n\t\tfieldsInOrder := [...]string{ {{ range .Fields }}{{ quote .Name }},{{ end }} }\n\t\t{{- if $input.IsMap }}\n\t\t\tit = make(map[string]any, len(asMap))\n\t\t{{- end }}\n\t\tfor _, k := range fieldsInOrder {\n\t\t\tv, ok := asMap[k]\n\t\t\tif !ok {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tswitch k {\n\t\t\t{{- range $field := .Fields }}\n\t\t\tcase {{$field.Name|quote}}:\n\t\t\t\t{{- $lhs := (printf \"it.%s\" $field.GoFieldName) }}\n\t\t\t\t{{- if $input.IsMap }}\n\t\t\t\t\t{{- $lhs = (printf \"it[%q]\" $field.Name) }}\n\t\t\t\t{{- end }}\n\t\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField({{$field.Name|quote}}))\n\t\t\t\t{{- if $field.ImplDirectives }}\n\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\tdirective0 := func(ctx context.Context) (any, error) { return {{ $field.TypeReference.UnmarshalFunc }}(ctx, ec, v) }\n\t\t\t\t\t{{- else -}}\n\t\t\t\t\tdirective0 := func(ctx context.Context) (any, error) { return ec.{{ $field.TypeReference.UnmarshalFunc }}(ctx, v) }\n\t\t\t\t\t{{- end }}\n\t\t\t\t\t{{ template \"implDirectives\" (dict \"Field\" $field \"UseFunctionSyntaxForExecutionContext\" $useFunctionSyntaxForExecutionContext) }}\n\t\t\t\t\ttmp, err := directive{{$field.ImplDirectives|len}}(ctx)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn {{$it}}, graphql.ErrorOnPath(ctx, err)\n\t\t\t\t\t}\n\t\t\t\t\tif data, ok := tmp.({{ $field.TypeReference.GO | ref }}) ; ok {\n\t\t\t\t\t\t{{- if $field.IsResolver }}\n\t\t\t\t\t\t\tif err = ec.Resolvers.{{ $field.ShortInvocation }}; err != nil {\n\t\t\t\t\t\t\t\treturn {{$it}}, err\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t{{- else }}\n\t\t\t\t\t\t\t{{- if $field.TypeReference.IsOmittable }}\n\t\t\t\t\t\t\t\t{{ $lhs }} = graphql.OmittableOf(data)\n\t\t\t\t\t\t\t{{- else }}\n\t\t\t\t\t\t\t\t{{ $lhs }} = data\n\t\t\t\t\t\t\t{{- end }}\n\t\t\t\t\t\t{{- end }}\n\t\t\t\t\t{{- if $field.TypeReference.IsNilable }}\n\t\t\t\t\t\t{{- if not $field.IsResolver }}\n\t\t\t\t\t\t} else if tmp == nil {\n\t\t\t\t\t\t\t{{- if $field.TypeReference.IsOmittable }}\n\t\t\t\t\t\t\t\t{{ $lhs }} = graphql.OmittableOf[{{ $field.TypeReference.GO | ref }}](nil)\n\t\t\t\t\t\t\t{{- else }}\n\t\t\t\t\t\t\t\t{{ $lhs }} = nil\n\t\t\t\t\t\t\t{{- end }}\n\t\t\t\t\t\t{{- end }}\n\t\t\t\t\t{{- end }}\n\t\t\t\t\t} else {\n\t\t\t\t\t\terr := fmt.Errorf(`unexpected type %T from directive, should be {{ $field.TypeReference.GO }}`, tmp)\n\t\t\t\t\t\treturn {{$it}}, graphql.ErrorOnPath(ctx, err)\n\t\t\t\t\t}\n\t\t\t\t{{- else }}\n\t\t\t\t\t{{- if $field.IsResolver }}\n\t\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\t\tdata, err := {{ $field.TypeReference.UnmarshalFunc }}(ctx, ec, v)\n\t\t\t\t\t\t{{- else -}}\n\t\t\t\t\t\tdata, err := ec.{{ $field.TypeReference.UnmarshalFunc }}(ctx, v)\n\t\t\t\t\t\t{{- end }}\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\treturn {{$it}}, err\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif err = ec.Resolvers.{{ $field.ShortInvocation }}; err != nil {\n\t\t\t\t\t\t\treturn {{$it}}, err\n\t\t\t\t\t\t}\n\t\t\t\t\t{{- else }}\n\t\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\t\tdata, err := {{ $field.TypeReference.UnmarshalFunc }}(ctx, ec, v)\n\t\t\t\t\t\t{{- else -}}\n\t\t\t\t\t\tdata, err := ec.{{ $field.TypeReference.UnmarshalFunc }}(ctx, v)\n\t\t\t\t\t\t{{- end }}\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\treturn {{$it}}, err\n\t\t\t\t\t\t}\n\t\t\t\t\t\t{{- if $field.TypeReference.IsOmittable }}\n\t\t\t\t\t\t\t{{ $lhs }} = graphql.OmittableOf(data)\n\t\t\t\t\t\t{{- else }}\n\t\t\t\t\t\t\t{{ $lhs }} = data\n\t\t\t\t\t\t{{- end }}\n\t\t\t\t\t{{- end }}\n\t\t\t\t{{- end }}\n\t\t\t{{- end }}\n\t\t\t}\n\t\t}\n\n\t\t{{- if $input.InputObjectDirectives }}\n\t\t// Execute INPUT_OBJECT level directives (e.g., @oneOf, @directive3)\n\t\t// These run after all fields have been unmarshaled\n\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\tdirective0 := func(ctx context.Context) (any, error) { return {{$it}}, nil }\n\t\t{{- else -}}\n\t\tdirective0 := func(ctx context.Context) (any, error) { return {{$it}}, nil }\n\t\t{{- end }}\n\t\t{{- range $i, $directive := $input.InputObjectDirectives }}\n\t\tdirective{{add $i 1}} := func(ctx context.Context) (any, error) {\n\t\t\t{{- range $arg := $directive.Args }}\n\t\t\t\t{{- if notNil \"Value\" $arg }}\n\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\t{{ $arg.VarName }}, err := {{ $arg.TypeReference.UnmarshalFunc }}(ctx, ec, {{ $arg.Value | dump }})\n\t\t\t\t\t{{- else -}}\n\t\t\t\t\t{{ $arg.VarName }}, err := ec.{{ $arg.TypeReference.UnmarshalFunc }}(ctx, {{ $arg.Value | dump }})\n\t\t\t\t\t{{- end }}\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn {{$it}}, graphql.ErrorOnPath(ctx, err)\n\t\t\t\t\t}\n\t\t\t\t{{- else if notNil \"Default\" $arg }}\n\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\t{{ $arg.VarName }}, err := {{ $arg.TypeReference.UnmarshalFunc }}(ctx, ec, {{ $arg.Default | dump }})\n\t\t\t\t\t{{- else -}}\n\t\t\t\t\t{{ $arg.VarName }}, err := ec.{{ $arg.TypeReference.UnmarshalFunc }}(ctx, {{ $arg.Default | dump }})\n\t\t\t\t\t{{- end }}\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn {{$it}}, graphql.ErrorOnPath(ctx, err)\n\t\t\t\t\t}\n\t\t\t\t{{- end }}\n\t\t\t{{- end }}\n\t\t\t{{- if not $directive.IsBuiltIn}}\n\t\t\t\tif {{$directive.CallPath}} == nil {\n\t\t\t\t\treturn {{$it}}, errors.New(\"directive {{$directive.Name}} is not implemented\")\n\t\t\t\t}\n\t\t\t{{- end}}\n\t\t\treturn {{$directive.CallPath}}(ctx, asMap, directive{{$i}})\n\t\t}\n\t\t{{- end }}\n\t\ttmp, err := directive{{$input.InputObjectDirectives|len}}(ctx)\n\t\tif err != nil {\n\t\t\treturn {{$it}}, graphql.ErrorOnPath(ctx, err)\n\t\t}\n\t\tif data, ok := tmp.({{ if $input.PointersInUnmarshalInput }}*{{ end }}{{$input.Type | ref}}) ; ok {\n\t\t\treturn data, nil\n\t\t}\n\t\treturn {{$it}}, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from INPUT_OBJECT directive, should be {{ if $input.PointersInUnmarshalInput }}*{{ end }}{{$input.Type | ref}}`, tmp))\n\t\t{{- else }}\n\t\treturn {{$it}}, nil\n\t\t{{- end }}\n\t}\n\t{{- end }}\n{{ end }}\n\n"
  },
  {
    "path": "codegen/interface.go",
    "content": "package codegen\n\nimport (\n\t\"fmt\"\n\t\"go/types\"\n\t\"sort\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\n\t\"github.com/99designs/gqlgen/codegen/config\"\n)\n\ntype Interface struct {\n\t*ast.Definition\n\tType         types.Type\n\tImplementors []InterfaceImplementor\n\tInTypemap    bool\n}\n\ntype InterfaceImplementor struct {\n\t*ast.Definition\n\n\tType    types.Type\n\tTakeRef bool\n}\n\nfunc (b *builder) buildInterface(typ *ast.Definition) (*Interface, error) {\n\tobj, err := b.Binder.DefaultUserObject(typ.Name)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\ti := &Interface{\n\t\tDefinition: typ,\n\t\tType:       obj,\n\t\tInTypemap:  b.Config.Models.UserDefined(typ.Name),\n\t}\n\n\tinterfaceType, err := findGoInterface(i.Type)\n\tif interfaceType == nil || err != nil {\n\t\treturn nil, fmt.Errorf(\"%s is not an interface\", i.Type)\n\t}\n\n\t// Sort so that more specific types are evaluated first.\n\timplementors := b.Schema.GetPossibleTypes(typ)\n\n\tsort.SliceStable(implementors, func(i, j int) bool {\n\t\tif len(implementors[i].Interfaces) != len(implementors[j].Interfaces) {\n\t\t\treturn len(implementors[i].Interfaces) > len(implementors[j].Interfaces)\n\t\t}\n\t\t// if they have the same name, they probably ARE the same\n\t\t// so we need to rely on SliceStable or else order is\n\t\t// non-deterministic and causes test failures\n\t\treturn implementors[i].Name > implementors[j].Name\n\t})\n\n\tfor _, implementor := range implementors {\n\t\tobj, err := b.Binder.DefaultUserObject(implementor.Name)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"%s has no backing go type\", implementor.Name)\n\t\t}\n\n\t\timplementorType, err := findGoNamedType(obj)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"can not find backing go type %s: %w\", obj.String(), err)\n\t\t} else if implementorType == nil {\n\t\t\treturn nil, fmt.Errorf(\"can not find backing go type %s\", obj.String())\n\t\t}\n\n\t\tanyValid := false\n\n\t\t// first check if the value receiver can be nil, eg can we type switch on case Thing:\n\t\tif types.Implements(implementorType, interfaceType) {\n\t\t\ti.Implementors = append(i.Implementors, InterfaceImplementor{\n\t\t\t\tDefinition: implementor,\n\t\t\t\tType:       obj,\n\t\t\t\tTakeRef:    !types.IsInterface(obj),\n\t\t\t})\n\t\t\tanyValid = true\n\t\t}\n\n\t\t// then check if the pointer receiver can be nil, eg can we type switch on case *Thing:\n\t\tif types.Implements(types.NewPointer(implementorType), interfaceType) {\n\t\t\ti.Implementors = append(i.Implementors, InterfaceImplementor{\n\t\t\t\tDefinition: implementor,\n\t\t\t\tType:       types.NewPointer(obj),\n\t\t\t})\n\t\t\tanyValid = true\n\t\t}\n\n\t\tif !anyValid {\n\t\t\treturn nil, fmt.Errorf(\n\t\t\t\t\"%s does not satisfy the interface %s\",\n\t\t\t\timplementorType.String(),\n\t\t\t\ti.Type.String(),\n\t\t\t)\n\t\t}\n\t}\n\n\treturn i, nil\n}\n\nfunc (i *InterfaceImplementor) CanBeNil() bool {\n\treturn config.IsNilable(i.Type)\n}\n"
  },
  {
    "path": "codegen/interface.gotpl",
    "content": "{{ $useFunctionSyntaxForExecutionContext := .Config.UseFunctionSyntaxForExecutionContext }}\n\n{{- range $interface := .Interfaces }}\n\n{{ if $useFunctionSyntaxForExecutionContext -}}\nfunc _{{$interface.Name}}(ctx context.Context, ec *executionContext, sel ast.SelectionSet, obj {{$interface.Type | ref}}) graphql.Marshaler {\n{{- else -}}\nfunc (ec *executionContext) _{{$interface.Name}}(ctx context.Context, sel ast.SelectionSet, obj {{$interface.Type | ref}}) graphql.Marshaler {\n{{- end }}\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\t{{- range $implementor := $interface.Implementors }}\n\t\tcase {{$implementor.Type | ref}}:\n\t\t\t{{- if $implementor.CanBeNil }}\n\t\t\t\tif obj == nil {\n\t\t\t\t\treturn graphql.Null\n\t\t\t\t}\n\t\t\t{{- end }}\n\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\treturn _{{$implementor.Name}}(ctx, ec, sel, {{ if $implementor.TakeRef }}&{{ end }}obj)\n\t\t\t{{- else -}}\n\t\t\treturn ec._{{$implementor.Name}}(ctx, sel, {{ if $implementor.TakeRef }}&{{ end }}obj)\n\t\t\t{{- end }}\n\t{{- end }}\n\tdefault:\n\t\tif typedObj, ok := obj.(graphql.Marshaler); ok {\n\t\t\treturn typedObj\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T; non-generated variants of {{$interface.Name}} must implement graphql.Marshaler\", obj))\n\t\t}\n\t}\n}\n\n{{- end }}\n"
  },
  {
    "path": "codegen/object.go",
    "content": "package codegen\n\nimport (\n\t\"fmt\"\n\t\"go/types\"\n\t\"strconv\"\n\t\"strings\"\n\t\"unicode\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\t\"golang.org/x/text/cases\"\n\t\"golang.org/x/text/language\"\n\n\t\"github.com/99designs/gqlgen/codegen/config\"\n)\n\ntype GoFieldType int\n\nconst (\n\tGoFieldUndefined GoFieldType = iota\n\tGoFieldMethod\n\tGoFieldVariable\n\tGoFieldMap\n)\n\ntype Object struct {\n\t*ast.Definition\n\n\tType                     types.Type\n\tResolverInterface        types.Type\n\tRoot                     bool\n\tFields                   []*Field\n\tImplements               []*ast.Definition\n\tDisableConcurrency       bool\n\tStream                   bool\n\tDirectives               []*Directive\n\tPointersInUnmarshalInput bool\n}\n\nfunc (b *builder) buildObject(typ *ast.Definition) (*Object, error) {\n\tdirs, err := b.getDirectives(typ.Directives)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"%s: %w\", typ.Name, err)\n\t}\n\tcaser := cases.Title(language.English, cases.NoLower)\n\tobj := &Object{\n\t\tDefinition:               typ,\n\t\tRoot:                     b.Config.IsRoot(typ),\n\t\tDisableConcurrency:       typ == b.Schema.Mutation,\n\t\tStream:                   typ == b.Schema.Subscription,\n\t\tDirectives:               dirs,\n\t\tPointersInUnmarshalInput: b.Config.ReturnPointersInUnmarshalInput,\n\t\tResolverInterface: types.NewNamed(\n\t\t\ttypes.NewTypeName(0, b.Config.Exec.Pkg(), caser.String(typ.Name)+\"Resolver\", nil),\n\t\t\tnil,\n\t\t\tnil,\n\t\t),\n\t}\n\n\tif !obj.Root {\n\t\tgoObject, err := b.Binder.DefaultUserObject(typ.Name)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tobj.Type = goObject\n\t}\n\n\tfor _, intf := range b.Schema.GetImplements(typ) {\n\t\tobj.Implements = append(obj.Implements, b.Schema.Types[intf.Name])\n\t}\n\n\tfor _, field := range typ.Fields {\n\t\tif strings.HasPrefix(field.Name, \"__\") {\n\t\t\tcontinue\n\t\t}\n\n\t\tvar f *Field\n\t\tf, err = b.buildField(obj, field)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tobj.Fields = append(obj.Fields, f)\n\t}\n\n\treturn obj, nil\n}\n\nfunc (o *Object) Reference() types.Type {\n\tif config.IsNilable(o.Type) {\n\t\treturn o.Type\n\t}\n\treturn types.NewPointer(o.Type)\n}\n\ntype Objects []*Object\n\nfunc (o *Object) Implementors() string {\n\tsatisfiedBy := strconv.Quote(o.Name)\n\tvar satisfiedBySb100 strings.Builder\n\tfor _, s := range o.Implements {\n\t\tsatisfiedBySb100.WriteString(\", \" + strconv.Quote(s.Name))\n\t}\n\tsatisfiedBy += satisfiedBySb100.String()\n\treturn \"[]string{\" + satisfiedBy + \"}\"\n}\n\nfunc (o *Object) HasResolvers() bool {\n\tfor _, f := range o.Fields {\n\t\tif f.IsResolver || f.IsBatch() {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc (o *Object) HasUnmarshal() bool {\n\tif o.IsMap() {\n\t\treturn false\n\t}\n\tfor method := range o.Type.(*types.Named).Methods() {\n\t\tif method.Name() == \"UnmarshalGQL\" {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc (o *Object) HasDirectives() bool {\n\tif len(o.Directives) > 0 {\n\t\treturn true\n\t}\n\tfor _, f := range o.Fields {\n\t\tif f.HasDirectives() {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n\n// InputObjectDirectives returns directives that should be executed at the INPUT_OBJECT level.\n// This is used for input types to execute @directives placed on the input object itself,\n// after all fields have been unmarshaled.\n// See: https://github.com/99designs/gqlgen/issues/2281\nfunc (o *Object) InputObjectDirectives() []*Directive {\n\tif o.Kind != ast.InputObject {\n\t\treturn nil\n\t}\n\tvar d []*Directive\n\tfor _, dir := range o.Directives {\n\t\tif !dir.SkipRuntime && dir.IsLocation(ast.LocationInputObject) {\n\t\t\td = append(d, dir)\n\t\t}\n\t}\n\treturn d\n}\n\nfunc (o *Object) IsConcurrent() bool {\n\tfor _, f := range o.Fields {\n\t\tif f.IsConcurrent() {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc (o *Object) IsReserved() bool {\n\treturn strings.HasPrefix(o.Name, \"__\")\n}\n\nfunc (o *Object) IsMap() bool {\n\treturn o.Type == config.MapType\n}\n\nfunc (o *Object) Description() string {\n\treturn o.Definition.Description\n}\n\nfunc (o *Object) HasField(name string) bool {\n\tfor _, f := range o.Fields {\n\t\tif f.Name == name {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n\nfunc (os Objects) ByName(name string) *Object {\n\tfor i, o := range os {\n\t\tif strings.EqualFold(o.Name, name) {\n\t\t\treturn os[i]\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc ucFirst(s string) string {\n\tif s == \"\" {\n\t\treturn \"\"\n\t}\n\n\tr := []rune(s)\n\tr[0] = unicode.ToUpper(r[0])\n\treturn string(r)\n}\n"
  },
  {
    "path": "codegen/object.gotpl",
    "content": "{{ $useFunctionSyntaxForExecutionContext := .Config.UseFunctionSyntaxForExecutionContext }}\n\n{{- range $object := .Objects }}\n\nvar {{ $object.Name|lcFirst}}Implementors = {{$object.Implementors}}\n\n{{- if .Stream }}\n{{ if $useFunctionSyntaxForExecutionContext -}}\nfunc _{{$object.Name}}(ctx context.Context, ec *executionContext, sel ast.SelectionSet) func(ctx context.Context) graphql.Marshaler {\n{{- else -}}\nfunc (ec *executionContext) _{{$object.Name}}(ctx context.Context, sel ast.SelectionSet) func(ctx context.Context) graphql.Marshaler {\n{{- end }}\n\tfields := graphql.CollectFields(ec.OperationContext, sel, {{$object.Name|lcFirst}}Implementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: {{$object.Name|quote}},\n\t})\n\tif len(fields) != 1 {\n\t\tgraphql.AddErrorf(ctx, \"must subscribe to exactly one stream\")\n\t\treturn nil\n\t}\n\n\tswitch fields[0].Name {\n\t{{- range $field := $object.Fields }}\n\tcase \"{{$field.Name}}\":\n\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\treturn _{{$object.Name}}_{{$field.Name}}(ctx, ec, fields[0])\n\t\t{{- else -}}\n\t\treturn ec._{{$object.Name}}_{{$field.Name}}(ctx, fields[0])\n\t\t{{- end }}\n\t{{- end }}\n\tdefault:\n\t\tpanic(\"unknown field \" + strconv.Quote(fields[0].Name))\n\t}\n}\n{{- else }}\n\n{{ if $useFunctionSyntaxForExecutionContext -}}\nfunc _{{$object.Name}}(ctx context.Context, ec *executionContext, sel ast.SelectionSet{{ if not $object.Root }},obj {{$object.Reference | ref }}{{ end }}) graphql.Marshaler {\n{{- else -}}\nfunc (ec *executionContext) _{{$object.Name}}(ctx context.Context, sel ast.SelectionSet{{ if not $object.Root }},obj {{$object.Reference | ref }}{{ end }}) graphql.Marshaler {\n{{- end }}\n\tfields := graphql.CollectFields(ec.OperationContext, sel, {{$object.Name|lcFirst}}Implementors)\n\t{{- if $object.Root }}\n\t\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\t\tObject: {{$object.Name|quote}},\n\t\t})\n\t{{end}}\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\t{{- if $object.Root }}\n\t\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\t\tObject: field.Name,\n\t\t\t\tField: field,\n\t\t\t})\n\t\t{{end}}\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString({{$object.Name|quote}})\n\t\t{{- range $field := $object.Fields }}\n\t\tcase \"{{$field.Name}}\":\n\t\t\t{{- if $field.IsConcurrent }}\n\t\t\t\tfield := field\n\n\t\t\t\tinnerFunc := func(ctx context.Context, {{ if $field.TypeReference.GQL.NonNull }}fs{{ else }}_{{ end }} *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\t\t{{- if not $.Config.OmitPanicHandler }}\n\t\t\t\t\tdefer func() {\n\t\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t\t}\n\t\t\t\t\t}()\n\t\t\t\t\t{{- end }}\n\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\tres = _{{$object.Name}}_{{$field.Name}}(ctx, ec, field{{if not $object.Root}}, obj{{end}})\n\t\t\t\t\t{{- else -}}\n\t\t\t\t\tres = ec._{{$object.Name}}_{{$field.Name}}(ctx, field{{if not $object.Root}}, obj{{end}})\n\t\t\t\t\t{{- end }}\n\t\t\t\t\t{{- if $field.TypeReference.GQL.NonNull }}\n\t\t\t\t\t\tif res == graphql.Null {\n\t\t\t\t\t\t\t{{- if $object.IsConcurrent }}\n\t\t\t\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t\t\t\t{{- else }}\n\t\t\t\t\t\t\t\tfs.Invalids++\n\t\t\t\t\t\t\t{{- end }}\n\t\t\t\t\t\t}\n\t\t\t\t\t{{- end }}\n\t\t\t\t\treturn res\n\t\t\t\t}\n\n\t\t\t\t{{if $object.Root}}\n\t\t\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t\t\t}\n\t\t\t\t{{end}}\n\n\t\t\t\t{{if not $object.Root}}\n\t\t\t\t\tif field.Deferrable != nil {\n\t\t\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\t\t\tdi := 0\n\t\t\t\t\t\tif ok {\n\t\t\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t{{end}}\n\n\t\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\t{{- if $object.Root -}}\n\t\t\t\t\t\treturn rrm(innerCtx)\n\t\t\t\t\t{{- else -}}\n\t\t\t\t\t\treturn innerFunc(ctx, out)\n\t\t\t\t\t{{- end -}}\n\t\t\t\t})\n\t\t\t{{- else }}\n\t\t\t\t{{- if $object.Root -}}\n\t\t\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\t\treturn _{{$object.Name}}_{{$field.Name}}(ctx, ec, field)\n\t\t\t\t\t\t{{- else -}}\n\t\t\t\t\t\treturn ec._{{$object.Name}}_{{$field.Name}}(ctx, field)\n\t\t\t\t\t\t{{- end }}\n\t\t\t\t\t})\n\t\t\t\t{{- else -}}\n\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\tout.Values[i] = _{{$object.Name}}_{{$field.Name}}(ctx, ec, field, obj)\n\t\t\t\t\t{{- else -}}\n\t\t\t\t\tout.Values[i] = ec._{{$object.Name}}_{{$field.Name}}(ctx, field, obj)\n\t\t\t\t\t{{- end }}\n\t\t\t\t{{- end -}}\n\n\t\t\t\t{{- if $field.TypeReference.GQL.NonNull }}\n\t\t\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\t\t\t{{- if $object.IsConcurrent }}\n\t\t\t\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t\t\t\t{{- else }}\n\t\t\t\t\t\t\tout.Invalids++\n\t\t\t\t\t\t{{- end }}\n\t\t\t\t\t}\n\t\t\t\t{{- end }}\n\t\t\t{{- end }}\n\t\t{{- end }}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 { return graphql.Null }\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n{{- end }}\n\n{{- end }}\n"
  },
  {
    "path": "codegen/root_.gotpl",
    "content": "{{/* Context object: codegen.Data */}}\n{{ reserveImport \"context\"  }}\n{{ reserveImport \"fmt\"  }}\n{{ reserveImport \"io\"  }}\n{{ reserveImport \"strconv\"  }}\n{{ reserveImport \"time\"  }}\n{{ reserveImport \"sync\"  }}\n{{ reserveImport \"sync/atomic\" }}\n{{ reserveImport \"bytes\"  }}\n{{ reserveImport \"embed\"  }}\n\n{{ reserveImport \"github.com/vektah/gqlparser/v2\" \"gqlparser\" }}\n{{ reserveImport \"github.com/vektah/gqlparser/v2/ast\" }}\n{{ reserveImport \"github.com/99designs/gqlgen/graphql\" }}\n\n{{ $useFunctionSyntaxForExecutionContext := .Config.UseFunctionSyntaxForExecutionContext }}\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n}\n\ntype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\ntype ResolverRoot interface {\n{{- range $object := .Objects -}}\n\t{{ if $object.HasResolvers -}}\n\t\t{{ucFirst $object.Name}}() {{ucFirst $object.Name}}Resolver\n\t{{ end }}\n{{- end }}\n{{- range $object := .Inputs -}}\n\t{{ if $object.HasResolvers -}}\n\t\t{{ucFirst $object.Name}}() {{ucFirst $object.Name}}Resolver\n\t{{ end }}\n{{- end }}\n}\n\ntype DirectiveRoot struct {\n{{ range $directive := .UserDirectives }}\n\t{{- $directive.Declaration }}\n{{ end }}\n}\n\ntype ComplexityRoot struct {\n{{- if not .Config.OmitComplexity }}\n{{ range $object := .Objects }}\n\t{{ if not $object.IsReserved -}}\n\t\t{{ ucFirst $object.Name }} struct {\n\t\t{{ range $_, $fields := $object.UniqueFields }}\n\t\t\t{{- $field := index $fields 0 -}}\n\t\t\t{{ if not $field.IsReserved -}}\n\t\t\t\t{{ $field.GoFieldName }} {{ $field.ComplexitySignature }}\n\t\t\t{{ end }}\n\t\t{{- end }}\n\t\t}\n\t{{- end }}\n{{ end }}\n{{- end }}\n}\n\n{{ range $directive := .BuiltInDirectives }}\n\tvar (\n\t\t{{- $directive.FunctionImpl }}\n\t)\n{{ end }}\n\ntype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.SchemaData != nil {\n\t\t\treturn e.SchemaData\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := newExecutionContext(nil, e, nil)\n\t_ = ec\n\t{{- if not .Config.OmitComplexity }}\n\tswitch typeName + \".\" + field {\n\t{{ range $object := .Objects }}\n\t\t{{ if not $object.IsReserved }}\n\t\t\t{{ range $_, $fields := $object.UniqueFields }}\n\t\t\t\t{{- $len := len $fields }}\n\t\t\t\t{{- range $i, $field := $fields }}\n\t\t\t\t\t{{- $last := eq (add $i 1) $len }}\n\t\t\t\t\t{{- if not $field.IsReserved }}\n\t\t\t\t\t\t{{- if eq $i 0 }}case {{ end }}\"{{$object.Name}}.{{$field.Name}}\"{{ if not $last }},{{ else }}:\n\t\t\t\t\t\tif e.ComplexityRoot.{{ucFirst $object.Name }}.{{$field.GoFieldName}} == nil {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t{{ if $field.Args }}\n\t\t\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\t\t\targs, err := {{ $field.ArgsFunc }}(ctx, &ec, rawArgs)\n\t\t\t\t\t\t\t{{- else -}}\n\t\t\t\t\t\t\targs, err := ec.{{ $field.ArgsFunc }}(ctx,rawArgs)\n\t\t\t\t\t\t\t{{- end }}\n\t\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\treturn 0, false\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t{{ end }}\n\t\t\t\t\t\treturn e.ComplexityRoot.{{ucFirst $object.Name}}.{{$field.GoFieldName}}(childComplexity{{if $field.Args}}, {{$field.ComplexityArgs}} {{ end }}), true\n\t\t\t\t\t\t{{ end }}\n\t\t\t\t\t{{- end }}\n\t\t\t\t{{- end }}\n\t\t\t{{ end }}\n\t\t{{ end }}\n\t{{ end }}\n\t}\n\t{{- end }}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap(\n\t\t{{- range $input := .Inputs -}}\n\t\t\t{{ if not $input.HasUnmarshal }}\n\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\tunmarshalInput{{ $input.Name }},\n\t\t\t\t{{- else -}}\n\t\t\t\tec.unmarshalInput{{ $input.Name }},\n\t\t\t\t{{- end }}\n\t\t\t{{- end }}\n\t\t{{- end }}\n\t)\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\t{{- if .QueryRoot }} case ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\t{{ if .Directives.LocationDirectives \"QUERY\" -}}\n\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\tdata = _queryMiddleware(ctx, ec, opCtx.Operation, func(ctx context.Context) (any, error){\n\t\t\t\t\t\treturn _{{.QueryRoot.Name}}(ctx, &ec, opCtx.Operation.SelectionSet), nil\n\t\t\t\t\t{{- else -}}\n\t\t\t\t\tdata = ec._queryMiddleware(ctx, opCtx.Operation, func(ctx context.Context) (any, error){\n\t\t\t\t\t\treturn ec._{{.QueryRoot.Name}}(ctx, opCtx.Operation.SelectionSet), nil\n\t\t\t\t\t{{- end }}\n\t\t\t\t\t})\n\t\t\t\t{{- else -}}\n\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\tdata = _{{.QueryRoot.Name}}(ctx, &ec, opCtx.Operation.SelectionSet)\n\t\t\t\t\t{{- else -}}\n\t\t\t\t\tdata = ec._{{.QueryRoot.Name}}(ctx, opCtx.Operation.SelectionSet)\n\t\t\t\t\t{{- end }}\n\t\t\t\t{{- end }}\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\t{{ end }}\n\n\t{{- if .MutationRoot }} case ast.Mutation:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tif !first { return nil }\n\t\t\tfirst = false\n\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t{{ if .Directives.LocationDirectives \"MUTATION\" -}}\n\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\tdata := _mutationMiddleware(ctx, &ec, opCtx.Operation, func(ctx context.Context) (any, error){\n\t\t\t\t\treturn _{{.MutationRoot.Name}}(ctx, ec, opCtx.Operation.SelectionSet), nil\n\t\t\t\t{{- else -}}\n\t\t\t\tdata := ec._mutationMiddleware(ctx, opCtx.Operation, func(ctx context.Context) (any, error){\n\t\t\t\t\treturn ec._{{.MutationRoot.Name}}(ctx, opCtx.Operation.SelectionSet), nil\n\t\t\t\t{{- end }}\n\t\t\t\t})\n\t\t\t{{- else -}}\n\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\tdata := _{{.MutationRoot.Name}}(ctx, &ec, opCtx.Operation.SelectionSet)\n\t\t\t\t{{- else -}}\n\t\t\t\tdata := ec._{{.MutationRoot.Name}}(ctx, opCtx.Operation.SelectionSet)\n\t\t\t\t{{- end }}\n\t\t\t{{- end }}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\n\t\t\treturn &graphql.Response{\n\t\t\t\tData:       buf.Bytes(),\n\t\t\t}\n\t\t}\n\t{{ end }}\n\n\t{{- if .SubscriptionRoot }} case ast.Subscription:\n\t\t{{ if .Directives.LocationDirectives \"SUBSCRIPTION\" -}}\n\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\tnext := _subscriptionMiddleware(ctx, &ec, opCtx.Operation, func(ctx context.Context) (any, error){\n\t\t\t\treturn _{{.SubscriptionRoot.Name}}(ctx, ec, opCtx.Operation.SelectionSet),nil\n\t\t\t{{- else -}}\n\t\t\tnext := ec._subscriptionMiddleware(ctx, opCtx.Operation, func(ctx context.Context) (any, error){\n\t\t\t\treturn ec._{{.SubscriptionRoot.Name}}(ctx, opCtx.Operation.SelectionSet),nil\n\t\t\t{{- end }}\n\t\t\t})\n\t\t{{- else -}}\n\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\tnext := _{{.SubscriptionRoot.Name}}(ctx, &ec, opCtx.Operation.SelectionSet)\n\t\t\t{{- else -}}\n\t\t\tnext := ec._{{.SubscriptionRoot.Name}}(ctx, opCtx.Operation.SelectionSet)\n\t\t\t{{- end }}\n\t\t{{- end }}\n\n\t\tvar buf bytes.Buffer\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tbuf.Reset()\n\t\t\tdata := next(ctx)\n\n\t\t\tif data == nil {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tdata.MarshalGQL(&buf)\n\n\t\t\treturn &graphql.Response{\n\t\t\t\tData:       buf.Bytes(),\n\t\t\t}\n\t\t}\n\t{{ end }}\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\n\n{{if .HasEmbeddableSources }}\n//go:embed{{- range $source := .AugmentedSources }}{{if $source.Embeddable}} {{$source.RelativePath|quote}}{{end}}{{- end }}\nvar sourcesFS embed.FS\n\nfunc sourceData(filename string) string {\n\tdata, err := sourcesFS.ReadFile(filename)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"codegen problem: %s not available\", filename))\n\t}\n\treturn string(data)\n}\n{{- end}}\n\nvar sources = []*ast.Source{\n{{- range $source := .AugmentedSources }}\n\t{Name: {{$source.RelativePath|quote}}, Input: {{if (not $source.Embeddable)}}{{$source.Source|rawQuote}}{{else}}sourceData({{$source.RelativePath|quote}}){{end}}, BuiltIn: {{$source.BuiltIn}}},\n{{- end }}\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n"
  },
  {
    "path": "codegen/templates/import.go",
    "content": "package templates\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"go/types\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/99designs/gqlgen/internal/code\"\n)\n\ntype Import struct {\n\tName  string\n\tPath  string\n\tAlias string\n}\n\ntype Imports struct {\n\timports  []*Import\n\tdestDir  string\n\tpackages *code.Packages\n}\n\nfunc (i *Import) String() string {\n\tif strings.HasSuffix(i.Path, i.Alias) && i.Alias == i.Name {\n\t\treturn strconv.Quote(i.Path)\n\t}\n\n\treturn i.Alias + \" \" + strconv.Quote(i.Path)\n}\n\nfunc (s *Imports) String() string {\n\tres := \"\"\n\tvar resSb35 strings.Builder\n\tfor i, imp := range s.imports {\n\t\tif i != 0 {\n\t\t\tresSb35.WriteString(\"\\n\")\n\t\t}\n\t\tresSb35.WriteString(imp.String())\n\t}\n\tres += resSb35.String()\n\treturn res\n}\n\nfunc (s *Imports) Reserve(path string, aliases ...string) (string, error) {\n\tif path == \"\" {\n\t\tpanic(\"empty ambient import\")\n\t}\n\n\t// if we are referencing our own package we don't need an import\n\tif code.ImportPathForDir(s.destDir) == path {\n\t\treturn \"\", nil\n\t}\n\n\tname := s.packages.NameForPackage(path)\n\tvar alias string\n\tif len(aliases) != 1 {\n\t\talias = name\n\t} else {\n\t\talias = aliases[0]\n\t}\n\n\tif existing := s.findByPath(path); existing != nil {\n\t\tif existing.Alias == alias {\n\t\t\treturn \"\", nil\n\t\t}\n\t\treturn \"\", errors.New(\"ambient import already exists\")\n\t}\n\n\tif alias := s.findByAlias(alias); alias != nil {\n\t\treturn \"\", errors.New(\"ambient import collides on an alias\")\n\t}\n\n\ts.imports = append(s.imports, &Import{\n\t\tName:  name,\n\t\tPath:  path,\n\t\tAlias: alias,\n\t})\n\n\treturn \"\", nil\n}\n\nfunc (s *Imports) Lookup(path string) string {\n\tif path == \"\" {\n\t\treturn \"\"\n\t}\n\n\tpath = code.NormalizeVendor(path)\n\n\t// if we are referencing our own package we don't need an import\n\tif code.ImportPathForDir(s.destDir) == path {\n\t\treturn \"\"\n\t}\n\n\tif existing := s.findByPath(path); existing != nil {\n\t\treturn existing.Alias\n\t}\n\n\timp := &Import{\n\t\tName: s.packages.NameForPackage(path),\n\t\tPath: path,\n\t}\n\ts.imports = append(s.imports, imp)\n\n\talias := imp.Name\n\ti := 1\n\tfor s.findByAlias(alias) != nil {\n\t\talias = imp.Name + strconv.Itoa(i)\n\t\ti++\n\t\tif i > 1000 {\n\t\t\tpanic(fmt.Errorf(\"too many collisions, last attempt was %s\", alias))\n\t\t}\n\t}\n\timp.Alias = alias\n\n\treturn imp.Alias\n}\n\nfunc (s *Imports) LookupType(t types.Type) string {\n\treturn types.TypeString(t, func(i *types.Package) string {\n\t\treturn s.Lookup(i.Path())\n\t})\n}\n\nfunc (s Imports) findByPath(importPath string) *Import {\n\tfor _, imp := range s.imports {\n\t\tif imp.Path == importPath {\n\t\t\treturn imp\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (s Imports) findByAlias(alias string) *Import {\n\tfor _, imp := range s.imports {\n\t\tif imp.Alias == alias {\n\t\t\treturn imp\n\t\t}\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "codegen/templates/import_test.go",
    "content": "package templates\n\nimport (\n\t\"fmt\"\n\t\"go/types\"\n\t\"os\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/internal/code\"\n)\n\nfunc TestImports(t *testing.T) {\n\twd, err := os.Getwd()\n\trequire.NoError(t, err)\n\n\taBar := \"github.com/99designs/gqlgen/codegen/templates/testdata/a/bar\"\n\tbBar := \"github.com/99designs/gqlgen/codegen/templates/testdata/b/bar\"\n\tmismatch := \"github.com/99designs/gqlgen/codegen/templates/testdata/pkg_mismatch\"\n\n\tt.Run(\"multiple lookups is ok\", func(t *testing.T) {\n\t\ta := Imports{destDir: wd, packages: code.NewPackages()}\n\n\t\trequire.Equal(t, \"bar\", a.Lookup(aBar))\n\t\trequire.Equal(t, \"bar\", a.Lookup(aBar))\n\t})\n\n\tt.Run(\"lookup by type\", func(t *testing.T) {\n\t\ta := Imports{destDir: wd, packages: code.NewPackages()}\n\n\t\tpkg := types.NewPackage(\n\t\t\t\"github.com/99designs/gqlgen/codegen/templates/testdata/b/bar\",\n\t\t\t\"bar\",\n\t\t)\n\t\ttyp := types.NewNamed(\n\t\t\ttypes.NewTypeName(0, pkg, \"Boolean\", types.Typ[types.Bool]),\n\t\t\ttypes.Typ[types.Bool],\n\t\t\tnil,\n\t\t)\n\n\t\trequire.Equal(t, \"bar.Boolean\", a.LookupType(typ))\n\t})\n\n\tt.Run(\"duplicates are decollisioned\", func(t *testing.T) {\n\t\ta := Imports{destDir: wd, packages: code.NewPackages()}\n\n\t\trequire.Equal(t, \"bar\", a.Lookup(aBar))\n\t\trequire.Equal(t, \"bar1\", a.Lookup(bBar))\n\n\t\tt.Run(\"additional calls get decollisioned name\", func(t *testing.T) {\n\t\t\trequire.Equal(t, \"bar1\", a.Lookup(bBar))\n\t\t})\n\t})\n\n\tt.Run(\"duplicates above 10 are decollisioned\", func(t *testing.T) {\n\t\ta := Imports{destDir: wd, packages: code.NewPackages()}\n\t\tfor i := range 100 {\n\t\t\tcBar := fmt.Sprintf(\"github.com/99designs/gqlgen/codegen/templates/testdata/%d/bar\", i)\n\t\t\tif i > 0 {\n\t\t\t\trequire.Equal(t, fmt.Sprintf(\"bar%d\", i), a.Lookup(cBar))\n\t\t\t} else {\n\t\t\t\trequire.Equal(t, \"bar\", a.Lookup(cBar))\n\t\t\t}\n\t\t}\n\t})\n\n\tt.Run(\"package name defined in code will be used\", func(t *testing.T) {\n\t\ta := Imports{destDir: wd, packages: code.NewPackages()}\n\n\t\trequire.Equal(t, \"turtles\", a.Lookup(mismatch))\n\t})\n\n\tt.Run(\"string printing for import block\", func(t *testing.T) {\n\t\ta := Imports{destDir: wd, packages: code.NewPackages()}\n\t\ta.Lookup(aBar)\n\t\ta.Lookup(bBar)\n\t\ta.Lookup(mismatch)\n\n\t\trequire.Equal(\n\t\t\tt,\n\t\t\t`\"github.com/99designs/gqlgen/codegen/templates/testdata/a/bar\"\nbar1 \"github.com/99designs/gqlgen/codegen/templates/testdata/b/bar\"\nturtles \"github.com/99designs/gqlgen/codegen/templates/testdata/pkg_mismatch\"`,\n\t\t\ta.String(),\n\t\t)\n\t})\n\n\tt.Run(\"aliased imports will not collide\", func(t *testing.T) {\n\t\ta := Imports{destDir: wd, packages: code.NewPackages()}\n\n\t\t_, _ = a.Reserve(aBar, \"abar\")\n\t\t_, _ = a.Reserve(bBar, \"bbar\")\n\n\t\trequire.Equal(t, `abar \"github.com/99designs/gqlgen/codegen/templates/testdata/a/bar\"\nbbar \"github.com/99designs/gqlgen/codegen/templates/testdata/b/bar\"`, a.String())\n\t})\n}\n"
  },
  {
    "path": "codegen/templates/templates.go",
    "content": "package templates\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"go/types\"\n\t\"io/fs\"\n\t\"maps\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"runtime\"\n\t\"slices\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"text/template\"\n\t\"unicode\"\n\n\t\"github.com/99designs/gqlgen/internal/code\"\n\t\"github.com/99designs/gqlgen/internal/imports\"\n)\n\n// CurrentImports keeps track of all the import declarations that are needed during the execution of\n// a plugin. this is done with a global because subtemplates currently get called in functions. Lets\n// aim to remove this eventually.\nvar CurrentImports *Imports\n\n// Options specify various parameters to rendering a template.\ntype Options struct {\n\t// PackageName is a helper that specifies the package header declaration.\n\t// In other words, when you write the template you don't need to specify `package X`\n\t// at the top of the file. By providing PackageName in the Options, the Render\n\t// function will do that for you.\n\tPackageName string\n\t// Template is a string of the entire template that\n\t// will be parsed and rendered. If it's empty,\n\t// the plugin processor will look for .gotpl files\n\t// in the same directory of where you wrote the plugin.\n\tTemplate string\n\n\t// Use the go:embed API to collect all the template files you want to pass into Render\n\t// this is an alternative to passing the Template option\n\tTemplateFS fs.FS\n\n\t// Filename is the name of the file that will be\n\t// written to the system disk once the template is rendered.\n\tFilename        string\n\tRegionTags      bool\n\tGeneratedHeader bool\n\t// PackageDoc is documentation written above the package line\n\tPackageDoc string\n\t// FileNotice is notice written below the package line\n\tFileNotice string\n\t// Data will be passed to the template execution.\n\tData  any\n\tFuncs template.FuncMap\n\n\t// Packages cache, you can find me on config.Config\n\tPackages *code.Packages\n\n\t// PruneOptions configures import pruning and formatting behavior.\n\tPruneOptions imports.PruneOptions\n}\n\nvar (\n\tmodelNamesMu sync.Mutex\n\tmodelNames   = make(map[string]string, 0)\n\tgoNameRe     = regexp.MustCompile(\"[^a-zA-Z0-9_]\")\n)\n\n// Render renders a gql plugin template from the given Options. Render is an\n// abstraction of the text/template package that makes it easier to write gqlgen\n// plugins. If Options.Template is empty, the Render function will look for `.gotpl`\n// files inside the directory where you wrote the plugin.\nfunc Render(cfg Options) error {\n\tif CurrentImports != nil {\n\t\tpanic(errors.New(\"recursive or concurrent call to RenderToFile detected\"))\n\t}\n\tCurrentImports = &Imports{packages: cfg.Packages, destDir: filepath.Dir(cfg.Filename)}\n\n\tfuncs := Funcs()\n\tmaps.Copy(funcs, cfg.Funcs)\n\n\tt := template.New(\"\").Funcs(funcs)\n\tt, err := parseTemplates(cfg, t)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\troots := make([]string, 0, len(t.Templates()))\n\tfor _, templ := range t.Templates() {\n\t\t// templates that end with _.gotpl are special files we don't want to include\n\t\tif strings.HasSuffix(templ.Name(), \"_.gotpl\") ||\n\t\t\t// filter out templates added with {{ template xxx }} syntax inside the template file\n\t\t\t!strings.HasSuffix(templ.Name(), \".gotpl\") {\n\t\t\tcontinue\n\t\t}\n\n\t\troots = append(roots, templ.Name())\n\t}\n\n\t// then execute all the important looking ones in order, adding them to the same file\n\tsort.SliceStable(roots, func(i, j int) bool {\n\t\t// important files go first\n\t\tif strings.HasSuffix(roots[i], \"!.gotpl\") &&\n\t\t\t!strings.HasSuffix(roots[j], \"!.gotpl\") {\n\t\t\treturn true\n\t\t}\n\t\tif strings.HasSuffix(roots[j], \"!.gotpl\") &&\n\t\t\t!strings.HasSuffix(roots[i], \"!.gotpl\") {\n\t\t\treturn false\n\t\t}\n\t\t// files that have identical names are sorted dependent on input order\n\t\t// so we rely on SliceStable here to ensure deterministic results\n\t\t// to avoid test failures\n\t\treturn roots[i] < roots[j]\n\t})\n\n\tvar buf bytes.Buffer\n\tfor _, root := range roots {\n\t\tif cfg.RegionTags {\n\t\t\tbuf.WriteString(\"\\n// region    \" + center(70, \"*\", \" \"+root+\" \") + \"\\n\")\n\t\t}\n\t\terr := t.Lookup(root).Execute(&buf, cfg.Data)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"%s: %w\", root, err)\n\t\t}\n\t\tif cfg.RegionTags {\n\t\t\tbuf.WriteString(\"\\n// endregion \" + center(70, \"*\", \" \"+root+\" \") + \"\\n\")\n\t\t}\n\t}\n\n\tvar result bytes.Buffer\n\tif cfg.GeneratedHeader {\n\t\tresult.WriteString(\"// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\\n\\n\")\n\t}\n\tif cfg.PackageDoc != \"\" {\n\t\tresult.WriteString(cfg.PackageDoc + \"\\n\")\n\t}\n\tresult.WriteString(\"package \")\n\tresult.WriteString(cfg.PackageName)\n\tresult.WriteString(\"\\n\\n\")\n\tif cfg.FileNotice != \"\" {\n\t\tresult.WriteString(cfg.FileNotice)\n\t\tresult.WriteString(\"\\n\\n\")\n\t}\n\tresult.WriteString(\"import (\\n\")\n\tresult.WriteString(CurrentImports.String())\n\tresult.WriteString(\")\\n\")\n\t_, err = buf.WriteTo(&result)\n\tif err != nil {\n\t\treturn err\n\t}\n\tCurrentImports = nil\n\n\tif err = write(cfg.Filename, result.Bytes(), cfg.Packages, cfg.PruneOptions); err != nil {\n\t\treturn err\n\t}\n\n\tcfg.Packages.Evict(code.ImportPathForDir(filepath.Dir(cfg.Filename)))\n\treturn nil\n}\n\nfunc parseTemplates(cfg Options, t *template.Template) (*template.Template, error) {\n\tif cfg.Template != \"\" {\n\t\tvar err error\n\t\tt, err = t.New(\"template.gotpl\").Parse(cfg.Template)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"error with provided template: %w\", err)\n\t\t}\n\t\treturn t, nil\n\t}\n\n\tvar fileSystem fs.FS\n\tif cfg.TemplateFS != nil {\n\t\tfileSystem = cfg.TemplateFS\n\t} else {\n\t\t// load path relative to calling source file\n\t\t_, callerFile, _, _ := runtime.Caller(2)\n\t\trootDir := filepath.Dir(callerFile)\n\t\tfileSystem = os.DirFS(rootDir)\n\t}\n\n\tt, err := t.ParseFS(fileSystem, \"*.gotpl\")\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"locating templates: %w\", err)\n\t}\n\n\treturn t, nil\n}\n\nfunc center(width int, pad, s string) string {\n\tif len(s)+2 > width {\n\t\treturn s\n\t}\n\tlpad := (width - len(s)) / 2\n\trpad := width - (lpad + len(s))\n\treturn strings.Repeat(pad, lpad) + s + strings.Repeat(pad, rpad)\n}\n\nfunc Funcs() template.FuncMap {\n\treturn template.FuncMap{\n\t\t\"ucFirst\":            UcFirst,\n\t\t\"lcFirst\":            LcFirst,\n\t\t\"quote\":              strconv.Quote,\n\t\t\"rawQuote\":           rawQuote,\n\t\t\"dump\":               Dump,\n\t\t\"ref\":                ref,\n\t\t\"obj\":                obj,\n\t\t\"ts\":                 TypeIdentifier,\n\t\t\"call\":               Call,\n\t\t\"dict\":               dict,\n\t\t\"prefixLines\":        prefixLines,\n\t\t\"notNil\":             notNil,\n\t\t\"strSplit\":           StrSplit,\n\t\t\"reserveImport\":      CurrentImports.Reserve,\n\t\t\"lookupImport\":       CurrentImports.Lookup,\n\t\t\"go\":                 ToGo,\n\t\t\"goPrivate\":          ToGoPrivate,\n\t\t\"goModelName\":        ToGoModelName,\n\t\t\"goPrivateModelName\": ToGoPrivateModelName,\n\t\t\"add\": func(a, b int) int {\n\t\t\treturn a + b\n\t\t},\n\t\t\"render\": func(filename string, tpldata any) (*bytes.Buffer, error) {\n\t\t\treturn render(resolveName(filename, 0), tpldata)\n\t\t},\n\t}\n}\n\nfunc UcFirst(s string) string {\n\tif s == \"\" {\n\t\treturn \"\"\n\t}\n\tr := []rune(s)\n\tr[0] = unicode.ToUpper(r[0])\n\treturn string(r)\n}\n\nfunc LcFirst(s string) string {\n\tif s == \"\" {\n\t\treturn \"\"\n\t}\n\n\tr := []rune(s)\n\tr[0] = unicode.ToLower(r[0])\n\treturn string(r)\n}\n\nfunc isDelimiter(c rune) bool {\n\treturn c == '-' || c == '_' || unicode.IsSpace(c)\n}\n\nfunc ref(p types.Type) string {\n\ttypeString := CurrentImports.LookupType(p)\n\t// TODO(steve): figure out why this is needed\n\t// otherwise inconsistent sometimes\n\t// see https://github.com/99designs/gqlgen/issues/3414#issuecomment-2822856422\n\tif typeString == \"interface{}\" {\n\t\treturn \"any\"\n\t}\n\tif typeString == \"map[string]interface{}\" {\n\t\treturn \"map[string]any\"\n\t}\n\t// assuming that some other container interface{} type\n\t// like []interface{} or something needs coercion to any\n\tif strings.Contains(typeString, \"interface{}\") {\n\t\treturn strings.ReplaceAll(typeString, \"interface{}\", \"any\")\n\t}\n\treturn typeString\n}\n\nfunc obj(obj types.Object) string {\n\tpkg := CurrentImports.Lookup(obj.Pkg().Path())\n\tif pkg != \"\" {\n\t\tpkg += \".\"\n\t}\n\n\treturn pkg + obj.Name()\n}\n\nfunc Call(p *types.Func) string {\n\tpkg := CurrentImports.Lookup(p.Pkg().Path())\n\n\tif pkg != \"\" {\n\t\tpkg += \".\"\n\t}\n\n\tif p.Type() != nil {\n\t\t// make sure the returned type is listed in our imports.\n\t\tref(p.Type().(*types.Signature).Results().At(0).Type())\n\t}\n\n\treturn pkg + p.Name()\n}\n\nfunc dict(values ...any) (map[string]any, error) {\n\tif len(values)%2 != 0 {\n\t\treturn nil, errors.New(\"invalid dict call: arguments must be key-value pairs\")\n\t}\n\tm := make(map[string]any, len(values)/2)\n\tfor i := 0; i < len(values); i += 2 {\n\t\tkey, ok := values[i].(string)\n\t\tif !ok {\n\t\t\treturn nil, errors.New(\"dict keys must be strings\")\n\t\t}\n\t\tm[key] = values[i+1]\n\t}\n\treturn m, nil\n}\n\nfunc resetModelNames() {\n\tmodelNamesMu.Lock()\n\tdefer modelNamesMu.Unlock()\n\tmodelNames = make(map[string]string, 0)\n}\n\nfunc buildGoModelNameKey(parts []string) string {\n\tconst sep = \":\"\n\treturn strings.Join(parts, sep)\n}\n\nfunc goModelName(primaryToGoFunc func(string) string, parts []string) string {\n\tmodelNamesMu.Lock()\n\tdefer modelNamesMu.Unlock()\n\n\tvar (\n\t\tgoNameKey string\n\t\tpartLen   int\n\n\t\tnameExists = func(n string) bool {\n\t\t\tfor _, v := range modelNames {\n\t\t\t\tif n == v {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false\n\t\t}\n\n\t\tapplyToGoFunc = func(parts []string) string {\n\t\t\tswitch len(parts) {\n\t\t\tcase 0:\n\t\t\t\treturn \"\"\n\t\t\tcase 1:\n\t\t\t\treturn primaryToGoFunc(parts[0])\n\t\t\tdefault:\n\t\t\t\tvar out strings.Builder\n\t\t\t\tout.WriteString(primaryToGoFunc(parts[0]))\n\t\t\t\tfor _, p := range parts[1:] {\n\t\t\t\t\tout.WriteString(ToGo(p))\n\t\t\t\t}\n\t\t\t\treturn out.String()\n\t\t\t}\n\t\t}\n\n\t\tapplyValidGoName = func(parts []string) string {\n\t\t\tvar out strings.Builder\n\t\t\tfor _, p := range parts {\n\t\t\t\tout.WriteString(replaceInvalidCharacters(p))\n\t\t\t}\n\t\t\treturn out.String()\n\t\t}\n\t)\n\n\t// build key for this entity\n\tgoNameKey = buildGoModelNameKey(parts)\n\n\t// determine if we've seen this entity before, and reuse if so\n\tif goName, ok := modelNames[goNameKey]; ok {\n\t\treturn goName\n\t}\n\n\t// attempt first pass\n\tif goName := applyToGoFunc(parts); !nameExists(goName) {\n\t\tmodelNames[goNameKey] = goName\n\t\treturn goName\n\t}\n\n\t// determine number of parts\n\tpartLen = len(parts)\n\n\t// if there is only 1 part, append incrementing number until no conflict\n\tif partLen == 1 {\n\t\tbase := applyToGoFunc(parts)\n\t\tfor i := 0; ; i++ {\n\t\t\ttmp := fmt.Sprintf(\"%s%d\", base, i)\n\t\t\tif !nameExists(tmp) {\n\t\t\t\tmodelNames[goNameKey] = tmp\n\t\t\t\treturn tmp\n\t\t\t}\n\t\t}\n\t}\n\n\t// best effort \"pretty\" name\n\tfor i := partLen - 1; i >= 1; i-- {\n\t\ttmp := fmt.Sprintf(\"%s%s\", applyToGoFunc(parts[0:i]), applyValidGoName(parts[i:]))\n\t\tif !nameExists(tmp) {\n\t\t\tmodelNames[goNameKey] = tmp\n\t\t\treturn tmp\n\t\t}\n\t}\n\n\t// finally, fallback to just adding an incrementing number\n\tbase := applyToGoFunc(parts)\n\tfor i := 0; ; i++ {\n\t\ttmp := fmt.Sprintf(\"%s%d\", base, i)\n\t\tif !nameExists(tmp) {\n\t\t\tmodelNames[goNameKey] = tmp\n\t\t\treturn tmp\n\t\t}\n\t}\n}\n\nfunc ToGoModelName(parts ...string) string {\n\treturn goModelName(ToGo, parts)\n}\n\nfunc ToGoPrivateModelName(parts ...string) string {\n\treturn goModelName(ToGoPrivate, parts)\n}\n\nfunc replaceInvalidCharacters(in string) string {\n\treturn goNameRe.ReplaceAllLiteralString(in, \"_\")\n}\n\nfunc wordWalkerFunc(private bool, nameRunes *[]rune) func(*wordInfo) {\n\treturn func(info *wordInfo) {\n\t\tword := info.Word\n\n\t\tswitch {\n\t\tcase private && info.WordOffset == 0:\n\t\t\tif strings.ToUpper(word) == word || strings.ToLower(word) == word {\n\t\t\t\t// ID → id, CAMEL → camel\n\t\t\t\tword = strings.ToLower(info.Word)\n\t\t\t} else {\n\t\t\t\t// ITicket → iTicket\n\t\t\t\tword = LcFirst(info.Word)\n\t\t\t}\n\n\t\tcase info.MatchCommonInitial:\n\t\t\tword = strings.ToUpper(word)\n\n\t\tcase !info.HasCommonInitial && (strings.ToUpper(word) == word || strings.ToLower(word) == word):\n\t\t\t// FOO or foo → Foo\n\t\t\t// FOo → FOo\n\t\t\tword = UcFirst(strings.ToLower(word))\n\t\t}\n\n\t\t*nameRunes = append(*nameRunes, []rune(word)...)\n\t}\n}\n\nfunc ToGo(name string) string {\n\tif name == \"_\" {\n\t\treturn \"_\"\n\t}\n\trunes := make([]rune, 0, len(name))\n\n\twordWalker(name, wordWalkerFunc(false, &runes))\n\n\treturn string(runes)\n}\n\nfunc ToGoPrivate(name string) string {\n\tif name == \"_\" {\n\t\treturn \"_\"\n\t}\n\trunes := make([]rune, 0, len(name))\n\n\twordWalker(name, wordWalkerFunc(true, &runes))\n\n\treturn sanitizeKeywords(string(runes))\n}\n\ntype wordInfo struct {\n\tWordOffset         int\n\tWord               string\n\tMatchCommonInitial bool\n\tHasCommonInitial   bool\n}\n\n// This function is based on the following code.\n// https://github.com/golang/lint/blob/06c8688daad7faa9da5a0c2f163a3d14aac986ca/lint.go#L679\nfunc wordWalker(str string, f func(*wordInfo)) {\n\trunes := []rune(strings.TrimFunc(str, isDelimiter))\n\tw, i, wo := 0, 0, 0 // index of start of word, scan, word offset\n\thasCommonInitial := false\n\tfor i+1 <= len(runes) {\n\t\teow := false // whether we hit the end of a word\n\t\tswitch {\n\t\tcase i+1 == len(runes):\n\t\t\teow = true\n\t\tcase isDelimiter(runes[i+1]):\n\t\t\t// underscore; shift the remainder forward over any run of underscores\n\t\t\teow = true\n\t\t\tn := 1\n\t\t\tfor i+n+1 < len(runes) && isDelimiter(runes[i+n+1]) {\n\t\t\t\tn++\n\t\t\t}\n\n\t\t\t// Leave at most one underscore if the underscore is between two digits\n\t\t\tif i+n+1 < len(runes) && unicode.IsDigit(runes[i]) && unicode.IsDigit(runes[i+n+1]) {\n\t\t\t\tn--\n\t\t\t}\n\n\t\t\tcopy(runes[i+1:], runes[i+n+1:])\n\t\t\trunes = runes[:len(runes)-n]\n\t\tcase unicode.IsLower(runes[i]) && !unicode.IsLower(runes[i+1]):\n\t\t\t// lower->non-lower\n\t\t\teow = true\n\t\t}\n\t\ti++\n\n\t\tinitialisms := GetInitialisms()\n\t\t// [w,i) is a word.\n\t\tword := string(runes[w:i])\n\t\tif !eow && initialisms[word] && !unicode.IsLower(runes[i]) {\n\t\t\t// through\n\t\t\t// split IDFoo → ID, Foo\n\t\t\t// but URLs → URLs\n\t\t} else if !eow {\n\t\t\tif initialisms[word] {\n\t\t\t\thasCommonInitial = true\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tmatchCommonInitial := false\n\t\tupperWord := strings.ToUpper(word)\n\t\tif initialisms[upperWord] {\n\t\t\t// If the uppercase word (string(runes[w:i]) is \"ID\" or \"IP\"\n\t\t\t// AND\n\t\t\t// the word is the first two characters of the current word\n\t\t\t// AND\n\t\t\t// that is not the end of the word\n\t\t\t// AND\n\t\t\t// the length of the remaining string is greater than 3\n\t\t\t// AND\n\t\t\t// the third rune is an uppercase one\n\t\t\t// THEN\n\t\t\t// do NOT count this as an initialism.\n\t\t\tswitch upperWord {\n\t\t\tcase \"ID\", \"IP\":\n\t\t\t\tif remainingRunes := runes[w:]; word == string(remainingRunes[:2]) && !eow &&\n\t\t\t\t\tlen(remainingRunes) > 3 &&\n\t\t\t\t\tunicode.IsUpper(remainingRunes[3]) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\thasCommonInitial = true\n\t\t\tmatchCommonInitial = true\n\t\t}\n\n\t\tf(&wordInfo{\n\t\t\tWordOffset:         wo,\n\t\t\tWord:               word,\n\t\t\tMatchCommonInitial: matchCommonInitial,\n\t\t\tHasCommonInitial:   hasCommonInitial,\n\t\t})\n\t\thasCommonInitial = false\n\t\tw = i\n\t\two++\n\t}\n}\n\nvar keywords = []string{\n\t\"break\",\n\t\"default\",\n\t\"func\",\n\t\"interface\",\n\t\"select\",\n\t\"case\",\n\t\"defer\",\n\t\"go\",\n\t\"map\",\n\t\"struct\",\n\t\"chan\",\n\t\"else\",\n\t\"goto\",\n\t\"package\",\n\t\"switch\",\n\t\"const\",\n\t\"fallthrough\",\n\t\"if\",\n\t\"range\",\n\t\"type\",\n\t\"continue\",\n\t\"for\",\n\t\"import\",\n\t\"return\",\n\t\"var\",\n\t\"_\",\n}\n\n// sanitizeKeywords prevents collisions with go keywords for arguments to resolver functions\nfunc sanitizeKeywords(name string) string {\n\tif slices.Contains(keywords, name) {\n\t\treturn name + \"Arg\"\n\t}\n\treturn name\n}\n\nfunc rawQuote(s string) string {\n\treturn \"`\" + strings.ReplaceAll(s, \"`\", \"`+\\\"`\\\"+`\") + \"`\"\n}\n\nfunc notNil(field string, data any) bool {\n\tv := reflect.ValueOf(data)\n\n\tif v.Kind() == reflect.Ptr {\n\t\tv = v.Elem()\n\t}\n\tif v.Kind() != reflect.Struct {\n\t\treturn false\n\t}\n\tval := v.FieldByName(field)\n\n\treturn val.IsValid() && !val.IsNil()\n}\n\nfunc StrSplit(s, sep string) []string {\n\treturn strings.Split(s, sep)\n}\n\nfunc Dump(val any) string {\n\tswitch val := val.(type) {\n\tcase int:\n\t\treturn strconv.Itoa(val)\n\tcase int64:\n\t\treturn strconv.FormatInt(val, 10)\n\tcase float64:\n\t\treturn fmt.Sprintf(\"%f\", val)\n\tcase string:\n\t\treturn strconv.Quote(val)\n\tcase bool:\n\t\treturn strconv.FormatBool(val)\n\tcase nil:\n\t\treturn \"nil\"\n\tcase []any:\n\t\tvar parts []string\n\t\tfor _, part := range val {\n\t\t\tparts = append(parts, Dump(part))\n\t\t}\n\t\treturn \"[]any{\" + strings.Join(parts, \",\") + \"}\"\n\tcase map[string]any:\n\t\tbuf := bytes.Buffer{}\n\t\tbuf.WriteString(\"map[string]any{\")\n\t\tvar keys []string\n\t\tfor key := range val {\n\t\t\tkeys = append(keys, key)\n\t\t}\n\t\tsort.Strings(keys)\n\n\t\tfor _, key := range keys {\n\t\t\tdata := val[key]\n\n\t\t\tbuf.WriteString(strconv.Quote(key))\n\t\t\tbuf.WriteString(\":\")\n\t\t\tbuf.WriteString(Dump(data))\n\t\t\tbuf.WriteString(\",\")\n\t\t}\n\t\tbuf.WriteString(\"}\")\n\t\treturn buf.String()\n\tdefault:\n\t\tpanic(fmt.Errorf(\"unsupported type %T\", val))\n\t}\n}\n\nfunc prefixLines(prefix, s string) string {\n\treturn prefix + strings.ReplaceAll(s, \"\\n\", \"\\n\"+prefix)\n}\n\nfunc resolveName(name string, skip int) string {\n\tif name[0] == '.' {\n\t\t// load path relative to calling source file\n\t\t_, callerFile, _, _ := runtime.Caller(skip + 1)\n\t\treturn filepath.Join(filepath.Dir(callerFile), name[1:])\n\t}\n\n\t// load path relative to this directory\n\t_, callerFile, _, _ := runtime.Caller(0)\n\treturn filepath.Join(filepath.Dir(callerFile), name)\n}\n\nfunc render(filename string, tpldata any) (*bytes.Buffer, error) {\n\tt := template.New(\"\").Funcs(Funcs())\n\n\tb, err := os.ReadFile(filename)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tt, err = t.New(filepath.Base(filename)).Parse(string(b))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tbuf := &bytes.Buffer{}\n\treturn buf, t.Execute(buf, tpldata)\n}\n\nfunc write(filename string, b []byte, packages *code.Packages, opts imports.PruneOptions) error {\n\terr := os.MkdirAll(filepath.Dir(filename), 0o755)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to create directory: %w\", err)\n\t}\n\n\tformatted, err := imports.Prune(filename, b, packages, opts)\n\tif err != nil {\n\t\tfmt.Fprintf(os.Stderr, \"gofmt failed on %s: %s\\n\", filepath.Base(filename), err.Error())\n\t\tformatted = b\n\t}\n\n\t// Skip write if content is unchanged - preserves mtime for Go build cache\n\texisting, readErr := os.ReadFile(filename)\n\tif readErr == nil && bytes.Equal(existing, formatted) {\n\t\treturn nil\n\t}\n\n\treturn os.WriteFile(filename, formatted, 0o644)\n}\n\nvar pkgReplacer = strings.NewReplacer(\n\t\"/\", \"ᚋ\",\n\t\".\", \"ᚗ\",\n\t\"-\", \"ᚑ\",\n\t\"~\", \"א\",\n)\n\nfunc TypeIdentifier(t types.Type) string {\n\tres := \"\"\n\tfor {\n\t\tswitch it := code.Unalias(t).(type) {\n\t\tcase *types.Pointer:\n\t\t\tt.Underlying()\n\t\t\tres += \"ᚖ\"\n\t\t\tt = it.Elem()\n\t\tcase *types.Slice:\n\t\t\tres += \"ᚕ\"\n\t\t\tt = it.Elem()\n\t\tcase *types.Named:\n\t\t\tres += pkgReplacer.Replace(it.Obj().Pkg().Path())\n\t\t\tres += \"ᚐ\"\n\t\t\tres += it.Obj().Name()\n\t\t\treturn res\n\t\tcase *types.Basic:\n\t\t\tres += it.Name()\n\t\t\treturn res\n\t\tcase *types.Map:\n\t\t\tres += \"map\"\n\t\t\treturn res\n\t\tcase *types.Interface:\n\t\t\tres += \"interface\"\n\t\t\treturn res\n\t\tdefault:\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T\", it))\n\t\t}\n\t}\n}\n\n// CommonInitialisms is a set of common initialisms.\n// Only add entries that are highly unlikely to be non-initialisms.\n// For instance, \"ID\" is fine (Freudian code is rare), but \"AND\" is not.\nvar CommonInitialisms = map[string]bool{\n\t\"ACL\":   true,\n\t\"API\":   true,\n\t\"ASCII\": true,\n\t\"CPU\":   true,\n\t\"CSS\":   true,\n\t\"CSV\":   true,\n\t\"DNS\":   true,\n\t\"EOF\":   true,\n\t\"GUID\":  true,\n\t\"HTML\":  true,\n\t\"HTTP\":  true,\n\t\"HTTPS\": true,\n\t\"ICMP\":  true,\n\t\"ID\":    true,\n\t\"IP\":    true,\n\t\"JSON\":  true,\n\t\"KVK\":   true,\n\t\"LHS\":   true,\n\t\"PDF\":   true,\n\t\"PGP\":   true,\n\t\"QPS\":   true,\n\t\"QR\":    true,\n\t\"RAM\":   true,\n\t\"RHS\":   true,\n\t\"RPC\":   true,\n\t\"SLA\":   true,\n\t\"SMTP\":  true,\n\t\"SQL\":   true,\n\t\"SSH\":   true,\n\t\"SVG\":   true,\n\t\"TCP\":   true,\n\t\"TLS\":   true,\n\t\"TTL\":   true,\n\t\"UDP\":   true,\n\t\"UI\":    true,\n\t\"UID\":   true,\n\t\"URI\":   true,\n\t\"URL\":   true,\n\t\"UTF8\":  true,\n\t\"UUID\":  true,\n\t\"VM\":    true,\n\t\"XML\":   true,\n\t\"XMPP\":  true,\n\t\"XSRF\":  true,\n\t\"XSS\":   true,\n\t\"AWS\":   true,\n\t\"GCP\":   true,\n}\n\n// GetInitialisms returns the initialisms to capitalize in Go names. If unchanged, default\n// initialisms will be returned\nvar GetInitialisms = func() map[string]bool {\n\treturn CommonInitialisms\n}\n"
  },
  {
    "path": "codegen/templates/templates_test.go",
    "content": "package templates\n\nimport (\n\t\"embed\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/internal/code\"\n)\n\n//go:embed *.gotpl\nvar templateFS embed.FS\n\nfunc TestToGo(t *testing.T) {\n\trequire.Equal(t, \"ToCamel\", ToGo(\"TO_CAMEL\"))\n\trequire.Equal(t, \"ToCamel\", ToGo(\"to_camel\"))\n\trequire.Equal(t, \"ToCamel\", ToGo(\"toCamel\"))\n\trequire.Equal(t, \"ToCamel\", ToGo(\"ToCamel\"))\n\trequire.Equal(t, \"ToCamel\", ToGo(\"to-camel\"))\n\trequire.Equal(t, \"ToCamel\", ToGo(\"-to-camel\"))\n\trequire.Equal(t, \"ToCamel\", ToGo(\"_to-camel\"))\n\trequire.Equal(t, \"_\", ToGo(\"_\"))\n\n\trequire.Equal(t, \"RelatedURLs\", ToGo(\"RelatedURLs\"))\n\trequire.Equal(t, \"ImageIDs\", ToGo(\"ImageIDs\"))\n\trequire.Equal(t, \"FooID\", ToGo(\"FooID\"))\n\trequire.Equal(t, \"IDFoo\", ToGo(\"IDFoo\"))\n\trequire.Equal(t, \"FooASCII\", ToGo(\"FooASCII\"))\n\trequire.Equal(t, \"ASCIIFoo\", ToGo(\"ASCIIFoo\"))\n\trequire.Equal(t, \"FooUTF8\", ToGo(\"FooUTF8\"))\n\trequire.Equal(t, \"UTF8Foo\", ToGo(\"UTF8Foo\"))\n\trequire.Equal(t, \"JSONEncoding\", ToGo(\"JSONEncoding\"))\n\n\trequire.Equal(t, \"A\", ToGo(\"A\"))\n\trequire.Equal(t, \"ID\", ToGo(\"ID\"))\n\trequire.Equal(t, \"ID\", ToGo(\"id\"))\n\trequire.Empty(t, ToGo(\"\"))\n\n\trequire.Equal(t, \"RelatedUrls\", ToGo(\"RelatedUrls\"))\n\trequire.Equal(t, \"ITicket\", ToGo(\"ITicket\"))\n\trequire.Equal(t, \"FooTicket\", ToGo(\"fooTicket\"))\n\n\trequire.Equal(t, \"Idle\", ToGo(\"IDLE\"))\n\trequire.Equal(t, \"Idle\", ToGo(\"Idle\"))\n\trequire.Equal(t, \"Idle\", ToGo(\"idle\"))\n\trequire.Equal(t, \"Identities\", ToGo(\"IDENTITIES\"))\n\trequire.Equal(t, \"Identities\", ToGo(\"Identities\"))\n\trequire.Equal(t, \"Identities\", ToGo(\"identities\"))\n\trequire.Equal(t, \"Iphone\", ToGo(\"IPHONE\"))\n\trequire.Equal(t, \"IPhone\", ToGo(\"iPHONE\"))\n\trequire.Equal(t, \"UserIdentity\", ToGo(\"USER_IDENTITY\"))\n\trequire.Equal(t, \"UserIdentity\", ToGo(\"UserIdentity\"))\n\trequire.Equal(t, \"UserIdentity\", ToGo(\"userIdentity\"))\n}\n\nfunc TestToGoPrivate(t *testing.T) {\n\trequire.Equal(t, \"toCamel\", ToGoPrivate(\"TO_CAMEL\"))\n\trequire.Equal(t, \"toCamel\", ToGoPrivate(\"to_camel\"))\n\trequire.Equal(t, \"toCamel\", ToGoPrivate(\"toCamel\"))\n\trequire.Equal(t, \"toCamel\", ToGoPrivate(\"ToCamel\"))\n\trequire.Equal(t, \"toCamel\", ToGoPrivate(\"to-camel\"))\n\n\trequire.Equal(t, \"relatedURLs\", ToGoPrivate(\"RelatedURLs\"))\n\trequire.Equal(t, \"imageIDs\", ToGoPrivate(\"ImageIDs\"))\n\trequire.Equal(t, \"fooID\", ToGoPrivate(\"FooID\"))\n\trequire.Equal(t, \"idFoo\", ToGoPrivate(\"IDFoo\"))\n\trequire.Equal(t, \"fooASCII\", ToGoPrivate(\"FooASCII\"))\n\trequire.Equal(t, \"asciiFoo\", ToGoPrivate(\"ASCIIFoo\"))\n\trequire.Equal(t, \"fooUTF8\", ToGoPrivate(\"FooUTF8\"))\n\trequire.Equal(t, \"utf8Foo\", ToGoPrivate(\"UTF8Foo\"))\n\trequire.Equal(t, \"jsonEncoding\", ToGoPrivate(\"JSONEncoding\"))\n\n\trequire.Equal(t, \"relatedUrls\", ToGoPrivate(\"RelatedUrls\"))\n\trequire.Equal(t, \"iTicket\", ToGoPrivate(\"ITicket\"))\n\n\trequire.Equal(t, \"rangeArg\", ToGoPrivate(\"Range\"))\n\n\trequire.Equal(t, \"a\", ToGoPrivate(\"A\"))\n\trequire.Equal(t, \"id\", ToGoPrivate(\"ID\"))\n\trequire.Equal(t, \"id\", ToGoPrivate(\"id\"))\n\trequire.Empty(t, ToGoPrivate(\"\"))\n\trequire.Equal(t, \"_\", ToGoPrivate(\"_\"))\n\n\trequire.Equal(t, \"idle\", ToGoPrivate(\"IDLE\"))\n\trequire.Equal(t, \"idle\", ToGoPrivate(\"Idle\"))\n\trequire.Equal(t, \"idle\", ToGoPrivate(\"idle\"))\n\trequire.Equal(t, \"identities\", ToGoPrivate(\"IDENTITIES\"))\n\trequire.Equal(t, \"identities\", ToGoPrivate(\"Identities\"))\n\trequire.Equal(t, \"identities\", ToGoPrivate(\"identities\"))\n\trequire.Equal(t, \"iphone\", ToGoPrivate(\"IPHONE\"))\n\trequire.Equal(t, \"iPhone\", ToGoPrivate(\"iPHONE\"))\n}\n\nfunc TestToGoModelName(t *testing.T) {\n\ttype aTest struct {\n\t\tinput    [][]string\n\t\texpected []string\n\t}\n\n\ttheTests := []aTest{\n\t\t{\n\t\t\tinput:    [][]string{{\"MyValue\"}},\n\t\t\texpected: []string{\"MyValue\"},\n\t\t},\n\t\t{\n\t\t\tinput:    [][]string{{\"MyValue\"}, {\"myValue\"}},\n\t\t\texpected: []string{\"MyValue\", \"MyValue0\"},\n\t\t},\n\t\t{\n\t\t\tinput:    [][]string{{\"MyValue\"}, {\"YourValue\"}},\n\t\t\texpected: []string{\"MyValue\", \"YourValue\"},\n\t\t},\n\t\t{\n\t\t\tinput:    [][]string{{\"MyEnumName\", \"Value\"}},\n\t\t\texpected: []string{\"MyEnumNameValue\"},\n\t\t},\n\t\t{\n\t\t\tinput:    [][]string{{\"MyEnumName\", \"Value\"}, {\"MyEnumName\", \"value\"}},\n\t\t\texpected: []string{\"MyEnumNameValue\", \"MyEnumNamevalue\"},\n\t\t},\n\t\t{\n\t\t\tinput:    [][]string{{\"MyEnumName\", \"value\"}, {\"MyEnumName\", \"Value\"}},\n\t\t\texpected: []string{\"MyEnumNameValue\", \"MyEnumNameValue0\"},\n\t\t},\n\t\t{\n\t\t\tinput: [][]string{\n\t\t\t\t{\"MyEnumName\", \"Value\"},\n\t\t\t\t{\"MyEnumName\", \"value\"},\n\t\t\t\t{\"MyEnumName\", \"vALue\"},\n\t\t\t\t{\"MyEnumName\", \"VALue\"},\n\t\t\t},\n\t\t\texpected: []string{\n\t\t\t\t\"MyEnumNameValue\",\n\t\t\t\t\"MyEnumNamevalue\",\n\t\t\t\t\"MyEnumNameVALue\",\n\t\t\t\t\"MyEnumNameVALue0\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tinput: [][]string{\n\t\t\t\t{\"MyEnumName\", \"TitleValue\"},\n\t\t\t\t{\"MyEnumName\", \"title_value\"},\n\t\t\t\t{\"MyEnumName\", \"title_Value\"},\n\t\t\t\t{\"MyEnumName\", \"Title_Value\"},\n\t\t\t},\n\t\t\texpected: []string{\n\t\t\t\t\"MyEnumNameTitleValue\",\n\t\t\t\t\"MyEnumNametitle_value\",\n\t\t\t\t\"MyEnumNametitle_Value\",\n\t\t\t\t\"MyEnumNameTitle_Value\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tinput:    [][]string{{\"MyEnumName\", \"TitleValue\", \"OtherValue\"}},\n\t\t\texpected: []string{\"MyEnumNameTitleValueOtherValue\"},\n\t\t},\n\t\t{\n\t\t\tinput: [][]string{\n\t\t\t\t{\"MyEnumName\", \"TitleValue\", \"OtherValue\"},\n\t\t\t\t{\"MyEnumName\", \"title_value\", \"OtherValue\"},\n\t\t\t},\n\t\t\texpected: []string{\"MyEnumNameTitleValueOtherValue\", \"MyEnumNametitle_valueOtherValue\"},\n\t\t},\n\t}\n\n\tfor ti, at := range theTests {\n\t\tresetModelNames()\n\t\tt.Run(fmt.Sprintf(\"modelname-%d\", ti), func(t *testing.T) {\n\t\t\tat := at\n\t\t\tfor i, n := range at.input {\n\t\t\t\trequire.Equal(t, at.expected[i], ToGoModelName(n...))\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestToGoPrivateModelName(t *testing.T) {\n\ttype aTest struct {\n\t\tinput    [][]string\n\t\texpected []string\n\t}\n\n\ttheTests := []aTest{\n\t\t{\n\t\t\tinput:    [][]string{{\"MyValue\"}},\n\t\t\texpected: []string{\"myValue\"},\n\t\t},\n\t\t{\n\t\t\tinput:    [][]string{{\"MyValue\"}, {\"myValue\"}},\n\t\t\texpected: []string{\"myValue\", \"myValue0\"},\n\t\t},\n\t\t{\n\t\t\tinput:    [][]string{{\"MyValue\"}, {\"YourValue\"}},\n\t\t\texpected: []string{\"myValue\", \"yourValue\"},\n\t\t},\n\t\t{\n\t\t\tinput:    [][]string{{\"MyEnumName\", \"Value\"}},\n\t\t\texpected: []string{\"myEnumNameValue\"},\n\t\t},\n\t\t{\n\t\t\tinput:    [][]string{{\"MyEnumName\", \"Value\"}, {\"MyEnumName\", \"value\"}},\n\t\t\texpected: []string{\"myEnumNameValue\", \"myEnumNamevalue\"},\n\t\t},\n\t\t{\n\t\t\tinput:    [][]string{{\"MyEnumName\", \"value\"}, {\"MyEnumName\", \"Value\"}},\n\t\t\texpected: []string{\"myEnumNameValue\", \"myEnumNameValue0\"},\n\t\t},\n\t\t{\n\t\t\tinput: [][]string{\n\t\t\t\t{\"MyEnumName\", \"Value\"},\n\t\t\t\t{\"MyEnumName\", \"value\"},\n\t\t\t\t{\"MyEnumName\", \"vALue\"},\n\t\t\t\t{\"MyEnumName\", \"VALue\"},\n\t\t\t},\n\t\t\texpected: []string{\n\t\t\t\t\"myEnumNameValue\",\n\t\t\t\t\"myEnumNamevalue\",\n\t\t\t\t\"myEnumNameVALue\",\n\t\t\t\t\"myEnumNameVALue0\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tinput: [][]string{\n\t\t\t\t{\"MyEnumName\", \"TitleValue\"},\n\t\t\t\t{\"MyEnumName\", \"title_value\"},\n\t\t\t\t{\"MyEnumName\", \"title_Value\"},\n\t\t\t\t{\"MyEnumName\", \"Title_Value\"},\n\t\t\t},\n\t\t\texpected: []string{\n\t\t\t\t\"myEnumNameTitleValue\",\n\t\t\t\t\"myEnumNametitle_value\",\n\t\t\t\t\"myEnumNametitle_Value\",\n\t\t\t\t\"myEnumNameTitle_Value\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tinput:    [][]string{{\"MyEnumName\", \"TitleValue\", \"OtherValue\"}},\n\t\t\texpected: []string{\"myEnumNameTitleValueOtherValue\"},\n\t\t},\n\t\t{\n\t\t\tinput: [][]string{\n\t\t\t\t{\"MyEnumName\", \"TitleValue\", \"OtherValue\"},\n\t\t\t\t{\"MyEnumName\", \"title_value\", \"OtherValue\"},\n\t\t\t},\n\t\t\texpected: []string{\"myEnumNameTitleValueOtherValue\", \"myEnumNametitle_valueOtherValue\"},\n\t\t},\n\t}\n\n\tfor ti, at := range theTests {\n\t\tresetModelNames()\n\t\tt.Run(fmt.Sprintf(\"modelname-%d\", ti), func(t *testing.T) {\n\t\t\tat := at\n\t\t\tfor i, n := range at.input {\n\t\t\t\trequire.Equal(t, at.expected[i], ToGoPrivateModelName(n...))\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc Test_wordWalker(t *testing.T) {\n\tmakeInput := func(str string) []*wordInfo {\n\t\tresultList := make([]*wordInfo, 0)\n\t\twordWalker(str, func(info *wordInfo) {\n\t\t\tresultList = append(resultList, info)\n\t\t})\n\t\treturn resultList\n\t}\n\n\ttype aTest struct {\n\t\texpected []*wordInfo\n\t\tinput    []*wordInfo\n\t}\n\n\ttheTests := []aTest{\n\t\t{\n\t\t\tinput:    makeInput(\"TO_CAMEL\"),\n\t\t\texpected: []*wordInfo{{Word: \"TO\"}, {WordOffset: 1, Word: \"CAMEL\"}},\n\t\t},\n\t\t{\n\t\t\tinput:    makeInput(\"to_camel\"),\n\t\t\texpected: []*wordInfo{{Word: \"to\"}, {WordOffset: 1, Word: \"camel\"}},\n\t\t},\n\t\t{\n\t\t\tinput:    makeInput(\"toCamel\"),\n\t\t\texpected: []*wordInfo{{Word: \"to\"}, {WordOffset: 1, Word: \"Camel\"}},\n\t\t},\n\t\t{\n\t\t\tinput:    makeInput(\"ToCamel\"),\n\t\t\texpected: []*wordInfo{{Word: \"To\"}, {WordOffset: 1, Word: \"Camel\"}},\n\t\t},\n\t\t{\n\t\t\tinput:    makeInput(\"to-camel\"),\n\t\t\texpected: []*wordInfo{{Word: \"to\"}, {WordOffset: 1, Word: \"camel\"}},\n\t\t},\n\t\t{\n\t\t\tinput: makeInput(\"RelatedURLs\"),\n\t\t\texpected: []*wordInfo{\n\t\t\t\t{Word: \"Related\"},\n\t\t\t\t{WordOffset: 1, Word: \"URLs\", HasCommonInitial: true},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tinput: makeInput(\"ImageIDs\"),\n\t\t\texpected: []*wordInfo{\n\t\t\t\t{Word: \"Image\"},\n\t\t\t\t{WordOffset: 1, Word: \"IDs\", HasCommonInitial: true},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tinput: makeInput(\"FooID\"),\n\t\t\texpected: []*wordInfo{\n\t\t\t\t{Word: \"Foo\"},\n\t\t\t\t{WordOffset: 1, Word: \"ID\", HasCommonInitial: true, MatchCommonInitial: true},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tinput: makeInput(\"IDFoo\"),\n\t\t\texpected: []*wordInfo{\n\t\t\t\t{Word: \"ID\", HasCommonInitial: true, MatchCommonInitial: true},\n\t\t\t\t{WordOffset: 1, Word: \"Foo\"},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tinput: makeInput(\"FooASCII\"),\n\t\t\texpected: []*wordInfo{\n\t\t\t\t{Word: \"Foo\"},\n\t\t\t\t{WordOffset: 1, Word: \"ASCII\", HasCommonInitial: true, MatchCommonInitial: true},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tinput: makeInput(\"ASCIIFoo\"),\n\t\t\texpected: []*wordInfo{\n\t\t\t\t{Word: \"ASCII\", HasCommonInitial: true, MatchCommonInitial: true},\n\t\t\t\t{WordOffset: 1, Word: \"Foo\"},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tinput: makeInput(\"FooUTF8\"),\n\t\t\texpected: []*wordInfo{\n\t\t\t\t{Word: \"Foo\"},\n\t\t\t\t{WordOffset: 1, Word: \"UTF8\", HasCommonInitial: true, MatchCommonInitial: true},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tinput: makeInput(\"UTF8Foo\"),\n\t\t\texpected: []*wordInfo{\n\t\t\t\t{Word: \"UTF8\", HasCommonInitial: true, MatchCommonInitial: true},\n\t\t\t\t{WordOffset: 1, Word: \"Foo\"},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tinput:    makeInput(\"A\"),\n\t\t\texpected: []*wordInfo{{Word: \"A\"}},\n\t\t},\n\t\t{\n\t\t\tinput:    makeInput(\"ID\"),\n\t\t\texpected: []*wordInfo{{Word: \"ID\", HasCommonInitial: true, MatchCommonInitial: true}},\n\t\t},\n\t\t{\n\t\t\tinput:    makeInput(\"id\"),\n\t\t\texpected: []*wordInfo{{Word: \"id\", HasCommonInitial: true, MatchCommonInitial: true}},\n\t\t},\n\t\t{\n\t\t\tinput:    makeInput(\"\"),\n\t\t\texpected: make([]*wordInfo, 0),\n\t\t},\n\t\t{\n\t\t\tinput:    makeInput(\"RelatedUrls\"),\n\t\t\texpected: []*wordInfo{{Word: \"Related\"}, {WordOffset: 1, Word: \"Urls\"}},\n\t\t},\n\t\t{\n\t\t\tinput:    makeInput(\"USER_IDENTITY\"),\n\t\t\texpected: []*wordInfo{{Word: \"USER\"}, {WordOffset: 1, Word: \"IDENTITY\"}},\n\t\t},\n\t\t{\n\t\t\tinput:    makeInput(\"ITicket\"),\n\t\t\texpected: []*wordInfo{{Word: \"ITicket\"}},\n\t\t},\n\t}\n\n\tfor i, at := range theTests {\n\t\tt.Run(fmt.Sprintf(\"wordWalker-%d\", i), func(t *testing.T) {\n\t\t\trequire.Equal(t, at.expected, at.input)\n\t\t})\n\t}\n}\n\nfunc TestCenter(t *testing.T) {\n\trequire.Equal(t, \"fffff\", center(3, \"#\", \"fffff\"))\n\trequire.Equal(t, \"##fffff###\", center(10, \"#\", \"fffff\"))\n\trequire.Equal(t, \"###fffff###\", center(11, \"#\", \"fffff\"))\n}\n\nfunc TestTemplateOverride(t *testing.T) {\n\tf, err := os.CreateTemp(t.TempDir(), \"gqlgen\")\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tdefer f.Close()\n\terr = Render(Options{Template: \"hello\", Filename: f.Name(), Packages: code.NewPackages()})\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n}\n\nfunc TestRenderFS(t *testing.T) {\n\ttempDir := t.TempDir()\n\n\toutDir := filepath.Join(tempDir, \"output\")\n\n\t_ = os.Mkdir(outDir, 0o755)\n\n\tf, err := os.CreateTemp(outDir, \"gqlgen.go\")\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tdefer f.Close()\n\terr = Render(Options{TemplateFS: templateFS, Filename: f.Name(), Packages: code.NewPackages()})\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\texpectedString := \"package \\n\\nimport (\\n)\\nthis is my test package\"\n\tactualContents, _ := os.ReadFile(f.Name())\n\tactualContentsStr := string(actualContents)\n\n\t// don't look at last character since it's \\n on Linux and \\r\\n on Windows\n\tassert.Equal(t, expectedString, actualContentsStr[:len(expectedString)])\n}\n\nfunc TestDict(t *testing.T) {\n\ttests := []struct {\n\t\tname      string\n\t\tinput     []any\n\t\texpected  map[string]any\n\t\texpectErr bool\n\t}{\n\t\t{\n\t\t\tname:      \"valid key-value pairs\",\n\t\t\tinput:     []any{\"key1\", \"value1\", \"key2\", \"value2\"},\n\t\t\texpected:  map[string]any{\"key1\": \"value1\", \"key2\": \"value2\"},\n\t\t\texpectErr: false,\n\t\t},\n\t\t{\n\t\t\tname:      \"odd number of arguments\",\n\t\t\tinput:     []any{\"key1\", \"value1\", \"key2\"},\n\t\t\texpected:  nil,\n\t\t\texpectErr: true,\n\t\t},\n\t\t{\n\t\t\tname:      \"non-string key\",\n\t\t\tinput:     []any{\"key1\", \"value1\", 123, \"value2\"},\n\t\t\texpected:  nil,\n\t\t\texpectErr: true,\n\t\t},\n\t\t{\n\t\t\tname:      \"empty input\",\n\t\t\tinput:     []any{},\n\t\t\texpected:  map[string]any{},\n\t\t\texpectErr: false,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tresult, err := dict(tt.input...)\n\t\t\tif tt.expectErr {\n\t\t\t\trequire.Error(t, err)\n\t\t\t} else {\n\t\t\t\trequire.NoError(t, err)\n\t\t\t\tassert.Equal(t, tt.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "codegen/templates/test.gotpl",
    "content": "this is my test package\n"
  },
  {
    "path": "codegen/templates/test_.gotpl",
    "content": "this will not be included\n"
  },
  {
    "path": "codegen/templates/testdata/a/bar/bar.go",
    "content": "package bar\n"
  },
  {
    "path": "codegen/templates/testdata/b/bar/bar.go",
    "content": "package bar\n"
  },
  {
    "path": "codegen/templates/testdata/pkg_mismatch/turtles.go",
    "content": "package turtles\n"
  },
  {
    "path": "codegen/testserver/benchmark/benchmark_test.go",
    "content": "//go:generate go run ../../../testdata/gqlgen.go -config gqlgen.yml -stub stub.go\n\npackage benchmark\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/99designs/gqlgen/codegen/testserver/benchmark/generated\"\n\t\"github.com/99designs/gqlgen/codegen/testserver/benchmark/generated/models\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/executor\"\n)\n\nfunc BenchmarkResolvers(b *testing.B) {\n\tb.StopTimer()\n\n\tresolvers := &Stub{}\n\tresolvers.QueryResolver.Users = func(ctx context.Context, query *string, first *int, last *int, before *string, after *string, orderBy models.UserOrderBy) (*models.UserConnection, error) {\n\t\treturn &models.UserConnection{\n\t\t\tEdges: []*models.UserEdge{\n\t\t\t\t{\n\t\t\t\t\tCursor: \"abc\",\n\t\t\t\t\tNode: &models.User{\n\t\t\t\t\t\tFirstName: \"John\",\n\t\t\t\t\t\tLastName:  \"Doe\",\n\t\t\t\t\t\tEmail:     \"johndoe@acme.inc\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tPageInfo: &models.PageInfo{\n\t\t\t\tHasNextPage:     false,\n\t\t\t\tHasPreviousPage: false,\n\t\t\t\tStartCursor:     \"abc\",\n\t\t\t\tEndCursor:       \"abc\",\n\t\t\t},\n\t\t\tTotalCount: 1,\n\t\t}, nil\n\t}\n\n\texec := executor.New(generated.NewExecutableSchema(generated.Config{\n\t\tResolvers: resolvers,\n\t}))\n\n\tfragment := `fragment userConnection on UserConnection {\nedges {\n\t\t\tcursor\n\t\t\tnode {\n\t\t\t\tfirstName\n\t\t\t\tlastName\n\t\t\t\temail\n\t\t\t}\n\t\t}\n\t\tpageInfo {\n\t\t\thasNextPage\n\t\t\thasPreviousPage\n\t\t\tstartCursor\n\t\t\tendCursor\n\t\t}\n\t\ttotalCount}`\n\n\tbenchmarks := []struct {\n\t\tname   string\n\t\tparams *graphql.RawParams\n\t}{\n\t\t{\n\t\t\tname: \"query_no_params\",\n\t\t\tparams: &graphql.RawParams{\n\t\t\t\tQuery: fragment + `\nquery GetUsersConnection {\n\tusers {\n\t\t... userConnection\n\t}\n}\n`,\n\t\t\t\tOperationName: \"GetUsersConnection\",\n\t\t\t\tVariables:     nil,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"query_1_param\",\n\t\t\tparams: &graphql.RawParams{\n\t\t\t\tQuery: fragment + `\nquery GetUsersConnection($first: Int) {\n\tusers(first: $first) {\n\t\t... userConnection\n\t}\n}\n`,\n\t\t\t\tOperationName: \"GetUsersConnection\",\n\t\t\t\tVariables: map[string]any{\n\t\t\t\t\t\"first\": 1,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"query_2_params\",\n\t\t\tparams: &graphql.RawParams{\n\t\t\t\tQuery: fragment + `\nquery GetUsersConnection($query: String, $first: Int) {\n\tusers(query: $query, first: $first) {\n\t\t... userConnection\n\t}\n}\n`,\n\t\t\t\tOperationName: \"GetUsersConnection\",\n\t\t\t\tVariables: map[string]any{\n\t\t\t\t\t\"first\": 1,\n\t\t\t\t\t\"query\": \"john\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"query_3_params\",\n\t\t\tparams: &graphql.RawParams{\n\t\t\t\tQuery: fragment + `\nquery GetUsersConnection($query: String, $first: Int, $orderBy: UserOrderBy!) {\n\tusers(query: $query, first: $first, orderBy: $orderBy) {\n\t\t... userConnection\n\t}\n}\n`,\n\t\t\t\tOperationName: \"GetUsersConnection\",\n\t\t\t\tVariables: map[string]any{\n\t\t\t\t\t\"first\": 1,\n\t\t\t\t\t\"query\": \"john\",\n\t\t\t\t\t\"orderBy\": map[string]any{\n\t\t\t\t\t\t\"orderByField\":     \"FIRST_NAME\",\n\t\t\t\t\t\t\"orderByDirection\": \"DESCENDING\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"query_4_params\",\n\t\t\tparams: &graphql.RawParams{\n\t\t\t\tQuery: fragment + `\nquery GetUsersConnection($query: String, $first: Int, $before: String, $orderBy: UserOrderBy!) {\n\tusers(query: $query, first: $first, before: $before, orderBy: $orderBy) {\n\t\t... userConnection\n\t}\n}\n`,\n\t\t\t\tOperationName: \"GetUsersConnection\",\n\t\t\t\tVariables: map[string]any{\n\t\t\t\t\t\"first\":  1,\n\t\t\t\t\t\"query\":  \"john\",\n\t\t\t\t\t\"before\": \"abc\",\n\t\t\t\t\t\"orderBy\": map[string]any{\n\t\t\t\t\t\t\"orderByField\":     \"FIRST_NAME\",\n\t\t\t\t\t\t\"orderByDirection\": \"DESCENDING\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n\n\tb.StartTimer()\n\n\tfor _, benchmark := range benchmarks {\n\t\tb.Run(benchmark.name, func(b *testing.B) {\n\t\t\tfor i := 0; i < b.N; i++ {\n\t\t\t\tctx := graphql.StartOperationTrace(context.Background())\n\t\t\t\topCtx, errs := exec.CreateOperationContext(ctx, benchmark.params)\n\t\t\t\tif errs != nil {\n\t\t\t\t\tb.Fatal(errs)\n\t\t\t\t}\n\n\t\t\t\tresultHandler, ctx := exec.DispatchOperation(ctx, opCtx)\n\t\t\t\t_ = resultHandler(ctx)\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "codegen/testserver/benchmark/generated/models/models-gen.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage models\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n)\n\ntype PageInfo struct {\n\tHasNextPage     bool   `json:\"hasNextPage\"`\n\tHasPreviousPage bool   `json:\"hasPreviousPage\"`\n\tStartCursor     string `json:\"startCursor\"`\n\tEndCursor       string `json:\"endCursor\"`\n}\n\ntype Query struct {\n}\n\ntype User struct {\n\tFirstName string `json:\"firstName\"`\n\tLastName  string `json:\"lastName\"`\n\tEmail     string `json:\"email\"`\n}\n\ntype UserConnection struct {\n\tEdges      []*UserEdge `json:\"edges\"`\n\tPageInfo   *PageInfo   `json:\"pageInfo\"`\n\tTotalCount int         `json:\"totalCount\"`\n}\n\ntype UserEdge struct {\n\tCursor string `json:\"cursor\"`\n\tNode   *User  `json:\"node\"`\n}\n\ntype UserOrderBy struct {\n\tOrderByField     UserOrderField `json:\"orderByField\"`\n\tOrderByDirection OrderDirection `json:\"orderByDirection\"`\n}\n\ntype OrderDirection string\n\nconst (\n\tOrderDirectionAscending  OrderDirection = \"ASCENDING\"\n\tOrderDirectionDescending OrderDirection = \"DESCENDING\"\n)\n\nvar AllOrderDirection = []OrderDirection{\n\tOrderDirectionAscending,\n\tOrderDirectionDescending,\n}\n\nfunc (e OrderDirection) IsValid() bool {\n\tswitch e {\n\tcase OrderDirectionAscending, OrderDirectionDescending:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e OrderDirection) String() string {\n\treturn string(e)\n}\n\nfunc (e *OrderDirection) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = OrderDirection(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid OrderDirection\", str)\n\t}\n\treturn nil\n}\n\nfunc (e OrderDirection) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *OrderDirection) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e OrderDirection) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n\ntype UserOrderField string\n\nconst (\n\tUserOrderFieldFirstName UserOrderField = \"FIRST_NAME\"\n\tUserOrderFieldLastName  UserOrderField = \"LAST_NAME\"\n\tUserOrderFieldEmail     UserOrderField = \"EMAIL\"\n)\n\nvar AllUserOrderField = []UserOrderField{\n\tUserOrderFieldFirstName,\n\tUserOrderFieldLastName,\n\tUserOrderFieldEmail,\n}\n\nfunc (e UserOrderField) IsValid() bool {\n\tswitch e {\n\tcase UserOrderFieldFirstName, UserOrderFieldLastName, UserOrderFieldEmail:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e UserOrderField) String() string {\n\treturn string(e)\n}\n\nfunc (e *UserOrderField) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = UserOrderField(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid UserOrderField\", str)\n\t}\n\treturn nil\n}\n\nfunc (e UserOrderField) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *UserOrderField) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e UserOrderField) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n"
  },
  {
    "path": "codegen/testserver/benchmark/generated/prelude.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage generated\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) dir_defer_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"if\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"if\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"label\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"label\"] = arg1\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_isRepeatable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsRepeatable, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_locations,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Locations, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__DirectiveLocation2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_defaultValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DefaultValue, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_types,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Types(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_queryType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.QueryType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_mutationType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.MutationType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_subscriptionType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SubscriptionType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_directives,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Directives(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_kind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Kind(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__TypeKind2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_specifiedByURL,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SpecifiedByURL(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_fields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_interfaces,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Interfaces(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_possibleTypes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PossibleTypes(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_enumValues,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_inputFields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.InputFields(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_ofType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.OfType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_isOneOf,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsOneOf(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOBoolean2bool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNInt2int(ctx context.Context, v any) (int, error) {\n\tres, err := graphql.UnmarshalInt(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNInt2int(ctx context.Context, sel ast.SelectionSet, v int) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalInt(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOInt2ᚖint(ctx context.Context, v any) (*int, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalInt(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOInt2ᚖint(ctx context.Context, sel ast.SelectionSet, v *int) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalInt(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/benchmark/generated/resolvers/resolver.go",
    "content": "package resolver\n\n// THIS CODE WILL BE UPDATED WITH SCHEMA CHANGES. PREVIOUS IMPLEMENTATION FOR SCHEMA CHANGES WILL BE KEPT IN THE COMMENT SECTION. IMPLEMENTATION FOR UNCHANGED SCHEMA WILL BE KEPT.\n\nimport (\n\t\"context\"\n\n\t\"github.com/99designs/gqlgen/codegen/testserver/benchmark/generated\"\n\t\"github.com/99designs/gqlgen/codegen/testserver/benchmark/generated/models\"\n)\n\ntype Resolver struct{}\n\n// Users is the resolver for the users field.\nfunc (r *queryResolver) Users(ctx context.Context, query *string, first *int, last *int, before *string, after *string, orderBy models.UserOrderBy) (*models.UserConnection, error) {\n\tpanic(\"not implemented\")\n}\n\n// Query returns generated.QueryResolver implementation.\nfunc (r *Resolver) Query() generated.QueryResolver { return &queryResolver{r} }\n\ntype queryResolver struct{ *Resolver }\n\n// !!! WARNING !!!\n// The code below was going to be deleted when updating resolvers. It has been copied here so you have\n// one last chance to move it out of harms way if you want. There are two reasons this happens:\n//  - When renaming or deleting a resolver the old code will be put in here. You can safely delete\n//    it when you're done.\n//  - You have helper methods in this file. Move them out to keep these resolver files clean.\n/*\n\ttype Resolver struct{}\n*/\n"
  },
  {
    "path": "codegen/testserver/benchmark/generated/root_.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage generated\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/codegen/testserver/benchmark/generated/models\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n}\n\ntype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\ntype ResolverRoot interface {\n\tQuery() QueryResolver\n}\n\ntype DirectiveRoot struct {\n}\n\ntype ComplexityRoot struct {\n\tPageInfo struct {\n\t\tEndCursor       func(childComplexity int) int\n\t\tHasNextPage     func(childComplexity int) int\n\t\tHasPreviousPage func(childComplexity int) int\n\t\tStartCursor     func(childComplexity int) int\n\t}\n\n\tQuery struct {\n\t\tUsers func(childComplexity int, query *string, first *int, last *int, before *string, after *string, orderBy models.UserOrderBy) int\n\t}\n\n\tUser struct {\n\t\tEmail     func(childComplexity int) int\n\t\tFirstName func(childComplexity int) int\n\t\tLastName  func(childComplexity int) int\n\t}\n\n\tUserConnection struct {\n\t\tEdges      func(childComplexity int) int\n\t\tPageInfo   func(childComplexity int) int\n\t\tTotalCount func(childComplexity int) int\n\t}\n\n\tUserEdge struct {\n\t\tCursor func(childComplexity int) int\n\t\tNode   func(childComplexity int) int\n\t}\n}\n\ntype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.SchemaData != nil {\n\t\treturn e.SchemaData\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := newExecutionContext(nil, e, nil)\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"PageInfo.endCursor\":\n\t\tif e.ComplexityRoot.PageInfo.EndCursor == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PageInfo.EndCursor(childComplexity), true\n\n\tcase \"PageInfo.hasNextPage\":\n\t\tif e.ComplexityRoot.PageInfo.HasNextPage == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PageInfo.HasNextPage(childComplexity), true\n\n\tcase \"PageInfo.hasPreviousPage\":\n\t\tif e.ComplexityRoot.PageInfo.HasPreviousPage == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PageInfo.HasPreviousPage(childComplexity), true\n\n\tcase \"PageInfo.startCursor\":\n\t\tif e.ComplexityRoot.PageInfo.StartCursor == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PageInfo.StartCursor(childComplexity), true\n\n\tcase \"Query.users\":\n\t\tif e.ComplexityRoot.Query.Users == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_users_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Users(childComplexity, args[\"query\"].(*string), args[\"first\"].(*int), args[\"last\"].(*int), args[\"before\"].(*string), args[\"after\"].(*string), args[\"orderBy\"].(models.UserOrderBy)), true\n\n\tcase \"User.email\":\n\t\tif e.ComplexityRoot.User.Email == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.Email(childComplexity), true\n\n\tcase \"User.firstName\":\n\t\tif e.ComplexityRoot.User.FirstName == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.FirstName(childComplexity), true\n\n\tcase \"User.lastName\":\n\t\tif e.ComplexityRoot.User.LastName == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.LastName(childComplexity), true\n\n\tcase \"UserConnection.edges\":\n\t\tif e.ComplexityRoot.UserConnection.Edges == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.UserConnection.Edges(childComplexity), true\n\n\tcase \"UserConnection.pageInfo\":\n\t\tif e.ComplexityRoot.UserConnection.PageInfo == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.UserConnection.PageInfo(childComplexity), true\n\n\tcase \"UserConnection.totalCount\":\n\t\tif e.ComplexityRoot.UserConnection.TotalCount == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.UserConnection.TotalCount(childComplexity), true\n\n\tcase \"UserEdge.cursor\":\n\t\tif e.ComplexityRoot.UserEdge.Cursor == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.UserEdge.Cursor(childComplexity), true\n\n\tcase \"UserEdge.node\":\n\t\tif e.ComplexityRoot.UserEdge.Node == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.UserEdge.Node(childComplexity), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap(\n\t\tec.unmarshalInputUserOrderBy,\n\t)\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"../schema.graphql\", Input: `type PageInfo {\n    hasNextPage: Boolean!\n    hasPreviousPage: Boolean!\n    startCursor: String!\n    endCursor: String!\n}\n\nenum OrderDirection {\n    ASCENDING\n    DESCENDING\n}\n\nenum UserOrderField {\n    FIRST_NAME\n    LAST_NAME\n    EMAIL\n}\n\ninput UserOrderBy {\n    orderByField: UserOrderField!\n    orderByDirection: OrderDirection!\n}\n\ntype User {\n    firstName: String!\n    lastName: String!\n    email: String!\n}\n\ntype UserEdge {\n    cursor: String!\n    node: User!\n}\n\ntype UserConnection {\n    edges: [UserEdge!]!\n    pageInfo: PageInfo!\n    totalCount: Int!\n}\n\ntype Query {\n    users(\n        query: String\n        first: Int\n        last: Int\n        before: String\n        after: String\n        orderBy: UserOrderBy! = { orderByField: FIRST_NAME orderByDirection: ASCENDING }\n    ): UserConnection\n}\n`, BuiltIn: false},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n"
  },
  {
    "path": "codegen/testserver/benchmark/generated/schema.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage generated\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/codegen/testserver/benchmark/generated/models\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\ntype QueryResolver interface {\n\tUsers(ctx context.Context, query *string, first *int, last *int, before *string, after *string, orderBy models.UserOrderBy) (*models.UserConnection, error)\n}\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_users_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"query\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"query\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"first\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"first\"] = arg1\n\targ2, err := graphql.ProcessArgField(ctx, rawArgs, \"last\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"last\"] = arg2\n\targ3, err := graphql.ProcessArgField(ctx, rawArgs, \"before\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"before\"] = arg3\n\targ4, err := graphql.ProcessArgField(ctx, rawArgs, \"after\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"after\"] = arg4\n\targ5, err := graphql.ProcessArgField(ctx, rawArgs, \"orderBy\", ec.unmarshalNUserOrderBy2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋbenchmarkᚋgeneratedᚋmodelsᚐUserOrderBy)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"orderBy\"] = arg5\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _PageInfo_hasNextPage(ctx context.Context, field graphql.CollectedField, obj *models.PageInfo) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PageInfo_hasNextPage,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.HasNextPage, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PageInfo_hasNextPage(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PageInfo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PageInfo_hasPreviousPage(ctx context.Context, field graphql.CollectedField, obj *models.PageInfo) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PageInfo_hasPreviousPage,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.HasPreviousPage, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PageInfo_hasPreviousPage(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PageInfo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PageInfo_startCursor(ctx context.Context, field graphql.CollectedField, obj *models.PageInfo) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PageInfo_startCursor,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.StartCursor, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PageInfo_startCursor(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PageInfo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PageInfo_endCursor(ctx context.Context, field graphql.CollectedField, obj *models.PageInfo) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PageInfo_endCursor,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.EndCursor, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PageInfo_endCursor(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PageInfo\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_users(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_users,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().Users(ctx, fc.Args[\"query\"].(*string), fc.Args[\"first\"].(*int), fc.Args[\"last\"].(*int), fc.Args[\"before\"].(*string), fc.Args[\"after\"].(*string), fc.Args[\"orderBy\"].(models.UserOrderBy))\n\t\t},\n\t\tnil,\n\t\tec.marshalOUserConnection2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋbenchmarkᚋgeneratedᚋmodelsᚐUserConnection,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_users(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"edges\":\n\t\t\t\treturn ec.fieldContext_UserConnection_edges(ctx, field)\n\t\t\tcase \"pageInfo\":\n\t\t\t\treturn ec.fieldContext_UserConnection_pageInfo(ctx, field)\n\t\t\tcase \"totalCount\":\n\t\t\t\treturn ec.fieldContext_UserConnection_totalCount(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type UserConnection\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_users_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.IntrospectType(fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___schema,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.IntrospectSchema()\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_firstName(ctx context.Context, field graphql.CollectedField, obj *models.User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_firstName,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.FirstName, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_firstName(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_lastName(ctx context.Context, field graphql.CollectedField, obj *models.User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_lastName,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.LastName, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_lastName(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_email(ctx context.Context, field graphql.CollectedField, obj *models.User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_email,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Email, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_email(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _UserConnection_edges(ctx context.Context, field graphql.CollectedField, obj *models.UserConnection) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_UserConnection_edges,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Edges, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNUserEdge2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋbenchmarkᚋgeneratedᚋmodelsᚐUserEdgeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_UserConnection_edges(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"UserConnection\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"cursor\":\n\t\t\t\treturn ec.fieldContext_UserEdge_cursor(ctx, field)\n\t\t\tcase \"node\":\n\t\t\t\treturn ec.fieldContext_UserEdge_node(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type UserEdge\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _UserConnection_pageInfo(ctx context.Context, field graphql.CollectedField, obj *models.UserConnection) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_UserConnection_pageInfo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PageInfo, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNPageInfo2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋbenchmarkᚋgeneratedᚋmodelsᚐPageInfo,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_UserConnection_pageInfo(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"UserConnection\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"hasNextPage\":\n\t\t\t\treturn ec.fieldContext_PageInfo_hasNextPage(ctx, field)\n\t\t\tcase \"hasPreviousPage\":\n\t\t\t\treturn ec.fieldContext_PageInfo_hasPreviousPage(ctx, field)\n\t\t\tcase \"startCursor\":\n\t\t\t\treturn ec.fieldContext_PageInfo_startCursor(ctx, field)\n\t\t\tcase \"endCursor\":\n\t\t\t\treturn ec.fieldContext_PageInfo_endCursor(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type PageInfo\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _UserConnection_totalCount(ctx context.Context, field graphql.CollectedField, obj *models.UserConnection) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_UserConnection_totalCount,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.TotalCount, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_UserConnection_totalCount(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"UserConnection\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _UserEdge_cursor(ctx context.Context, field graphql.CollectedField, obj *models.UserEdge) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_UserEdge_cursor,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Cursor, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_UserEdge_cursor(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"UserEdge\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _UserEdge_node(ctx context.Context, field graphql.CollectedField, obj *models.UserEdge) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_UserEdge_node,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Node, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋbenchmarkᚋgeneratedᚋmodelsᚐUser,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_UserEdge_node(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"UserEdge\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"firstName\":\n\t\t\t\treturn ec.fieldContext_User_firstName(ctx, field)\n\t\t\tcase \"lastName\":\n\t\t\t\treturn ec.fieldContext_User_lastName(ctx, field)\n\t\t\tcase \"email\":\n\t\t\t\treturn ec.fieldContext_User_email(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type User\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalInputUserOrderBy(ctx context.Context, obj any) (models.UserOrderBy, error) {\n\tvar it models.UserOrderBy\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"orderByField\", \"orderByDirection\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"orderByField\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"orderByField\"))\n\t\t\tdata, err := ec.unmarshalNUserOrderField2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋbenchmarkᚋgeneratedᚋmodelsᚐUserOrderField(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.OrderByField = data\n\t\tcase \"orderByDirection\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"orderByDirection\"))\n\t\t\tdata, err := ec.unmarshalNOrderDirection2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋbenchmarkᚋgeneratedᚋmodelsᚐOrderDirection(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.OrderByDirection = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar pageInfoImplementors = []string{\"PageInfo\"}\n\nfunc (ec *executionContext) _PageInfo(ctx context.Context, sel ast.SelectionSet, obj *models.PageInfo) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, pageInfoImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"PageInfo\")\n\t\tcase \"hasNextPage\":\n\t\t\tout.Values[i] = ec._PageInfo_hasNextPage(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"hasPreviousPage\":\n\t\t\tout.Values[i] = ec._PageInfo_hasPreviousPage(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"startCursor\":\n\t\t\tout.Values[i] = ec._PageInfo_startCursor(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"endCursor\":\n\t\t\tout.Values[i] = ec._PageInfo_endCursor(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"users\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_users(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar userImplementors = []string{\"User\"}\n\nfunc (ec *executionContext) _User(ctx context.Context, sel ast.SelectionSet, obj *models.User) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, userImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"User\")\n\t\tcase \"firstName\":\n\t\t\tout.Values[i] = ec._User_firstName(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"lastName\":\n\t\t\tout.Values[i] = ec._User_lastName(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"email\":\n\t\t\tout.Values[i] = ec._User_email(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar userConnectionImplementors = []string{\"UserConnection\"}\n\nfunc (ec *executionContext) _UserConnection(ctx context.Context, sel ast.SelectionSet, obj *models.UserConnection) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, userConnectionImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"UserConnection\")\n\t\tcase \"edges\":\n\t\t\tout.Values[i] = ec._UserConnection_edges(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"pageInfo\":\n\t\t\tout.Values[i] = ec._UserConnection_pageInfo(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"totalCount\":\n\t\t\tout.Values[i] = ec._UserConnection_totalCount(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar userEdgeImplementors = []string{\"UserEdge\"}\n\nfunc (ec *executionContext) _UserEdge(ctx context.Context, sel ast.SelectionSet, obj *models.UserEdge) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, userEdgeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"UserEdge\")\n\t\tcase \"cursor\":\n\t\t\tout.Values[i] = ec._UserEdge_cursor(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"node\":\n\t\t\tout.Values[i] = ec._UserEdge_node(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNOrderDirection2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋbenchmarkᚋgeneratedᚋmodelsᚐOrderDirection(ctx context.Context, v any) (models.OrderDirection, error) {\n\tvar res models.OrderDirection\n\terr := res.UnmarshalGQL(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNOrderDirection2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋbenchmarkᚋgeneratedᚋmodelsᚐOrderDirection(ctx context.Context, sel ast.SelectionSet, v models.OrderDirection) graphql.Marshaler {\n\treturn v\n}\n\nfunc (ec *executionContext) marshalNPageInfo2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋbenchmarkᚋgeneratedᚋmodelsᚐPageInfo(ctx context.Context, sel ast.SelectionSet, v *models.PageInfo) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._PageInfo(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋbenchmarkᚋgeneratedᚋmodelsᚐUser(ctx context.Context, sel ast.SelectionSet, v *models.User) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._User(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNUserEdge2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋbenchmarkᚋgeneratedᚋmodelsᚐUserEdgeᚄ(ctx context.Context, sel ast.SelectionSet, v []*models.UserEdge) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNUserEdge2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋbenchmarkᚋgeneratedᚋmodelsᚐUserEdge(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalNUserEdge2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋbenchmarkᚋgeneratedᚋmodelsᚐUserEdge(ctx context.Context, sel ast.SelectionSet, v *models.UserEdge) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._UserEdge(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNUserOrderBy2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋbenchmarkᚋgeneratedᚋmodelsᚐUserOrderBy(ctx context.Context, v any) (models.UserOrderBy, error) {\n\tres, err := ec.unmarshalInputUserOrderBy(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalNUserOrderField2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋbenchmarkᚋgeneratedᚋmodelsᚐUserOrderField(ctx context.Context, v any) (models.UserOrderField, error) {\n\tvar res models.UserOrderField\n\terr := res.UnmarshalGQL(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNUserOrderField2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋbenchmarkᚋgeneratedᚋmodelsᚐUserOrderField(ctx context.Context, sel ast.SelectionSet, v models.UserOrderField) graphql.Marshaler {\n\treturn v\n}\n\nfunc (ec *executionContext) marshalOUserConnection2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋbenchmarkᚋgeneratedᚋmodelsᚐUserConnection(ctx context.Context, sel ast.SelectionSet, v *models.UserConnection) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._UserConnection(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/benchmark/gqlgen.yml",
    "content": "schema:\n  - \"*.graphql\"\nskip_validation: true\nexec:\n  layout: follow-schema\n  dir: generated\n  package: generated\nmodel:\n  filename: generated/models/models-gen.go\n  package: models\nresolver:\n  filename: generated/resolvers/resolver.go\n  package: resolver\n  type: Resolver\n"
  },
  {
    "path": "codegen/testserver/benchmark/schema.graphql",
    "content": "type PageInfo {\n    hasNextPage: Boolean!\n    hasPreviousPage: Boolean!\n    startCursor: String!\n    endCursor: String!\n}\n\nenum OrderDirection {\n    ASCENDING\n    DESCENDING\n}\n\nenum UserOrderField {\n    FIRST_NAME\n    LAST_NAME\n    EMAIL\n}\n\ninput UserOrderBy {\n    orderByField: UserOrderField!\n    orderByDirection: OrderDirection!\n}\n\ntype User {\n    firstName: String!\n    lastName: String!\n    email: String!\n}\n\ntype UserEdge {\n    cursor: String!\n    node: User!\n}\n\ntype UserConnection {\n    edges: [UserEdge!]!\n    pageInfo: PageInfo!\n    totalCount: Int!\n}\n\ntype Query {\n    users(\n        query: String\n        first: Int\n        last: Int\n        before: String\n        after: String\n        orderBy: UserOrderBy! = { orderByField: FIRST_NAME orderByDirection: ASCENDING }\n    ): UserConnection\n}\n"
  },
  {
    "path": "codegen/testserver/benchmark/stub.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage benchmark\n\nimport (\n\t\"context\"\n\n\t\"github.com/99designs/gqlgen/codegen/testserver/benchmark/generated\"\n\t\"github.com/99designs/gqlgen/codegen/testserver/benchmark/generated/models\"\n)\n\ntype Stub struct {\n\tQueryResolver struct {\n\t\tUsers func(ctx context.Context, query *string, first *int, last *int, before *string, after *string, orderBy models.UserOrderBy) (*models.UserConnection, error)\n\t}\n}\n\nfunc (r *Stub) Query() generated.QueryResolver {\n\treturn &stubQuery{r}\n}\n\ntype stubQuery struct{ *Stub }\n\nfunc (r *stubQuery) Users(ctx context.Context, query *string, first *int, last *int, before *string, after *string, orderBy models.UserOrderBy) (*models.UserConnection, error) {\n\treturn r.QueryResolver.Users(ctx, query, first, last, before, after, orderBy)\n}\n"
  },
  {
    "path": "codegen/testserver/compliant-int/compliant_int_test.go",
    "content": "//go:generate go run ../../../testdata/gqlgen.go -config gqlgen_default.yml -stub generated-default/stub.go\n//go:generate go run ../../../testdata/gqlgen.go -config gqlgen_compliant_strict.yml -stub generated-compliant-strict/stub.go\n\npackage compliant_int\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"fmt\"\n\t\"go/ast\"\n\t\"go/format\"\n\t\"go/parser\"\n\t\"go/token\"\n\t\"path/filepath\"\n\t\"slices\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\tgencompliant \"github.com/99designs/gqlgen/codegen/testserver/compliant-int/generated-compliant-strict\"\n\tgendefault \"github.com/99designs/gqlgen/codegen/testserver/compliant-int/generated-default\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestCodegen(t *testing.T) {\n\tcases := []struct {\n\t\tname      string\n\t\tpkgPath   string\n\t\tsignature map[string]string\n\t\tmodels    map[string][]string\n\t}{\n\t\t{\n\t\t\tname:    \"no model configuration default generation\",\n\t\t\tpkgPath: \"generated-default\",\n\t\t\tsignature: map[string]string{\n\t\t\t\t\"EchoIntToInt\":     \"func(ctx context.Context, n *int) (int, error)\",\n\t\t\t\t\"EchoInt64ToInt64\": \"func(ctx context.Context, n *int) (int, error)\",\n\t\t\t},\n\t\t\tmodels: map[string][]string{\n\t\t\t\t\"Input\":    {\"N *int\"},\n\t\t\t\t\"Result\":   {\"N int\"},\n\t\t\t\t\"Input64\":  {\"N *int\"},\n\t\t\t\t\"Result64\": {\"N int\"},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname:    \"strict compliant model configuration in yaml\",\n\t\t\tpkgPath: \"generated-compliant-strict\",\n\t\t\tsignature: map[string]string{\n\t\t\t\t\"EchoIntToInt\":     \"func(ctx context.Context, n *int32) (int32, error)\",\n\t\t\t\t\"EchoInt64ToInt64\": \"func(ctx context.Context, n *int) (int, error)\",\n\t\t\t},\n\t\t\tmodels: map[string][]string{\n\t\t\t\t\"Input\":    {\"N *int32\"},\n\t\t\t\t\"Result\":   {\"N int32\"},\n\t\t\t\t\"Input64\":  {\"N *int\"},\n\t\t\t\t\"Result64\": {\"N int\"},\n\t\t\t},\n\t\t},\n\t}\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tpath, err := filepath.Abs(tc.pkgPath)\n\t\t\trequire.NoError(t, err)\n\n\t\t\t//nolint:staticcheck // SA1019 help wanted to golang.org/x/tools/go/packages\n\t\t\tpkgs, err := parser.ParseDir(token.NewFileSet(), path, nil, parser.AllErrors)\n\t\t\trequire.NoError(t, err)\n\n\t\t\tpkg, ok := pkgs[\"generated\"]\n\t\t\trequire.True(t, ok, fmt.Sprintf(\"invalid package found at %v\", tc.pkgPath))\n\n\t\t\tmodelsMap := make(map[string][]string)\n\t\t\tsignatureMap := make(map[string]string)\n\t\t\tast.Inspect(pkg, func(node ast.Node) bool {\n\t\t\t\tswitch node := node.(type) {\n\t\t\t\tcase *ast.FuncDecl:\n\t\t\t\t\tif slices.Contains(\n\t\t\t\t\t\t[]string{\"EchoIntToInt\", \"EchoInt64ToInt64\"},\n\t\t\t\t\t\tnode.Name.Name,\n\t\t\t\t\t) {\n\t\t\t\t\t\tsignatureMap[node.Name.Name] = printNode(t, node.Type)\n\t\t\t\t\t}\n\t\t\t\tcase *ast.TypeSpec:\n\t\t\t\t\ts, ok := node.Type.(*ast.StructType)\n\t\t\t\t\tif !ok {\n\t\t\t\t\t\treturn true\n\t\t\t\t\t}\n\t\t\t\t\tif slices.Contains(\n\t\t\t\t\t\t[]string{\"Input\", \"Input64\", \"Result\", \"Result64\"},\n\t\t\t\t\t\tnode.Name.Name,\n\t\t\t\t\t) {\n\t\t\t\t\t\tvar fields []string\n\t\t\t\t\t\tfor _, field := range s.Fields.List {\n\t\t\t\t\t\t\tfields = append(fields, join(field.Names)+\" \"+printNode(t, field.Type))\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmodelsMap[node.Name.Name] = fields\n\t\t\t\t\t}\n\t\t\t\t\treturn true\n\t\t\t\tdefault:\n\t\t\t\t}\n\t\t\t\treturn true\n\t\t\t})\n\n\t\t\tt.Run(\"resolver signature\", func(t *testing.T) {\n\t\t\t\trequire.Equal(t, tc.signature, signatureMap)\n\t\t\t})\n\t\t\tt.Run(\"models\", func(t *testing.T) {\n\t\t\t\trequire.Equal(t, tc.models, modelsMap)\n\t\t\t})\n\t\t})\n\t}\n}\n\nfunc TestIntegration(t *testing.T) {\n\tdefaultStub := &gendefault.Stub{}\n\tdefaultStub.QueryResolver.EchoIntToInt = func(_ context.Context, n *int) (int, error) {\n\t\tif n == nil {\n\t\t\treturn 0, nil\n\t\t}\n\t\treturn *n, nil\n\t}\n\tstrictCompliantStub := &gencompliant.Stub{}\n\tstrictCompliantStub.QueryResolver.EchoIntToInt = func(_ context.Context, n *int32) (int32, error) {\n\t\tif n == nil {\n\t\t\treturn 0, nil\n\t\t}\n\t\treturn *n, nil\n\t}\n\n\tcases := []struct {\n\t\tname      string\n\t\texec      graphql.ExecutableSchema\n\t\twillError bool\n\t}{\n\t\t{\n\t\t\tname:      \"default generation allows int32 overflow inputs\",\n\t\t\texec:      gendefault.NewExecutableSchema(gendefault.Config{Resolvers: defaultStub}),\n\t\t\twillError: false,\n\t\t},\n\t\t{\n\t\t\tname: \"strict compliant generation does not allow int32 overflow inputs\",\n\t\t\texec: gencompliant.NewExecutableSchema(\n\t\t\t\tgencompliant.Config{Resolvers: strictCompliantStub},\n\t\t\t),\n\t\t\twillError: true,\n\t\t},\n\t}\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tsrv := handler.New(tc.exec)\n\t\t\tsrv.AddTransport(transport.POST{})\n\n\t\t\tc := client.New(srv)\n\n\t\t\tvar resp struct {\n\t\t\t\tEchoIntToInt int\n\t\t\t}\n\t\t\terr := c.Post(`query { echoIntToInt(n: 2147483648) }`, &resp)\n\t\t\tif tc.willError {\n\t\t\t\trequire.EqualError(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\t`[{\"message\":\"2147483648 overflows signed 32-bit integer\",\"path\":[\"echoIntToInt\",\"n\"]}]`,\n\t\t\t\t)\n\t\t\t\trequire.Equal(t, 0, resp.EchoIntToInt)\n\t\t\t\treturn\n\t\t\t}\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Equal(t, 2147483648, resp.EchoIntToInt)\n\t\t})\n\t}\n}\n\nfunc printNode(t *testing.T, node any) string {\n\tt.Helper()\n\n\tbuf := &bytes.Buffer{}\n\terr := format.Node(buf, token.NewFileSet(), node)\n\trequire.NoError(t, err)\n\n\treturn buf.String()\n}\n\nfunc join[T fmt.Stringer](s []T) string {\n\tvar sb strings.Builder\n\tfor _, v := range s {\n\t\tsb.WriteString(v.String())\n\t}\n\treturn sb.String()\n}\n"
  },
  {
    "path": "codegen/testserver/compliant-int/generated-compliant-strict/models.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage generated\n\ntype Input struct {\n\tN *int32 `json:\"n,omitempty\"`\n}\n\ntype Input64 struct {\n\tN *int `json:\"n,omitempty\"`\n}\n\ntype Query struct {\n}\n\ntype Result struct {\n\tN int32 `json:\"n\"`\n}\n\ntype Result64 struct {\n\tN int `json:\"n\"`\n}\n"
  },
  {
    "path": "codegen/testserver/compliant-int/generated-compliant-strict/resolver.go",
    "content": "package generated\n\n// THIS CODE WILL BE UPDATED WITH SCHEMA CHANGES. PREVIOUS IMPLEMENTATION FOR SCHEMA CHANGES WILL BE KEPT IN THE COMMENT SECTION. IMPLEMENTATION FOR UNCHANGED SCHEMA WILL BE KEPT.\n\nimport (\n\t\"context\"\n)\n\ntype Resolver struct{}\n\n// EchoIntToInt is the resolver for the echoIntToInt field.\nfunc (r *queryResolver) EchoIntToInt(ctx context.Context, n *int32) (int32, error) {\n\tpanic(\"not implemented\")\n}\n\n// EchoInt64ToInt64 is the resolver for the echoInt64ToInt64 field.\nfunc (r *queryResolver) EchoInt64ToInt64(ctx context.Context, n *int) (int, error) {\n\tpanic(\"not implemented\")\n}\n\n// EchoIntInputToIntObject is the resolver for the echoIntInputToIntObject field.\nfunc (r *queryResolver) EchoIntInputToIntObject(ctx context.Context, input Input) (*Result, error) {\n\tpanic(\"not implemented\")\n}\n\n// EchoInt64InputToInt64Object is the resolver for the echoInt64InputToInt64Object field.\nfunc (r *queryResolver) EchoInt64InputToInt64Object(ctx context.Context, input Input64) (*Result64, error) {\n\tpanic(\"not implemented\")\n}\n\n// Query returns QueryResolver implementation.\nfunc (r *Resolver) Query() QueryResolver { return &queryResolver{r} }\n\ntype queryResolver struct{ *Resolver }\n\n// !!! WARNING !!!\n// The code below was going to be deleted when updating resolvers. It has been copied here so you have\n// one last chance to move it out of harms way if you want. There are two reasons this happens:\n//  - When renaming or deleting a resolver the old code will be put in here. You can safely delete\n//    it when you're done.\n//  - You have helper methods in this file. Move them out to keep these resolver files clean.\n/*\n\ttype Resolver struct{}\n*/\n"
  },
  {
    "path": "codegen/testserver/compliant-int/generated-compliant-strict/schema.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage generated\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n}\n\ntype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\ntype ResolverRoot interface {\n\tQuery() QueryResolver\n}\n\ntype DirectiveRoot struct {\n}\n\ntype ComplexityRoot struct {\n\tQuery struct {\n\t\tEchoInt64InputToInt64Object func(childComplexity int, input Input64) int\n\t\tEchoInt64ToInt64            func(childComplexity int, n *int) int\n\t\tEchoIntInputToIntObject     func(childComplexity int, input Input) int\n\t\tEchoIntToInt                func(childComplexity int, n *int32) int\n\t}\n\n\tResult struct {\n\t\tN func(childComplexity int) int\n\t}\n\n\tResult64 struct {\n\t\tN func(childComplexity int) int\n\t}\n}\n\ntype QueryResolver interface {\n\tEchoIntToInt(ctx context.Context, n *int32) (int32, error)\n\tEchoInt64ToInt64(ctx context.Context, n *int) (int, error)\n\tEchoIntInputToIntObject(ctx context.Context, input Input) (*Result, error)\n\tEchoInt64InputToInt64Object(ctx context.Context, input Input64) (*Result64, error)\n}\n\ntype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.SchemaData != nil {\n\t\treturn e.SchemaData\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := newExecutionContext(nil, e, nil)\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"Query.echoInt64InputToInt64Object\":\n\t\tif e.ComplexityRoot.Query.EchoInt64InputToInt64Object == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_echoInt64InputToInt64Object_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.EchoInt64InputToInt64Object(childComplexity, args[\"input\"].(Input64)), true\n\tcase \"Query.echoInt64ToInt64\":\n\t\tif e.ComplexityRoot.Query.EchoInt64ToInt64 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_echoInt64ToInt64_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.EchoInt64ToInt64(childComplexity, args[\"n\"].(*int)), true\n\tcase \"Query.echoIntInputToIntObject\":\n\t\tif e.ComplexityRoot.Query.EchoIntInputToIntObject == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_echoIntInputToIntObject_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.EchoIntInputToIntObject(childComplexity, args[\"input\"].(Input)), true\n\tcase \"Query.echoIntToInt\":\n\t\tif e.ComplexityRoot.Query.EchoIntToInt == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_echoIntToInt_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.EchoIntToInt(childComplexity, args[\"n\"].(*int32)), true\n\n\tcase \"Result.n\":\n\t\tif e.ComplexityRoot.Result.N == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Result.N(childComplexity), true\n\n\tcase \"Result64.n\":\n\t\tif e.ComplexityRoot.Result64.N == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Result64.N(childComplexity), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap(\n\t\tec.unmarshalInputInput,\n\t\tec.unmarshalInputInput64,\n\t)\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"../schema.graphql\", Input: `scalar Int64\n\ninput Input {\n    n: Int\n}\n\ninput Input64 {\n    n: Int64\n}\n\ntype Result {\n    n: Int!\n}\n\ntype Result64 {\n    n: Int64!\n}\n\ntype Query {\n  echoIntToInt(n: Int): Int!\n  echoInt64ToInt64(n: Int64): Int64!\n  echoIntInputToIntObject(input: Input!): Result\n  echoInt64InputToInt64Object(input: Input64!): Result64\n}\n`, BuiltIn: false},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_echoInt64InputToInt64Object_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"input\", ec.unmarshalNInput642githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋcompliantᚑintᚋgeneratedᚑcompliantᚑstrictᚐInput64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"input\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_echoInt64ToInt64_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"n\", ec.unmarshalOInt642ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"n\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_echoIntInputToIntObject_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"input\", ec.unmarshalNInput2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋcompliantᚑintᚋgeneratedᚑcompliantᚑstrictᚐInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"input\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_echoIntToInt_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"n\", ec.unmarshalOInt2ᚖint32)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"n\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Query_echoIntToInt(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_echoIntToInt,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().EchoIntToInt(ctx, fc.Args[\"n\"].(*int32))\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int32,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_echoIntToInt(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_echoIntToInt_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_echoInt64ToInt64(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_echoInt64ToInt64,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().EchoInt64ToInt64(ctx, fc.Args[\"n\"].(*int))\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt642int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_echoInt64ToInt64(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int64 does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_echoInt64ToInt64_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_echoIntInputToIntObject(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_echoIntInputToIntObject,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().EchoIntInputToIntObject(ctx, fc.Args[\"input\"].(Input))\n\t\t},\n\t\tnil,\n\t\tec.marshalOResult2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋcompliantᚑintᚋgeneratedᚑcompliantᚑstrictᚐResult,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_echoIntInputToIntObject(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"n\":\n\t\t\t\treturn ec.fieldContext_Result_n(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Result\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_echoIntInputToIntObject_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_echoInt64InputToInt64Object(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_echoInt64InputToInt64Object,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().EchoInt64InputToInt64Object(ctx, fc.Args[\"input\"].(Input64))\n\t\t},\n\t\tnil,\n\t\tec.marshalOResult642ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋcompliantᚑintᚋgeneratedᚑcompliantᚑstrictᚐResult64,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_echoInt64InputToInt64Object(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"n\":\n\t\t\t\treturn ec.fieldContext_Result64_n(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Result64\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_echoInt64InputToInt64Object_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.IntrospectType(fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___schema,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.IntrospectSchema()\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Result_n(ctx context.Context, field graphql.CollectedField, obj *Result) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Result_n,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.N, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int32,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Result_n(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Result\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Result64_n(ctx context.Context, field graphql.CollectedField, obj *Result64) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Result64_n,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.N, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt642int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Result64_n(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Result64\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int64 does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_isRepeatable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsRepeatable, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_locations,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Locations, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__DirectiveLocation2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_defaultValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DefaultValue, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_types,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Types(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_queryType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.QueryType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_mutationType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.MutationType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_subscriptionType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SubscriptionType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_directives,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Directives(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_kind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Kind(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__TypeKind2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_specifiedByURL,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SpecifiedByURL(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_fields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_interfaces,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Interfaces(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_possibleTypes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PossibleTypes(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_enumValues,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_inputFields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.InputFields(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_ofType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.OfType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_isOneOf,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsOneOf(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOBoolean2bool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalInputInput(ctx context.Context, obj any) (Input, error) {\n\tvar it Input\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"n\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"n\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"n\"))\n\t\t\tdata, err := ec.unmarshalOInt2ᚖint32(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.N = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputInput64(ctx context.Context, obj any) (Input64, error) {\n\tvar it Input64\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"n\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"n\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"n\"))\n\t\t\tdata, err := ec.unmarshalOInt642ᚖint(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.N = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"echoIntToInt\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_echoIntToInt(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"echoInt64ToInt64\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_echoInt64ToInt64(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"echoIntInputToIntObject\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_echoIntInputToIntObject(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"echoInt64InputToInt64Object\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_echoInt64InputToInt64Object(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar resultImplementors = []string{\"Result\"}\n\nfunc (ec *executionContext) _Result(ctx context.Context, sel ast.SelectionSet, obj *Result) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, resultImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Result\")\n\t\tcase \"n\":\n\t\t\tout.Values[i] = ec._Result_n(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar result64Implementors = []string{\"Result64\"}\n\nfunc (ec *executionContext) _Result64(ctx context.Context, sel ast.SelectionSet, obj *Result64) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, result64Implementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Result64\")\n\t\tcase \"n\":\n\t\t\tout.Values[i] = ec._Result64_n(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNInput2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋcompliantᚑintᚋgeneratedᚑcompliantᚑstrictᚐInput(ctx context.Context, v any) (Input, error) {\n\tres, err := ec.unmarshalInputInput(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalNInput642githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋcompliantᚑintᚋgeneratedᚑcompliantᚑstrictᚐInput64(ctx context.Context, v any) (Input64, error) {\n\tres, err := ec.unmarshalInputInput64(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalNInt2int32(ctx context.Context, v any) (int32, error) {\n\tres, err := graphql.UnmarshalInt32(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNInt2int32(ctx context.Context, sel ast.SelectionSet, v int32) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalInt32(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNInt642int(ctx context.Context, v any) (int, error) {\n\tres, err := graphql.UnmarshalInt(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNInt642int(ctx context.Context, sel ast.SelectionSet, v int) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalInt(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOInt2ᚖint32(ctx context.Context, v any) (*int32, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalInt32(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOInt2ᚖint32(ctx context.Context, sel ast.SelectionSet, v *int32) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalInt32(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOInt642ᚖint(ctx context.Context, v any) (*int, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalInt(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOInt642ᚖint(ctx context.Context, sel ast.SelectionSet, v *int) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalInt(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalOResult2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋcompliantᚑintᚋgeneratedᚑcompliantᚑstrictᚐResult(ctx context.Context, sel ast.SelectionSet, v *Result) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Result(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOResult642ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋcompliantᚑintᚋgeneratedᚑcompliantᚑstrictᚐResult64(ctx context.Context, sel ast.SelectionSet, v *Result64) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Result64(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/compliant-int/generated-compliant-strict/stub.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage generated\n\nimport (\n\t\"context\"\n)\n\ntype Stub struct {\n\tQueryResolver struct {\n\t\tEchoIntToInt                func(ctx context.Context, n *int32) (int32, error)\n\t\tEchoInt64ToInt64            func(ctx context.Context, n *int) (int, error)\n\t\tEchoIntInputToIntObject     func(ctx context.Context, input Input) (*Result, error)\n\t\tEchoInt64InputToInt64Object func(ctx context.Context, input Input64) (*Result64, error)\n\t}\n}\n\nfunc (r *Stub) Query() QueryResolver {\n\treturn &stubQuery{r}\n}\n\ntype stubQuery struct{ *Stub }\n\nfunc (r *stubQuery) EchoIntToInt(ctx context.Context, n *int32) (int32, error) {\n\treturn r.QueryResolver.EchoIntToInt(ctx, n)\n}\nfunc (r *stubQuery) EchoInt64ToInt64(ctx context.Context, n *int) (int, error) {\n\treturn r.QueryResolver.EchoInt64ToInt64(ctx, n)\n}\nfunc (r *stubQuery) EchoIntInputToIntObject(ctx context.Context, input Input) (*Result, error) {\n\treturn r.QueryResolver.EchoIntInputToIntObject(ctx, input)\n}\nfunc (r *stubQuery) EchoInt64InputToInt64Object(ctx context.Context, input Input64) (*Result64, error) {\n\treturn r.QueryResolver.EchoInt64InputToInt64Object(ctx, input)\n}\n"
  },
  {
    "path": "codegen/testserver/compliant-int/generated-default/models.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage generated\n\ntype Input struct {\n\tN *int `json:\"n,omitempty\"`\n}\n\ntype Input64 struct {\n\tN *int `json:\"n,omitempty\"`\n}\n\ntype Query struct {\n}\n\ntype Result struct {\n\tN int `json:\"n\"`\n}\n\ntype Result64 struct {\n\tN int `json:\"n\"`\n}\n"
  },
  {
    "path": "codegen/testserver/compliant-int/generated-default/resolver.go",
    "content": "package generated\n\n// THIS CODE WILL BE UPDATED WITH SCHEMA CHANGES. PREVIOUS IMPLEMENTATION FOR SCHEMA CHANGES WILL BE KEPT IN THE COMMENT SECTION. IMPLEMENTATION FOR UNCHANGED SCHEMA WILL BE KEPT.\n\nimport (\n\t\"context\"\n)\n\ntype Resolver struct{}\n\n// EchoIntToInt is the resolver for the echoIntToInt field.\nfunc (r *queryResolver) EchoIntToInt(ctx context.Context, n *int) (int, error) {\n\tpanic(\"not implemented\")\n}\n\n// EchoInt64ToInt64 is the resolver for the echoInt64ToInt64 field.\nfunc (r *queryResolver) EchoInt64ToInt64(ctx context.Context, n *int) (int, error) {\n\tpanic(\"not implemented\")\n}\n\n// EchoIntInputToIntObject is the resolver for the echoIntInputToIntObject field.\nfunc (r *queryResolver) EchoIntInputToIntObject(ctx context.Context, input Input) (*Result, error) {\n\tpanic(\"not implemented\")\n}\n\n// EchoInt64InputToInt64Object is the resolver for the echoInt64InputToInt64Object field.\nfunc (r *queryResolver) EchoInt64InputToInt64Object(ctx context.Context, input Input64) (*Result64, error) {\n\tpanic(\"not implemented\")\n}\n\n// Query returns QueryResolver implementation.\nfunc (r *Resolver) Query() QueryResolver { return &queryResolver{r} }\n\ntype queryResolver struct{ *Resolver }\n\n// !!! WARNING !!!\n// The code below was going to be deleted when updating resolvers. It has been copied here so you have\n// one last chance to move it out of harms way if you want. There are two reasons this happens:\n//  - When renaming or deleting a resolver the old code will be put in here. You can safely delete\n//    it when you're done.\n//  - You have helper methods in this file. Move them out to keep these resolver files clean.\n/*\n\ttype Resolver struct{}\n*/\n"
  },
  {
    "path": "codegen/testserver/compliant-int/generated-default/schema.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage generated\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n}\n\ntype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\ntype ResolverRoot interface {\n\tQuery() QueryResolver\n}\n\ntype DirectiveRoot struct {\n}\n\ntype ComplexityRoot struct {\n\tQuery struct {\n\t\tEchoInt64InputToInt64Object func(childComplexity int, input Input64) int\n\t\tEchoInt64ToInt64            func(childComplexity int, n *int) int\n\t\tEchoIntInputToIntObject     func(childComplexity int, input Input) int\n\t\tEchoIntToInt                func(childComplexity int, n *int) int\n\t}\n\n\tResult struct {\n\t\tN func(childComplexity int) int\n\t}\n\n\tResult64 struct {\n\t\tN func(childComplexity int) int\n\t}\n}\n\ntype QueryResolver interface {\n\tEchoIntToInt(ctx context.Context, n *int) (int, error)\n\tEchoInt64ToInt64(ctx context.Context, n *int) (int, error)\n\tEchoIntInputToIntObject(ctx context.Context, input Input) (*Result, error)\n\tEchoInt64InputToInt64Object(ctx context.Context, input Input64) (*Result64, error)\n}\n\ntype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.SchemaData != nil {\n\t\treturn e.SchemaData\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := newExecutionContext(nil, e, nil)\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"Query.echoInt64InputToInt64Object\":\n\t\tif e.ComplexityRoot.Query.EchoInt64InputToInt64Object == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_echoInt64InputToInt64Object_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.EchoInt64InputToInt64Object(childComplexity, args[\"input\"].(Input64)), true\n\tcase \"Query.echoInt64ToInt64\":\n\t\tif e.ComplexityRoot.Query.EchoInt64ToInt64 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_echoInt64ToInt64_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.EchoInt64ToInt64(childComplexity, args[\"n\"].(*int)), true\n\tcase \"Query.echoIntInputToIntObject\":\n\t\tif e.ComplexityRoot.Query.EchoIntInputToIntObject == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_echoIntInputToIntObject_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.EchoIntInputToIntObject(childComplexity, args[\"input\"].(Input)), true\n\tcase \"Query.echoIntToInt\":\n\t\tif e.ComplexityRoot.Query.EchoIntToInt == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_echoIntToInt_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.EchoIntToInt(childComplexity, args[\"n\"].(*int)), true\n\n\tcase \"Result.n\":\n\t\tif e.ComplexityRoot.Result.N == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Result.N(childComplexity), true\n\n\tcase \"Result64.n\":\n\t\tif e.ComplexityRoot.Result64.N == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Result64.N(childComplexity), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap(\n\t\tec.unmarshalInputInput,\n\t\tec.unmarshalInputInput64,\n\t)\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"../schema.graphql\", Input: `scalar Int64\n\ninput Input {\n    n: Int\n}\n\ninput Input64 {\n    n: Int64\n}\n\ntype Result {\n    n: Int!\n}\n\ntype Result64 {\n    n: Int64!\n}\n\ntype Query {\n  echoIntToInt(n: Int): Int!\n  echoInt64ToInt64(n: Int64): Int64!\n  echoIntInputToIntObject(input: Input!): Result\n  echoInt64InputToInt64Object(input: Input64!): Result64\n}\n`, BuiltIn: false},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_echoInt64InputToInt64Object_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"input\", ec.unmarshalNInput642githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋcompliantᚑintᚋgeneratedᚑdefaultᚐInput64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"input\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_echoInt64ToInt64_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"n\", ec.unmarshalOInt642ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"n\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_echoIntInputToIntObject_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"input\", ec.unmarshalNInput2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋcompliantᚑintᚋgeneratedᚑdefaultᚐInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"input\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_echoIntToInt_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"n\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"n\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Query_echoIntToInt(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_echoIntToInt,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().EchoIntToInt(ctx, fc.Args[\"n\"].(*int))\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_echoIntToInt(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_echoIntToInt_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_echoInt64ToInt64(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_echoInt64ToInt64,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().EchoInt64ToInt64(ctx, fc.Args[\"n\"].(*int))\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt642int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_echoInt64ToInt64(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int64 does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_echoInt64ToInt64_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_echoIntInputToIntObject(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_echoIntInputToIntObject,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().EchoIntInputToIntObject(ctx, fc.Args[\"input\"].(Input))\n\t\t},\n\t\tnil,\n\t\tec.marshalOResult2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋcompliantᚑintᚋgeneratedᚑdefaultᚐResult,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_echoIntInputToIntObject(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"n\":\n\t\t\t\treturn ec.fieldContext_Result_n(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Result\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_echoIntInputToIntObject_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_echoInt64InputToInt64Object(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_echoInt64InputToInt64Object,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().EchoInt64InputToInt64Object(ctx, fc.Args[\"input\"].(Input64))\n\t\t},\n\t\tnil,\n\t\tec.marshalOResult642ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋcompliantᚑintᚋgeneratedᚑdefaultᚐResult64,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_echoInt64InputToInt64Object(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"n\":\n\t\t\t\treturn ec.fieldContext_Result64_n(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Result64\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_echoInt64InputToInt64Object_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.IntrospectType(fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___schema,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.IntrospectSchema()\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Result_n(ctx context.Context, field graphql.CollectedField, obj *Result) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Result_n,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.N, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Result_n(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Result\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Result64_n(ctx context.Context, field graphql.CollectedField, obj *Result64) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Result64_n,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.N, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt642int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Result64_n(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Result64\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int64 does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_isRepeatable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsRepeatable, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_locations,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Locations, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__DirectiveLocation2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_defaultValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DefaultValue, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_types,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Types(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_queryType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.QueryType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_mutationType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.MutationType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_subscriptionType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SubscriptionType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_directives,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Directives(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_kind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Kind(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__TypeKind2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_specifiedByURL,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SpecifiedByURL(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_fields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_interfaces,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Interfaces(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_possibleTypes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PossibleTypes(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_enumValues,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_inputFields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.InputFields(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_ofType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.OfType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_isOneOf,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsOneOf(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOBoolean2bool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalInputInput(ctx context.Context, obj any) (Input, error) {\n\tvar it Input\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"n\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"n\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"n\"))\n\t\t\tdata, err := ec.unmarshalOInt2ᚖint(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.N = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputInput64(ctx context.Context, obj any) (Input64, error) {\n\tvar it Input64\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"n\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"n\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"n\"))\n\t\t\tdata, err := ec.unmarshalOInt642ᚖint(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.N = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"echoIntToInt\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_echoIntToInt(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"echoInt64ToInt64\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_echoInt64ToInt64(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"echoIntInputToIntObject\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_echoIntInputToIntObject(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"echoInt64InputToInt64Object\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_echoInt64InputToInt64Object(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar resultImplementors = []string{\"Result\"}\n\nfunc (ec *executionContext) _Result(ctx context.Context, sel ast.SelectionSet, obj *Result) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, resultImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Result\")\n\t\tcase \"n\":\n\t\t\tout.Values[i] = ec._Result_n(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar result64Implementors = []string{\"Result64\"}\n\nfunc (ec *executionContext) _Result64(ctx context.Context, sel ast.SelectionSet, obj *Result64) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, result64Implementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Result64\")\n\t\tcase \"n\":\n\t\t\tout.Values[i] = ec._Result64_n(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNInput2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋcompliantᚑintᚋgeneratedᚑdefaultᚐInput(ctx context.Context, v any) (Input, error) {\n\tres, err := ec.unmarshalInputInput(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalNInput642githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋcompliantᚑintᚋgeneratedᚑdefaultᚐInput64(ctx context.Context, v any) (Input64, error) {\n\tres, err := ec.unmarshalInputInput64(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalNInt2int(ctx context.Context, v any) (int, error) {\n\tres, err := graphql.UnmarshalInt(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNInt2int(ctx context.Context, sel ast.SelectionSet, v int) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalInt(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNInt642int(ctx context.Context, v any) (int, error) {\n\tres, err := graphql.UnmarshalInt(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNInt642int(ctx context.Context, sel ast.SelectionSet, v int) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalInt(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOInt2ᚖint(ctx context.Context, v any) (*int, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalInt(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOInt2ᚖint(ctx context.Context, sel ast.SelectionSet, v *int) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalInt(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOInt642ᚖint(ctx context.Context, v any) (*int, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalInt(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOInt642ᚖint(ctx context.Context, sel ast.SelectionSet, v *int) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalInt(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalOResult2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋcompliantᚑintᚋgeneratedᚑdefaultᚐResult(ctx context.Context, sel ast.SelectionSet, v *Result) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Result(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOResult642ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋcompliantᚑintᚋgeneratedᚑdefaultᚐResult64(ctx context.Context, sel ast.SelectionSet, v *Result64) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Result64(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/compliant-int/generated-default/stub.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage generated\n\nimport (\n\t\"context\"\n)\n\ntype Stub struct {\n\tQueryResolver struct {\n\t\tEchoIntToInt                func(ctx context.Context, n *int) (int, error)\n\t\tEchoInt64ToInt64            func(ctx context.Context, n *int) (int, error)\n\t\tEchoIntInputToIntObject     func(ctx context.Context, input Input) (*Result, error)\n\t\tEchoInt64InputToInt64Object func(ctx context.Context, input Input64) (*Result64, error)\n\t}\n}\n\nfunc (r *Stub) Query() QueryResolver {\n\treturn &stubQuery{r}\n}\n\ntype stubQuery struct{ *Stub }\n\nfunc (r *stubQuery) EchoIntToInt(ctx context.Context, n *int) (int, error) {\n\treturn r.QueryResolver.EchoIntToInt(ctx, n)\n}\nfunc (r *stubQuery) EchoInt64ToInt64(ctx context.Context, n *int) (int, error) {\n\treturn r.QueryResolver.EchoInt64ToInt64(ctx, n)\n}\nfunc (r *stubQuery) EchoIntInputToIntObject(ctx context.Context, input Input) (*Result, error) {\n\treturn r.QueryResolver.EchoIntInputToIntObject(ctx, input)\n}\nfunc (r *stubQuery) EchoInt64InputToInt64Object(ctx context.Context, input Input64) (*Result64, error) {\n\treturn r.QueryResolver.EchoInt64InputToInt64Object(ctx, input)\n}\n"
  },
  {
    "path": "codegen/testserver/compliant-int/gqlgen_compliant_strict.yml",
    "content": "schema:\n  - \"*.graphql\"\nskip_validation: true\nexec:\n  package: generated\n  filename: generated-compliant-strict/schema.go\nmodel:\n  package: generated\n  filename: generated-compliant-strict/models.go\nresolver:\n  package: generated\n  filename: generated-compliant-strict/resolver.go\n\nmodels:\n  Int:\n    model:\n      - github.com/99designs/gqlgen/graphql.Int32\n  Int64:\n    model:\n      - github.com/99designs/gqlgen/graphql.Int\n      - github.com/99designs/gqlgen/graphql.Int64\n"
  },
  {
    "path": "codegen/testserver/compliant-int/gqlgen_default.yml",
    "content": "schema:\n  - \"*.graphql\"\nskip_validation: true\nexec:\n  package: generated\n  filename: generated-default/schema.go\nmodel:\n  package: generated\n  filename: generated-default/models.go\nresolver:\n  package: generated\n  filename: generated-default/resolver.go\n"
  },
  {
    "path": "codegen/testserver/compliant-int/schema.graphql",
    "content": "scalar Int64\n\ninput Input {\n    n: Int\n}\n\ninput Input64 {\n    n: Int64\n}\n\ntype Result {\n    n: Int!\n}\n\ntype Result64 {\n    n: Int64!\n}\n\ntype Query {\n  echoIntToInt(n: Int): Int!\n  echoInt64ToInt64(n: Int64): Int64!\n  echoIntInputToIntObject(input: Input!): Result\n  echoInt64InputToInt64Object(input: Input64!): Result64\n}\n"
  },
  {
    "path": "codegen/testserver/empty.go",
    "content": "package testserver\n\n// Empty file to silence go build error complaining that codegen/testserver/ has no non-test Go\n// source files.\n"
  },
  {
    "path": "codegen/testserver/followschema/builtinscalar.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Map_id(ctx context.Context, field graphql.CollectedField, obj *Map) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Map_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Map_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Map\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar mapImplementors = []string{\"Map\"}\n\nfunc (ec *executionContext) _Map(ctx context.Context, sel ast.SelectionSet, obj *Map) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, mapImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Map\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._Map_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/followschema/builtinscalar.graphql",
    "content": "\n\"\"\"\nSince gqlgen defines default implementation for a Map scalar, this tests that the builtin is _not_\nadded to the TypeMap\n\"\"\"\ntype Map {\n    id: ID!\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/bytes.go",
    "content": "package followschema\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\nfunc MarshalBytes(b []byte) graphql.Marshaler {\n\treturn graphql.WriterFunc(func(w io.Writer) {\n\t\t_, _ = fmt.Fprintf(w, \"%q\", string(b))\n\t})\n}\n\nfunc UnmarshalBytes(v any) ([]byte, error) {\n\tswitch v := v.(type) {\n\tcase string:\n\t\treturn []byte(v), nil\n\tcase *string:\n\t\treturn []byte(*v), nil\n\tcase []byte:\n\t\treturn v, nil\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"%T is not []byte\", v)\n\t}\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/complexity.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\ntype OverlappingFieldsResolver interface {\n\tOldFoo(ctx context.Context, obj *OverlappingFields) (int, error)\n}\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _OverlappingFields_oneFoo(ctx context.Context, field graphql.CollectedField, obj *OverlappingFields) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_OverlappingFields_oneFoo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Foo, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_OverlappingFields_oneFoo(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"OverlappingFields\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _OverlappingFields_twoFoo(ctx context.Context, field graphql.CollectedField, obj *OverlappingFields) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_OverlappingFields_twoFoo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Foo, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_OverlappingFields_twoFoo(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"OverlappingFields\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _OverlappingFields_oldFoo(ctx context.Context, field graphql.CollectedField, obj *OverlappingFields) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_OverlappingFields_oldFoo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.OverlappingFields().OldFoo(ctx, obj)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_OverlappingFields_oldFoo(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"OverlappingFields\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _OverlappingFields_newFoo(ctx context.Context, field graphql.CollectedField, obj *OverlappingFields) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_OverlappingFields_newFoo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.NewFoo, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_OverlappingFields_newFoo(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"OverlappingFields\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _OverlappingFields_new_foo(ctx context.Context, field graphql.CollectedField, obj *OverlappingFields) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_OverlappingFields_new_foo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.NewFoo, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_OverlappingFields_new_foo(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"OverlappingFields\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar overlappingFieldsImplementors = []string{\"OverlappingFields\"}\n\nfunc (ec *executionContext) _OverlappingFields(ctx context.Context, sel ast.SelectionSet, obj *OverlappingFields) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, overlappingFieldsImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"OverlappingFields\")\n\t\tcase \"oneFoo\":\n\t\t\tout.Values[i] = ec._OverlappingFields_oneFoo(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"twoFoo\":\n\t\t\tout.Values[i] = ec._OverlappingFields_twoFoo(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"oldFoo\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._OverlappingFields_oldFoo(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"newFoo\":\n\t\t\tout.Values[i] = ec._OverlappingFields_newFoo(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"new_foo\":\n\t\t\tout.Values[i] = ec._OverlappingFields_new_foo(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) marshalOOverlappingFields2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐOverlappingFields(ctx context.Context, sel ast.SelectionSet, v *OverlappingFields) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._OverlappingFields(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/followschema/complexity.graphql",
    "content": "extend type Query {\n    overlapping: OverlappingFields\n}\n\ntype OverlappingFields {\n  oneFoo: Int! @goField(name: \"foo\")\n  twoFoo: Int! @goField(name: \"foo\")\n  oldFoo: Int! @goField(name: \"foo\", forceResolver: true)\n  newFoo: Int!\n  new_foo: Int!\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/complexity_test.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/extension\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestComplexityCollisions(t *testing.T) {\n\tresolvers := &Stub{}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tresolvers.QueryResolver.Overlapping = func(ctx context.Context) (fields *OverlappingFields, e error) {\n\t\treturn &OverlappingFields{\n\t\t\tFoo:    2,\n\t\t\tNewFoo: 3,\n\t\t}, nil\n\t}\n\n\tresolvers.OverlappingFieldsResolver.OldFoo = func(ctx context.Context, obj *OverlappingFields) (i int, e error) {\n\t\treturn obj.Foo, nil\n\t}\n\n\tvar resp struct {\n\t\tOverlapping struct {\n\t\t\tOneFoo  int `json:\"oneFoo\"`\n\t\t\tTwoFoo  int `json:\"twoFoo\"`\n\t\t\tOldFoo  int `json:\"oldFoo\"`\n\t\t\tNewFoo  int `json:\"newFoo\"`\n\t\t\tNew_foo int `json:\"new_foo\"`\n\t\t}\n\t}\n\tc.MustPost(`query { overlapping { oneFoo, twoFoo, oldFoo, newFoo, new_foo } }`, &resp)\n\trequire.Equal(t, 2, resp.Overlapping.OneFoo)\n\trequire.Equal(t, 2, resp.Overlapping.TwoFoo)\n\trequire.Equal(t, 2, resp.Overlapping.OldFoo)\n\trequire.Equal(t, 3, resp.Overlapping.NewFoo)\n\trequire.Equal(t, 3, resp.Overlapping.New_foo)\n}\n\nfunc TestComplexityFuncs(t *testing.T) {\n\tresolvers := &Stub{}\n\tcfg := Config{Resolvers: resolvers}\n\tcfg.Complexity.OverlappingFields.Foo = func(childComplexity int) int { return 1000 }\n\tcfg.Complexity.OverlappingFields.NewFoo = func(childComplexity int) int { return 5 }\n\n\tsrv := handler.New(NewExecutableSchema(cfg))\n\tsrv.AddTransport(transport.POST{})\n\tsrv.Use(extension.FixedComplexityLimit(10))\n\tc := client.New(srv)\n\n\tresolvers.QueryResolver.Overlapping = func(ctx context.Context) (fields *OverlappingFields, e error) {\n\t\treturn &OverlappingFields{\n\t\t\tFoo:    2,\n\t\t\tNewFoo: 3,\n\t\t}, nil\n\t}\n\n\tt.Run(\"with high complexity limit will not run\", func(t *testing.T) {\n\t\tran := false\n\t\tresolvers.OverlappingFieldsResolver.OldFoo = func(ctx context.Context, obj *OverlappingFields) (i int, e error) {\n\t\t\tran = true\n\t\t\treturn obj.Foo, nil\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tOverlapping any\n\t\t}\n\t\terr := c.Post(`query { overlapping { oneFoo, twoFoo, oldFoo, newFoo, new_foo } }`, &resp)\n\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t`[{\"message\":\"operation has complexity 2012, which exceeds the limit of 10\",\"extensions\":{\"code\":\"COMPLEXITY_LIMIT_EXCEEDED\"}}]`,\n\t\t)\n\t\trequire.False(t, ran)\n\t})\n\n\tt.Run(\"with low complexity will run\", func(t *testing.T) {\n\t\tran := false\n\t\tresolvers.QueryResolver.Overlapping = func(ctx context.Context) (fields *OverlappingFields, e error) {\n\t\t\tran = true\n\t\t\treturn &OverlappingFields{\n\t\t\t\tFoo:    2,\n\t\t\t\tNewFoo: 3,\n\t\t\t}, nil\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tOverlapping any\n\t\t}\n\t\tc.MustPost(`query { overlapping { newFoo } }`, &resp)\n\n\t\trequire.True(t, ran)\n\t})\n\n\tt.Run(\"with multiple low complexity will not run\", func(t *testing.T) {\n\t\tran := false\n\t\tresolvers.QueryResolver.Overlapping = func(ctx context.Context) (fields *OverlappingFields, e error) {\n\t\t\tran = true\n\t\t\treturn &OverlappingFields{\n\t\t\t\tFoo:    2,\n\t\t\t\tNewFoo: 3,\n\t\t\t}, nil\n\t\t}\n\n\t\tvar resp any\n\t\terr := c.Post(`query {\n\t\t\ta: overlapping { newFoo },\n\t\t\tb: overlapping { newFoo },\n\t\t\tc: overlapping { newFoo },\n\t\t}`, &resp)\n\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t`[{\"message\":\"operation has complexity 18, which exceeds the limit of 10\",\"extensions\":{\"code\":\"COMPLEXITY_LIMIT_EXCEEDED\"}}]`,\n\t\t)\n\t\trequire.False(t, ran)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/defaults.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\ntype MutationResolver interface {\n\tDefaultInput(ctx context.Context, input DefaultInput) (*DefaultParametersMirror, error)\n\tOverrideValueViaInput(ctx context.Context, input FieldsOrderInput) (*FieldsOrderPayload, error)\n\tUpdateProduct(ctx context.Context, input map[string]interface{}) (string, error)\n\tIssue4053(ctx context.Context, input *Issue4053Input1) (bool, error)\n\tUpdateSomething(ctx context.Context, input SpecialInput) (string, error)\n\tUpdatePtrToPtr(ctx context.Context, input UpdatePtrToPtrOuter) (*PtrToPtrOuter, error)\n}\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_Mutation_defaultInput_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"input\", ec.unmarshalNDefaultInput2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐDefaultInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"input\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Mutation_issue4053_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"input\", ec.unmarshalOIssue4053Input12ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐIssue4053Input1)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"input\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Mutation_overrideValueViaInput_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"input\", ec.unmarshalNFieldsOrderInput2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐFieldsOrderInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"input\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Mutation_updateProduct_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"id\", ec.unmarshalNID2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"id\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg1\n\targ2, err := graphql.ProcessArgField(ctx, rawArgs, \"price\", ec.unmarshalOFloat2ᚖfloat64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"price\"] = arg2\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Mutation_updatePtrToPtr_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"input\", ec.unmarshalNUpdatePtrToPtrOuter2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐUpdatePtrToPtrOuter)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"input\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Mutation_updateSomething_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"input\", ec.unmarshalNSpecialInput2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐSpecialInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"input\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _DefaultParametersMirror_falsyBoolean(ctx context.Context, field graphql.CollectedField, obj *DefaultParametersMirror) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_DefaultParametersMirror_falsyBoolean,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.FalsyBoolean, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOBoolean2ᚖbool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_DefaultParametersMirror_falsyBoolean(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"DefaultParametersMirror\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _DefaultParametersMirror_truthyBoolean(ctx context.Context, field graphql.CollectedField, obj *DefaultParametersMirror) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_DefaultParametersMirror_truthyBoolean,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.TruthyBoolean, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOBoolean2ᚖbool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_DefaultParametersMirror_truthyBoolean(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"DefaultParametersMirror\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Mutation_defaultInput(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Mutation_defaultInput,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Mutation().DefaultInput(ctx, fc.Args[\"input\"].(DefaultInput))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNDefaultParametersMirror2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐDefaultParametersMirror,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Mutation_defaultInput(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Mutation\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"falsyBoolean\":\n\t\t\t\treturn ec.fieldContext_DefaultParametersMirror_falsyBoolean(ctx, field)\n\t\t\tcase \"truthyBoolean\":\n\t\t\t\treturn ec.fieldContext_DefaultParametersMirror_truthyBoolean(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type DefaultParametersMirror\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Mutation_defaultInput_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Mutation_overrideValueViaInput(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Mutation_overrideValueViaInput,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Mutation().OverrideValueViaInput(ctx, fc.Args[\"input\"].(FieldsOrderInput))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNFieldsOrderPayload2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐFieldsOrderPayload,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Mutation_overrideValueViaInput(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Mutation\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"firstFieldValue\":\n\t\t\t\treturn ec.fieldContext_FieldsOrderPayload_firstFieldValue(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type FieldsOrderPayload\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Mutation_overrideValueViaInput_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Mutation_updateProduct(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Mutation_updateProduct,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Mutation().UpdateProduct(ctx, map[string]interface{}{\n\t\t\t\t\"id\":    fc.Args[\"id\"].(string),\n\t\t\t\t\"name\":  fc.Args[\"name\"].(*string),\n\t\t\t\t\"price\": fc.Args[\"price\"].(*float64),\n\t\t\t})\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Mutation_updateProduct(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Mutation\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Mutation_updateProduct_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Mutation_issue4053(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Mutation_issue4053,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Mutation().Issue4053(ctx, fc.Args[\"input\"].(*Issue4053Input1))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Mutation_issue4053(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Mutation\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Mutation_issue4053_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Mutation_updateSomething(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Mutation_updateSomething,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Mutation().UpdateSomething(ctx, fc.Args[\"input\"].(SpecialInput))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Mutation_updateSomething(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Mutation\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Mutation_updateSomething_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Mutation_updatePtrToPtr(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Mutation_updatePtrToPtr,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Mutation().UpdatePtrToPtr(ctx, fc.Args[\"input\"].(UpdatePtrToPtrOuter))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNPtrToPtrOuter2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPtrToPtrOuter,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Mutation_updatePtrToPtr(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Mutation\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_PtrToPtrOuter_name(ctx, field)\n\t\t\tcase \"inner\":\n\t\t\t\treturn ec.fieldContext_PtrToPtrOuter_inner(ctx, field)\n\t\t\tcase \"stupidInner\":\n\t\t\t\treturn ec.fieldContext_PtrToPtrOuter_stupidInner(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type PtrToPtrOuter\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Mutation_updatePtrToPtr_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalInputDefaultInput(ctx context.Context, obj any) (DefaultInput, error) {\n\tvar it DefaultInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tif _, present := asMap[\"falsyBoolean\"]; !present {\n\t\tasMap[\"falsyBoolean\"] = false\n\t}\n\tif _, present := asMap[\"truthyBoolean\"]; !present {\n\t\tasMap[\"truthyBoolean\"] = true\n\t}\n\n\tfieldsInOrder := [...]string{\"falsyBoolean\", \"truthyBoolean\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"falsyBoolean\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"falsyBoolean\"))\n\t\t\tdata, err := ec.unmarshalOBoolean2ᚖbool(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.FalsyBoolean = data\n\t\tcase \"truthyBoolean\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"truthyBoolean\"))\n\t\t\tdata, err := ec.unmarshalOBoolean2ᚖbool(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.TruthyBoolean = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar defaultParametersMirrorImplementors = []string{\"DefaultParametersMirror\"}\n\nfunc (ec *executionContext) _DefaultParametersMirror(ctx context.Context, sel ast.SelectionSet, obj *DefaultParametersMirror) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, defaultParametersMirrorImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"DefaultParametersMirror\")\n\t\tcase \"falsyBoolean\":\n\t\t\tout.Values[i] = ec._DefaultParametersMirror_falsyBoolean(ctx, field, obj)\n\t\tcase \"truthyBoolean\":\n\t\t\tout.Values[i] = ec._DefaultParametersMirror_truthyBoolean(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar mutationImplementors = []string{\"Mutation\"}\n\nfunc (ec *executionContext) _Mutation(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, mutationImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Mutation\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Mutation\")\n\t\tcase \"defaultInput\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Mutation_defaultInput(ctx, field)\n\t\t\t})\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"overrideValueViaInput\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Mutation_overrideValueViaInput(ctx, field)\n\t\t\t})\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"updateProduct\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Mutation_updateProduct(ctx, field)\n\t\t\t})\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"issue4053\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Mutation_issue4053(ctx, field)\n\t\t\t})\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"updateSomething\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Mutation_updateSomething(ctx, field)\n\t\t\t})\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"updatePtrToPtr\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Mutation_updatePtrToPtr(ctx, field)\n\t\t\t})\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNDefaultInput2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐDefaultInput(ctx context.Context, v any) (DefaultInput, error) {\n\tres, err := ec.unmarshalInputDefaultInput(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNDefaultParametersMirror2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐDefaultParametersMirror(ctx context.Context, sel ast.SelectionSet, v DefaultParametersMirror) graphql.Marshaler {\n\treturn ec._DefaultParametersMirror(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNDefaultParametersMirror2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐDefaultParametersMirror(ctx context.Context, sel ast.SelectionSet, v *DefaultParametersMirror) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._DefaultParametersMirror(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/followschema/defaults.graphql",
    "content": "extend type Query {\n    defaultParameters(\n        falsyBoolean: Boolean = false\n        truthyBoolean: Boolean = true\n    ): DefaultParametersMirror!\n}\n\nextend type Mutation {\n    defaultInput(input: DefaultInput!): DefaultParametersMirror!\n}\n\ninput DefaultInput {\n    falsyBoolean: Boolean = false\n    truthyBoolean: Boolean = true\n}\n\ntype DefaultParametersMirror {\n    falsyBoolean: Boolean\n    truthyBoolean: Boolean\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/defaults_test.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc assertDefaults(t *testing.T, ret *DefaultParametersMirror) {\n\trequire.NotNil(t, ret)\n\trequire.NotNil(t, ret.FalsyBoolean)\n\trequire.False(t, *ret.FalsyBoolean)\n\trequire.NotNil(t, ret.TruthyBoolean)\n\trequire.True(t, *ret.TruthyBoolean)\n}\n\nfunc TestDefaults(t *testing.T) {\n\tresolvers := &Stub{}\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"default field parameters\", func(t *testing.T) {\n\t\tresolvers.QueryResolver.DefaultParameters = func(\n\t\t\tctx context.Context,\n\t\t\tfalsyBoolean, truthyBoolean *bool,\n\t\t) (*DefaultParametersMirror, error) {\n\t\t\treturn &DefaultParametersMirror{\n\t\t\t\tFalsyBoolean:  falsyBoolean,\n\t\t\t\tTruthyBoolean: truthyBoolean,\n\t\t\t}, nil\n\t\t}\n\n\t\tvar resp struct{ DefaultParameters *DefaultParametersMirror }\n\t\terr := c.Post(`query {\n\t\t\tdefaultParameters {\n\t\t\t\tfalsyBoolean\n\t\t\t\ttruthyBoolean\n\t\t\t}\n\t\t}`, &resp)\n\t\trequire.NoError(t, err)\n\t\tassertDefaults(t, resp.DefaultParameters)\n\t})\n\n\tt.Run(\"default input fields\", func(t *testing.T) {\n\t\tresolvers.MutationResolver.DefaultInput = func(\n\t\t\tctx context.Context,\n\t\t\tinput DefaultInput,\n\t\t) (*DefaultParametersMirror, error) {\n\t\t\treturn &DefaultParametersMirror{\n\t\t\t\tFalsyBoolean:  input.FalsyBoolean,\n\t\t\t\tTruthyBoolean: input.TruthyBoolean,\n\t\t\t}, nil\n\t\t}\n\n\t\tvar resp struct{ DefaultInput *DefaultParametersMirror }\n\t\terr := c.Post(`mutation {\n\t\t\tdefaultInput(input: {}) {\n\t\t\t\tfalsyBoolean\n\t\t\t\ttruthyBoolean\n\t\t\t}\n\t\t}`, &resp)\n\t\trequire.NoError(t, err)\n\t\tassertDefaults(t, resp.DefaultInput)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/defer.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\ntype DeferModelResolver interface {\n\tValues(ctx context.Context, obj *DeferModel) ([]string, error)\n}\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _DeferModel_id(ctx context.Context, field graphql.CollectedField, obj *DeferModel) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_DeferModel_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_DeferModel_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"DeferModel\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _DeferModel_name(ctx context.Context, field graphql.CollectedField, obj *DeferModel) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_DeferModel_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_DeferModel_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"DeferModel\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _DeferModel_values(ctx context.Context, field graphql.CollectedField, obj *DeferModel) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_DeferModel_values,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.DeferModel().Values(ctx, obj)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_DeferModel_values(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"DeferModel\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar deferModelImplementors = []string{\"DeferModel\"}\n\nfunc (ec *executionContext) _DeferModel(ctx context.Context, sel ast.SelectionSet, obj *DeferModel) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, deferModelImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"DeferModel\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._DeferModel_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._DeferModel_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"values\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._DeferModel_values(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) marshalNDeferModel2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐDeferModel(ctx context.Context, sel ast.SelectionSet, v *DeferModel) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._DeferModel(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalODeferModel2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐDeferModelᚄ(ctx context.Context, sel ast.SelectionSet, v []*DeferModel) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNDeferModel2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐDeferModel(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalODeferModel2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐDeferModel(ctx context.Context, sel ast.SelectionSet, v *DeferModel) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._DeferModel(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/followschema/defer.graphql",
    "content": "extend type Query {\n    deferSingle: DeferModel\n    deferMultiple: [DeferModel!]\n}\n\ntype DeferModel {\n    id: ID!\n    name: String!\n    values: [String!]! @goField(forceResolver: true)\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/directive.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) dir_length_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"min\", ec.unmarshalNInt2int)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"min\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"max\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"max\"] = arg1\n\targ2, err := graphql.ProcessArgField(ctx, rawArgs, \"message\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"message\"] = arg2\n\treturn args, nil\n}\n\nfunc (ec *executionContext) dir_logged_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"id\", ec.unmarshalNUUID2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"id\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) dir_order1_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"location\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"location\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) dir_order2_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"location\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"location\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) dir_populate_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"value\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"value\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) dir_range_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"min\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"min\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"max\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"max\"] = arg1\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\nfunc (ec *executionContext) _fieldMiddleware(ctx context.Context, obj any, next graphql.Resolver) graphql.Resolver {\n\tfc := graphql.GetFieldContext(ctx)\n\tfor _, d := range fc.Field.Directives {\n\t\tswitch d.Name {\n\t\tcase \"logged\":\n\t\t\trawArgs := d.ArgumentMap(ec.Variables)\n\t\t\targs, err := ec.dir_logged_args(ctx, rawArgs)\n\t\t\tif err != nil {\n\t\t\t\tec.Error(ctx, err)\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tn := next\n\t\t\tnext = func(ctx context.Context) (any, error) {\n\t\t\t\tif ec.Directives.Logged == nil {\n\t\t\t\t\treturn nil, errors.New(\"directive logged is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Logged(ctx, obj, n, args[\"id\"].(string))\n\t\t\t}\n\t\t}\n\t}\n\treturn next\n}\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _ObjectDirectives_text(ctx context.Context, field graphql.CollectedField, obj *ObjectDirectives) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ObjectDirectives_text,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Text, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tmin, err := ec.unmarshalNInt2int(ctx, 0)\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal string\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tmax, err := ec.unmarshalOInt2ᚖint(ctx, 7)\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal string\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tmessage, err := ec.unmarshalOString2ᚖstring(ctx, \"not valid\")\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal string\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tif ec.Directives.Length == nil {\n\t\t\t\t\tvar zeroVal string\n\t\t\t\t\treturn zeroVal, errors.New(\"directive length is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Length(ctx, obj, directive0, min, max, message)\n\t\t\t}\n\n\t\t\tnext = directive1\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ObjectDirectives_text(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ObjectDirectives\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ObjectDirectives_nullableText(ctx context.Context, field graphql.CollectedField, obj *ObjectDirectives) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ObjectDirectives_nullableText,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.NullableText, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tif ec.Directives.ToNull == nil {\n\t\t\t\t\tvar zeroVal *string\n\t\t\t\t\treturn zeroVal, errors.New(\"directive toNull is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.ToNull(ctx, obj, directive0)\n\t\t\t}\n\n\t\t\tnext = directive1\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ObjectDirectives_nullableText(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ObjectDirectives\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ObjectDirectives_order(ctx context.Context, field graphql.CollectedField, obj *ObjectDirectives) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ObjectDirectives_order,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Order, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ObjectDirectives_order(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ObjectDirectives\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ObjectDirectivesWithCustomGoModel_nullableText(ctx context.Context, field graphql.CollectedField, obj *ObjectDirectivesWithCustomGoModel) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ObjectDirectivesWithCustomGoModel_nullableText,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.NullableText, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tif ec.Directives.ToNull == nil {\n\t\t\t\t\tvar zeroVal string\n\t\t\t\t\treturn zeroVal, errors.New(\"directive toNull is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.ToNull(ctx, obj, directive0)\n\t\t\t}\n\n\t\t\tnext = directive1\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2string,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ObjectDirectivesWithCustomGoModel_nullableText(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ObjectDirectivesWithCustomGoModel\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalInputInnerDirectives(ctx context.Context, obj any) (InnerDirectives, error) {\n\tvar it InnerDirectives\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"message\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"message\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"message\"))\n\t\t\tdirective0 := func(ctx context.Context) (any, error) { return ec.unmarshalNString2string(ctx, v) }\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tmin, err := ec.unmarshalNInt2int(ctx, 1)\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal string\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tmessage, err := ec.unmarshalOString2ᚖstring(ctx, \"not valid\")\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal string\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tif ec.Directives.Length == nil {\n\t\t\t\t\tvar zeroVal string\n\t\t\t\t\treturn zeroVal, errors.New(\"directive length is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Length(ctx, obj, directive0, min, nil, message)\n\t\t\t}\n\n\t\t\ttmp, err := directive1(ctx)\n\t\t\tif err != nil {\n\t\t\t\treturn it, graphql.ErrorOnPath(ctx, err)\n\t\t\t}\n\t\t\tif data, ok := tmp.(string); ok {\n\t\t\t\tit.Message = data\n\t\t\t} else {\n\t\t\t\terr := fmt.Errorf(`unexpected type %T from directive, should be string`, tmp)\n\t\t\t\treturn it, graphql.ErrorOnPath(ctx, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputInputDirectives(ctx context.Context, obj any) (InputDirectives, error) {\n\tvar it InputDirectives\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"text\", \"nullableText\", \"inner\", \"innerNullable\", \"thirdParty\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"text\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"text\"))\n\t\t\tdirective0 := func(ctx context.Context) (any, error) { return ec.unmarshalNString2string(ctx, v) }\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tmin, err := ec.unmarshalNInt2int(ctx, 0)\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal string\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tmax, err := ec.unmarshalOInt2ᚖint(ctx, 7)\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal string\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tmessage, err := ec.unmarshalOString2ᚖstring(ctx, \"not valid\")\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal string\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tif ec.Directives.Length == nil {\n\t\t\t\t\tvar zeroVal string\n\t\t\t\t\treturn zeroVal, errors.New(\"directive length is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Length(ctx, obj, directive0, min, max, message)\n\t\t\t}\n\n\t\t\ttmp, err := directive1(ctx)\n\t\t\tif err != nil {\n\t\t\t\treturn it, graphql.ErrorOnPath(ctx, err)\n\t\t\t}\n\t\t\tif data, ok := tmp.(string); ok {\n\t\t\t\tit.Text = data\n\t\t\t} else {\n\t\t\t\terr := fmt.Errorf(`unexpected type %T from directive, should be string`, tmp)\n\t\t\t\treturn it, graphql.ErrorOnPath(ctx, err)\n\t\t\t}\n\t\tcase \"nullableText\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"nullableText\"))\n\t\t\tdirective0 := func(ctx context.Context) (any, error) { return ec.unmarshalOString2ᚖstring(ctx, v) }\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tif ec.Directives.ToNull == nil {\n\t\t\t\t\tvar zeroVal *string\n\t\t\t\t\treturn zeroVal, errors.New(\"directive toNull is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.ToNull(ctx, obj, directive0)\n\t\t\t}\n\n\t\t\ttmp, err := directive1(ctx)\n\t\t\tif err != nil {\n\t\t\t\treturn it, graphql.ErrorOnPath(ctx, err)\n\t\t\t}\n\t\t\tif data, ok := tmp.(*string); ok {\n\t\t\t\tit.NullableText = data\n\t\t\t} else if tmp == nil {\n\t\t\t\tit.NullableText = nil\n\t\t\t} else {\n\t\t\t\terr := fmt.Errorf(`unexpected type %T from directive, should be *string`, tmp)\n\t\t\t\treturn it, graphql.ErrorOnPath(ctx, err)\n\t\t\t}\n\t\tcase \"inner\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"inner\"))\n\t\t\tdata, err := ec.unmarshalNInnerDirectives2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐInnerDirectives(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Inner = data\n\t\tcase \"innerNullable\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"innerNullable\"))\n\t\t\tdata, err := ec.unmarshalOInnerDirectives2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐInnerDirectives(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.InnerNullable = data\n\t\tcase \"thirdParty\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"thirdParty\"))\n\t\t\tdirective0 := func(ctx context.Context) (any, error) {\n\t\t\t\treturn ec.unmarshalOThirdParty2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐThirdParty(ctx, v)\n\t\t\t}\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tmin, err := ec.unmarshalNInt2int(ctx, 0)\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal *ThirdParty\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tmax, err := ec.unmarshalOInt2ᚖint(ctx, 7)\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal *ThirdParty\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tif ec.Directives.Length == nil {\n\t\t\t\t\tvar zeroVal *ThirdParty\n\t\t\t\t\treturn zeroVal, errors.New(\"directive length is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Length(ctx, obj, directive0, min, max, nil)\n\t\t\t}\n\n\t\t\ttmp, err := directive1(ctx)\n\t\t\tif err != nil {\n\t\t\t\treturn it, graphql.ErrorOnPath(ctx, err)\n\t\t\t}\n\t\t\tif data, ok := tmp.(*ThirdParty); ok {\n\t\t\t\tit.ThirdParty = data\n\t\t\t} else if tmp == nil {\n\t\t\t\tit.ThirdParty = nil\n\t\t\t} else {\n\t\t\t\terr := fmt.Errorf(`unexpected type %T from directive, should be *github.com/99designs/gqlgen/codegen/testserver/followschema.ThirdParty`, tmp)\n\t\t\t\treturn it, graphql.ErrorOnPath(ctx, err)\n\t\t\t}\n\t\t}\n\t}\n\t// Execute INPUT_OBJECT level directives (e.g., @oneOf, @directive3)\n\t// These run after all fields have been unmarshaled\n\tdirective0 := func(ctx context.Context) (any, error) { return it, nil }\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\tif ec.Directives.Directive3 == nil {\n\t\t\treturn it, errors.New(\"directive directive3 is not implemented\")\n\t\t}\n\t\treturn ec.Directives.Directive3(ctx, asMap, directive0)\n\t}\n\ttmp, err := directive1(ctx)\n\tif err != nil {\n\t\treturn it, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(InputDirectives); ok {\n\t\treturn data, nil\n\t}\n\treturn it, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from INPUT_OBJECT directive, should be InputDirectives`, tmp))\n}\n\nfunc (ec *executionContext) unmarshalInputOuterWrapperInput(ctx context.Context, obj any) (OuterWrapperInput, error) {\n\tvar it OuterWrapperInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"inner\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"inner\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"inner\"))\n\t\t\tdata, err := ec.unmarshalNInputDirectives2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐInputDirectives(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Inner = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar objectDirectivesImplementors = []string{\"ObjectDirectives\"}\n\nfunc (ec *executionContext) _ObjectDirectives(ctx context.Context, sel ast.SelectionSet, obj *ObjectDirectives) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, objectDirectivesImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"ObjectDirectives\")\n\t\tcase \"text\":\n\t\t\tout.Values[i] = ec._ObjectDirectives_text(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"nullableText\":\n\t\t\tout.Values[i] = ec._ObjectDirectives_nullableText(ctx, field, obj)\n\t\tcase \"order\":\n\t\t\tout.Values[i] = ec._ObjectDirectives_order(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar objectDirectivesWithCustomGoModelImplementors = []string{\"ObjectDirectivesWithCustomGoModel\"}\n\nfunc (ec *executionContext) _ObjectDirectivesWithCustomGoModel(ctx context.Context, sel ast.SelectionSet, obj *ObjectDirectivesWithCustomGoModel) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, objectDirectivesWithCustomGoModelImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"ObjectDirectivesWithCustomGoModel\")\n\t\tcase \"nullableText\":\n\t\t\tout.Values[i] = ec._ObjectDirectivesWithCustomGoModel_nullableText(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNInnerDirectives2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐInnerDirectives(ctx context.Context, v any) (*InnerDirectives, error) {\n\tres, err := ec.unmarshalInputInnerDirectives(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalNInputDirectives2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐInputDirectives(ctx context.Context, v any) (InputDirectives, error) {\n\tres, err := ec.unmarshalInputInputDirectives(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalNInputDirectives2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐInputDirectives(ctx context.Context, v any) (*InputDirectives, error) {\n\tres, err := ec.unmarshalInputInputDirectives(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalNOuterWrapperInput2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐOuterWrapperInput(ctx context.Context, v any) (OuterWrapperInput, error) {\n\tres, err := ec.unmarshalInputOuterWrapperInput(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalOInnerDirectives2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐInnerDirectives(ctx context.Context, v any) (*InnerDirectives, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputInnerDirectives(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalOInputDirectives2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐInputDirectives(ctx context.Context, v any) (*InputDirectives, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputInputDirectives(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOObjectDirectives2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐObjectDirectives(ctx context.Context, sel ast.SelectionSet, v *ObjectDirectives) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._ObjectDirectives(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOObjectDirectivesWithCustomGoModel2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐObjectDirectivesWithCustomGoModel(ctx context.Context, sel ast.SelectionSet, v *ObjectDirectivesWithCustomGoModel) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._ObjectDirectivesWithCustomGoModel(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/followschema/directive.graphql",
    "content": "directive @length(min: Int!, max: Int, message: String) on ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION | FIELD_DEFINITION\ndirective @range(min: Int = 0, max: Int) on ARGUMENT_DEFINITION\ndirective @custom on ARGUMENT_DEFINITION\ndirective @logged(id: UUID!) on FIELD\ndirective @toNull on ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION | FIELD_DEFINITION\ndirective @populate(value: String!) on ARGUMENT_DEFINITION\ndirective @directive1 on FIELD_DEFINITION\ndirective @directive2 on FIELD_DEFINITION\ndirective @directive3 on INPUT_OBJECT\ndirective @unimplemented on FIELD_DEFINITION\ndirective @order1(location: String!) repeatable on FIELD_DEFINITION | OBJECT\ndirective @order2(location: String!) on OBJECT\ndirective @noop on ARGUMENT_DEFINITION\n\nextend type Query {\n    directiveArg(arg: String! @length(min:1, max: 255, message: \"invalid length\")): String\n    directiveNullableArg(arg: Int @range(min:0), arg2: Int @range, arg3: String @toNull): String\n    directiveSingleNullableArg(\n        arg1: String @populate(value: \"test\") @noop,\n    ): String\n    directiveInputNullable(arg: InputDirectives): String\n    directiveInput(arg: InputDirectives!): String\n    directiveInputType(arg: InnerInput! @custom): String\n    directiveInputOuter(arg: OuterWrapperInput!): String\n    directiveObject: ObjectDirectives @order1(location: \"Query_field\")\n    directiveObjectWithCustomGoModel: ObjectDirectivesWithCustomGoModel\n    directiveFieldDef(ret: String!): String! @length(min: 1, message: \"not valid\")\n    directiveField: String\n    directiveDouble: String @directive1 @directive2\n    directiveUnimplemented: String @unimplemented\n}\n\nextend type Subscription {\n    directiveArg(arg: String! @length(min:1, max: 255, message: \"invalid length\")): String\n    directiveNullableArg(arg: Int @range(min:0), arg2: Int @range, arg3: String @toNull): String\n    directiveDouble: String @directive1 @directive2\n    directiveUnimplemented: String @unimplemented\n}\n\ninput OuterWrapperInput {\n    inner: InputDirectives! \n}\n\ninput InputDirectives @directive3 {\n    text: String! @length(min: 0, max: 7, message: \"not valid\")\n    nullableText: String @toNull\n    inner: InnerDirectives!\n    innerNullable: InnerDirectives\n    thirdParty: ThirdParty @length(min: 0, max: 7)\n}\n\ninput InnerDirectives {\n    message: String! @length(min: 1, message: \"not valid\")\n}\n\ntype ObjectDirectives @order1(location: \"order1_1\") @order1(location: \"order1_2\") @order2(location: \"order2_1\") {\n    text: String! @length(min: 0, max: 7, message: \"not valid\")\n    nullableText: String @toNull\n    order: [String!]!\n}\n\ntype ObjectDirectivesWithCustomGoModel {\n    nullableText: String @toNull\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/directive_test.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"sync\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\n// isNil checks if the given value is nil\nfunc isNil(input any) bool {\n\tif input == nil {\n\t\treturn true\n\t}\n\t// Using reflect to check if the value is nil. This is necessary for\n\t// any types that are not nil types but have a nil value (e.g. *string).\n\tvalue := reflect.ValueOf(input)\n\treturn value.IsNil()\n}\n\ntype ckey string\n\ntype callStore struct {\n\tmu    sync.Mutex\n\tcalls map[string][]directiveCall\n}\n\nfunc (s *callStore) getCalls(directiveName string) []directiveCall {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\n\tif s.calls == nil {\n\t\ts.calls = make(map[string][]directiveCall)\n\t}\n\n\treturn s.calls[directiveName]\n}\n\nfunc (s *callStore) addCall(directiveName string, call directiveCall) {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\n\tif s.calls == nil {\n\t\ts.calls = make(map[string][]directiveCall)\n\t}\n\n\ts.calls[directiveName] = append(s.calls[directiveName], call)\n}\n\nfunc (s *callStore) reset(directiveName string) {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\n\tif s.calls == nil {\n\t\ts.calls = make(map[string][]directiveCall)\n\t}\n\n\ts.calls[directiveName] = nil\n}\n\ntype directiveCall struct {\n\tTypeName string\n\tValue    any\n}\n\nfunc TestDirectives(t *testing.T) {\n\tresolvers := &Stub{}\n\tok := \"Ok\"\n\tresolvers.QueryResolver.DirectiveArg = func(ctx context.Context, arg string) (i *string, e error) {\n\t\treturn &ok, nil\n\t}\n\n\tresolvers.QueryResolver.DirectiveInput = func(ctx context.Context, arg InputDirectives) (i *string, e error) {\n\t\treturn &ok, nil\n\t}\n\n\tresolvers.QueryResolver.DirectiveInputNullable = func(ctx context.Context, arg *InputDirectives) (i *string, e error) {\n\t\treturn &ok, nil\n\t}\n\n\tresolvers.QueryResolver.DirectiveNullableArg = func(ctx context.Context, arg *int, arg2 *int, arg3 *string) (*string, error) {\n\t\treturn &ok, nil\n\t}\n\n\tresolvers.QueryResolver.DirectiveSingleNullableArg = func(ctx context.Context, arg1 *string) (*string, error) {\n\t\tif arg1 != nil {\n\t\t\treturn arg1, nil\n\t\t}\n\n\t\treturn &ok, nil\n\t}\n\n\tresolvers.QueryResolver.DirectiveInputType = func(ctx context.Context, arg InnerInput) (i *string, e error) {\n\t\treturn &ok, nil\n\t}\n\n\tresolvers.QueryResolver.DirectiveInputOuter = func(ctx context.Context, arg OuterWrapperInput) (i *string, e error) {\n\t\treturn &ok, nil\n\t}\n\n\tresolvers.QueryResolver.DirectiveObject = func(ctx context.Context) (*ObjectDirectives, error) {\n\t\treturn &ObjectDirectives{\n\t\t\tText:         ok,\n\t\t\tNullableText: &ok,\n\t\t}, nil\n\t}\n\n\tresolvers.QueryResolver.DirectiveObjectWithCustomGoModel = func(ctx context.Context) (*ObjectDirectivesWithCustomGoModel, error) {\n\t\treturn &ObjectDirectivesWithCustomGoModel{\n\t\t\tNullableText: ok,\n\t\t}, nil\n\t}\n\n\tresolvers.QueryResolver.DirectiveField = func(ctx context.Context) (*string, error) {\n\t\tif s, ok := ctx.Value(ckey(\"request_id\")).(*string); ok {\n\t\t\treturn s, nil\n\t\t}\n\n\t\treturn nil, nil\n\t}\n\n\tresolvers.QueryResolver.DirectiveDouble = func(ctx context.Context) (*string, error) {\n\t\treturn &ok, nil\n\t}\n\n\tresolvers.QueryResolver.DirectiveUnimplemented = func(ctx context.Context) (*string, error) {\n\t\treturn &ok, nil\n\t}\n\n\tokchan := func() (<-chan *string, error) { //nolint:unparam // interface purposes\n\t\tres := make(chan *string, 1)\n\t\tres <- &ok\n\t\tclose(res)\n\t\treturn res, nil\n\t}\n\n\tresolvers.SubscriptionResolver.DirectiveArg = func(ctx context.Context, arg string) (strings <-chan *string, e error) {\n\t\treturn okchan()\n\t}\n\n\tresolvers.SubscriptionResolver.DirectiveNullableArg = func(ctx context.Context, arg *int, arg2 *int, arg3 *string) (strings <-chan *string, e error) {\n\t\treturn okchan()\n\t}\n\n\tresolvers.SubscriptionResolver.DirectiveDouble = func(ctx context.Context) (strings <-chan *string, e error) {\n\t\treturn okchan()\n\t}\n\n\tresolvers.SubscriptionResolver.DirectiveUnimplemented = func(ctx context.Context) (<-chan *string, error) {\n\t\treturn okchan()\n\t}\n\n\tcallStore := callStore{}\n\n\tsrv := handler.New(NewExecutableSchema(Config{\n\t\tResolvers: resolvers,\n\t\tDirectives: DirectiveRoot{\n\t\t\t//nolint:revive // can't rename min, max because it's generated code\n\t\t\tLength: func(ctx context.Context, obj any, next graphql.Resolver, min int, max *int, message *string) (any, error) {\n\t\t\t\te := func(msg string) error {\n\t\t\t\t\tif message == nil {\n\t\t\t\t\t\treturn errors.New(msg)\n\t\t\t\t\t}\n\t\t\t\t\treturn errors.New(*message)\n\t\t\t\t}\n\t\t\t\tres, err := next(ctx)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\ts := res.(string)\n\t\t\t\tif len(s) < min {\n\t\t\t\t\treturn nil, e(\"too short\")\n\t\t\t\t}\n\t\t\t\tif max != nil && len(s) > *max {\n\t\t\t\t\treturn nil, e(\"too long\")\n\t\t\t\t}\n\t\t\t\treturn res, nil\n\t\t\t},\n\t\t\t//nolint:revive // can't rename min, max because it's generated code\n\t\t\tRange: func(ctx context.Context, obj any, next graphql.Resolver, min *int, max *int) (any, error) {\n\t\t\t\tres, err := next(ctx)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\tswitch res := res.(type) {\n\t\t\t\tcase int:\n\t\t\t\t\tif min != nil && res < *min {\n\t\t\t\t\t\treturn nil, errors.New(\"too small\")\n\t\t\t\t\t}\n\t\t\t\t\tif max != nil && res > *max {\n\t\t\t\t\t\treturn nil, errors.New(\"too large\")\n\t\t\t\t\t}\n\t\t\t\t\treturn next(ctx)\n\n\t\t\t\tcase int64:\n\t\t\t\t\tif min != nil && int(res) < *min {\n\t\t\t\t\t\treturn nil, errors.New(\"too small\")\n\t\t\t\t\t}\n\t\t\t\t\tif max != nil && int(res) > *max {\n\t\t\t\t\t\treturn nil, errors.New(\"too large\")\n\t\t\t\t\t}\n\t\t\t\t\treturn next(ctx)\n\n\t\t\t\tcase *int:\n\t\t\t\t\tif min != nil && *res < *min {\n\t\t\t\t\t\treturn nil, errors.New(\"too small\")\n\t\t\t\t\t}\n\t\t\t\t\tif max != nil && *res > *max {\n\t\t\t\t\t\treturn nil, errors.New(\"too large\")\n\t\t\t\t\t}\n\t\t\t\t\treturn next(ctx)\n\t\t\t\t}\n\t\t\t\treturn nil, fmt.Errorf(\"unsupported type %T\", res)\n\t\t\t},\n\t\t\tCustom: func(ctx context.Context, obj any, next graphql.Resolver) (any, error) {\n\t\t\t\treturn next(ctx)\n\t\t\t},\n\t\t\tLogged: func(ctx context.Context, obj any, next graphql.Resolver, id string) (any, error) {\n\t\t\t\treturn next(context.WithValue(ctx, ckey(\"request_id\"), &id))\n\t\t\t},\n\t\t\tToNull: func(ctx context.Context, obj any, next graphql.Resolver) (any, error) {\n\t\t\t\treturn nil, nil\n\t\t\t},\n\t\t\tPopulate: func(ctx context.Context, obj any, next graphql.Resolver, value string) (any, error) {\n\t\t\t\tres, err := next(ctx)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\tif !isNil(res) {\n\t\t\t\t\treturn res, err\n\t\t\t\t}\n\n\t\t\t\treturn &value, nil\n\t\t\t},\n\t\t\tNoop: func(ctx context.Context, obj any, next graphql.Resolver) (any, error) {\n\t\t\t\treturn next(ctx)\n\t\t\t},\n\t\t\tDirective1: func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error) {\n\t\t\t\treturn next(ctx)\n\t\t\t},\n\t\t\tDirective2: func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error) {\n\t\t\t\treturn next(ctx)\n\t\t\t},\n\t\t\tDirective3: func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error) {\n\t\t\t\tcall := directiveCall{}\n\t\t\t\ttypedObj, err := next(ctx)\n\t\t\t\tif typedObj != nil {\n\t\t\t\t\tcall.TypeName = (reflect.TypeOf(typedObj).String())\n\t\t\t\t\tcall.Value = typedObj\n\t\t\t\t}\n\t\t\t\tcallStore.addCall(\"Directive3\", call)\n\t\t\t\treturn typedObj, err\n\t\t\t},\n\t\t\tOrder1: func(ctx context.Context, obj any, next graphql.Resolver, location string) (res any, err error) {\n\t\t\t\torder := []string{location}\n\t\t\t\tres, err = next(ctx)\n\t\t\t\tod := res.(*ObjectDirectives)\n\t\t\t\tod.Order = append(order, od.Order...)\n\t\t\t\treturn od, err\n\t\t\t},\n\t\t\tOrder2: func(ctx context.Context, obj any, next graphql.Resolver, location string) (res any, err error) {\n\t\t\t\torder := []string{location}\n\t\t\t\tres, err = next(ctx)\n\t\t\t\tod := res.(*ObjectDirectives)\n\t\t\t\tod.Order = append(order, od.Order...)\n\t\t\t\treturn od, err\n\t\t\t},\n\t\t\tUnimplemented: nil,\n\t\t},\n\t}))\n\tsrv.AddTransport(transport.Websocket{\n\t\tKeepAlivePingInterval: time.Second,\n\t})\n\tsrv.AddTransport(transport.POST{})\n\tsrv.AroundFields(func(ctx context.Context, next graphql.Resolver) (res any, err error) {\n\t\tpath, _ := ctx.Value(ckey(\"path\")).([]int)\n\t\treturn next(context.WithValue(ctx, ckey(\"path\"), append(path, 1)))\n\t})\n\n\tsrv.AroundFields(func(ctx context.Context, next graphql.Resolver) (res any, err error) {\n\t\tpath, _ := ctx.Value(ckey(\"path\")).([]int)\n\t\treturn next(context.WithValue(ctx, ckey(\"path\"), append(path, 2)))\n\t})\n\n\tc := client.New(srv)\n\n\tt.Run(\"arg directives\", func(t *testing.T) {\n\t\tt.Run(\"when function errors on directives\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveArg *string\n\t\t\t}\n\n\t\t\terr := c.Post(`query { directiveArg(arg: \"\") }`, &resp)\n\n\t\t\trequire.EqualError(\n\t\t\t\tt,\n\t\t\t\terr,\n\t\t\t\t`[{\"message\":\"invalid length\",\"path\":[\"directiveArg\",\"arg\"]}]`,\n\t\t\t)\n\t\t\trequire.Nil(t, resp.DirectiveArg)\n\t\t})\n\t\tt.Run(\"when function errors on nullable arg directives\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveNullableArg *string\n\t\t\t}\n\n\t\t\terr := c.Post(`query { directiveNullableArg(arg: -100) }`, &resp)\n\n\t\t\trequire.EqualError(\n\t\t\t\tt,\n\t\t\t\terr,\n\t\t\t\t`[{\"message\":\"too small\",\"path\":[\"directiveNullableArg\",\"arg\"]}]`,\n\t\t\t)\n\t\t\trequire.Nil(t, resp.DirectiveNullableArg)\n\t\t})\n\t\tt.Run(\"when function success on nullable arg directives\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveNullableArg *string\n\t\t\t}\n\n\t\t\terr := c.Post(`query { directiveNullableArg }`, &resp)\n\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Equal(t, \"Ok\", *resp.DirectiveNullableArg)\n\t\t})\n\t\tt.Run(\"when function success on valid nullable arg directives\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveNullableArg *string\n\t\t\t}\n\n\t\t\terr := c.Post(`query { directiveNullableArg(arg: 1) }`, &resp)\n\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Equal(t, \"Ok\", *resp.DirectiveNullableArg)\n\t\t})\n\t\tt.Run(\"when function success\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveArg *string\n\t\t\t}\n\n\t\t\terr := c.Post(`query { directiveArg(arg: \"test\") }`, &resp)\n\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Equal(t, \"Ok\", *resp.DirectiveArg)\n\t\t})\n\n\t\tt.Run(\"directive is not called with null arguments\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveSingleNullableArg *string\n\t\t\t}\n\n\t\t\terr := c.Post(`query { directiveSingleNullableArg }`, &resp)\n\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Equal(t, \"Ok\", *resp.DirectiveSingleNullableArg)\n\t\t})\n\t})\n\tt.Run(\"field definition directives\", func(t *testing.T) {\n\t\tresolvers.QueryResolver.DirectiveFieldDef = func(ctx context.Context, ret string) (i string, e error) {\n\t\t\treturn ret, nil\n\t\t}\n\n\t\tt.Run(\"too short\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveFieldDef string\n\t\t\t}\n\n\t\t\terr := c.Post(`query { directiveFieldDef(ret: \"\") }`, &resp)\n\n\t\t\trequire.EqualError(t, err, `[{\"message\":\"not valid\",\"path\":[\"directiveFieldDef\"]}]`)\n\t\t})\n\n\t\tt.Run(\"has 2 directives\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveDouble string\n\t\t\t}\n\n\t\t\tc.MustPost(`query { directiveDouble }`, &resp)\n\n\t\t\trequire.Equal(t, \"Ok\", resp.DirectiveDouble)\n\t\t})\n\n\t\tt.Run(\"directive is not implemented\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveUnimplemented string\n\t\t\t}\n\n\t\t\terr := c.Post(`query { directiveUnimplemented }`, &resp)\n\n\t\t\trequire.EqualError(\n\t\t\t\tt,\n\t\t\t\terr,\n\t\t\t\t`[{\"message\":\"directive unimplemented is not implemented\",\"path\":[\"directiveUnimplemented\"]}]`,\n\t\t\t)\n\t\t})\n\n\t\tt.Run(\"ok\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveFieldDef string\n\t\t\t}\n\n\t\t\tc.MustPost(`query { directiveFieldDef(ret: \"aaa\") }`, &resp)\n\n\t\t\trequire.Equal(t, \"aaa\", resp.DirectiveFieldDef)\n\t\t})\n\t})\n\tt.Run(\"field directives\", func(t *testing.T) {\n\t\tt.Run(\"add field directive\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveField string\n\t\t\t}\n\n\t\t\tc.MustPost(`query { directiveField@logged(id:\"testes_id\") }`, &resp)\n\n\t\t\trequire.Equal(t, `testes_id`, resp.DirectiveField)\n\t\t})\n\t\tt.Run(\"without field directive\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveField *string\n\t\t\t}\n\n\t\t\tc.MustPost(`query { directiveField }`, &resp)\n\n\t\t\trequire.Nil(t, resp.DirectiveField)\n\t\t})\n\t})\n\tt.Run(\"input field directives\", func(t *testing.T) {\n\t\tt.Run(\"when function errors on directives\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveInputNullable *string\n\t\t\t}\n\n\t\t\terr := c.Post(\n\t\t\t\t`query { directiveInputNullable(arg: {text:\"invalid text\",inner:{message:\"123\"}}) }`,\n\t\t\t\t&resp,\n\t\t\t)\n\n\t\t\trequire.EqualError(\n\t\t\t\tt,\n\t\t\t\terr,\n\t\t\t\t`[{\"message\":\"not valid\",\"path\":[\"directiveInputNullable\",\"arg\",\"text\"]}]`,\n\t\t\t)\n\t\t\trequire.Nil(t, resp.DirectiveInputNullable)\n\t\t})\n\t\tt.Run(\"when function errors on inner directives\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveInputNullable *string\n\t\t\t}\n\n\t\t\terr := c.Post(\n\t\t\t\t`query { directiveInputNullable(arg: {text:\"2\",inner:{message:\"\"}}) }`,\n\t\t\t\t&resp,\n\t\t\t)\n\n\t\t\trequire.EqualError(\n\t\t\t\tt,\n\t\t\t\terr,\n\t\t\t\t`[{\"message\":\"not valid\",\"path\":[\"directiveInputNullable\",\"arg\",\"inner\",\"message\"]}]`,\n\t\t\t)\n\t\t\trequire.Nil(t, resp.DirectiveInputNullable)\n\t\t})\n\t\tt.Run(\"when function errors on nullable inner directives\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveInputNullable *string\n\t\t\t}\n\n\t\t\terr := c.Post(\n\t\t\t\t`query { directiveInputNullable(arg: {text:\"success\",inner:{message:\"1\"},innerNullable:{message:\"\"}}) }`,\n\t\t\t\t&resp,\n\t\t\t)\n\n\t\t\trequire.EqualError(\n\t\t\t\tt,\n\t\t\t\terr,\n\t\t\t\t`[{\"message\":\"not valid\",\"path\":[\"directiveInputNullable\",\"arg\",\"innerNullable\",\"message\"]}]`,\n\t\t\t)\n\t\t\trequire.Nil(t, resp.DirectiveInputNullable)\n\t\t})\n\t\tt.Run(\"when function success\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveInputNullable *string\n\t\t\t}\n\n\t\t\terr := c.Post(\n\t\t\t\t`query { directiveInputNullable(arg: {text:\"23\",inner:{message:\"1\"}}) }`,\n\t\t\t\t&resp,\n\t\t\t)\n\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Equal(t, \"Ok\", *resp.DirectiveInputNullable)\n\t\t})\n\t\tt.Run(\"when function inner nullable success\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveInputNullable *string\n\t\t\t}\n\n\t\t\terr := c.Post(\n\t\t\t\t`query { directiveInputNullable(arg: {text:\"23\",nullableText:\"23\",inner:{message:\"1\"},innerNullable:{message:\"success\"}}) }`,\n\t\t\t\t&resp,\n\t\t\t)\n\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Equal(t, \"Ok\", *resp.DirectiveInputNullable)\n\t\t})\n\t\tt.Run(\"when arg has directive\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveInputType *string\n\t\t\t}\n\n\t\t\terr := c.Post(`query { directiveInputType(arg: {id: 1}) }`, &resp)\n\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Equal(t, \"Ok\", *resp.DirectiveInputType)\n\t\t})\n\t\tt.Run(\"directives run as expected for X times\", func(t *testing.T) {\n\t\t\tcallStore.reset(\"Directive3\")\n\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveInputOuter *string\n\t\t\t}\n\n\t\t\tquery := `query { directiveInputOuter(arg: {inner: {text:\"test\", inner:{message:\"msg\"}}}) }`\n\t\t\terr := c.Post(query, &resp)\n\t\t\trequire.NoError(t, err)\n\n\t\t\tcalls := callStore.getCalls(\"Directive3\")\n\t\t\tt.Logf(\"directive3 was called %d time(s)\", len(calls))\n\n\t\t\trequire.Len(t, calls, 1,\n\t\t\t\t\"@directive3 should be called exactly once, but was called %d times\", len(calls))\n\t\t\trequire.Equal(t, \"followschema.InputDirectives\", calls[0].TypeName,\n\t\t\t\t\"@directive3 should receive type InputDirectives, but received %s\",\n\t\t\t\tcalls[0].TypeName)\n\t\t\trequire.Equal(t, \"test\", calls[0].Value.(InputDirectives).Text)\n\t\t})\n\t})\n\tt.Run(\"object field directives\", func(t *testing.T) {\n\t\tt.Run(\"when function success\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveObject *struct {\n\t\t\t\t\tText         string\n\t\t\t\t\tNullableText *string\n\t\t\t\t\tOrder        []string\n\t\t\t\t}\n\t\t\t}\n\n\t\t\terr := c.Post(`query { directiveObject{ text nullableText order} }`, &resp)\n\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Equal(t, \"Ok\", resp.DirectiveObject.Text)\n\t\t\trequire.Nil(t, resp.DirectiveObject.NullableText)\n\t\t\trequire.Equal(t, \"Query_field\", resp.DirectiveObject.Order[0])\n\t\t\trequire.Equal(t, \"order2_1\", resp.DirectiveObject.Order[1])\n\t\t\trequire.Equal(t, \"order1_2\", resp.DirectiveObject.Order[2])\n\t\t\trequire.Equal(t, \"order1_1\", resp.DirectiveObject.Order[3])\n\t\t})\n\t\tt.Run(\"when directive returns nil & custom go field is not nilable\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveObjectWithCustomGoModel *struct {\n\t\t\t\t\tNullableText *string\n\t\t\t\t}\n\t\t\t}\n\n\t\t\terr := c.Post(`query { directiveObjectWithCustomGoModel{ nullableText } }`, &resp)\n\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Nil(t, resp.DirectiveObjectWithCustomGoModel.NullableText)\n\t\t})\n\t})\n\n\tt.Run(\"Subscription directives\", func(t *testing.T) {\n\t\tt.Run(\"arg directives\", func(t *testing.T) {\n\t\t\tt.Run(\"when function errors on directives\", func(t *testing.T) {\n\t\t\t\tvar resp struct {\n\t\t\t\t\tDirectiveArg *string\n\t\t\t\t}\n\n\t\t\t\terr := c.WebsocketOnce(`subscription { directiveArg(arg: \"\") }`, &resp)\n\n\t\t\t\trequire.EqualError(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\t`[{\"message\":\"invalid length\",\"path\":[\"directiveArg\",\"arg\"]}]`,\n\t\t\t\t)\n\t\t\t\trequire.Nil(t, resp.DirectiveArg)\n\t\t\t})\n\t\t\tt.Run(\"when function errors on nullable arg directives\", func(t *testing.T) {\n\t\t\t\tvar resp struct {\n\t\t\t\t\tDirectiveNullableArg *string\n\t\t\t\t}\n\n\t\t\t\terr := c.WebsocketOnce(`subscription { directiveNullableArg(arg: -100) }`, &resp)\n\n\t\t\t\trequire.EqualError(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\t`[{\"message\":\"too small\",\"path\":[\"directiveNullableArg\",\"arg\"]}]`,\n\t\t\t\t)\n\t\t\t\trequire.Nil(t, resp.DirectiveNullableArg)\n\t\t\t})\n\t\t\tt.Run(\"when function success on nullable arg directives\", func(t *testing.T) {\n\t\t\t\tvar resp struct {\n\t\t\t\t\tDirectiveNullableArg *string\n\t\t\t\t}\n\n\t\t\t\terr := c.WebsocketOnce(`subscription { directiveNullableArg }`, &resp)\n\n\t\t\t\trequire.NoError(t, err)\n\t\t\t\trequire.Equal(t, \"Ok\", *resp.DirectiveNullableArg)\n\t\t\t})\n\t\t\tt.Run(\"when function success on valid nullable arg directives\", func(t *testing.T) {\n\t\t\t\tvar resp struct {\n\t\t\t\t\tDirectiveNullableArg *string\n\t\t\t\t}\n\n\t\t\t\terr := c.WebsocketOnce(`subscription { directiveNullableArg(arg: 1) }`, &resp)\n\n\t\t\t\trequire.NoError(t, err)\n\t\t\t\trequire.Equal(t, \"Ok\", *resp.DirectiveNullableArg)\n\t\t\t})\n\t\t\tt.Run(\"when function success\", func(t *testing.T) {\n\t\t\t\tvar resp struct {\n\t\t\t\t\tDirectiveArg *string\n\t\t\t\t}\n\n\t\t\t\terr := c.WebsocketOnce(`subscription { directiveArg(arg: \"test\") }`, &resp)\n\n\t\t\t\trequire.NoError(t, err)\n\t\t\t\trequire.Equal(t, \"Ok\", *resp.DirectiveArg)\n\t\t\t})\n\t\t})\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/embedded.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _EmbeddedCase1_exportedEmbeddedPointerExportedMethod(ctx context.Context, field graphql.CollectedField, obj *EmbeddedCase1) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_EmbeddedCase1_exportedEmbeddedPointerExportedMethod,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ExportedEmbeddedPointerExportedMethod(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_EmbeddedCase1_exportedEmbeddedPointerExportedMethod(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"EmbeddedCase1\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _EmbeddedCase2_unexportedEmbeddedPointerExportedMethod(ctx context.Context, field graphql.CollectedField, obj *EmbeddedCase2) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_EmbeddedCase2_unexportedEmbeddedPointerExportedMethod,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.UnexportedEmbeddedPointerExportedMethod(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_EmbeddedCase2_unexportedEmbeddedPointerExportedMethod(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"EmbeddedCase2\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _EmbeddedCase3_unexportedEmbeddedInterfaceExportedMethod(ctx context.Context, field graphql.CollectedField, obj *EmbeddedCase3) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_EmbeddedCase3_unexportedEmbeddedInterfaceExportedMethod,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.UnexportedEmbeddedInterfaceExportedMethod(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_EmbeddedCase3_unexportedEmbeddedInterfaceExportedMethod(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"EmbeddedCase3\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar embeddedCase1Implementors = []string{\"EmbeddedCase1\"}\n\nfunc (ec *executionContext) _EmbeddedCase1(ctx context.Context, sel ast.SelectionSet, obj *EmbeddedCase1) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, embeddedCase1Implementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"EmbeddedCase1\")\n\t\tcase \"exportedEmbeddedPointerExportedMethod\":\n\t\t\tout.Values[i] = ec._EmbeddedCase1_exportedEmbeddedPointerExportedMethod(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar embeddedCase2Implementors = []string{\"EmbeddedCase2\"}\n\nfunc (ec *executionContext) _EmbeddedCase2(ctx context.Context, sel ast.SelectionSet, obj *EmbeddedCase2) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, embeddedCase2Implementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"EmbeddedCase2\")\n\t\tcase \"unexportedEmbeddedPointerExportedMethod\":\n\t\t\tout.Values[i] = ec._EmbeddedCase2_unexportedEmbeddedPointerExportedMethod(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar embeddedCase3Implementors = []string{\"EmbeddedCase3\"}\n\nfunc (ec *executionContext) _EmbeddedCase3(ctx context.Context, sel ast.SelectionSet, obj *EmbeddedCase3) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, embeddedCase3Implementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"EmbeddedCase3\")\n\t\tcase \"unexportedEmbeddedInterfaceExportedMethod\":\n\t\t\tout.Values[i] = ec._EmbeddedCase3_unexportedEmbeddedInterfaceExportedMethod(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) marshalOEmbeddedCase12ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐEmbeddedCase1(ctx context.Context, sel ast.SelectionSet, v *EmbeddedCase1) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._EmbeddedCase1(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOEmbeddedCase22ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐEmbeddedCase2(ctx context.Context, sel ast.SelectionSet, v *EmbeddedCase2) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._EmbeddedCase2(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOEmbeddedCase32ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐEmbeddedCase3(ctx context.Context, sel ast.SelectionSet, v *EmbeddedCase3) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._EmbeddedCase3(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/followschema/embedded.go",
    "content": "package followschema\n\n// EmbeddedCase1 model\ntype EmbeddedCase1 struct {\n\tEmpty\n\t*ExportedEmbeddedPointerAfterInterface\n}\n\n// Empty interface\ntype Empty any\n\n// ExportedEmbeddedPointerAfterInterface model\ntype ExportedEmbeddedPointerAfterInterface struct{}\n\n// ExportedEmbeddedPointerExportedMethod method\nfunc (*ExportedEmbeddedPointerAfterInterface) ExportedEmbeddedPointerExportedMethod() string {\n\treturn \"ExportedEmbeddedPointerExportedMethodResponse\"\n}\n\n// EmbeddedCase2 model\ntype EmbeddedCase2 struct {\n\t*unexportedEmbeddedPointer\n}\n\ntype unexportedEmbeddedPointer struct{}\n\n// UnexportedEmbeddedPointerExportedMethod method\nfunc (*unexportedEmbeddedPointer) UnexportedEmbeddedPointerExportedMethod() string {\n\treturn \"UnexportedEmbeddedPointerExportedMethodResponse\"\n}\n\n// EmbeddedCase3 model\ntype EmbeddedCase3 struct {\n\tunexportedEmbeddedInterface\n}\n\ntype unexportedEmbeddedInterface interface {\n\tnestedInterface\n}\n\ntype nestedInterface interface {\n\tUnexportedEmbeddedInterfaceExportedMethod() string\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/embedded.graphql",
    "content": "extend type Query {\n    embeddedCase1: EmbeddedCase1\n    embeddedCase2: EmbeddedCase2\n    embeddedCase3: EmbeddedCase3\n}\n\ntype EmbeddedCase1 @goModel(model:\"followschema.EmbeddedCase1\") {\n    exportedEmbeddedPointerExportedMethod: String!\n}\n\ntype EmbeddedCase2 @goModel(model:\"followschema.EmbeddedCase2\") {\n    unexportedEmbeddedPointerExportedMethod: String!\n}\n\ntype EmbeddedCase3 @goModel(model:\"followschema.EmbeddedCase3\") {\n    unexportedEmbeddedInterfaceExportedMethod: String!\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/embedded_test.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\ntype fakeUnexportedEmbeddedInterface struct{}\n\nfunc (*fakeUnexportedEmbeddedInterface) UnexportedEmbeddedInterfaceExportedMethod() string {\n\treturn \"UnexportedEmbeddedInterfaceExportedMethod\"\n}\n\nfunc TestEmbedded(t *testing.T) {\n\tresolver := &Stub{}\n\tresolver.QueryResolver.EmbeddedCase1 = func(ctx context.Context) (*EmbeddedCase1, error) {\n\t\treturn &EmbeddedCase1{}, nil\n\t}\n\tresolver.QueryResolver.EmbeddedCase2 = func(ctx context.Context) (*EmbeddedCase2, error) {\n\t\treturn &EmbeddedCase2{&unexportedEmbeddedPointer{}}, nil\n\t}\n\tresolver.QueryResolver.EmbeddedCase3 = func(ctx context.Context) (*EmbeddedCase3, error) {\n\t\treturn &EmbeddedCase3{&fakeUnexportedEmbeddedInterface{}}, nil\n\t}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolver}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"embedded case 1\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tEmbeddedCase1 struct {\n\t\t\t\tExportedEmbeddedPointerExportedMethod string\n\t\t\t}\n\t\t}\n\t\terr := c.Post(`query { embeddedCase1 { exportedEmbeddedPointerExportedMethod } }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(\n\t\t\tt,\n\t\t\t\"ExportedEmbeddedPointerExportedMethodResponse\",\n\t\t\tresp.EmbeddedCase1.ExportedEmbeddedPointerExportedMethod,\n\t\t)\n\t})\n\n\tt.Run(\"embedded case 2\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tEmbeddedCase2 struct {\n\t\t\t\tUnexportedEmbeddedPointerExportedMethod string\n\t\t\t}\n\t\t}\n\t\terr := c.Post(`query { embeddedCase2 { unexportedEmbeddedPointerExportedMethod } }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(\n\t\t\tt,\n\t\t\t\"UnexportedEmbeddedPointerExportedMethodResponse\",\n\t\t\tresp.EmbeddedCase2.UnexportedEmbeddedPointerExportedMethod,\n\t\t)\n\t})\n\n\tt.Run(\"embedded case 3\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tEmbeddedCase3 struct {\n\t\t\t\tUnexportedEmbeddedInterfaceExportedMethod string\n\t\t\t}\n\t\t}\n\t\terr := c.Post(\n\t\t\t`query { embeddedCase3 { unexportedEmbeddedInterfaceExportedMethod } }`,\n\t\t\t&resp,\n\t\t)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(\n\t\t\tt,\n\t\t\t\"UnexportedEmbeddedInterfaceExportedMethod\",\n\t\t\tresp.EmbeddedCase3.UnexportedEmbeddedInterfaceExportedMethod,\n\t\t)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/enum.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalInputInputWithEnumValue(ctx context.Context, obj any) (InputWithEnumValue, error) {\n\tvar it InputWithEnumValue\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"enum\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"enum\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"enum\"))\n\t\t\tdata, err := ec.unmarshalNEnumTest2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐEnumTest(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Enum = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNEnumTest2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐEnumTest(ctx context.Context, v any) (EnumTest, error) {\n\tvar res EnumTest\n\terr := res.UnmarshalGQL(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNEnumTest2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐEnumTest(ctx context.Context, sel ast.SelectionSet, v EnumTest) graphql.Marshaler {\n\treturn v\n}\n\nfunc (ec *executionContext) unmarshalOInputWithEnumValue2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐInputWithEnumValue(ctx context.Context, v any) (*InputWithEnumValue, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputInputWithEnumValue(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/followschema/enum.graphql",
    "content": "enum EnumTest {\n    OK\n    NG\n}\n\ninput InputWithEnumValue {\n    enum: EnumTest!\n}\n\nextend type Query {\n    enumInInput(input: InputWithEnumValue): EnumTest!\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/enums_test.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestEnumsResolver(t *testing.T) {\n\tresolvers := &Stub{}\n\tresolvers.QueryResolver.EnumInInput = func(ctx context.Context, input *InputWithEnumValue) (EnumTest, error) {\n\t\treturn input.Enum, nil\n\t}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"input with valid enum value\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tEnumInInput EnumTest\n\t\t}\n\t\tc.MustPost(`query {\n\t\t\tenumInInput(input: {enum: OK})\n\t\t}\n\t\t`, &resp)\n\t\trequire.Equal(t, EnumTestOk, resp.EnumInInput)\n\t})\n\n\tt.Run(\"input with invalid enum value\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tEnumInInput EnumTest\n\t\t}\n\t\terr := c.Post(`query {\n\t\t\tenumInInput(input: {enum: INVALID})\n\t\t}\n\t\t`, &resp)\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t`http 422: {\"errors\":[{\"message\":\"Value \\\"INVALID\\\" does not exist in \\\"EnumTest!\\\" enum.\",\"locations\":[{\"line\":2,\"column\":30}],\"extensions\":{\"code\":\"GRAPHQL_VALIDATION_FAILED\"}}],\"data\":null}`,\n\t\t)\n\t})\n\n\tt.Run(\"input with invalid enum value via vars\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tEnumInInput EnumTest\n\t\t}\n\t\terr := c.Post(`query ($input: InputWithEnumValue) {\n\t\t\tenumInInput(input: $input)\n\t\t}\n\t\t`, &resp, client.Var(\"input\", map[string]any{\"enum\": \"INVALID\"}))\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t`http 422: {\"errors\":[{\"message\":\"INVALID is not a valid EnumTest\",\"path\":[\"variable\",\"input\",\"enum\"],\"extensions\":{\"code\":\"GRAPHQL_VALIDATION_FAILED\"}}],\"data\":null}`,\n\t\t)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/fields_order.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\ntype FieldsOrderInputResolver interface {\n\tOverrideFirstField(ctx context.Context, obj *FieldsOrderInput, data *string) error\n}\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _FieldsOrderPayload_firstFieldValue(ctx context.Context, field graphql.CollectedField, obj *FieldsOrderPayload) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_FieldsOrderPayload_firstFieldValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.FirstFieldValue, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_FieldsOrderPayload_firstFieldValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"FieldsOrderPayload\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalInputFieldsOrderInput(ctx context.Context, obj any) (FieldsOrderInput, error) {\n\tvar it FieldsOrderInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"firstField\", \"overrideFirstField\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"firstField\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"firstField\"))\n\t\t\tdata, err := ec.unmarshalOString2ᚖstring(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.FirstField = data\n\t\tcase \"overrideFirstField\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"overrideFirstField\"))\n\t\t\tdata, err := ec.unmarshalOString2ᚖstring(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tif err = ec.Resolvers.FieldsOrderInput().OverrideFirstField(ctx, &it, data); err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t}\n\t}\n\treturn it, nil\n}\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar fieldsOrderPayloadImplementors = []string{\"FieldsOrderPayload\"}\n\nfunc (ec *executionContext) _FieldsOrderPayload(ctx context.Context, sel ast.SelectionSet, obj *FieldsOrderPayload) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, fieldsOrderPayloadImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"FieldsOrderPayload\")\n\t\tcase \"firstFieldValue\":\n\t\t\tout.Values[i] = ec._FieldsOrderPayload_firstFieldValue(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNFieldsOrderInput2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐFieldsOrderInput(ctx context.Context, v any) (FieldsOrderInput, error) {\n\tres, err := ec.unmarshalInputFieldsOrderInput(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNFieldsOrderPayload2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐFieldsOrderPayload(ctx context.Context, sel ast.SelectionSet, v FieldsOrderPayload) graphql.Marshaler {\n\treturn ec._FieldsOrderPayload(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNFieldsOrderPayload2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐFieldsOrderPayload(ctx context.Context, sel ast.SelectionSet, v *FieldsOrderPayload) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._FieldsOrderPayload(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/followschema/fields_order.go",
    "content": "package followschema\n\ntype FieldsOrderInput struct {\n\tFirstField *string `json:\"firstField\"`\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/fields_order.graphql",
    "content": "type FieldsOrderPayload {\n    firstFieldValue: String\n}\n\ninput FieldsOrderInput {\n    firstField: String\n    overrideFirstField: String\n}\n\nextend type Mutation {\n    overrideValueViaInput(input: FieldsOrderInput!): FieldsOrderPayload!\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/fields_order_test.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\ntype FieldsOrderPayloadResults struct {\n\tOverrideValueViaInput struct {\n\t\tFirstFieldValue *string `json:\"firstFieldValue\"`\n\t} `json:\"overrideValueViaInput\"`\n}\n\nfunc TestFieldsOrder(t *testing.T) {\n\tresolvers := &Stub{}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\tresolvers.FieldsOrderInputResolver.OverrideFirstField = func(ctx context.Context, in *FieldsOrderInput, data *string) error {\n\t\tif data != nil {\n\t\t\tin.FirstField = data\n\t\t}\n\t\treturn nil\n\t}\n\tresolvers.MutationResolver.OverrideValueViaInput = func(ctx context.Context, in FieldsOrderInput) (ret *FieldsOrderPayload, err error) {\n\t\tret = &FieldsOrderPayload{\n\t\t\tFirstFieldValue: in.FirstField,\n\t\t}\n\t\treturn ret, nil\n\t}\n\n\tt.Run(\"firstField\", func(t *testing.T) {\n\t\tvar resp FieldsOrderPayloadResults\n\n\t\terr := c.Post(`mutation {\n\t\t\toverrideValueViaInput(input: { firstField:\"newName\" }) {\n\t\t\t\tfirstFieldValue\n\t\t\t}\n\t\t}`, &resp)\n\t\trequire.NoError(t, err)\n\n\t\trequire.NotNil(t, resp.OverrideValueViaInput.FirstFieldValue)\n\t\trequire.Equal(t, \"newName\", *resp.OverrideValueViaInput.FirstFieldValue)\n\t})\n\n\tt.Run(\"firstField/override\", func(t *testing.T) {\n\t\tvar resp FieldsOrderPayloadResults\n\n\t\terr := c.Post(`mutation { overrideValueViaInput(input: {\n\t\t\t\tfirstField:\"newName\",\n\t\t\t\toverrideFirstField: \"override\"\n\t\t\t}) {\n\t\t\t\tfirstFieldValue\n\t\t\t}\n\t\t}`, &resp)\n\t\trequire.NoError(t, err)\n\n\t\trequire.NotNil(t, resp.OverrideValueViaInput.FirstFieldValue)\n\t\trequire.NotEqual(t, \"newName\", *resp.OverrideValueViaInput.FirstFieldValue)\n\t\trequire.Equal(t, \"override\", *resp.OverrideValueViaInput.FirstFieldValue)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/generated_test.go",
    "content": "//go:generate rm -f resolver.go\n//go:generate go run ../../../testdata/gqlgen.go -config gqlgen.yml -stub stub.go\n\npackage followschema\n\nimport (\n\t\"context\"\n\t\"reflect\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestForcedResolverFieldIsPointer(t *testing.T) {\n\tfield, ok := reflect.TypeFor[ForcedResolverResolver]().MethodByName(\"Field\")\n\trequire.True(t, ok)\n\trequire.Equal(t, \"*followschema.Circle\", field.Type.Out(0).String())\n}\n\nfunc TestEnums(t *testing.T) {\n\tt.Run(\"list of enums\", func(t *testing.T) {\n\t\trequire.Equal(t, StatusOk, AllStatus[0])\n\t\trequire.Equal(t, StatusError, AllStatus[1])\n\t})\n\n\tt.Run(\"invalid enum values\", func(t *testing.T) {\n\t\trequire.Equal(t, StatusOk, AllStatus[0])\n\t\trequire.Equal(t, StatusError, AllStatus[1])\n\t})\n}\n\nfunc TestUnionFragments(t *testing.T) {\n\tresolvers := &Stub{}\n\tresolvers.QueryResolver.ShapeUnion = func(ctx context.Context) (ShapeUnion, error) {\n\t\treturn &Circle{Radius: 32}, nil\n\t}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"inline fragment on union\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tShapeUnion struct {\n\t\t\t\tRadius float64\n\t\t\t}\n\t\t}\n\t\tc.MustPost(`query {\n\t\t\tshapeUnion {\n\t\t\t\t... on Circle {\n\t\t\t\t\tradius\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t`, &resp)\n\t\trequire.NotEmpty(t, resp.ShapeUnion.Radius)\n\t})\n\n\tt.Run(\"named fragment\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tShapeUnion struct {\n\t\t\t\tRadius float64\n\t\t\t}\n\t\t}\n\t\tc.MustPost(`query {\n\t\t\tshapeUnion {\n\t\t\t\t...C\n\t\t\t}\n\t\t}\n\n\t\tfragment C on ShapeUnion {\n\t\t\t... on Circle {\n\t\t\t\tradius\n\t\t\t}\n\t\t}\n\t\t`, &resp)\n\t\trequire.NotEmpty(t, resp.ShapeUnion.Radius)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/gqlgen.yml",
    "content": "schema:\n  - \"*.graphql\"\nskip_validation: true\nexec:\n  layout: follow-schema\n  dir: .\n  package: followschema\nmodel:\n  filename: models-gen.go\n  package: followschema\nresolver:\n  filename: resolver.go\n  package: followschema\n  type: Resolver\n\nautobind:\n  - \"github.com/99designs/gqlgen/codegen/testserver\"\n  - \"github.com/99designs/gqlgen/codegen/testserver/followschema\"\n  - \"github.com/99designs/gqlgen/codegen/testserver/followschema/introspection\"\n  - \"github.com/99designs/gqlgen/codegen/testserver/followschema/invalid-packagename\"\n\nmodels:\n  Email:\n    model: \"github.com/99designs/gqlgen/codegen/testserver/followschema.Email\"\n  StringFromContextFunction:\n    model: \"github.com/99designs/gqlgen/codegen/testserver/followschema.StringFromContextFunction\"\n"
  },
  {
    "path": "codegen/testserver/followschema/inline_arguments_error_test.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\n// TestInlineArgumentsErrorMessages verifies that validation errors reference\n// the inline argument names (what clients wrote), not the bundled parameter name\nfunc TestInlineArgumentsErrorMessages(t *testing.T) {\n\tresolvers := &Stub{}\n\tresolvers.QueryResolver.SearchProducts = func(ctx context.Context, filters map[string]any) ([]string, error) {\n\t\treturn []string{}, nil\n\t}\n\tresolvers.QueryResolver.SearchRequired = func(ctx context.Context, filters map[string]any) ([]string, error) {\n\t\treturn []string{}, nil\n\t}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"error references inline arg name when using wrong argument name\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tSearchProducts []string\n\t\t}\n\n\t\t// Try to use the bundled parameter name \"filters\" instead of inline args\n\t\terr := c.Post(`query {\n\t\t\tsearchProducts(filters: {query: \"test\"})\n\t\t}`, &resp)\n\n\t\trequire.Error(t, err)\n\t\tt.Logf(\"Error when using bundled parameter name: %v\", err)\n\n\t\t// Error should mention that \"filters\" is unknown\n\t\t// because the schema has been transformed to use query, category, minPrice\n\t\trequire.Contains(t, err.Error(), \"filters\",\n\t\t\t\"Error should mention 'filters' as unknown argument\")\n\t})\n\n\tt.Run(\"error references inline arg name when using undefined argument\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tSearchProducts []string\n\t\t}\n\n\t\t// Try to use an argument that doesn't exist in the input type\n\t\terr := c.Post(`query {\n\t\t\tsearchProducts(query: \"test\", unknownArg: \"value\")\n\t\t}`, &resp)\n\n\t\trequire.Error(t, err)\n\t\tt.Logf(\"Error when using unknown inline argument: %v\", err)\n\n\t\t// Error should mention \"unknownArg\" (the inline arg that doesn't exist)\n\t\trequire.Contains(t, err.Error(), \"unknownArg\",\n\t\t\t\"Error should mention 'unknownArg' as the unknown argument\")\n\t})\n\n\tt.Run(\"error references inline arg name when missing required argument\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tSearchRequired []string\n\t\t}\n\n\t\t// Try to call searchRequired without the required 'name' field\n\t\terr := c.Post(`query {\n\t\t\tsearchRequired(age: 30)\n\t\t}`, &resp)\n\n\t\trequire.Error(t, err)\n\t\tt.Logf(\"Error when missing required inline argument: %v\", err)\n\n\t\t// Error should mention \"name\" (the missing inline argument)\n\t\t// NOT \"filters\" (the bundled parameter that doesn't exist in the query)\n\t\trequire.Contains(t, err.Error(), \"name\",\n\t\t\t\"Error should mention 'name' as the required argument\")\n\t\trequire.NotContains(t, err.Error(), \"filters\",\n\t\t\t\"Error should NOT mention 'filters' (the bundled parameter name)\")\n\t})\n\n\tt.Run(\"error occurs when wrong type provided for inline arg\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tSearchProducts []string\n\t\t}\n\n\t\t// Try to provide wrong type for minPrice (string instead of int)\n\t\terr := c.Post(`query {\n\t\t\tsearchProducts(minPrice: \"not a number\")\n\t\t}`, &resp)\n\n\t\trequire.Error(t, err)\n\t\tt.Logf(\"Error when providing wrong type: %v\", err)\n\n\t\trequire.Contains(t, err.Error(), \"Int cannot represent\",\n\t\t\t\"Error should be a scalar coercion error for Int type\")\n\t})\n\n\tt.Run(\"error uses inline arg name when required field missing entirely\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tSearchRequired []string\n\t\t}\n\n\t\t// Try to call searchRequired with no arguments at all\n\t\terr := c.Post(`query {\n\t\t\tsearchRequired\n\t\t}`, &resp)\n\n\t\trequire.Error(t, err)\n\t\tt.Logf(\"Error when all required arguments missing: %v\", err)\n\n\t\t// Error should mention the inline argument names (name, age)\n\t\t// that are required, NOT the bundled \"filters\" parameter\n\t\terrorMsg := err.Error()\n\t\thasInlineArgName := strings.Contains(errorMsg, \"name\") || strings.Contains(errorMsg, \"age\")\n\t\trequire.True(t, hasInlineArgName,\n\t\t\t\"Error should mention required inline argument names (name or age), got: %s\", errorMsg)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/inline_arguments_integration_test.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/extension\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestInlineArguments(t *testing.T) {\n\tresolvers := &Stub{}\n\n\t// Implement the SearchProducts resolver using the Stub\n\tresolvers.QueryResolver.SearchProducts = func(ctx context.Context, filters map[string]any) ([]string, error) {\n\t\tresults := []string{}\n\t\tif query, ok := filters[\"query\"].(*string); ok && query != nil {\n\t\t\tresults = append(results, \"query:\"+*query)\n\t\t}\n\t\tif category, ok := filters[\"category\"].(*string); ok && category != nil {\n\t\t\tresults = append(results, \"category:\"+*category)\n\t\t}\n\t\tif minPrice, ok := filters[\"minPrice\"].(*int); ok && minPrice != nil {\n\t\t\tresults = append(results, fmt.Sprintf(\"minPrice:%d\", *minPrice))\n\t\t}\n\t\treturn results, nil\n\t}\n\n\t// Implement the SearchProductsNormal resolver using the Stub\n\tresolvers.QueryResolver.SearchProductsNormal = func(ctx context.Context, filters map[string]any) ([]string, error) {\n\t\tresults := []string{}\n\t\tif query, ok := filters[\"query\"].(*string); ok && query != nil {\n\t\t\tresults = append(results, \"query:\"+*query)\n\t\t}\n\t\tif category, ok := filters[\"category\"].(*string); ok && category != nil {\n\t\t\tresults = append(results, \"category:\"+*category)\n\t\t}\n\t\tif minPrice, ok := filters[\"minPrice\"].(*int); ok && minPrice != nil {\n\t\t\tresults = append(results, fmt.Sprintf(\"minPrice:%d\", *minPrice))\n\t\t}\n\t\treturn results, nil\n\t}\n\n\t// Implement the SearchRequired resolver for testing required arguments\n\tresolvers.QueryResolver.SearchRequired = func(ctx context.Context, filters map[string]any) ([]string, error) {\n\t\tresults := []string{}\n\t\tif name, ok := filters[\"name\"].(string); ok {\n\t\t\tresults = append(results, \"name:\"+name)\n\t\t}\n\t\tif age, ok := filters[\"age\"].(int); ok {\n\t\t\tresults = append(results, fmt.Sprintf(\"age:%d\", age))\n\t\t}\n\t\treturn results, nil\n\t}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tsrv.Use(extension.Introspection{})\n\tc := client.New(srv)\n\n\tt.Run(\"with @inlineArguments directive - flat query syntax\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tSearchProducts []string\n\t\t}\n\t\t// Note: With @inlineArguments, we can use flat argument syntax\n\t\tc.MustPost(`query {\n\t\t\tsearchProducts(query: \"laptop\", category: \"electronics\", minPrice: 500)\n\t\t}`, &resp)\n\n\t\trequire.Len(t, resp.SearchProducts, 3)\n\t\trequire.Contains(t, resp.SearchProducts, \"query:laptop\")\n\t\trequire.Contains(t, resp.SearchProducts, \"category:electronics\")\n\t\trequire.Contains(t, resp.SearchProducts, \"minPrice:500\")\n\t})\n\n\tt.Run(\"without @inlineArguments directive - wrapped query syntax\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tSearchProductsNormal []string\n\t\t}\n\t\t// Note: Without @inlineArguments, we must use nested input object syntax\n\t\tc.MustPost(`query {\n\t\t\tsearchProductsNormal(filters: {query: \"laptop\", category: \"electronics\", minPrice: 500})\n\t\t}`, &resp)\n\n\t\trequire.Len(t, resp.SearchProductsNormal, 3)\n\t\trequire.Contains(t, resp.SearchProductsNormal, \"query:laptop\")\n\t\trequire.Contains(t, resp.SearchProductsNormal, \"category:electronics\")\n\t\trequire.Contains(t, resp.SearchProductsNormal, \"minPrice:500\")\n\t})\n\n\tt.Run(\"with @inlineArguments - partial arguments\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tSearchProducts []string\n\t\t}\n\t\t// Only provide some of the optional arguments\n\t\tc.MustPost(`query {\n\t\t\tsearchProducts(query: \"phone\")\n\t\t}`, &resp)\n\n\t\trequire.Len(t, resp.SearchProducts, 1)\n\t\trequire.Contains(t, resp.SearchProducts, \"query:phone\")\n\t})\n\n\tt.Run(\"with @inlineArguments - no arguments\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tSearchProducts []string\n\t\t}\n\t\t// Call with no arguments at all\n\t\tc.MustPost(`query {\n\t\t\tsearchProducts\n\t\t}`, &resp)\n\n\t\trequire.Empty(t, resp.SearchProducts)\n\t})\n\n\tt.Run(\n\t\t\"with @inlineArguments - required input type with all required fields\",\n\t\tfunc(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tSearchRequired []string\n\t\t\t}\n\t\t\t// Required fields must be provided as individual arguments\n\t\t\tc.MustPost(`query {\n\t\t\tsearchRequired(name: \"John\", age: 30)\n\t\t}`, &resp)\n\n\t\t\trequire.Len(t, resp.SearchRequired, 2)\n\t\t\trequire.Contains(t, resp.SearchRequired, \"name:John\")\n\t\t\trequire.Contains(t, resp.SearchRequired, \"age:30\")\n\t\t},\n\t)\n\n\tt.Run(\"mutation with @inlineArguments\", func(t *testing.T) {\n\t\t// Implement the UpdateProduct mutation resolver\n\t\tresolvers.MutationResolver.UpdateProduct = func(ctx context.Context, input map[string]any) (string, error) {\n\t\t\tresult := \"Updated product\"\n\t\t\tif id, ok := input[\"id\"].(string); ok {\n\t\t\t\tresult += \" ID:\" + id\n\t\t\t}\n\t\t\tif name, ok := input[\"name\"].(*string); ok && name != nil {\n\t\t\t\tresult += \" Name:\" + *name\n\t\t\t}\n\t\t\tif price, ok := input[\"price\"].(*float64); ok && price != nil {\n\t\t\t\tresult += fmt.Sprintf(\" Price:%.2f\", *price)\n\t\t\t}\n\t\t\treturn result, nil\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tUpdateProduct string\n\t\t}\n\n\t\t// Mutation with flat argument syntax\n\t\tc.MustPost(`mutation {\n\t\t\tupdateProduct(id: \"123\", name: \"New Product\", price: 99.99)\n\t\t}`, &resp)\n\n\t\trequire.Contains(t, resp.UpdateProduct, \"ID:123\")\n\t\trequire.Contains(t, resp.UpdateProduct, \"Name:New Product\")\n\t\trequire.Contains(t, resp.UpdateProduct, \"Price:99.99\")\n\t})\n\n\tt.Run(\"default values on inlined arguments\", func(t *testing.T) {\n\t\t// Implement the SearchWithDefaults resolver\n\t\tresolvers.QueryResolver.SearchWithDefaults = func(ctx context.Context, filters map[string]any) ([]string, error) {\n\t\t\tresults := []string{}\n\t\t\tif query, ok := filters[\"query\"].(*string); ok && query != nil {\n\t\t\t\tresults = append(results, \"query:\"+*query)\n\t\t\t}\n\t\t\tif limit, ok := filters[\"limit\"].(*int); ok && limit != nil {\n\t\t\t\tresults = append(results, fmt.Sprintf(\"limit:%d\", *limit))\n\t\t\t}\n\t\t\tif includeArchived, ok := filters[\"includeArchived\"].(*bool); ok &&\n\t\t\t\tincludeArchived != nil {\n\t\t\t\tresults = append(results, fmt.Sprintf(\"includeArchived:%v\", *includeArchived))\n\t\t\t}\n\t\t\treturn results, nil\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tSearchWithDefaults []string\n\t\t}\n\n\t\t// Test 1: Call with no arguments - should receive defaults\n\t\tc.MustPost(`query {\n\t\t\tsearchWithDefaults\n\t\t}`, &resp)\n\n\t\trequire.Len(t, resp.SearchWithDefaults, 3)\n\t\trequire.Contains(t, resp.SearchWithDefaults, \"query:default search\")\n\t\trequire.Contains(t, resp.SearchWithDefaults, \"limit:20\")\n\t\trequire.Contains(t, resp.SearchWithDefaults, \"includeArchived:false\")\n\n\t\t// Test 2: Partial arguments - should merge provided + defaults\n\t\tc.MustPost(`query {\n\t\t\tsearchWithDefaults(query: \"laptop\")\n\t\t}`, &resp)\n\n\t\trequire.Len(t, resp.SearchWithDefaults, 3)\n\t\trequire.Contains(t, resp.SearchWithDefaults, \"query:laptop\")\n\t\trequire.Contains(t, resp.SearchWithDefaults, \"limit:20\")              // default\n\t\trequire.Contains(t, resp.SearchWithDefaults, \"includeArchived:false\") // default\n\n\t\t// Test 3: Override all defaults\n\t\tc.MustPost(`query {\n\t\t\tsearchWithDefaults(query: \"phone\", limit: 50, includeArchived: true)\n\t\t}`, &resp)\n\n\t\trequire.Len(t, resp.SearchWithDefaults, 3)\n\t\trequire.Contains(t, resp.SearchWithDefaults, \"query:phone\")\n\t\trequire.Contains(t, resp.SearchWithDefaults, \"limit:50\")\n\t\trequire.Contains(t, resp.SearchWithDefaults, \"includeArchived:true\")\n\t})\n\n\tt.Run(\"mixed inline and regular arguments\", func(t *testing.T) {\n\t\t// Implement the SearchMixed resolver\n\t\tresolvers.QueryResolver.SearchMixed = func(ctx context.Context, filters map[string]any, limit *int, offset *int, sortBy *string) ([]string, error) {\n\t\t\tresults := []string{}\n\n\t\t\t// Process inlined filters\n\t\t\tif query, ok := filters[\"query\"].(*string); ok && query != nil {\n\t\t\t\tresults = append(results, \"query:\"+*query)\n\t\t\t}\n\t\t\tif category, ok := filters[\"category\"].(*string); ok && category != nil {\n\t\t\t\tresults = append(results, \"category:\"+*category)\n\t\t\t}\n\n\t\t\t// Process regular arguments\n\t\t\tif limit != nil {\n\t\t\t\tresults = append(results, fmt.Sprintf(\"limit:%d\", *limit))\n\t\t\t}\n\t\t\tif offset != nil {\n\t\t\t\tresults = append(results, fmt.Sprintf(\"offset:%d\", *offset))\n\t\t\t}\n\t\t\tif sortBy != nil {\n\t\t\t\tresults = append(results, \"sortBy:\"+*sortBy)\n\t\t\t}\n\n\t\t\treturn results, nil\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tSearchMixed []string\n\t\t}\n\n\t\t// Test 1: All arguments (inlined + regular)\n\t\tc.MustPost(`query {\n\t\t\tsearchMixed(query: \"laptop\", category: \"electronics\", limit: 5, offset: 10, sortBy: \"price\")\n\t\t}`, &resp)\n\n\t\trequire.Len(t, resp.SearchMixed, 5)\n\t\trequire.Contains(t, resp.SearchMixed, \"query:laptop\")\n\t\trequire.Contains(t, resp.SearchMixed, \"category:electronics\")\n\t\trequire.Contains(t, resp.SearchMixed, \"limit:5\")\n\t\trequire.Contains(t, resp.SearchMixed, \"offset:10\")\n\t\trequire.Contains(t, resp.SearchMixed, \"sortBy:price\")\n\n\t\t// Test 2: Only inlined arguments\n\t\tc.MustPost(`query {\n\t\t\tsearchMixed(query: \"phone\")\n\t\t}`, &resp)\n\n\t\trequire.Len(t, resp.SearchMixed, 3) // query + default limit + default offset\n\t\trequire.Contains(t, resp.SearchMixed, \"query:phone\")\n\t\trequire.Contains(t, resp.SearchMixed, \"limit:10\") // default\n\t\trequire.Contains(t, resp.SearchMixed, \"offset:0\") // default\n\n\t\t// Test 3: Only regular arguments (no inlined)\n\t\tc.MustPost(`query {\n\t\t\tsearchMixed(limit: 100, sortBy: \"name\")\n\t\t}`, &resp)\n\n\t\trequire.Len(t, resp.SearchMixed, 3) // limit + offset default + sortBy\n\t\trequire.Contains(t, resp.SearchMixed, \"limit:100\")\n\t\trequire.Contains(t, resp.SearchMixed, \"offset:0\") // default\n\t\trequire.Contains(t, resp.SearchMixed, \"sortBy:name\")\n\t})\n\n\tt.Run(\"schema reuse - same input type on multiple fields\", func(t *testing.T) {\n\t\tresolvers.QueryResolver.SearchProducts = func(ctx context.Context, filters map[string]any) ([]string, error) {\n\t\t\tif query, ok := filters[\"query\"].(*string); ok && query != nil {\n\t\t\t\treturn []string{\"searchProducts:\" + *query}, nil\n\t\t\t}\n\t\t\treturn []string{}, nil\n\t\t}\n\n\t\tresolvers.QueryResolver.FilterProducts = func(ctx context.Context, filters map[string]any) ([]string, error) {\n\t\t\tif query, ok := filters[\"query\"].(*string); ok && query != nil {\n\t\t\t\treturn []string{\"filterProducts:\" + *query}, nil\n\t\t\t}\n\t\t\treturn []string{}, nil\n\t\t}\n\n\t\tresolvers.QueryResolver.FindProducts = func(ctx context.Context, filters map[string]any) ([]string, error) {\n\t\t\tif query, ok := filters[\"query\"].(*string); ok && query != nil {\n\t\t\t\treturn []string{\"findProducts:\" + *query}, nil\n\t\t\t}\n\t\t\treturn []string{}, nil\n\t\t}\n\n\t\t// Test all three fields in a single query\n\t\tvar resp struct {\n\t\t\tSearchProducts []string\n\t\t\tFilterProducts []string\n\t\t\tFindProducts   []string\n\t\t}\n\n\t\tc.MustPost(`query {\n\t\t\tsearchProducts(query: \"laptop\")\n\t\t\tfilterProducts(query: \"phone\")\n\t\t\tfindProducts(query: \"tablet\")\n\t\t}`, &resp)\n\n\t\trequire.Len(t, resp.SearchProducts, 1)\n\t\trequire.Contains(t, resp.SearchProducts[0], \"laptop\")\n\n\t\trequire.Len(t, resp.FilterProducts, 1)\n\t\trequire.Contains(t, resp.FilterProducts[0], \"phone\")\n\n\t\trequire.Len(t, resp.FindProducts, 1)\n\t\trequire.Contains(t, resp.FindProducts[0], \"tablet\")\n\t})\n\n\tt.Run(\"introspection shows flat arguments (not bundled input)\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tSchema struct {\n\t\t\t\tQueryType struct {\n\t\t\t\t\tFields []struct {\n\t\t\t\t\t\tName string\n\t\t\t\t\t\tArgs []struct {\n\t\t\t\t\t\t\tName string\n\t\t\t\t\t\t\tType struct {\n\t\t\t\t\t\t\t\tKind   string\n\t\t\t\t\t\t\t\tName   *string\n\t\t\t\t\t\t\t\tOfType *struct {\n\t\t\t\t\t\t\t\t\tKind string\n\t\t\t\t\t\t\t\t\tName *string\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} `json:\"__schema\"`\n\t\t}\n\n\t\t// Query introspection to see what arguments are exposed\n\t\tc.MustPost(`{\n\t\t\t__schema {\n\t\t\t\tqueryType {\n\t\t\t\t\tfields {\n\t\t\t\t\t\tname\n\t\t\t\t\t\targs {\n\t\t\t\t\t\t\tname\n\t\t\t\t\t\t\ttype {\n\t\t\t\t\t\t\t\tkind\n\t\t\t\t\t\t\t\tname\n\t\t\t\t\t\t\t\tofType {\n\t\t\t\t\t\t\t\t\tkind\n\t\t\t\t\t\t\t\t\tname\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}`, &resp)\n\n\t\t// Find the searchProducts field\n\t\tvar searchField *struct {\n\t\t\tName string\n\t\t\tArgs []struct {\n\t\t\t\tName string\n\t\t\t\tType struct {\n\t\t\t\t\tKind   string\n\t\t\t\t\tName   *string\n\t\t\t\t\tOfType *struct {\n\t\t\t\t\t\tKind string\n\t\t\t\t\t\tName *string\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor i := range resp.Schema.QueryType.Fields {\n\t\t\tif resp.Schema.QueryType.Fields[i].Name == \"searchProducts\" {\n\t\t\t\tsearchField = &resp.Schema.QueryType.Fields[i]\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\trequire.NotNil(t, searchField, \"searchProducts field should exist in introspection\")\n\n\t\t// Verify we see the FLAT arguments (query, category, minPrice)\n\t\t// NOT a single bundled 'filters' argument\n\t\texpectedArgs := map[string]bool{\n\t\t\t\"query\":    true,\n\t\t\t\"category\": true,\n\t\t\t\"minPrice\": true,\n\t\t}\n\n\t\tactualArgs := make(map[string]bool)\n\t\tfor _, arg := range searchField.Args {\n\t\t\tactualArgs[arg.Name] = true\n\t\t}\n\n\t\trequire.Equal(\n\t\t\tt,\n\t\t\texpectedArgs,\n\t\t\tactualArgs,\n\t\t\t\"Introspection should show individual arguments (query, category, minPrice), not bundled 'filters' input\",\n\t\t)\n\n\t\t// Verify we DON'T see the original 'filters' argument\n\t\tfor _, arg := range searchField.Args {\n\t\t\trequire.NotEqual(t, \"filters\", arg.Name,\n\t\t\t\t\"Should not see the original bundled 'filters' argument in introspection\")\n\t\t}\n\t})\n\n\tt.Run(\"fields with deprecated directive can be inlined\", func(t *testing.T) {\n\t\tresolvers.QueryResolver.SearchWithDirectives = func(ctx context.Context, input map[string]any) ([]string, error) {\n\t\t\tresults := []string{}\n\t\t\tif oldField, ok := input[\"oldField\"].(*string); ok && oldField != nil {\n\t\t\t\tresults = append(results, \"oldField:\"+*oldField)\n\t\t\t}\n\t\t\tif newField, ok := input[\"newField\"].(*string); ok && newField != nil {\n\t\t\t\tresults = append(results, \"newField:\"+*newField)\n\t\t\t}\n\t\t\treturn results, nil\n\t\t}\n\n\t\tvar queryResp struct {\n\t\t\tSearchWithDirectives []string\n\t\t}\n\t\tc.MustPost(`query {\n\t\t\tsearchWithDirectives(oldField: \"old\", newField: \"new\")\n\t\t}`, &queryResp)\n\n\t\trequire.Len(t, queryResp.SearchWithDirectives, 2)\n\t\trequire.Contains(t, queryResp.SearchWithDirectives, \"oldField:old\")\n\t\trequire.Contains(t, queryResp.SearchWithDirectives, \"newField:new\")\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/inline_arguments_test.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalInputDirectiveInput(ctx context.Context, obj any) (map[string]any, error) {\n\tvar it map[string]any\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"oldField\", \"newField\"}\n\tit = make(map[string]any, len(asMap))\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"oldField\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"oldField\"))\n\t\t\tdata, err := ec.unmarshalOString2ᚖstring(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"oldField\"] = data\n\t\tcase \"newField\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"newField\"))\n\t\t\tdata, err := ec.unmarshalOString2ᚖstring(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"newField\"] = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputRequiredFilters(ctx context.Context, obj any) (map[string]any, error) {\n\tvar it map[string]any\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"name\", \"age\"}\n\tit = make(map[string]any, len(asMap))\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"name\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"name\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"name\"] = data\n\t\tcase \"age\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"age\"))\n\t\t\tdata, err := ec.unmarshalNInt2int(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"age\"] = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputSearchFilters(ctx context.Context, obj any) (map[string]any, error) {\n\tvar it map[string]any\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"query\", \"category\", \"minPrice\"}\n\tit = make(map[string]any, len(asMap))\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"query\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"query\"))\n\t\t\tdata, err := ec.unmarshalOString2ᚖstring(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"query\"] = data\n\t\tcase \"category\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"category\"))\n\t\t\tdata, err := ec.unmarshalOString2ᚖstring(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"category\"] = data\n\t\tcase \"minPrice\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"minPrice\"))\n\t\t\tdata, err := ec.unmarshalOInt2ᚖint(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"minPrice\"] = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputSearchWithDefaults(ctx context.Context, obj any) (map[string]any, error) {\n\tvar it map[string]any\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tif _, present := asMap[\"query\"]; !present {\n\t\tasMap[\"query\"] = \"default search\"\n\t}\n\tif _, present := asMap[\"limit\"]; !present {\n\t\tasMap[\"limit\"] = 20\n\t}\n\tif _, present := asMap[\"includeArchived\"]; !present {\n\t\tasMap[\"includeArchived\"] = false\n\t}\n\n\tfieldsInOrder := [...]string{\"query\", \"limit\", \"includeArchived\"}\n\tit = make(map[string]any, len(asMap))\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"query\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"query\"))\n\t\t\tdata, err := ec.unmarshalOString2ᚖstring(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"query\"] = data\n\t\tcase \"limit\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"limit\"))\n\t\t\tdata, err := ec.unmarshalOInt2ᚖint(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"limit\"] = data\n\t\tcase \"includeArchived\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"includeArchived\"))\n\t\t\tdata, err := ec.unmarshalOBoolean2ᚖbool(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"includeArchived\"] = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputUpdateProductInput(ctx context.Context, obj any) (map[string]any, error) {\n\tvar it map[string]any\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"id\", \"name\", \"price\"}\n\tit = make(map[string]any, len(asMap))\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"id\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"id\"))\n\t\t\tdata, err := ec.unmarshalNID2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"id\"] = data\n\t\tcase \"name\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"name\"))\n\t\t\tdata, err := ec.unmarshalOString2ᚖstring(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"name\"] = data\n\t\tcase \"price\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"price\"))\n\t\t\tdata, err := ec.unmarshalOFloat2ᚖfloat64(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"price\"] = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalOSearchFilters2map(ctx context.Context, v any) (map[string]any, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputSearchFilters(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/followschema/inline_arguments_test.graphql",
    "content": "directive @inlineArguments on ARGUMENT_DEFINITION\n\ninput SearchFilters @goModel(model: \"map[string]interface{}\") {\n  query: String\n  category: String\n  minPrice: Int\n}\n\ninput RequiredFilters @goModel(model: \"map[string]interface{}\") {\n  name: String!\n  age: Int!\n}\n\ninput UpdateProductInput @goModel(model: \"map[string]interface{}\") {\n  id: ID!\n  name: String\n  price: Float\n}\n\ninput SearchWithDefaults @goModel(model: \"map[string]interface{}\") {\n  query: String = \"default search\"\n  limit: Int = 20\n  includeArchived: Boolean = false\n}\n\ninput DirectiveInput @goModel(model: \"map[string]interface{}\") {\n  oldField: String @deprecated(reason: \"Use newField instead\")\n  newField: String\n}\n\nextend type Query {\n  searchProducts(filters: SearchFilters @inlineArguments): [String!]!\n  searchRequired(filters: RequiredFilters! @inlineArguments): [String!]!\n  searchProductsNormal(filters: SearchFilters): [String!]!\n  searchWithDefaults(filters: SearchWithDefaults @inlineArguments): [String!]!\n  searchMixed(\n    filters: SearchFilters @inlineArguments,\n    limit: Int = 10,\n    offset: Int = 0,\n    sortBy: String\n  ): [String!]!\n  filterProducts(filters: SearchFilters @inlineArguments): [String!]!\n  findProducts(filters: SearchFilters @inlineArguments): [String!]!\n  searchWithDirectives(input: DirectiveInput @inlineArguments): [String!]!\n}\n\nextend type Mutation {\n  updateProduct(input: UpdateProductInput @inlineArguments): String!\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/input_test.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"strconv\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestInput(t *testing.T) {\n\tresolvers := &Stub{}\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"when function errors on directives\", func(t *testing.T) {\n\t\tresolvers.QueryResolver.InputSlice = func(ctx context.Context, arg []string) (b bool, e error) {\n\t\t\treturn true, nil\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tDirectiveArg *string\n\t\t}\n\n\t\terr := c.Post(`query { inputSlice(arg: [\"ok\", 1, 2, \"ok\"]) }`, &resp)\n\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t`http 422: {\"errors\":[{\"message\":\"String cannot represent a non string value: 1\",\"locations\":[{\"line\":1,\"column\":32}],\"extensions\":{\"code\":\"GRAPHQL_VALIDATION_FAILED\"}},{\"message\":\"String cannot represent a non string value: 2\",\"locations\":[{\"line\":1,\"column\":35}],\"extensions\":{\"code\":\"GRAPHQL_VALIDATION_FAILED\"}}],\"data\":null}`,\n\t\t)\n\t\trequire.Nil(t, resp.DirectiveArg)\n\t})\n\n\tt.Run(\"when input slice nullable\", func(t *testing.T) {\n\t\tresolvers.QueryResolver.InputNullableSlice = func(ctx context.Context, arg []string) (b bool, e error) {\n\t\t\treturn arg == nil, nil\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tInputNullableSlice bool\n\t\t}\n\t\tvar err error\n\t\terr = c.Post(`query { inputNullableSlice(arg: null) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.True(t, resp.InputNullableSlice)\n\n\t\terr = c.Post(`query { inputNullableSlice(arg: []) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.False(t, resp.InputNullableSlice)\n\t})\n\n\tt.Run(\"coerce single value to slice\", func(t *testing.T) {\n\t\tcheck := func(ctx context.Context, arg []string) (b bool, e error) {\n\t\t\treturn len(arg) == 1 && arg[0] == \"coerced\", nil\n\t\t}\n\t\tresolvers.QueryResolver.InputSlice = check\n\t\tresolvers.QueryResolver.InputNullableSlice = check\n\n\t\tvar resp struct {\n\t\t\tCoerced bool\n\t\t}\n\t\tvar err error\n\t\terr = c.Post(`query { coerced: inputSlice(arg: \"coerced\") }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.True(t, resp.Coerced)\n\n\t\terr = c.Post(`query { coerced: inputNullableSlice(arg: \"coerced\") }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.True(t, resp.Coerced)\n\t})\n}\n\nfunc TestInputOmittable(t *testing.T) {\n\tresolvers := &Stub{}\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"id field\", func(t *testing.T) {\n\t\tresolvers.QueryResolver.InputOmittable = func(ctx context.Context, arg OmittableInput) (string, error) {\n\t\t\tvalue, isSet := arg.ID.ValueOK()\n\t\t\tif !isSet {\n\t\t\t\treturn \"<unset>\", nil\n\t\t\t}\n\n\t\t\tif value == nil {\n\t\t\t\treturn \"<nil>\", nil\n\t\t\t}\n\n\t\t\treturn *value, nil\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tInputOmittable string\n\t\t}\n\t\tvar err error\n\n\t\terr = c.Post(`query { inputOmittable(arg: {}) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"<unset>\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { id: null }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"<nil>\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { id: \"foo\" }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"foo\", resp.InputOmittable)\n\t})\n\n\tt.Run(\"bool field\", func(t *testing.T) {\n\t\tresolvers.QueryResolver.InputOmittable = func(ctx context.Context, arg OmittableInput) (string, error) {\n\t\t\tvalue, isSet := arg.Bool.ValueOK()\n\t\t\tif !isSet {\n\t\t\t\treturn \"<unset>\", nil\n\t\t\t}\n\n\t\t\tif value == nil {\n\t\t\t\treturn \"<nil>\", nil\n\t\t\t}\n\n\t\t\treturn strconv.FormatBool(*value), nil\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tInputOmittable string\n\t\t}\n\t\tvar err error\n\n\t\terr = c.Post(`query { inputOmittable(arg: {}) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"<unset>\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { bool: null }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"<nil>\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { bool: false }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"false\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { bool: true }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"true\", resp.InputOmittable)\n\t})\n\n\tt.Run(\"str field\", func(t *testing.T) {\n\t\tresolvers.QueryResolver.InputOmittable = func(ctx context.Context, arg OmittableInput) (string, error) {\n\t\t\tvalue, isSet := arg.Str.ValueOK()\n\t\t\tif !isSet {\n\t\t\t\treturn \"<unset>\", nil\n\t\t\t}\n\n\t\t\tif value == nil {\n\t\t\t\treturn \"<nil>\", nil\n\t\t\t}\n\n\t\t\treturn *value, nil\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tInputOmittable string\n\t\t}\n\t\tvar err error\n\n\t\terr = c.Post(`query { inputOmittable(arg: {}) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"<unset>\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { str: null }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"<nil>\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { str: \"bar\" }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"bar\", resp.InputOmittable)\n\t})\n\n\tt.Run(\"int field\", func(t *testing.T) {\n\t\tresolvers.QueryResolver.InputOmittable = func(ctx context.Context, arg OmittableInput) (string, error) {\n\t\t\tvalue, isSet := arg.Int.ValueOK()\n\t\t\tif !isSet {\n\t\t\t\treturn \"<unset>\", nil\n\t\t\t}\n\n\t\t\tif value == nil {\n\t\t\t\treturn \"<nil>\", nil\n\t\t\t}\n\n\t\t\treturn strconv.Itoa(*value), nil\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tInputOmittable string\n\t\t}\n\t\tvar err error\n\n\t\terr = c.Post(`query { inputOmittable(arg: {}) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"<unset>\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { int: null }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"<nil>\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { int: 42 }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"42\", resp.InputOmittable)\n\t})\n\n\tt.Run(\"time field\", func(t *testing.T) {\n\t\tresolvers.QueryResolver.InputOmittable = func(ctx context.Context, arg OmittableInput) (string, error) {\n\t\t\tvalue, isSet := arg.Time.ValueOK()\n\t\t\tif !isSet {\n\t\t\t\treturn \"<unset>\", nil\n\t\t\t}\n\n\t\t\tif value == nil {\n\t\t\t\treturn \"<nil>\", nil\n\t\t\t}\n\n\t\t\treturn value.UTC().Format(time.RFC3339), nil\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tInputOmittable string\n\t\t}\n\t\tvar err error\n\n\t\terr = c.Post(`query { inputOmittable(arg: {}) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"<unset>\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { time: null }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"<nil>\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { time: \"2011-04-05T16:01:33Z\" }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"2011-04-05T16:01:33Z\", resp.InputOmittable)\n\t})\n\n\tt.Run(\"enum field\", func(t *testing.T) {\n\t\tresolvers.QueryResolver.InputOmittable = func(ctx context.Context, arg OmittableInput) (string, error) {\n\t\t\tvalue, isSet := arg.Enum.ValueOK()\n\t\t\tif !isSet {\n\t\t\t\treturn \"<unset>\", nil\n\t\t\t}\n\n\t\t\tif value == nil {\n\t\t\t\treturn \"<nil>\", nil\n\t\t\t}\n\n\t\t\treturn value.String(), nil\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tInputOmittable string\n\t\t}\n\t\tvar err error\n\n\t\terr = c.Post(`query { inputOmittable(arg: {}) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"<unset>\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { enum: null }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"<nil>\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { enum: OK }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"OK\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { enum: ERROR }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"ERROR\", resp.InputOmittable)\n\t})\n\n\tt.Run(\"scalar field\", func(t *testing.T) {\n\t\tresolvers.QueryResolver.InputOmittable = func(ctx context.Context, arg OmittableInput) (string, error) {\n\t\t\tvalue, isSet := arg.Scalar.ValueOK()\n\t\t\tif !isSet {\n\t\t\t\treturn \"<unset>\", nil\n\t\t\t}\n\n\t\t\tif value == nil {\n\t\t\t\treturn \"<nil>\", nil\n\t\t\t}\n\n\t\t\treturn value.str, nil\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tInputOmittable string\n\t\t}\n\t\tvar err error\n\n\t\terr = c.Post(`query { inputOmittable(arg: {}) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"<unset>\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { scalar: null }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"<nil>\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { scalar: \"baz\" }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"baz\", resp.InputOmittable)\n\t})\n\n\tt.Run(\"object field\", func(t *testing.T) {\n\t\tresolvers.QueryResolver.InputOmittable = func(ctx context.Context, arg OmittableInput) (string, error) {\n\t\t\tvalue, isSet := arg.Object.ValueOK()\n\t\t\tif !isSet {\n\t\t\t\treturn \"<unset>\", nil\n\t\t\t}\n\n\t\t\tif value == nil {\n\t\t\t\treturn \"<nil>\", nil\n\t\t\t}\n\n\t\t\treturn strconv.Itoa(value.Inner.ID), nil\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tInputOmittable string\n\t\t}\n\t\tvar err error\n\n\t\terr = c.Post(`query { inputOmittable(arg: {}) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"<unset>\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { object: null }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"<nil>\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { object: { inner: { id: 21 } } }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"21\", resp.InputOmittable)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/interfaces.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\ntype BackedByInterfaceResolver interface {\n\tID(ctx context.Context, obj BackedByInterface) (string, error)\n}\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _BackedByInterface_id(ctx context.Context, field graphql.CollectedField, obj BackedByInterface) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_BackedByInterface_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.BackedByInterface().ID(ctx, obj)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_BackedByInterface_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"BackedByInterface\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _BackedByInterface_thisShouldBind(ctx context.Context, field graphql.CollectedField, obj BackedByInterface) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_BackedByInterface_thisShouldBind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ThisShouldBind(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_BackedByInterface_thisShouldBind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"BackedByInterface\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _BackedByInterface_thisShouldBindWithError(ctx context.Context, field graphql.CollectedField, obj BackedByInterface) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_BackedByInterface_thisShouldBindWithError,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ThisShouldBindWithError()\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_BackedByInterface_thisShouldBindWithError(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"BackedByInterface\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Cat_species(ctx context.Context, field graphql.CollectedField, obj *Cat) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Cat_species,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Species, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Cat_species(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Cat\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Cat_size(ctx context.Context, field graphql.CollectedField, obj *Cat) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Cat_size,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Size, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNSize2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐSize,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Cat_size(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Cat\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"height\":\n\t\t\t\treturn ec.fieldContext_Size_height(ctx, field)\n\t\t\tcase \"weight\":\n\t\t\t\treturn ec.fieldContext_Size_weight(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Size\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Cat_catBreed(ctx context.Context, field graphql.CollectedField, obj *Cat) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Cat_catBreed,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.CatBreed, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Cat_catBreed(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Cat\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Circle_radius(ctx context.Context, field graphql.CollectedField, obj *Circle) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Circle_radius,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Radius, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOFloat2float64,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Circle_radius(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Circle\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Float does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Circle_area(ctx context.Context, field graphql.CollectedField, obj *Circle) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Circle_area,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Area(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOFloat2float64,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Circle_area(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Circle\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Float does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Circle_coordinates(ctx context.Context, field graphql.CollectedField, obj *Circle) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Circle_coordinates,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Coordinates, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOCoordinates2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐCoordinates,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Circle_coordinates(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Circle\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"x\":\n\t\t\t\treturn ec.fieldContext_Coordinates_x(ctx, field)\n\t\t\tcase \"y\":\n\t\t\t\treturn ec.fieldContext_Coordinates_y(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Coordinates\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ConcreteNodeA_id(ctx context.Context, field graphql.CollectedField, obj *ConcreteNodeA) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ConcreteNodeA_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ConcreteNodeA_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ConcreteNodeA\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ConcreteNodeA_child(ctx context.Context, field graphql.CollectedField, obj *ConcreteNodeA) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ConcreteNodeA_child,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Child()\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNNode2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐNode,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ConcreteNodeA_child(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ConcreteNodeA\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"FieldContext.Child cannot be called on type INTERFACE\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ConcreteNodeA_name(ctx context.Context, field graphql.CollectedField, obj *ConcreteNodeA) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ConcreteNodeA_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ConcreteNodeA_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ConcreteNodeA\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ConcreteNodeInterface_id(ctx context.Context, field graphql.CollectedField, obj ConcreteNodeInterface) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ConcreteNodeInterface_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ConcreteNodeInterface_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ConcreteNodeInterface\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ConcreteNodeInterface_child(ctx context.Context, field graphql.CollectedField, obj ConcreteNodeInterface) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ConcreteNodeInterface_child,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Child()\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNNode2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐNode,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ConcreteNodeInterface_child(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ConcreteNodeInterface\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"FieldContext.Child cannot be called on type INTERFACE\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Coordinates_x(ctx context.Context, field graphql.CollectedField, obj *Coordinates) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Coordinates_x,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.X, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNFloat2float64,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Coordinates_x(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Coordinates\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Float does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Coordinates_y(ctx context.Context, field graphql.CollectedField, obj *Coordinates) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Coordinates_y,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Y, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNFloat2float64,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Coordinates_y(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Coordinates\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Float does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Dog_species(ctx context.Context, field graphql.CollectedField, obj *Dog) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Dog_species,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Species, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Dog_species(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Dog\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Dog_size(ctx context.Context, field graphql.CollectedField, obj *Dog) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Dog_size,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Size, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNSize2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐSize,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Dog_size(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Dog\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"height\":\n\t\t\t\treturn ec.fieldContext_Size_height(ctx, field)\n\t\t\tcase \"weight\":\n\t\t\t\treturn ec.fieldContext_Size_weight(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Size\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Dog_dogBreed(ctx context.Context, field graphql.CollectedField, obj *Dog) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Dog_dogBreed,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DogBreed, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Dog_dogBreed(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Dog\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Horse_species(ctx context.Context, field graphql.CollectedField, obj *Horse) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Horse_species,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Species, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Horse_species(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Horse\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Horse_size(ctx context.Context, field graphql.CollectedField, obj *Horse) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Horse_size,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Size, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNSize2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐSize,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Horse_size(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Horse\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"height\":\n\t\t\t\treturn ec.fieldContext_Size_height(ctx, field)\n\t\t\tcase \"weight\":\n\t\t\t\treturn ec.fieldContext_Size_weight(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Size\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Horse_horseBreed(ctx context.Context, field graphql.CollectedField, obj *Horse) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Horse_horseBreed,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.HorseBreed, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Horse_horseBreed(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Horse\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Rectangle_length(ctx context.Context, field graphql.CollectedField, obj *Rectangle) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Rectangle_length,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Length, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOFloat2float64,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Rectangle_length(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Rectangle\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Float does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Rectangle_width(ctx context.Context, field graphql.CollectedField, obj *Rectangle) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Rectangle_width,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Width, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOFloat2float64,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Rectangle_width(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Rectangle\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Float does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Rectangle_area(ctx context.Context, field graphql.CollectedField, obj *Rectangle) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Rectangle_area,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Area(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOFloat2float64,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Rectangle_area(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Rectangle\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Float does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Rectangle_coordinates(ctx context.Context, field graphql.CollectedField, obj *Rectangle) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Rectangle_coordinates,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Coordinates, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOCoordinates2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐCoordinates,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Rectangle_coordinates(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Rectangle\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"x\":\n\t\t\t\treturn ec.fieldContext_Coordinates_x(ctx, field)\n\t\t\tcase \"y\":\n\t\t\t\treturn ec.fieldContext_Coordinates_y(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Coordinates\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Size_height(ctx context.Context, field graphql.CollectedField, obj *Size) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Size_height,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Height, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Size_height(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Size\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Size_weight(ctx context.Context, field graphql.CollectedField, obj *Size) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Size_weight,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Weight, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Size_weight(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Size\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\nfunc (ec *executionContext) _Animal(ctx context.Context, sel ast.SelectionSet, obj Animal) graphql.Marshaler {\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\tcase Horse:\n\t\treturn ec._Horse(ctx, sel, &obj)\n\tcase *Horse:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Horse(ctx, sel, obj)\n\tcase Mammalian:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Mammalian(ctx, sel, obj)\n\tcase Dog:\n\t\treturn ec._Dog(ctx, sel, &obj)\n\tcase *Dog:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Dog(ctx, sel, obj)\n\tcase Cat:\n\t\treturn ec._Cat(ctx, sel, &obj)\n\tcase *Cat:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Cat(ctx, sel, obj)\n\tdefault:\n\t\tif typedObj, ok := obj.(graphql.Marshaler); ok {\n\t\t\treturn typedObj\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T; non-generated variants of Animal must implement graphql.Marshaler\", obj))\n\t\t}\n\t}\n}\n\nfunc (ec *executionContext) _Mammalian(ctx context.Context, sel ast.SelectionSet, obj Mammalian) graphql.Marshaler {\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\tcase Horse:\n\t\treturn ec._Horse(ctx, sel, &obj)\n\tcase *Horse:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Horse(ctx, sel, obj)\n\tdefault:\n\t\tif typedObj, ok := obj.(graphql.Marshaler); ok {\n\t\t\treturn typedObj\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T; non-generated variants of Mammalian must implement graphql.Marshaler\", obj))\n\t\t}\n\t}\n}\n\nfunc (ec *executionContext) _Node(ctx context.Context, sel ast.SelectionSet, obj Node) graphql.Marshaler {\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\tcase ConcreteNodeInterface:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._ConcreteNodeInterface(ctx, sel, obj)\n\tcase *ConcreteNodeA:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._ConcreteNodeA(ctx, sel, obj)\n\tdefault:\n\t\tif typedObj, ok := obj.(graphql.Marshaler); ok {\n\t\t\treturn typedObj\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T; non-generated variants of Node must implement graphql.Marshaler\", obj))\n\t\t}\n\t}\n}\n\nfunc (ec *executionContext) _Shape(ctx context.Context, sel ast.SelectionSet, obj Shape) graphql.Marshaler {\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\tcase *Rectangle:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Rectangle(ctx, sel, obj)\n\tcase *Circle:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Circle(ctx, sel, obj)\n\tdefault:\n\t\tif typedObj, ok := obj.(graphql.Marshaler); ok {\n\t\t\treturn typedObj\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T; non-generated variants of Shape must implement graphql.Marshaler\", obj))\n\t\t}\n\t}\n}\n\nfunc (ec *executionContext) _ShapeUnion(ctx context.Context, sel ast.SelectionSet, obj ShapeUnion) graphql.Marshaler {\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\tcase *Rectangle:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Rectangle(ctx, sel, obj)\n\tcase *Circle:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Circle(ctx, sel, obj)\n\tdefault:\n\t\tif typedObj, ok := obj.(graphql.Marshaler); ok {\n\t\t\treturn typedObj\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T; non-generated variants of ShapeUnion must implement graphql.Marshaler\", obj))\n\t\t}\n\t}\n}\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar backedByInterfaceImplementors = []string{\"BackedByInterface\"}\n\nfunc (ec *executionContext) _BackedByInterface(ctx context.Context, sel ast.SelectionSet, obj BackedByInterface) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, backedByInterfaceImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"BackedByInterface\")\n\t\tcase \"id\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._BackedByInterface_id(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"thisShouldBind\":\n\t\t\tout.Values[i] = ec._BackedByInterface_thisShouldBind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"thisShouldBindWithError\":\n\t\t\tout.Values[i] = ec._BackedByInterface_thisShouldBindWithError(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar catImplementors = []string{\"Cat\", \"Animal\"}\n\nfunc (ec *executionContext) _Cat(ctx context.Context, sel ast.SelectionSet, obj *Cat) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, catImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Cat\")\n\t\tcase \"species\":\n\t\t\tout.Values[i] = ec._Cat_species(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"size\":\n\t\t\tout.Values[i] = ec._Cat_size(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"catBreed\":\n\t\t\tout.Values[i] = ec._Cat_catBreed(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar circleImplementors = []string{\"Circle\", \"Shape\", \"ShapeUnion\"}\n\nfunc (ec *executionContext) _Circle(ctx context.Context, sel ast.SelectionSet, obj *Circle) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, circleImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Circle\")\n\t\tcase \"radius\":\n\t\t\tout.Values[i] = ec._Circle_radius(ctx, field, obj)\n\t\tcase \"area\":\n\t\t\tout.Values[i] = ec._Circle_area(ctx, field, obj)\n\t\tcase \"coordinates\":\n\t\t\tout.Values[i] = ec._Circle_coordinates(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar concreteNodeAImplementors = []string{\"ConcreteNodeA\", \"Node\"}\n\nfunc (ec *executionContext) _ConcreteNodeA(ctx context.Context, sel ast.SelectionSet, obj *ConcreteNodeA) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, concreteNodeAImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"ConcreteNodeA\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._ConcreteNodeA_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"child\":\n\t\t\tout.Values[i] = ec._ConcreteNodeA_child(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._ConcreteNodeA_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar concreteNodeInterfaceImplementors = []string{\"ConcreteNodeInterface\", \"Node\"}\n\nfunc (ec *executionContext) _ConcreteNodeInterface(ctx context.Context, sel ast.SelectionSet, obj ConcreteNodeInterface) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, concreteNodeInterfaceImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"ConcreteNodeInterface\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._ConcreteNodeInterface_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"child\":\n\t\t\tout.Values[i] = ec._ConcreteNodeInterface_child(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar coordinatesImplementors = []string{\"Coordinates\"}\n\nfunc (ec *executionContext) _Coordinates(ctx context.Context, sel ast.SelectionSet, obj *Coordinates) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, coordinatesImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Coordinates\")\n\t\tcase \"x\":\n\t\t\tout.Values[i] = ec._Coordinates_x(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"y\":\n\t\t\tout.Values[i] = ec._Coordinates_y(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar dogImplementors = []string{\"Dog\", \"Animal\"}\n\nfunc (ec *executionContext) _Dog(ctx context.Context, sel ast.SelectionSet, obj *Dog) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, dogImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Dog\")\n\t\tcase \"species\":\n\t\t\tout.Values[i] = ec._Dog_species(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"size\":\n\t\t\tout.Values[i] = ec._Dog_size(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"dogBreed\":\n\t\t\tout.Values[i] = ec._Dog_dogBreed(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar horseImplementors = []string{\"Horse\", \"Mammalian\", \"Animal\"}\n\nfunc (ec *executionContext) _Horse(ctx context.Context, sel ast.SelectionSet, obj *Horse) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, horseImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Horse\")\n\t\tcase \"species\":\n\t\t\tout.Values[i] = ec._Horse_species(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"size\":\n\t\t\tout.Values[i] = ec._Horse_size(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"horseBreed\":\n\t\t\tout.Values[i] = ec._Horse_horseBreed(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar rectangleImplementors = []string{\"Rectangle\", \"Shape\", \"ShapeUnion\"}\n\nfunc (ec *executionContext) _Rectangle(ctx context.Context, sel ast.SelectionSet, obj *Rectangle) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, rectangleImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Rectangle\")\n\t\tcase \"length\":\n\t\t\tout.Values[i] = ec._Rectangle_length(ctx, field, obj)\n\t\tcase \"width\":\n\t\t\tout.Values[i] = ec._Rectangle_width(ctx, field, obj)\n\t\tcase \"area\":\n\t\t\tout.Values[i] = ec._Rectangle_area(ctx, field, obj)\n\t\tcase \"coordinates\":\n\t\t\tout.Values[i] = ec._Rectangle_coordinates(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar sizeImplementors = []string{\"Size\"}\n\nfunc (ec *executionContext) _Size(ctx context.Context, sel ast.SelectionSet, obj *Size) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, sizeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Size\")\n\t\tcase \"height\":\n\t\t\tout.Values[i] = ec._Size_height(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"weight\":\n\t\t\tout.Values[i] = ec._Size_weight(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) marshalNNode2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐNode(ctx context.Context, sel ast.SelectionSet, v Node) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Node(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNShapeUnion2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐShapeUnion(ctx context.Context, sel ast.SelectionSet, v ShapeUnion) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._ShapeUnion(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNSize2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐSize(ctx context.Context, sel ast.SelectionSet, v *Size) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Size(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOAnimal2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐAnimal(ctx context.Context, sel ast.SelectionSet, v Animal) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Animal(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOBackedByInterface2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐBackedByInterface(ctx context.Context, sel ast.SelectionSet, v BackedByInterface) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._BackedByInterface(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOCircle2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐCircle(ctx context.Context, sel ast.SelectionSet, v *Circle) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Circle(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOCoordinates2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐCoordinates(ctx context.Context, sel ast.SelectionSet, v Coordinates) graphql.Marshaler {\n\treturn ec._Coordinates(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalODog2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐDog(ctx context.Context, sel ast.SelectionSet, v *Dog) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Dog(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOShape2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐShape(ctx context.Context, sel ast.SelectionSet, v Shape) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Shape(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOShape2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐShape(ctx context.Context, sel ast.SelectionSet, v []Shape) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalOShape2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐShape(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/followschema/interfaces.go",
    "content": "package followschema\n\nimport \"math\"\n\ntype Shape interface {\n\tArea() float64\n\tisShape()\n}\n\ntype ShapeUnion interface {\n\tArea() float64\n\tisShapeUnion()\n}\n\ntype Circle struct {\n\tRadius float64\n\tCoordinates\n}\n\nfunc (c *Circle) Area() float64 {\n\treturn c.Radius * math.Pi * math.Pi\n}\n\nfunc (c *Circle) isShapeUnion() {}\nfunc (c *Circle) isShape()      {}\n\ntype Rectangle struct {\n\tLength, Width float64\n\tCoordinates\n}\n\nfunc (r *Rectangle) Area() float64 {\n\treturn r.Length * r.Width\n}\nfunc (r *Rectangle) isShapeUnion() {}\nfunc (r *Rectangle) isShape()      {}\n\ntype Node interface {\n\tChild() (Node, error)\n}\n\ntype ConcreteNodeA struct {\n\tID    string\n\tName  string\n\tchild Node\n}\n\nfunc (n *ConcreteNodeA) Child() (Node, error) {\n\treturn n.child, nil\n}\n\n// Implements the Node interface with another interface\ntype ConcreteNodeInterface interface {\n\tNode\n\tID() string\n}\n\ntype ConcreteNodeInterfaceImplementor struct{}\n\nfunc (c ConcreteNodeInterfaceImplementor) ID() string {\n\treturn \"CNII\"\n}\n\nfunc (c ConcreteNodeInterfaceImplementor) Child() (Node, error) {\n\treturn &ConcreteNodeA{\n\t\tID:   \"Child\",\n\t\tName: \"child\",\n\t}, nil\n}\n\ntype BackedByInterface interface {\n\tThisShouldBind() string\n\tThisShouldBindWithError() (string, error)\n}\n\ntype BackedByInterfaceImpl struct {\n\tValue string\n\tError error\n}\n\nfunc (b *BackedByInterfaceImpl) ThisShouldBind() string {\n\treturn b.Value\n}\n\nfunc (b *BackedByInterfaceImpl) ThisShouldBindWithError() (string, error) {\n\treturn b.Value, b.Error\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/interfaces.graphql",
    "content": "extend type Query {\n    shapes: [Shape]\n    noShape: Shape @makeNil\n    node: Node!\n    noShapeTypedNil: Shape @makeTypedNil\n    animal: Animal @makeTypedNil\n    notAnInterface: BackedByInterface\n    dog: Dog\n}\n\ninterface Animal {\n    species: String!\n    size: Size!\n}\n\ntype Size {\n    height: Int!\n    weight: Int!\n}\n\ntype BackedByInterface {\n    id: String!\n    thisShouldBind: String!\n    thisShouldBindWithError: String!\n}\n\ntype Dog implements Animal {\n    species: String!\n    size: Size!\n    dogBreed: String!\n}\n\ntype Cat implements Animal {\n    species: String!\n    size: Size!\n    catBreed: String!\n}\n\ntype Coordinates {\n    x: Float!\n    y: Float!\n}\ninterface Shape {\n    area: Float\n    coordinates: Coordinates\n}\n\ntype Circle implements Shape {\n    radius: Float\n    area: Float\n    coordinates: Coordinates\n}\ntype Rectangle implements Shape {\n    length: Float\n    width: Float\n    area: Float\n    coordinates: Coordinates\n}\nunion ShapeUnion @goModel(model: \"followschema.ShapeUnion\") = Circle | Rectangle\n\ndirective @makeNil on FIELD_DEFINITION\ndirective @makeTypedNil on FIELD_DEFINITION\n\ninterface Node {\n    id: ID!\n    child: Node!\n}\n\ntype ConcreteNodeA implements Node {\n    id: ID!\n    child: Node!\n    name: String!\n}\n\n\" Implements the Node interface with another interface \"\ntype ConcreteNodeInterface implements Node {\n    id: ID!\n    child: Node!\n}\n\ninterface Mammalian implements Animal {\n    species: String!\n    size: Size!\n}\n\n# Types with multiple interfaces are evaluated first in the case statement\ntype Horse implements Mammalian & Animal {\n    species: String!\n    size: Size!\n    horseBreed: String!\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/interfaces_test.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"reflect\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestInterfaces(t *testing.T) {\n\tt.Run(\"slices of interfaces are not pointers\", func(t *testing.T) {\n\t\tfield, ok := reflect.TypeFor[QueryResolver]().MethodByName(\"Shapes\")\n\t\trequire.True(t, ok)\n\t\trequire.Equal(t, \"[]followschema.Shape\", field.Type.Out(0).String())\n\t})\n\n\tt.Run(\"models returning interfaces\", func(t *testing.T) {\n\t\tresolvers := &Stub{}\n\t\tresolvers.QueryResolver.Node = func(ctx context.Context) (node Node, err error) {\n\t\t\treturn &ConcreteNodeA{\n\t\t\t\tID:   \"1234\",\n\t\t\t\tName: \"asdf\",\n\t\t\t\tchild: &ConcreteNodeA{\n\t\t\t\t\tID:    \"5678\",\n\t\t\t\t\tName:  \"hjkl\",\n\t\t\t\t\tchild: nil,\n\t\t\t\t},\n\t\t\t}, nil\n\t\t}\n\n\t\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\t\tsrv.AddTransport(transport.POST{})\n\t\tc := client.New(srv)\n\n\t\tvar resp struct {\n\t\t\tNode struct {\n\t\t\t\tID    string\n\t\t\t\tChild struct {\n\t\t\t\t\tID string\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tc.MustPost(`{ node { id, child { id } } }`, &resp)\n\t\trequire.Equal(t, \"1234\", resp.Node.ID)\n\t\trequire.Equal(t, \"5678\", resp.Node.Child.ID)\n\t})\n\n\tt.Run(\"interfaces can be nil\", func(t *testing.T) {\n\t\tresolvers := &Stub{}\n\t\tresolvers.QueryResolver.NoShape = func(ctx context.Context) (shapes Shape, e error) {\n\t\t\treturn nil, nil\n\t\t}\n\n\t\tsrv := handler.New(\n\t\t\tNewExecutableSchema(Config{\n\t\t\t\tResolvers: resolvers,\n\t\t\t\tDirectives: DirectiveRoot{\n\t\t\t\t\tMakeNil: func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error) {\n\t\t\t\t\t\treturn nil, nil\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t)\n\t\tsrv.AddTransport(transport.POST{})\n\t\tc := client.New(srv)\n\n\t\tvar resp any\n\t\tc.MustPost(`{ noShape { area } }`, &resp)\n\t})\n\n\tt.Run(\"interfaces can be typed nil\", func(t *testing.T) {\n\t\tresolvers := &Stub{}\n\t\tresolvers.QueryResolver.NoShapeTypedNil = func(ctx context.Context) (shapes Shape, e error) {\n\t\t\tt.Fatal(\"should not be called\")\n\t\t\treturn shapes, e\n\t\t}\n\n\t\tsrv := handler.New(\n\t\t\tNewExecutableSchema(Config{\n\t\t\t\tResolvers: resolvers,\n\t\t\t\tDirectives: DirectiveRoot{\n\t\t\t\t\tMakeTypedNil: func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error) {\n\t\t\t\t\t\tvar circle *Circle\n\t\t\t\t\t\treturn circle, nil\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t)\n\t\tsrv.AddTransport(transport.POST{})\n\t\tc := client.New(srv)\n\n\t\tvar resp any\n\t\tc.MustPost(`{ noShapeTypedNil { area } }`, &resp)\n\t})\n\n\tt.Run(\"interfaces can be nil (test with code-generated resolver)\", func(t *testing.T) {\n\t\tresolvers := &Stub{}\n\t\tresolvers.QueryResolver.Animal = func(ctx context.Context) (animal Animal, e error) {\n\t\t\tt.Fatal(\"should not be called\")\n\t\t\treturn animal, e\n\t\t}\n\n\t\tsrv := handler.New(\n\t\t\tNewExecutableSchema(Config{\n\t\t\t\tResolvers: resolvers,\n\t\t\t\tDirectives: DirectiveRoot{\n\t\t\t\t\tMakeTypedNil: func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error) {\n\t\t\t\t\t\tvar dog *Dog // return a typed nil, not just nil\n\t\t\t\t\t\treturn dog, nil\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t)\n\t\tsrv.AddTransport(transport.POST{})\n\t\tc := client.New(srv)\n\n\t\tvar resp any\n\t\tc.MustPost(`{ animal { species } }`, &resp)\n\t})\n\n\tt.Run(\"can bind to interfaces even when the graphql is not\", func(t *testing.T) {\n\t\tresolvers := &Stub{}\n\t\tresolvers.BackedByInterfaceResolver.ID = func(ctx context.Context, obj BackedByInterface) (s string, err error) {\n\t\t\treturn \"ID:\" + obj.ThisShouldBind(), nil\n\t\t}\n\t\tresolvers.QueryResolver.NotAnInterface = func(ctx context.Context) (byInterface BackedByInterface, err error) {\n\t\t\treturn &BackedByInterfaceImpl{\n\t\t\t\tValue: \"A\",\n\t\t\t\tError: nil,\n\t\t\t}, nil\n\t\t}\n\n\t\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\t\tsrv.AddTransport(transport.POST{})\n\t\tc := client.New(srv)\n\n\t\tvar resp struct {\n\t\t\tNotAnInterface struct {\n\t\t\t\tID                      string\n\t\t\t\tThisShouldBind          string\n\t\t\t\tThisShouldBindWithError string\n\t\t\t}\n\t\t}\n\t\tc.MustPost(`{ notAnInterface { id, thisShouldBind, thisShouldBindWithError } }`, &resp)\n\t\trequire.Equal(t, \"ID:A\", resp.NotAnInterface.ID)\n\t\trequire.Equal(t, \"A\", resp.NotAnInterface.ThisShouldBind)\n\t\trequire.Equal(t, \"A\", resp.NotAnInterface.ThisShouldBindWithError)\n\t})\n\n\tt.Run(\"can return errors from interface funcs\", func(t *testing.T) {\n\t\tresolvers := &Stub{}\n\t\tresolvers.BackedByInterfaceResolver.ID = func(ctx context.Context, obj BackedByInterface) (s string, err error) {\n\t\t\treturn \"ID:\" + obj.ThisShouldBind(), nil\n\t\t}\n\t\tresolvers.QueryResolver.NotAnInterface = func(ctx context.Context) (byInterface BackedByInterface, err error) {\n\t\t\treturn &BackedByInterfaceImpl{\n\t\t\t\tValue: \"A\",\n\t\t\t\tError: errors.New(\"boom\"),\n\t\t\t}, nil\n\t\t}\n\n\t\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\t\tsrv.AddTransport(transport.POST{})\n\t\tc := client.New(srv)\n\n\t\tvar resp struct {\n\t\t\tNotAnInterface struct {\n\t\t\t\tID                      string\n\t\t\t\tThisShouldBind          string\n\t\t\t\tThisShouldBindWithError string\n\t\t\t}\n\t\t}\n\t\terr := c.Post(`{ notAnInterface { id, thisShouldBind, thisShouldBindWithError } }`, &resp)\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t`[{\"message\":\"boom\",\"path\":[\"notAnInterface\",\"thisShouldBindWithError\"]}]`,\n\t\t)\n\t})\n\n\tt.Run(\"interfaces can implement other interfaces\", func(t *testing.T) {\n\t\tresolvers := &Stub{}\n\t\tresolvers.QueryResolver.Node = func(ctx context.Context) (node Node, err error) {\n\t\t\treturn ConcreteNodeInterfaceImplementor{}, nil\n\t\t}\n\n\t\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\t\tsrv.AddTransport(transport.POST{})\n\t\tc := client.New(srv)\n\n\t\tvar resp struct {\n\t\t\tNode struct {\n\t\t\t\tID    string\n\t\t\t\tChild struct {\n\t\t\t\t\tID string\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tc.MustPost(`{ node { id, child { id } } }`, &resp)\n\t\trequire.Equal(t, \"CNII\", resp.Node.ID)\n\t\trequire.Equal(t, \"Child\", resp.Node.Child.ID)\n\t})\n\n\tt.Run(\"interface implementors should return merged base fields\", func(t *testing.T) {\n\t\tresolvers := &Stub{}\n\t\tresolvers.QueryResolver.Shapes = func(ctx context.Context) (shapes []Shape, err error) {\n\t\t\treturn []Shape{\n\t\t\t\t&Rectangle{\n\t\t\t\t\tCoordinates: Coordinates{\n\t\t\t\t\t\tX: -1,\n\t\t\t\t\t\tY: -1,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&Circle{\n\t\t\t\t\tCoordinates: Coordinates{\n\t\t\t\t\t\tX: 1,\n\t\t\t\t\t\tY: 1,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}, nil\n\t\t}\n\n\t\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\t\tsrv.AddTransport(transport.POST{})\n\t\tc := client.New(srv)\n\t\tvar resp struct {\n\t\t\tShapes []struct {\n\t\t\t\tCoordinates struct {\n\t\t\t\t\tX float64\n\t\t\t\t\tY float64\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tc.MustPost(`\n\t\t\t{\n\t\t\t\tshapes {\n\t\t\t\t\tcoordinates {\n\t\t\t\t\t\tx\n\t\t\t\t\t}\n\t\t\t\t\t... on Rectangle {\n\t\t\t\t\t\tcoordinates {\n\t\t\t\t\t\t\tx\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t... on Circle {\n\t\t\t\t\t\tcoordinates {\n\t\t\t\t\t\t\ty\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t`, &resp)\n\n\t\trequire.Len(t, resp.Shapes, 2)\n\t\trequire.InDelta(t, float64(-1), resp.Shapes[0].Coordinates.X, 0.02)\n\t\trequire.InDelta(t, float64(0), resp.Shapes[0].Coordinates.Y, 0.02)\n\t\trequire.InDelta(t, float64(1), resp.Shapes[1].Coordinates.X, 0.02)\n\t\trequire.InDelta(t, float64(1), resp.Shapes[1].Coordinates.Y, 0.02)\n\t})\n\n\tt.Run(\"fragment on interface must return merged fields\", func(t *testing.T) {\n\t\tresolvers := &Stub{}\n\t\tresolvers.QueryResolver.Dog = func(ctx context.Context) (dog *Dog, err error) {\n\t\t\treturn &Dog{\n\t\t\t\tSize: &Size{\n\t\t\t\t\tHeight: 100,\n\t\t\t\t\tWeight: 35,\n\t\t\t\t},\n\t\t\t}, nil\n\t\t}\n\n\t\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\t\tsrv.AddTransport(transport.POST{})\n\t\tc := client.New(srv)\n\t\tvar resp struct {\n\t\t\tDog struct {\n\t\t\t\tSize struct {\n\t\t\t\t\tHeight int\n\t\t\t\t\tWeight int\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tc.MustPost(`\n\t\t\t{\n\t\t\t\tdog {\n\t\t\t\t\tsize {\n\t\t\t\t\t\theight\n   \t\t\t\t\t}\n\t\t\t\t\t...AnimalWeight\n\t\t\t\t}\n\t\t\t}\n\t\t\tfragment AnimalWeight on Animal  {\n \t\t\t\tsize {\n\t\t\t\t\tweight\n\t\t\t\t}\n            }\n\t\t`, &resp)\n\n\t\trequire.Equal(t, 100, resp.Dog.Size.Height)\n\t\trequire.Equal(t, 35, resp.Dog.Size.Weight)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/introspection/it.go",
    "content": "package introspection\n\ntype It struct {\n\tID string\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/introspection_test.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/extension\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n)\n\nfunc TestIntrospection(t *testing.T) {\n\tt.Run(\"disabled when creating your own server\", func(t *testing.T) {\n\t\tresolvers := &Stub{}\n\n\t\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\t\tsrv.AddTransport(transport.POST{})\n\t\tc := client.New(srv)\n\n\t\tvar resp any\n\t\terr := c.Post(introspection.Query, &resp)\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t\"[{\\\"message\\\":\\\"introspection disabled\\\",\\\"path\\\":[\\\"__schema\\\"]}]\",\n\t\t)\n\t})\n\n\tt.Run(\"enabled by adding extension\", func(t *testing.T) {\n\t\tresolvers := &Stub{}\n\n\t\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\t\tsrv.AddTransport(transport.POST{})\n\t\tsrv.Use(extension.Introspection{})\n\t\tc := client.New(srv)\n\n\t\tvar resp any\n\t\terr := c.Post(introspection.Query, &resp)\n\t\trequire.NoError(t, err)\n\n\t\tt.Run(\"does not return empty deprecation strings\", func(t *testing.T) {\n\t\t\tq := `{\n\t\t\t  __type(name:\"InnerObject\") {\n\t\t\t    fields {\n\t\t\t      name\n\t\t\t      deprecationReason\n\t\t\t    }\n\t\t\t  }\n\t\t\t}`\n\n\t\t\tvar resp struct {\n\t\t\t\tType struct {\n\t\t\t\t\tFields []struct {\n\t\t\t\t\t\tName              string\n\t\t\t\t\t\tDeprecationReason *string\n\t\t\t\t\t}\n\t\t\t\t} `json:\"__type\"`\n\t\t\t}\n\t\t\terr := c.Post(q, &resp)\n\t\t\trequire.NoError(t, err)\n\n\t\t\trequire.Equal(t, \"id\", resp.Type.Fields[0].Name)\n\t\t\trequire.Nil(t, resp.Type.Fields[0].DeprecationReason)\n\t\t})\n\n\t\tt.Run(\"chained interface possibleTypes\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tType struct {\n\t\t\t\t\tPossibleTypes []struct {\n\t\t\t\t\t\tName string\n\t\t\t\t\t}\n\t\t\t\t} `json:\"__type\"`\n\t\t\t}\n\n\t\t\terr := c.Post(`{ __type(name: \"Animal\") { possibleTypes { name } } }`, &resp)\n\t\t\trequire.NoError(t, err)\n\n\t\t\tnames := make([]string, len(resp.Type.PossibleTypes))\n\t\t\tfor i, pt := range resp.Type.PossibleTypes {\n\t\t\t\tnames[i] = pt.Name\n\t\t\t}\n\t\t\trequire.Contains(t, names, \"Dog\")\n\t\t\trequire.Contains(t, names, \"Cat\")\n\t\t\t// Horse implements Animal transitively via Mammalian\n\t\t\trequire.Contains(t, names, \"Horse\")\n\t\t})\n\n\t\tt.Run(\"deprecated directive on field arguments\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tType struct {\n\t\t\t\t\tFields []struct {\n\t\t\t\t\t\tName string\n\t\t\t\t\t\tArgs []struct {\n\t\t\t\t\t\t\tName              string\n\t\t\t\t\t\t\tDeprecationReason *string\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} `json:\"__type\"`\n\t\t\t}\n\n\t\t\terr := c.Post(\n\t\t\t\t`{ __type(name:\"Query\") { fields { name args { name deprecationReason }}}}`,\n\t\t\t\t&resp,\n\t\t\t)\n\t\t\trequire.NoError(t, err)\n\n\t\t\tvar args []struct {\n\t\t\t\tName              string\n\t\t\t\tDeprecationReason *string\n\t\t\t}\n\t\t\tfor _, f := range resp.Type.Fields {\n\t\t\t\tif f.Name == \"fieldWithDeprecatedArg\" {\n\t\t\t\t\targs = f.Args\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\n\t\t\trequire.Len(t, args, 2)\n\t\t\trequire.Equal(t, \"oldArg\", args[0].Name)\n\t\t\trequire.NotNil(t, args[0].DeprecationReason)\n\t\t\trequire.Equal(t, \"old arg\", *args[0].DeprecationReason)\n\n\t\t\trequire.Equal(t, \"newArg\", args[1].Name)\n\t\t\trequire.Nil(t, args[1].DeprecationReason)\n\t\t})\n\t})\n\n\tt.Run(\"disabled by middleware\", func(t *testing.T) {\n\t\tresolvers := &Stub{}\n\n\t\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\t\tsrv.AddTransport(transport.POST{})\n\t\tsrv.Use(extension.Introspection{})\n\t\tsrv.AroundOperations(\n\t\t\tfunc(ctx context.Context, next graphql.OperationHandler) graphql.ResponseHandler {\n\t\t\t\tgraphql.GetOperationContext(ctx).DisableIntrospection = true\n\t\t\t\treturn next(ctx)\n\t\t\t},\n\t\t)\n\t\tc := client.New(srv)\n\n\t\tvar resp any\n\t\terr := c.Post(introspection.Query, &resp)\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t\"[{\\\"message\\\":\\\"introspection disabled\\\",\\\"path\\\":[\\\"__schema\\\"]}]\",\n\t\t)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/invalid-packagename/invalid-identifier.go",
    "content": "package invalid_packagename\n\ntype InvalidIdentifier struct {\n\tID int\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/issue4053.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalInputIssue4053Input1(ctx context.Context, obj any) (Issue4053Input1, error) {\n\tvar it Issue4053Input1\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"input2\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"input2\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"input2\"))\n\t\t\tdata, err := ec.unmarshalOIssue4053Input22githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐIssue4053Input2(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Input2 = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputIssue4053Input2(ctx context.Context, obj any) (Issue4053Input2, error) {\n\tvar it Issue4053Input2\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tif _, present := asMap[\"helloWithDefault\"]; !present {\n\t\tasMap[\"helloWithDefault\"] = \"world\"\n\t}\n\n\tfieldsInOrder := [...]string{\"hello\", \"helloWithDefault\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"hello\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"hello\"))\n\t\t\tdata, err := ec.unmarshalOString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Hello = data\n\t\tcase \"helloWithDefault\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"helloWithDefault\"))\n\t\t\tdata, err := ec.unmarshalOString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.HelloWithDefault = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalOIssue4053Input12ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐIssue4053Input1(ctx context.Context, v any) (*Issue4053Input1, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputIssue4053Input1(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalOIssue4053Input22githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐIssue4053Input2(ctx context.Context, v any) (Issue4053Input2, error) {\n\tres, err := ec.unmarshalInputIssue4053Input2(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/followschema/issue4053.go",
    "content": "package followschema\n\ntype Issue4053Input1 struct {\n\tInput2 Issue4053Input2\n}\n\ntype Issue4053Input2 struct {\n\tHello            string\n\tHelloWithDefault string\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/issue4053.graphql",
    "content": "# This is a reproduction of https://github.com/99designs/gqlgen/issues/4053\n\nextend type Mutation {\n    issue4053(input: Issue4053Input1): Boolean!\n}\n\ninput Issue4053Input1 {\n    input2: Issue4053Input2\n}\n\n# Issue4053Input2 exists in issue4053.go\ninput Issue4053Input2 {\n    hello: String\n    helloWithDefault: String = \"world\"\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/issue896.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _CheckIssue896_id(ctx context.Context, field graphql.CollectedField, obj *CheckIssue896) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_CheckIssue896_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOInt2ᚖint,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_CheckIssue896_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"CheckIssue896\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar checkIssue896Implementors = []string{\"CheckIssue896\"}\n\nfunc (ec *executionContext) _CheckIssue896(ctx context.Context, sel ast.SelectionSet, obj *CheckIssue896) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, checkIssue896Implementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"CheckIssue896\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._CheckIssue896_id(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) marshalNCheckIssue8962ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐCheckIssue896(ctx context.Context, sel ast.SelectionSet, v *CheckIssue896) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._CheckIssue896(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOCheckIssue8962ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐCheckIssue896(ctx context.Context, sel ast.SelectionSet, v []*CheckIssue896) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalOCheckIssue8962ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐCheckIssue896(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOCheckIssue8962ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐCheckIssue896ᚄ(ctx context.Context, sel ast.SelectionSet, v []*CheckIssue896) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNCheckIssue8962ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐCheckIssue896(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOCheckIssue8962ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐCheckIssue896(ctx context.Context, sel ast.SelectionSet, v *CheckIssue896) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._CheckIssue896(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/followschema/issue896.graphql",
    "content": "# This example should build stable output. If the file content starts\n# alternating nondeterministically between two outputs, then see\n# https://github.com/99designs/gqlgen/issues/896.\n\nextend schema {\n  query: Query\n  subscription: Subscription\n}\n\ntype CheckIssue896 {id: Int}\n\nextend type Query {\n  issue896a: [CheckIssue896!] # Note the \"!\" or lack thereof.\n}\n\nextend type Subscription {\n  issue896b: [CheckIssue896] # Note the \"!\" or lack thereof.\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/loops.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _LoopA_b(ctx context.Context, field graphql.CollectedField, obj *LoopA) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_LoopA_b,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.B, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNLoopB2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐLoopB,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_LoopA_b(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"LoopA\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"a\":\n\t\t\t\treturn ec.fieldContext_LoopB_a(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type LoopB\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _LoopB_a(ctx context.Context, field graphql.CollectedField, obj *LoopB) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_LoopB_a,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.A, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNLoopA2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐLoopA,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_LoopB_a(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"LoopB\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"b\":\n\t\t\t\treturn ec.fieldContext_LoopA_b(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type LoopA\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar loopAImplementors = []string{\"LoopA\"}\n\nfunc (ec *executionContext) _LoopA(ctx context.Context, sel ast.SelectionSet, obj *LoopA) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, loopAImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"LoopA\")\n\t\tcase \"b\":\n\t\t\tout.Values[i] = ec._LoopA_b(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar loopBImplementors = []string{\"LoopB\"}\n\nfunc (ec *executionContext) _LoopB(ctx context.Context, sel ast.SelectionSet, obj *LoopB) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, loopBImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"LoopB\")\n\t\tcase \"a\":\n\t\t\tout.Values[i] = ec._LoopB_a(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) marshalNLoopA2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐLoopA(ctx context.Context, sel ast.SelectionSet, v *LoopA) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._LoopA(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNLoopB2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐLoopB(ctx context.Context, sel ast.SelectionSet, v *LoopB) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._LoopB(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/followschema/loops.graphql",
    "content": "type LoopA {\n    b: LoopB!\n}\n\ntype LoopB {\n    a: LoopA!\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/map_nested_map_slice_test.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestMapNestedMapSlice(t *testing.T) {\n\tresolver := &Stub{}\n\tresolver.QueryResolver.MapNestedMapSlice = func(ctx context.Context, input map[string]any) (*bool, error) {\n\t\trequire.NotNil(t, input, \"expected input\")\n\t\trequire.NotNil(t, input[\"recurse\"], \"expected recurse\")\n\t\trequire.IsType(\n\t\t\tt,\n\t\t\t[]map[string]any{},\n\t\t\tinput[\"recurse\"],\n\t\t\t\"expected recurse as [][]map[string]any\",\n\t\t)\n\t\trecurse := input[\"recurse\"].([]map[string]any)\n\t\trequire.Len(t, recurse, 1, \"expected 1 item in recurse\")\n\t\treturn nil, nil\n\t}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolver}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"recursive input\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tMapNestedMapSlice bool\n\t\t}\n\t\t// recurse is [MapNestedMapSlice!]\n\t\terr := c.Post(\n\t\t\t`query { mapNestedMapSlice(input: { recurse: [{ name: \"child\" }] }) }`,\n\t\t\t&resp,\n\t\t)\n\t\trequire.NoError(t, err)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/maps.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _MapNested_value(ctx context.Context, field graphql.CollectedField, obj *MapNested) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MapNested_value,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Value, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNCustomScalar2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐCustomScalar,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MapNested_value(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MapNested\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type CustomScalar does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MapStringInterfaceType_a(ctx context.Context, field graphql.CollectedField, obj map[string]any) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MapStringInterfaceType_a,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tswitch v := obj[\"a\"].(type) {\n\t\t\tcase *string:\n\t\t\t\treturn v, nil\n\t\t\tcase string:\n\t\t\t\treturn &v, nil\n\t\t\tcase nil:\n\t\t\t\treturn (*string)(nil), nil\n\t\t\tdefault:\n\t\t\t\treturn nil, fmt.Errorf(\"unexpected type %T for field %s\", v, \"a\")\n\t\t\t}\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MapStringInterfaceType_a(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MapStringInterfaceType\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MapStringInterfaceType_b(ctx context.Context, field graphql.CollectedField, obj map[string]any) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MapStringInterfaceType_b,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tswitch v := obj[\"b\"].(type) {\n\t\t\tcase *int:\n\t\t\t\treturn v, nil\n\t\t\tcase int:\n\t\t\t\treturn &v, nil\n\t\t\tcase nil:\n\t\t\t\treturn (*int)(nil), nil\n\t\t\tdefault:\n\t\t\t\treturn nil, fmt.Errorf(\"unexpected type %T for field %s\", v, \"b\")\n\t\t\t}\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOInt2ᚖint,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MapStringInterfaceType_b(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MapStringInterfaceType\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MapStringInterfaceType_c(ctx context.Context, field graphql.CollectedField, obj map[string]any) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MapStringInterfaceType_c,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tswitch v := obj[\"c\"].(type) {\n\t\t\tcase *CustomScalar:\n\t\t\t\treturn v, nil\n\t\t\tcase CustomScalar:\n\t\t\t\treturn &v, nil\n\t\t\tcase nil:\n\t\t\t\treturn (*CustomScalar)(nil), nil\n\t\t\tdefault:\n\t\t\t\treturn nil, fmt.Errorf(\"unexpected type %T for field %s\", v, \"c\")\n\t\t\t}\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOCustomScalar2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐCustomScalar,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MapStringInterfaceType_c(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MapStringInterfaceType\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type CustomScalar does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MapStringInterfaceType_nested(ctx context.Context, field graphql.CollectedField, obj map[string]any) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MapStringInterfaceType_nested,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tswitch v := obj[\"nested\"].(type) {\n\t\t\tcase *MapNested:\n\t\t\t\treturn v, nil\n\t\t\tcase MapNested:\n\t\t\t\treturn &v, nil\n\t\t\tcase nil:\n\t\t\t\treturn (*MapNested)(nil), nil\n\t\t\tdefault:\n\t\t\t\treturn nil, fmt.Errorf(\"unexpected type %T for field %s\", v, \"nested\")\n\t\t\t}\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOMapNested2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐMapNested,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MapStringInterfaceType_nested(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MapStringInterfaceType\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"value\":\n\t\t\t\treturn ec.fieldContext_MapNested_value(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type MapNested\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalInputMapNestedInput(ctx context.Context, obj any) (MapNested, error) {\n\tvar it MapNested\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"value\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"value\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"value\"))\n\t\t\tdata, err := ec.unmarshalNCustomScalar2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐCustomScalar(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Value = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputMapNestedMapSliceInput(ctx context.Context, obj any) (map[string]any, error) {\n\tvar it map[string]any\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"name\", \"recurse\"}\n\tit = make(map[string]any, len(asMap))\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"name\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"name\"))\n\t\t\tdata, err := ec.unmarshalOString2ᚖstring(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"name\"] = data\n\t\tcase \"recurse\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"recurse\"))\n\t\t\tdata, err := ec.unmarshalOMapNestedMapSliceInput2ᚕmapᚄ(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"recurse\"] = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputMapStringInterfaceInput(ctx context.Context, obj any) (map[string]any, error) {\n\tvar it map[string]any\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"a\", \"b\", \"c\", \"nested\"}\n\tit = make(map[string]any, len(asMap))\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"a\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"a\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"a\"] = data\n\t\tcase \"b\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"b\"))\n\t\t\tdata, err := ec.unmarshalOInt2ᚖint(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"b\"] = data\n\t\tcase \"c\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"c\"))\n\t\t\tdata, err := ec.unmarshalOCustomScalar2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐCustomScalar(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"c\"] = data\n\t\tcase \"nested\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"nested\"))\n\t\t\tdata, err := ec.unmarshalOMapNestedInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐMapNested(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"nested\"] = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputNestedMapInput(ctx context.Context, obj any) (NestedMapInput, error) {\n\tvar it NestedMapInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"map\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"map\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"map\"))\n\t\t\tdata, err := ec.unmarshalOMapStringInterfaceInput2map(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Map = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar mapNestedImplementors = []string{\"MapNested\"}\n\nfunc (ec *executionContext) _MapNested(ctx context.Context, sel ast.SelectionSet, obj *MapNested) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, mapNestedImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"MapNested\")\n\t\tcase \"value\":\n\t\t\tout.Values[i] = ec._MapNested_value(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar mapStringInterfaceTypeImplementors = []string{\"MapStringInterfaceType\"}\n\nfunc (ec *executionContext) _MapStringInterfaceType(ctx context.Context, sel ast.SelectionSet, obj map[string]any) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, mapStringInterfaceTypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"MapStringInterfaceType\")\n\t\tcase \"a\":\n\t\t\tout.Values[i] = ec._MapStringInterfaceType_a(ctx, field, obj)\n\t\tcase \"b\":\n\t\t\tout.Values[i] = ec._MapStringInterfaceType_b(ctx, field, obj)\n\t\tcase \"c\":\n\t\t\tout.Values[i] = ec._MapStringInterfaceType_c(ctx, field, obj)\n\t\tcase \"nested\":\n\t\t\tout.Values[i] = ec._MapStringInterfaceType_nested(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNCustomScalar2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐCustomScalar(ctx context.Context, v any) (CustomScalar, error) {\n\tvar res CustomScalar\n\terr := res.UnmarshalGQL(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNCustomScalar2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐCustomScalar(ctx context.Context, sel ast.SelectionSet, v CustomScalar) graphql.Marshaler {\n\treturn v\n}\n\nfunc (ec *executionContext) unmarshalNMapNestedMapSliceInput2map(ctx context.Context, v any) (map[string]any, error) {\n\tres, err := ec.unmarshalInputMapNestedMapSliceInput(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalOCustomScalar2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐCustomScalar(ctx context.Context, v any) (*CustomScalar, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar res = new(CustomScalar)\n\terr := res.UnmarshalGQL(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOCustomScalar2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐCustomScalar(ctx context.Context, sel ast.SelectionSet, v *CustomScalar) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn v\n}\n\nfunc (ec *executionContext) marshalOMapNested2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐMapNested(ctx context.Context, sel ast.SelectionSet, v *MapNested) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._MapNested(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOMapNestedInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐMapNested(ctx context.Context, v any) (*MapNested, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputMapNestedInput(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalOMapNestedMapSliceInput2map(ctx context.Context, v any) (map[string]any, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputMapNestedMapSliceInput(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalOMapNestedMapSliceInput2ᚕmapᚄ(ctx context.Context, v any) ([]map[string]any, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]map[string]any, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNMapNestedMapSliceInput2map(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) unmarshalOMapStringInterfaceInput2map(ctx context.Context, v any) (map[string]any, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputMapStringInterfaceInput(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOMapStringInterfaceType2map(ctx context.Context, sel ast.SelectionSet, v map[string]any) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._MapStringInterfaceType(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalONestedMapInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐNestedMapInput(ctx context.Context, v any) (*NestedMapInput, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputNestedMapInput(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/followschema/maps.go",
    "content": "package followschema\n\nimport (\n\t\"io\"\n\t\"strconv\"\n)\n\ntype MapNested struct {\n\tValue CustomScalar\n}\n\ntype CustomScalar struct {\n\tvalue int64\n}\n\nfunc (s *CustomScalar) UnmarshalGQL(v any) (err error) {\n\tswitch v := v.(type) {\n\tcase string:\n\t\ts.value, err = strconv.ParseInt(v, 10, 64)\n\tcase int64:\n\t\ts.value = v\n\t}\n\treturn err\n}\n\nfunc (s CustomScalar) MarshalGQL(w io.Writer) {\n\t_, _ = w.Write([]byte(strconv.Quote(strconv.FormatInt(s.value, 10))))\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/maps.graphql",
    "content": "extend type Query {\n    mapStringInterface(in: MapStringInterfaceInput): MapStringInterfaceType\n    mapNestedStringInterface(in: NestedMapInput): MapStringInterfaceType\n}\n\ntype MapStringInterfaceType @goModel(model: \"map[string]interface{}\") {\n    a: String\n    b: Int\n    c: CustomScalar\n    nested: MapNested\n}\n\ntype MapNested @goModel(model: \"followschema.MapNested\") {\n    value: CustomScalar!\n}\n\ninput MapStringInterfaceInput @goModel(model: \"map[string]interface{}\") {\n    a: String!\n    b: Int\n    c: CustomScalar\n    nested: MapNestedInput\n}\n\ninput MapNestedInput @goModel(model: \"followschema.MapNested\") {\n    value: CustomScalar!\n}\n\nscalar CustomScalar @goModel(model: \"followschema.CustomScalar\")\n\ninput NestedMapInput {\n    map: MapStringInterfaceInput\n}\n\ninput MapNestedMapSliceInput @goModel(model: \"map[string]interface{}\") {\n    name: String\n    recurse: [MapNestedMapSliceInput!]\n}\n\nextend type Query {\n    mapNestedMapSlice(input: MapNestedMapSliceInput): Boolean\n}"
  },
  {
    "path": "codegen/testserver/followschema/maps_test.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestMaps(t *testing.T) {\n\tresolver := &Stub{}\n\tresolver.QueryResolver.MapStringInterface = func(ctx context.Context, in map[string]any) (i map[string]any, e error) {\n\t\tvalidateMapItemsType(t, in)\n\t\treturn in, nil\n\t}\n\tresolver.QueryResolver.MapNestedStringInterface = func(ctx context.Context, in *NestedMapInput) (i map[string]any, e error) {\n\t\tif in == nil {\n\t\t\treturn nil, nil\n\t\t}\n\t\tvalidateMapItemsType(t, in.Map)\n\t\treturn in.Map, nil\n\t}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolver}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\tt.Run(\"unset\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tMapStringInterface map[string]any\n\t\t}\n\t\terr := c.Post(`query { mapStringInterface { a, b, c, nested { value } } }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Nil(t, resp.MapStringInterface)\n\t})\n\n\tt.Run(\"nil\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tMapStringInterface map[string]any\n\t\t}\n\t\terr := c.Post(`query { mapStringInterface(in: null) { a, b, c, nested { value } } }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Nil(t, resp.MapStringInterface)\n\t})\n\n\tt.Run(\"values\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tMapStringInterface map[string]any\n\t\t}\n\t\terr := c.Post(\n\t\t\t`query($value: CustomScalar!) { mapStringInterface(in: { a: \"a\", b: null, c: 42, nested: { value: $value } }) { a, b, c, nested { value } } }`,\n\t\t\t&resp,\n\t\t\tclient.Var(\"value\", \"17\"),\n\t\t)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"a\", resp.MapStringInterface[\"a\"])\n\t\trequire.Nil(t, resp.MapStringInterface[\"b\"])\n\t\trequire.Equal(t, \"42\", resp.MapStringInterface[\"c\"])\n\t\trequire.NotNil(t, resp.MapStringInterface[\"nested\"])\n\t\trequire.IsType(t, map[string]any{}, resp.MapStringInterface[\"nested\"])\n\t\trequire.Equal(t, \"17\", (resp.MapStringInterface[\"nested\"].(map[string]any))[\"value\"])\n\t})\n\n\tt.Run(\"nested\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tMapNestedStringInterface map[string]any\n\t\t}\n\t\terr := c.Post(\n\t\t\t`query { mapNestedStringInterface(in: { map: { a: \"a\", c: \"42\", nested: { value: 31 } } }) { a, b, c, nested { value } } }`,\n\t\t\t&resp,\n\t\t)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"a\", resp.MapNestedStringInterface[\"a\"])\n\t\trequire.Nil(t, resp.MapNestedStringInterface[\"b\"])\n\t\trequire.Equal(t, \"42\", resp.MapNestedStringInterface[\"c\"])\n\t\trequire.NotNil(t, resp.MapNestedStringInterface[\"nested\"])\n\t\trequire.IsType(t, map[string]any{}, resp.MapNestedStringInterface[\"nested\"])\n\t\trequire.Equal(t, \"31\", (resp.MapNestedStringInterface[\"nested\"].(map[string]any))[\"value\"])\n\t})\n\n\tt.Run(\"nested nil\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tMapNestedStringInterface map[string]any\n\t\t}\n\t\terr := c.Post(\n\t\t\t`query { mapNestedStringInterface(in: { map: null }) { a, b, c, nested { value } } }`,\n\t\t\t&resp,\n\t\t)\n\t\trequire.NoError(t, err)\n\t\trequire.Nil(t, resp.MapNestedStringInterface)\n\t})\n}\n\nfunc validateMapItemsType(t *testing.T, in map[string]any) {\n\tfor k, v := range in {\n\t\tswitch k {\n\t\tcase \"a\":\n\t\t\trequire.IsType(t, \"\", v)\n\t\tcase \"b\":\n\t\t\trequire.IsType(t, new(int), v)\n\t\tcase \"c\":\n\t\t\trequire.IsType(t, new(CustomScalar), v)\n\t\tcase \"nested\":\n\t\t\trequire.IsType(t, new(MapNested), v)\n\t\tdefault:\n\t\t\trequire.Failf(t, \"unexpected key in map\", \"key %q was not expected in map\", k)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/middleware_test.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"sync\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestMiddleware(t *testing.T) {\n\tresolvers := &Stub{}\n\tresolvers.QueryResolver.ErrorBubble = func(ctx context.Context) (i *Error, e error) {\n\t\treturn &Error{ID: \"E1234\"}, nil\n\t}\n\n\tresolvers.QueryResolver.User = func(ctx context.Context, id int) (user *User, e error) {\n\t\treturn &User{ID: 1}, nil\n\t}\n\n\tresolvers.UserResolver.Friends = func(ctx context.Context, obj *User) (users []*User, e error) {\n\t\treturn []*User{{ID: 1}}, nil\n\t}\n\n\tresolvers.QueryResolver.ModelMethods = func(ctx context.Context) (methods *ModelMethods, e error) {\n\t\treturn &ModelMethods{}, nil\n\t}\n\n\tvar mu sync.Mutex\n\tareMethods := map[string]bool{}\n\tareResolvers := map[string]bool{}\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tsrv.AroundFields(func(ctx context.Context, next graphql.Resolver) (res any, err error) {\n\t\tpath, _ := ctx.Value(ckey(\"path\")).([]int)\n\t\treturn next(context.WithValue(ctx, ckey(\"path\"), append(path, 1)))\n\t})\n\n\tsrv.AroundFields(func(ctx context.Context, next graphql.Resolver) (res any, err error) {\n\t\tpath, _ := ctx.Value(ckey(\"path\")).([]int)\n\t\treturn next(context.WithValue(ctx, ckey(\"path\"), append(path, 2)))\n\t})\n\n\tsrv.AroundFields(func(ctx context.Context, next graphql.Resolver) (res any, err error) {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tmu.Lock()\n\t\tareMethods[fc.Field.Name] = fc.IsMethod\n\t\tareResolvers[fc.Field.Name] = fc.IsResolver\n\t\tmu.Unlock()\n\t\treturn next(ctx)\n\t})\n\n\tc := client.New(srv)\n\n\tvar resp struct {\n\t\tUser struct {\n\t\t\tID      int\n\t\t\tFriends []struct {\n\t\t\t\tID int\n\t\t\t}\n\t\t}\n\t\tModelMethods struct {\n\t\t\tNoContext bool\n\t\t}\n\t}\n\n\tcalled := false\n\tresolvers.UserResolver.Friends = func(ctx context.Context, obj *User) ([]*User, error) {\n\t\tassert.Equal(t, []int{1, 2, 1, 2}, ctx.Value(ckey(\"path\")))\n\t\tcalled = true\n\t\treturn []*User{}, nil\n\t}\n\n\terr := c.Post(`query {\n\t\tuser(id: 1) {\n\t\t\tid,\n\t\t\tfriends {\n\t\t\t\tid\n\t\t\t}\n\t\t}\n\t\tmodelMethods {\n\t\t\tnoContext\n\t\t}\n\t}`, &resp)\n\n\tassert.Equal(t, map[string]bool{\n\t\t\"user\":         true,\n\t\t\"id\":           false,\n\t\t\"friends\":      true,\n\t\t\"modelMethods\": true,\n\t\t\"noContext\":    true,\n\t}, areMethods)\n\tassert.Equal(t, map[string]bool{\n\t\t\"user\":         true,\n\t\t\"id\":           false,\n\t\t\"friends\":      true,\n\t\t\"modelMethods\": true,\n\t\t\"noContext\":    false,\n\t}, areResolvers)\n\n\trequire.NoError(t, err)\n\trequire.True(t, called)\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/modelmethod_test.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestModelMethods(t *testing.T) {\n\tresolver := &Stub{}\n\tresolver.QueryResolver.ModelMethods = func(ctx context.Context) (methods *ModelMethods, e error) {\n\t\treturn &ModelMethods{}, nil\n\t}\n\tresolver.ModelMethodsResolver.ResolverField = func(ctx context.Context, obj *ModelMethods) (b bool, e error) {\n\t\treturn true, nil\n\t}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolver}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"without context\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tModelMethods struct {\n\t\t\t\tNoContext bool\n\t\t\t}\n\t\t}\n\t\terr := c.Post(`query { modelMethods{ noContext } }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.True(t, resp.ModelMethods.NoContext)\n\t})\n\tt.Run(\"with context\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tModelMethods struct {\n\t\t\t\tWithContext bool\n\t\t\t}\n\t\t}\n\t\terr := c.Post(`query { modelMethods{ withContext } }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.True(t, resp.ModelMethods.WithContext)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/models-gen.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\t\"time\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\ntype Animal interface {\n\tIsAnimal()\n\tGetSpecies() string\n\tGetSize() *Size\n}\n\ntype ContentChild interface {\n\tIsContentChild()\n}\n\ntype Mammalian interface {\n\tIsAnimal()\n\tIsMammalian()\n\tGetSpecies() string\n\tGetSize() *Size\n}\n\ntype TestUnion interface {\n\tIsTestUnion()\n}\n\ntype A struct {\n\tID string `json:\"id\"`\n}\n\nfunc (A) IsTestUnion() {}\n\ntype AIt struct {\n\tID string `json:\"id\"`\n}\n\ntype AbIt struct {\n\tID string `json:\"id\"`\n}\n\ntype B struct {\n\tID string `json:\"id\"`\n}\n\nfunc (B) IsTestUnion() {}\n\ntype Cat struct {\n\tSpecies  string `json:\"species\"`\n\tSize     *Size  `json:\"size\"`\n\tCatBreed string `json:\"catBreed\"`\n}\n\nfunc (Cat) IsAnimal()               {}\nfunc (this Cat) GetSpecies() string { return this.Species }\nfunc (this Cat) GetSize() *Size     { return this.Size }\n\ntype CheckIssue896 struct {\n\tID *int `json:\"id,omitempty\"`\n}\n\ntype ContentPost struct {\n\tFoo *string `json:\"foo,omitempty\"`\n}\n\nfunc (ContentPost) IsContentChild() {}\n\ntype ContentUser struct {\n\tFoo *string `json:\"foo,omitempty\"`\n}\n\nfunc (ContentUser) IsContentChild() {}\n\ntype Coordinates struct {\n\tX float64 `json:\"x\"`\n\tY float64 `json:\"y\"`\n}\n\ntype DefaultInput struct {\n\tFalsyBoolean  *bool `json:\"falsyBoolean,omitempty\"`\n\tTruthyBoolean *bool `json:\"truthyBoolean,omitempty\"`\n}\n\ntype DefaultParametersMirror struct {\n\tFalsyBoolean  *bool `json:\"falsyBoolean,omitempty\"`\n\tTruthyBoolean *bool `json:\"truthyBoolean,omitempty\"`\n}\n\ntype DeferModel struct {\n\tID     string   `json:\"id\"`\n\tName   string   `json:\"name\"`\n\tValues []string `json:\"values\"`\n}\n\ntype Dog struct {\n\tSpecies  string `json:\"species\"`\n\tSize     *Size  `json:\"size\"`\n\tDogBreed string `json:\"dogBreed\"`\n}\n\nfunc (Dog) IsAnimal()               {}\nfunc (this Dog) GetSpecies() string { return this.Species }\nfunc (this Dog) GetSize() *Size     { return this.Size }\n\ntype EmbeddedDefaultScalar struct {\n\tValue *string `json:\"value,omitempty\"`\n}\n\ntype FieldsOrderPayload struct {\n\tFirstFieldValue *string `json:\"firstFieldValue,omitempty\"`\n}\n\ntype Horse struct {\n\tSpecies    string `json:\"species\"`\n\tSize       *Size  `json:\"size\"`\n\tHorseBreed string `json:\"horseBreed\"`\n}\n\nfunc (Horse) IsMammalian()            {}\nfunc (this Horse) GetSpecies() string { return this.Species }\nfunc (this Horse) GetSize() *Size     { return this.Size }\n\nfunc (Horse) IsAnimal() {}\n\ntype InnerDirectives struct {\n\tMessage string `json:\"message\"`\n}\n\ntype InnerInput struct {\n\tID int `json:\"id\"`\n}\n\ntype InnerObject struct {\n\tID int `json:\"id\"`\n}\n\ntype InputDirectives struct {\n\tText          string           `json:\"text\"`\n\tNullableText  *string          `json:\"nullableText,omitempty\"`\n\tInner         *InnerDirectives `json:\"inner\"`\n\tInnerNullable *InnerDirectives `json:\"innerNullable,omitempty\"`\n\tThirdParty    *ThirdParty      `json:\"thirdParty,omitempty\"`\n}\n\ntype InputWithEnumValue struct {\n\tEnum EnumTest `json:\"enum\"`\n}\n\ntype LoopA struct {\n\tB *LoopB `json:\"b\"`\n}\n\ntype LoopB struct {\n\tA *LoopA `json:\"a\"`\n}\n\n// Since gqlgen defines default implementation for a Map scalar, this tests that the builtin is _not_\n// added to the TypeMap\ntype Map struct {\n\tID string `json:\"id\"`\n}\n\ntype Mutation struct {\n}\n\ntype NestedInput struct {\n\tField Email `json:\"field\"`\n}\n\ntype NestedMapInput struct {\n\tMap map[string]any `json:\"map,omitempty\"`\n}\n\ntype ObjectDirectives struct {\n\tText         string   `json:\"text\"`\n\tNullableText *string  `json:\"nullableText,omitempty\"`\n\tOrder        []string `json:\"order\"`\n}\n\ntype OmittableInput struct {\n\tID     graphql.Omittable[*string]     `json:\"id,omitempty\"`\n\tBool   graphql.Omittable[*bool]       `json:\"bool,omitempty\"`\n\tStr    graphql.Omittable[*string]     `json:\"str,omitempty\"`\n\tInt    graphql.Omittable[*int]        `json:\"int,omitempty\"`\n\tTime   graphql.Omittable[*time.Time]  `json:\"time,omitempty\"`\n\tEnum   graphql.Omittable[*Status]     `json:\"enum,omitempty\"`\n\tScalar graphql.Omittable[*ThirdParty] `json:\"scalar,omitempty\"`\n\tObject graphql.Omittable[*OuterInput] `json:\"object,omitempty\"`\n}\n\ntype OuterInput struct {\n\tInner *InnerInput `json:\"inner\"`\n}\n\ntype OuterObject struct {\n\tInner *InnerObject `json:\"inner\"`\n}\n\ntype OuterWrapperInput struct {\n\tInner *InputDirectives `json:\"inner\"`\n}\n\ntype Pet struct {\n\tID      int    `json:\"id\"`\n\tFriends []*Pet `json:\"friends,omitempty\"`\n}\n\ntype Query struct {\n}\n\ntype Size struct {\n\tHeight int `json:\"height\"`\n\tWeight int `json:\"weight\"`\n}\n\ntype SkipIncludeTestType struct {\n\tA *string `json:\"a,omitempty\"`\n\tB *string `json:\"b,omitempty\"`\n}\n\ntype Slices struct {\n\tTest1 []*string `json:\"test1,omitempty\"`\n\tTest2 []string  `json:\"test2,omitempty\"`\n\tTest3 []*string `json:\"test3\"`\n\tTest4 []string  `json:\"test4\"`\n}\n\ntype SpecialInput struct {\n\tNesting *NestedInput `json:\"nesting\"`\n}\n\ntype Subscription struct {\n}\n\ntype User struct {\n\tID      int        `json:\"id\"`\n\tFriends []*User    `json:\"friends\"`\n\tCreated time.Time  `json:\"created\"`\n\tUpdated *time.Time `json:\"updated,omitempty\"`\n\tPets    []*Pet     `json:\"pets,omitempty\"`\n}\n\ntype ValidInput struct {\n\tBreak       string `json:\"break\"`\n\tDefault     string `json:\"default\"`\n\tFunc        string `json:\"func\"`\n\tInterface   string `json:\"interface\"`\n\tSelect      string `json:\"select\"`\n\tCase        string `json:\"case\"`\n\tDefer       string `json:\"defer\"`\n\tGo          string `json:\"go\"`\n\tMap         string `json:\"map\"`\n\tStruct      string `json:\"struct\"`\n\tChan        string `json:\"chan\"`\n\tElse        string `json:\"else\"`\n\tGoto        string `json:\"goto\"`\n\tPackage     string `json:\"package\"`\n\tSwitch      string `json:\"switch\"`\n\tConst       string `json:\"const\"`\n\tFallthrough string `json:\"fallthrough\"`\n\tIf          string `json:\"if\"`\n\tRange       string `json:\"range\"`\n\tType        string `json:\"type\"`\n\tContinue    string `json:\"continue\"`\n\tFor         string `json:\"for\"`\n\tImport      string `json:\"import\"`\n\tReturn      string `json:\"return\"`\n\tVar         string `json:\"var\"`\n\tUnderscore  string `json:\"_\"`\n}\n\n// These things are all valid, but without care generate invalid go code\ntype ValidType struct {\n\tDifferentCase      string `json:\"differentCase\"`\n\tDifferentCaseOld   string `json:\"different_case\"`\n\tValidInputKeywords bool   `json:\"validInputKeywords\"`\n\tValidArgs          bool   `json:\"validArgs\"`\n}\n\ntype XXIt struct {\n\tID string `json:\"id\"`\n}\n\ntype XxIt struct {\n\tID string `json:\"id\"`\n}\n\ntype AsdfIt struct {\n\tID string `json:\"id\"`\n}\n\ntype IIt struct {\n\tID string `json:\"id\"`\n}\n\ntype EnumTest string\n\nconst (\n\tEnumTestOk EnumTest = \"OK\"\n\tEnumTestNg EnumTest = \"NG\"\n)\n\nvar AllEnumTest = []EnumTest{\n\tEnumTestOk,\n\tEnumTestNg,\n}\n\nfunc (e EnumTest) IsValid() bool {\n\tswitch e {\n\tcase EnumTestOk, EnumTestNg:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e EnumTest) String() string {\n\treturn string(e)\n}\n\nfunc (e *EnumTest) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = EnumTest(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid EnumTest\", str)\n\t}\n\treturn nil\n}\n\nfunc (e EnumTest) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *EnumTest) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e EnumTest) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n\ntype Status string\n\nconst (\n\tStatusOk    Status = \"OK\"\n\tStatusError Status = \"ERROR\"\n)\n\nvar AllStatus = []Status{\n\tStatusOk,\n\tStatusError,\n}\n\nfunc (e Status) IsValid() bool {\n\tswitch e {\n\tcase StatusOk, StatusError:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e Status) String() string {\n\treturn string(e)\n}\n\nfunc (e *Status) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = Status(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid Status\", str)\n\t}\n\treturn nil\n}\n\nfunc (e Status) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *Status) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e Status) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/models.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"io\"\n)\n\ntype ForcedResolver struct {\n\tField Circle\n}\n\ntype ModelMethods struct{}\n\nfunc (m ModelMethods) NoContext() bool {\n\treturn true\n}\n\nfunc (m ModelMethods) WithContext(_ context.Context) bool {\n\treturn true\n}\n\ntype Errors struct{}\n\ntype Error struct {\n\tID string\n}\n\nfunc (Error) ErrorOnRequiredField() (string, error) {\n\treturn \"\", errors.New(\"boom\")\n}\n\nfunc (Error) ErrorOnNonRequiredField() (string, error) {\n\treturn \"\", errors.New(\"boom\")\n}\n\nfunc (Error) NilOnRequiredField() *string {\n\treturn nil\n}\n\ntype EmbeddedPointerModel struct {\n\t*EmbeddedPointer\n\tID string\n}\n\ntype EmbeddedPointer struct {\n\tTitle string\n}\n\ntype MarshalPanic string\n\nfunc (m *MarshalPanic) UnmarshalGQL(v any) error {\n\tpanic(\"BOOM\")\n}\n\nfunc (m MarshalPanic) MarshalGQL(w io.Writer) {\n\tpanic(\"BOOM\")\n}\n\ntype Panics struct{}\n\nfunc (p *Panics) FieldFuncMarshal(ctx context.Context, u []MarshalPanic) []MarshalPanic {\n\treturn []MarshalPanic{MarshalPanic(\"aa\"), MarshalPanic(\"bb\")}\n}\n\ntype Autobind struct {\n\tInt   int\n\tInt32 int32\n\tInt64 int64\n\n\tIdStr string\n\tIdInt int\n}\n\ntype OverlappingFields struct {\n\tFoo    int\n\tNewFoo int\n}\n\ntype ObjectDirectivesWithCustomGoModel struct {\n\tNullableText string // not *string, but schema is `String @toNull` type.\n}\n\ntype FallbackToStringEncoding string\n\nconst (\n\tFallbackToStringEncodingA FallbackToStringEncoding = \"A\"\n\tFallbackToStringEncodingB FallbackToStringEncoding = \"B\"\n\tFallbackToStringEncodingC FallbackToStringEncoding = \"C\"\n)\n\ntype Primitive int\n\nfunc (p Primitive) Squared() int {\n\treturn int(p) * int(p)\n}\n\ntype PrimitiveString string\n\nfunc (s PrimitiveString) Doubled() string {\n\treturn string(s) + string(s)\n}\n\ntype Bytes []byte\n"
  },
  {
    "path": "codegen/testserver/followschema/mutation_with_custom_scalar.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalInputNestedInput(ctx context.Context, obj any) (NestedInput, error) {\n\tvar it NestedInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"field\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"field\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"field\"))\n\t\t\tdata, err := ec.unmarshalNEmail2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐEmail(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Field = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputSpecialInput(ctx context.Context, obj any) (SpecialInput, error) {\n\tvar it SpecialInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"nesting\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"nesting\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"nesting\"))\n\t\t\tdata, err := ec.unmarshalNNestedInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐNestedInput(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Nesting = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNEmail2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐEmail(ctx context.Context, v any) (Email, error) {\n\tvar res Email\n\terr := res.UnmarshalGQL(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNEmail2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐEmail(ctx context.Context, sel ast.SelectionSet, v Email) graphql.Marshaler {\n\treturn v\n}\n\nfunc (ec *executionContext) unmarshalNNestedInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐNestedInput(ctx context.Context, v any) (*NestedInput, error) {\n\tres, err := ec.unmarshalInputNestedInput(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalNSpecialInput2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐSpecialInput(ctx context.Context, v any) (SpecialInput, error) {\n\tres, err := ec.unmarshalInputSpecialInput(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/followschema/mutation_with_custom_scalar.go",
    "content": "package followschema\n\nimport (\n\t\"encoding/json\"\n\t\"errors\"\n\t\"io\"\n\t\"regexp\"\n)\n\nvar re = regexp.MustCompile(\n\t\"^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$\",\n)\n\ntype Email string\n\nfunc (value *Email) UnmarshalGQL(v any) error {\n\tinput, ok := v.(string)\n\tif !ok {\n\t\treturn errors.New(\"email expects a string value\")\n\t}\n\tif !re.MatchString(input) {\n\t\treturn errors.New(\"invalid email format\")\n\t}\n\t*value = Email(input)\n\treturn nil\n}\n\nfunc (value Email) MarshalGQL(w io.Writer) {\n\toutput, _ := json.Marshal(string(value))\n\tw.Write(output)\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/mutation_with_custom_scalar.graphql",
    "content": "extend type Mutation {\n    updateSomething(input: SpecialInput!): String!\n}\n\nscalar Email\n\ninput SpecialInput {\n    nesting: NestedInput!\n}\n\ninput NestedInput {\n    field: Email!\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/mutation_with_custom_scalar_test.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestErrorInsideMutationArgument(t *testing.T) {\n\tresolvers := &Stub{}\n\tresolvers.MutationResolver.UpdateSomething = func(_ context.Context, input SpecialInput) (s string, err error) {\n\t\treturn \"Hello world\", nil\n\t}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"mutation with correct input doesn't return error\", func(t *testing.T) {\n\t\tvar resp map[string]any\n\t\tinput := map[string]any{\n\t\t\t\"nesting\": map[string]any{\n\t\t\t\t\"field\": \"email@example.com\",\n\t\t\t},\n\t\t}\n\t\terr := c.Post(\n\t\t\t`mutation TestMutation($input: SpecialInput!) { updateSomething(input: $input) }`,\n\t\t\t&resp,\n\t\t\tclient.Var(\"input\", input),\n\t\t)\n\t\trequire.Equal(t, \"Hello world\", resp[\"updateSomething\"])\n\t\trequire.NoError(t, err)\n\t})\n\n\tt.Run(\"mutation with incorrect input returns full path\", func(t *testing.T) {\n\t\tvar resp map[string]any\n\t\tinput := map[string]any{\n\t\t\t\"nesting\": map[string]any{\n\t\t\t\t\"field\": \"not-an-email\",\n\t\t\t},\n\t\t}\n\t\terr := c.Post(\n\t\t\t`mutation TestMutation($input: SpecialInput!) { updateSomething(input: $input) }`,\n\t\t\t&resp,\n\t\t\tclient.Var(\"input\", input),\n\t\t)\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t`[{\"message\":\"invalid email format\",\"path\":[\"updateSomething\",\"input\",\"nesting\",\"field\"]}]`,\n\t\t)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/nulls.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\ntype ErrorsResolver interface {\n\tA(ctx context.Context, obj *Errors) (*Error, error)\n\tB(ctx context.Context, obj *Errors) (*Error, error)\n\tC(ctx context.Context, obj *Errors) (*Error, error)\n\tD(ctx context.Context, obj *Errors) (*Error, error)\n\tE(ctx context.Context, obj *Errors) (*Error, error)\n}\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Error_id(ctx context.Context, field graphql.CollectedField, obj *Error) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Error_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Error_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Error\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Error_errorOnNonRequiredField(ctx context.Context, field graphql.CollectedField, obj *Error) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Error_errorOnNonRequiredField,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ErrorOnNonRequiredField()\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2string,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Error_errorOnNonRequiredField(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Error\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Error_errorOnRequiredField(ctx context.Context, field graphql.CollectedField, obj *Error) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Error_errorOnRequiredField,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ErrorOnRequiredField()\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Error_errorOnRequiredField(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Error\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Error_nilOnRequiredField(ctx context.Context, field graphql.CollectedField, obj *Error) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Error_nilOnRequiredField,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.NilOnRequiredField(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2ᚖstring,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Error_nilOnRequiredField(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Error\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Errors_a(ctx context.Context, field graphql.CollectedField, obj *Errors) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Errors_a,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Errors().A(ctx, obj)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNError2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐError,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Errors_a(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Errors\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Error_id(ctx, field)\n\t\t\tcase \"errorOnNonRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnNonRequiredField(ctx, field)\n\t\t\tcase \"errorOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnRequiredField(ctx, field)\n\t\t\tcase \"nilOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_nilOnRequiredField(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Error\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Errors_b(ctx context.Context, field graphql.CollectedField, obj *Errors) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Errors_b,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Errors().B(ctx, obj)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNError2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐError,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Errors_b(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Errors\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Error_id(ctx, field)\n\t\t\tcase \"errorOnNonRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnNonRequiredField(ctx, field)\n\t\t\tcase \"errorOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnRequiredField(ctx, field)\n\t\t\tcase \"nilOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_nilOnRequiredField(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Error\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Errors_c(ctx context.Context, field graphql.CollectedField, obj *Errors) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Errors_c,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Errors().C(ctx, obj)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNError2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐError,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Errors_c(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Errors\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Error_id(ctx, field)\n\t\t\tcase \"errorOnNonRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnNonRequiredField(ctx, field)\n\t\t\tcase \"errorOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnRequiredField(ctx, field)\n\t\t\tcase \"nilOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_nilOnRequiredField(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Error\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Errors_d(ctx context.Context, field graphql.CollectedField, obj *Errors) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Errors_d,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Errors().D(ctx, obj)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNError2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐError,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Errors_d(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Errors\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Error_id(ctx, field)\n\t\t\tcase \"errorOnNonRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnNonRequiredField(ctx, field)\n\t\t\tcase \"errorOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnRequiredField(ctx, field)\n\t\t\tcase \"nilOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_nilOnRequiredField(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Error\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Errors_e(ctx context.Context, field graphql.CollectedField, obj *Errors) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Errors_e,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Errors().E(ctx, obj)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNError2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐError,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Errors_e(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Errors\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Error_id(ctx, field)\n\t\t\tcase \"errorOnNonRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnNonRequiredField(ctx, field)\n\t\t\tcase \"errorOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnRequiredField(ctx, field)\n\t\t\tcase \"nilOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_nilOnRequiredField(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Error\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar errorImplementors = []string{\"Error\"}\n\nfunc (ec *executionContext) _Error(ctx context.Context, sel ast.SelectionSet, obj *Error) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, errorImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Error\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._Error_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"errorOnNonRequiredField\":\n\t\t\tout.Values[i] = ec._Error_errorOnNonRequiredField(ctx, field, obj)\n\t\tcase \"errorOnRequiredField\":\n\t\t\tout.Values[i] = ec._Error_errorOnRequiredField(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"nilOnRequiredField\":\n\t\t\tout.Values[i] = ec._Error_nilOnRequiredField(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar errorsImplementors = []string{\"Errors\"}\n\nfunc (ec *executionContext) _Errors(ctx context.Context, sel ast.SelectionSet, obj *Errors) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, errorsImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Errors\")\n\t\tcase \"a\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Errors_a(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"b\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Errors_b(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"c\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Errors_c(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"d\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Errors_d(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"e\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Errors_e(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) marshalNError2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐError(ctx context.Context, sel ast.SelectionSet, v Error) graphql.Marshaler {\n\treturn ec._Error(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNError2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐError(ctx context.Context, sel ast.SelectionSet, v *Error) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Error(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOError2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐError(ctx context.Context, sel ast.SelectionSet, v []*Error) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalOError2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐError(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOError2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐErrorᚄ(ctx context.Context, sel ast.SelectionSet, v []*Error) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNError2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐError(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOError2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐError(ctx context.Context, sel ast.SelectionSet, v *Error) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Error(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOErrors2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐErrors(ctx context.Context, sel ast.SelectionSet, v *Errors) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Errors(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/followschema/nulls.graphql",
    "content": "extend type Query {\n    errorBubble: Error\n    errorBubbleList: [Error!]\n    errorList: [Error]\n    errors: Errors\n    valid: String!\n    invalid: String!\n}\n\nextend type Subscription {\n    errorRequired: Error!\n}\n\ntype Errors {\n    a: Error!\n    b: Error!\n    c: Error!\n    d: Error!\n    e: Error!\n}\n\ntype Error {\n    id: ID!\n    errorOnNonRequiredField: String\n    errorOnRequiredField: String!\n    nilOnRequiredField: String!\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/nulls_test.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestNullBubbling(t *testing.T) {\n\tresolvers := &Stub{}\n\tresolvers.QueryResolver.Valid = func(ctx context.Context) (s string, e error) {\n\t\treturn \"Ok\", nil\n\t}\n\tresolvers.QueryResolver.Invalid = func(ctx context.Context) (s string, e error) {\n\t\treturn \"Ok\", errors.New(\"ERROR\")\n\t}\n\tresolvers.QueryResolver.Errors = func(ctx context.Context) (errors *Errors, e error) {\n\t\treturn &Errors{}, nil\n\t}\n\tresolvers.QueryResolver.ErrorBubble = func(ctx context.Context) (i *Error, e error) {\n\t\treturn &Error{ID: \"E1234\"}, nil\n\t}\n\tresolvers.QueryResolver.ErrorBubbleList = func(ctx context.Context) (i []*Error, e error) {\n\t\treturn []*Error{{ID: \"1\"}, nil, nil}, nil\n\t}\n\tresolvers.QueryResolver.ErrorList = func(ctx context.Context) (i []*Error, e error) {\n\t\treturn []*Error{nil}, nil\n\t}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"when function errors on non required field\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tValid       string\n\t\t\tErrorBubble *struct {\n\t\t\t\tId                      string\n\t\t\t\tErrorOnNonRequiredField *string\n\t\t\t}\n\t\t}\n\t\terr := c.Post(`query { valid, errorBubble { id, errorOnNonRequiredField } }`, &resp)\n\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t`[{\"message\":\"boom\",\"path\":[\"errorBubble\",\"errorOnNonRequiredField\"]}]`,\n\t\t)\n\t\trequire.Equal(t, \"E1234\", resp.ErrorBubble.Id)\n\t\trequire.Nil(t, resp.ErrorBubble.ErrorOnNonRequiredField)\n\t\trequire.Equal(t, \"Ok\", resp.Valid)\n\t})\n\n\tt.Run(\"when function errors\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tValid       string\n\t\t\tErrorBubble *struct {\n\t\t\t\tNilOnRequiredField string\n\t\t\t}\n\t\t}\n\t\terr := c.Post(`query { valid, errorBubble { id, errorOnRequiredField } }`, &resp)\n\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t`[{\"message\":\"boom\",\"path\":[\"errorBubble\",\"errorOnRequiredField\"]}]`,\n\t\t)\n\t\trequire.Nil(t, resp.ErrorBubble)\n\t\trequire.Equal(t, \"Ok\", resp.Valid)\n\t})\n\n\tt.Run(\"when user returns null on required field\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tValid       string\n\t\t\tErrorBubble *struct {\n\t\t\t\tNilOnRequiredField string\n\t\t\t}\n\t\t}\n\t\terr := c.Post(`query { valid, errorBubble { id, nilOnRequiredField } }`, &resp)\n\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t`[{\"message\":\"the requested element is null which the schema does not allow\",\"path\":[\"errorBubble\",\"nilOnRequiredField\"]}]`,\n\t\t)\n\t\trequire.Nil(t, resp.ErrorBubble)\n\t\trequire.Equal(t, \"Ok\", resp.Valid)\n\t})\n\n\tt.Run(\"when list element is null\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tValid     string\n\t\t\tErrorList []*struct{}\n\t\t}\n\t\terr := c.Post(`query { valid, errorList { id } }`, &resp)\n\n\t\trequire.NoError(t, err)\n\t\trequire.Len(t, resp.ErrorList, 1)\n\t\trequire.Nil(t, resp.ErrorList[0])\n\t\trequire.Equal(t, \"Ok\", resp.Valid)\n\t})\n\n\tt.Run(\"when non-null list element is null\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tValid           string\n\t\t\tErrorBubbleList []*struct{}\n\t\t}\n\t\terr := c.Post(`query { valid, errorBubbleList { id } }`, &resp)\n\n\t\trequire.Contains(\n\t\t\tt,\n\t\t\terr.Error(),\n\t\t\t`{\"message\":\"the requested element is null which the schema does not allow\",\"path\":[\"errorBubbleList\",2]}`,\n\t\t)\n\t\trequire.Contains(\n\t\t\tt,\n\t\t\terr.Error(),\n\t\t\t`{\"message\":\"the requested element is null which the schema does not allow\",\"path\":[\"errorBubbleList\",1]}`,\n\t\t)\n\t\trequire.Nil(t, resp.ErrorBubbleList)\n\t\trequire.Equal(t, \"Ok\", resp.Valid)\n\t})\n\n\tt.Run(\"null args\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tNullableArg *string\n\t\t}\n\t\tresolvers.QueryResolver.NullableArg = func(ctx context.Context, arg *int) (i *string, e error) {\n\t\t\tv := \"Ok\"\n\t\t\treturn &v, nil\n\t\t}\n\n\t\terr := c.Post(`query { nullableArg(arg: null) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"Ok\", *resp.NullableArg)\n\t})\n\n\tt.Run(\"concurrent null detection\", func(t *testing.T) {\n\t\tvar resp any\n\t\tresolvers.ErrorsResolver.A = func(ctx context.Context, obj *Errors) (i *Error, e error) { return nil, nil }\n\t\tresolvers.ErrorsResolver.B = func(ctx context.Context, obj *Errors) (i *Error, e error) { return nil, nil }\n\t\tresolvers.ErrorsResolver.C = func(ctx context.Context, obj *Errors) (i *Error, e error) { return nil, nil }\n\t\tresolvers.ErrorsResolver.D = func(ctx context.Context, obj *Errors) (i *Error, e error) { return nil, nil }\n\t\tresolvers.ErrorsResolver.E = func(ctx context.Context, obj *Errors) (i *Error, e error) { return nil, nil }\n\n\t\terr := c.Post(`{ errors {\n\t\t\ta { id },\n\t\t\tb { id },\n\t\t\tc { id },\n\t\t\td { id },\n\t\t\te { id },\n\t\t} }`, &resp)\n\n\t\trequire.Error(t, err)\n\t\trequire.Contains(\n\t\t\tt,\n\t\t\terr.Error(),\n\t\t\t\"the requested element is null which the schema does not allow\",\n\t\t)\n\t})\n\n\tt.Run(\"when non-nullable field returns content while error occurred\", func(t *testing.T) {\n\t\tvar resp any\n\t\terr := c.Post(`query { invalid }`, &resp)\n\t\trequire.Nil(t, resp)\n\t\trequire.Error(t, err)\n\t\trequire.Contains(t, err.Error(), `{\"message\":\"ERROR\",\"path\":[\"invalid\"]}`)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/otherpkg/model.go",
    "content": "package otherpkg\n\ntype (\n\tScalar string\n\tMap    map[string]string\n\tSlice  []string\n)\n\ntype Struct struct {\n\tName Scalar\n\tDesc *Scalar\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/panics.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\ntype PanicsResolver interface {\n\tFieldScalarMarshal(ctx context.Context, obj *Panics) ([]MarshalPanic, error)\n\n\tArgUnmarshal(ctx context.Context, obj *Panics, u []MarshalPanic) (bool, error)\n}\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_Panics_argUnmarshal_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"u\", ec.unmarshalNMarshalPanic2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐMarshalPanicᚄ)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"u\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Panics_fieldFuncMarshal_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"u\", ec.unmarshalNMarshalPanic2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐMarshalPanicᚄ)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"u\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Panics_fieldScalarMarshal(ctx context.Context, field graphql.CollectedField, obj *Panics) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Panics_fieldScalarMarshal,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Panics().FieldScalarMarshal(ctx, obj)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNMarshalPanic2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐMarshalPanicᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Panics_fieldScalarMarshal(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Panics\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type MarshalPanic does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Panics_fieldFuncMarshal(ctx context.Context, field graphql.CollectedField, obj *Panics) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Panics_fieldFuncMarshal,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.FieldFuncMarshal(ctx, fc.Args[\"u\"].([]MarshalPanic)), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNMarshalPanic2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐMarshalPanicᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Panics_fieldFuncMarshal(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Panics\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type MarshalPanic does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Panics_fieldFuncMarshal_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Panics_argUnmarshal(ctx context.Context, field graphql.CollectedField, obj *Panics) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Panics_argUnmarshal,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Panics().ArgUnmarshal(ctx, obj, fc.Args[\"u\"].([]MarshalPanic))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Panics_argUnmarshal(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Panics\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Panics_argUnmarshal_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar panicsImplementors = []string{\"Panics\"}\n\nfunc (ec *executionContext) _Panics(ctx context.Context, sel ast.SelectionSet, obj *Panics) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, panicsImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Panics\")\n\t\tcase \"fieldScalarMarshal\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Panics_fieldScalarMarshal(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"fieldFuncMarshal\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Panics_fieldFuncMarshal(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"argUnmarshal\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Panics_argUnmarshal(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNMarshalPanic2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐMarshalPanic(ctx context.Context, v any) (MarshalPanic, error) {\n\tvar res MarshalPanic\n\terr := res.UnmarshalGQL(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNMarshalPanic2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐMarshalPanic(ctx context.Context, sel ast.SelectionSet, v MarshalPanic) graphql.Marshaler {\n\treturn v\n}\n\nfunc (ec *executionContext) unmarshalNMarshalPanic2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐMarshalPanicᚄ(ctx context.Context, v any) ([]MarshalPanic, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]MarshalPanic, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNMarshalPanic2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐMarshalPanic(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalNMarshalPanic2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐMarshalPanicᚄ(ctx context.Context, sel ast.SelectionSet, v []MarshalPanic) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNMarshalPanic2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐMarshalPanic(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOPanics2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPanics(ctx context.Context, sel ast.SelectionSet, v *Panics) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Panics(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/followschema/panics.graphql",
    "content": "extend type Query {\n    panics: Panics\n}\n\ntype Panics {\n    fieldScalarMarshal: [MarshalPanic!]!\n    fieldFuncMarshal(u: [MarshalPanic!]!): [MarshalPanic!]!\n    argUnmarshal(u: [MarshalPanic!]!): Boolean!\n\n}\n\nscalar MarshalPanic\n"
  },
  {
    "path": "codegen/testserver/followschema/panics_test.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestPanics(t *testing.T) {\n\tresolvers := &Stub{}\n\tresolvers.QueryResolver.Panics = func(ctx context.Context) (panics *Panics, e error) {\n\t\treturn &Panics{}, nil\n\t}\n\tresolvers.PanicsResolver.ArgUnmarshal = func(ctx context.Context, obj *Panics, u []MarshalPanic) (b bool, e error) {\n\t\treturn true, nil\n\t}\n\tresolvers.PanicsResolver.FieldScalarMarshal = func(ctx context.Context, obj *Panics) (marshalPanic []MarshalPanic, e error) {\n\t\treturn []MarshalPanic{MarshalPanic(\"aa\"), MarshalPanic(\"bb\")}, nil\n\t}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tsrv.SetRecoverFunc(func(ctx context.Context, err any) (userMessage error) {\n\t\treturn fmt.Errorf(\"panic: %v\", err)\n\t})\n\n\tsrv.SetErrorPresenter(func(ctx context.Context, err error) *gqlerror.Error {\n\t\treturn &gqlerror.Error{\n\t\t\tMessage: \"presented: \" + err.Error(),\n\t\t\tPath:    graphql.GetPath(ctx),\n\t\t}\n\t})\n\n\tc := client.New(srv)\n\n\tt.Run(\"panics in marshallers will not kill server\", func(t *testing.T) {\n\t\tvar resp any\n\t\terr := c.Post(`query { panics { fieldScalarMarshal } }`, &resp)\n\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t\"http 422: {\\\"errors\\\":[{\\\"message\\\":\\\"presented: panic: BOOM\\\"}],\\\"data\\\":null}\",\n\t\t)\n\t})\n\n\tt.Run(\"panics in unmarshalers will not kill server\", func(t *testing.T) {\n\t\tvar resp any\n\t\terr := c.Post(`query { panics { argUnmarshal(u: [\"aa\", \"bb\"]) } }`, &resp)\n\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t\"[{\\\"message\\\":\\\"presented: input: panics.argUnmarshal panic: BOOM\\\",\\\"path\\\":[\\\"panics\\\",\\\"argUnmarshal\\\"]}]\",\n\t\t)\n\t})\n\n\tt.Run(\"panics in funcs unmarshal return errors\", func(t *testing.T) {\n\t\tvar resp any\n\t\terr := c.Post(`query { panics { fieldFuncMarshal(u: [\"aa\", \"bb\"]) } }`, &resp)\n\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t\"[{\\\"message\\\":\\\"presented: input: panics.fieldFuncMarshal panic: BOOM\\\",\\\"path\\\":[\\\"panics\\\",\\\"fieldFuncMarshal\\\"]}]\",\n\t\t)\n\t})\n\n\tt.Run(\"panics in funcs marshal return errors\", func(t *testing.T) {\n\t\tvar resp any\n\t\terr := c.Post(`query { panics { fieldFuncMarshal(u: []) } }`, &resp)\n\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t\"http 422: {\\\"errors\\\":[{\\\"message\\\":\\\"presented: panic: BOOM\\\"}],\\\"data\\\":null}\",\n\t\t)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/prelude.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_isRepeatable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsRepeatable, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_locations,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Locations, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalN__DirectiveLocation2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_defaultValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DefaultValue, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_types,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Types(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_queryType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.QueryType(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_mutationType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.MutationType(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_subscriptionType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SubscriptionType(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_directives,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Directives(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_kind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Kind(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalN__TypeKind2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_specifiedByURL,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SpecifiedByURL(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_fields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_interfaces,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Interfaces(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_possibleTypes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PossibleTypes(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_enumValues,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_inputFields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.InputFields(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_ofType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.OfType(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_isOneOf,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsOneOf(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOBoolean2bool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNFloat2float64(ctx context.Context, v any) (float64, error) {\n\tres, err := graphql.UnmarshalFloatContext(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNFloat2float64(ctx context.Context, sel ast.SelectionSet, v float64) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalFloatContext(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn graphql.WrapContextMarshaler(ctx, res)\n}\n\nfunc (ec *executionContext) unmarshalNID2int(ctx context.Context, v any) (int, error) {\n\tres, err := graphql.UnmarshalIntID(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNID2int(ctx context.Context, sel ast.SelectionSet, v int) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalIntID(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNID2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalID(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNID2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalID(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNInt2int(ctx context.Context, v any) (int, error) {\n\tres, err := graphql.UnmarshalInt(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNInt2int(ctx context.Context, sel ast.SelectionSet, v int) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalInt(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNInt2int32(ctx context.Context, v any) (int32, error) {\n\tres, err := graphql.UnmarshalInt32(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNInt2int32(ctx context.Context, sel ast.SelectionSet, v int32) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalInt32(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNInt2int64(ctx context.Context, v any) (int64, error) {\n\tres, err := graphql.UnmarshalInt64(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNInt2int64(ctx context.Context, sel ast.SelectionSet, v int64) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalInt64(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNString2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNString2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalNString2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNString2string(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalNString2ᚕᚖstring(ctx context.Context, v any) ([]*string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]*string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalOString2ᚖstring(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalNString2ᚕᚖstring(ctx context.Context, sel ast.SelectionSet, v []*string) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalOString2ᚖstring(ctx, sel, v[i])\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalNString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\tres := graphql.MarshalString(*v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOFloat2float64(ctx context.Context, v any) (float64, error) {\n\tres, err := graphql.UnmarshalFloatContext(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOFloat2float64(ctx context.Context, sel ast.SelectionSet, v float64) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalFloatContext(v)\n\treturn graphql.WrapContextMarshaler(ctx, res)\n}\n\nfunc (ec *executionContext) unmarshalOFloat2ᚖfloat64(ctx context.Context, v any) (*float64, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalFloatContext(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOFloat2ᚖfloat64(ctx context.Context, sel ast.SelectionSet, v *float64) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\tres := graphql.MarshalFloatContext(*v)\n\treturn graphql.WrapContextMarshaler(ctx, res)\n}\n\nfunc (ec *executionContext) unmarshalOID2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalID(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOID2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalID(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOInt2ᚖint(ctx context.Context, v any) (*int, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalInt(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOInt2ᚖint(ctx context.Context, sel ast.SelectionSet, v *int) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalInt(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNString2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalOString2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNString2string(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚕᚖstring(ctx context.Context, v any) ([]*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]*string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalOString2ᚖstring(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalOString2ᚕᚖstring(ctx context.Context, sel ast.SelectionSet, v []*string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalOString2ᚖstring(ctx, sel, v[i])\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖᚕstringᚄ(ctx context.Context, v any) (*[]string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v *[]string) graphql.Marshaler {\n\treturn ec.marshalOString2ᚕstringᚄ(ctx, sel, *v)\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/followschema/primitive_objects.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\ntype PrimitiveResolver interface {\n\tValue(ctx context.Context, obj *Primitive) (int, error)\n}\ntype PrimitiveStringResolver interface {\n\tValue(ctx context.Context, obj *PrimitiveString) (string, error)\n\n\tLen(ctx context.Context, obj *PrimitiveString) (int, error)\n}\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Primitive_value(ctx context.Context, field graphql.CollectedField, obj *Primitive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Primitive_value,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Primitive().Value(ctx, obj)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Primitive_value(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Primitive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Primitive_squared(ctx context.Context, field graphql.CollectedField, obj *Primitive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Primitive_squared,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Squared(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Primitive_squared(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Primitive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PrimitiveString_value(ctx context.Context, field graphql.CollectedField, obj *PrimitiveString) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PrimitiveString_value,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.PrimitiveString().Value(ctx, obj)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PrimitiveString_value(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PrimitiveString\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PrimitiveString_doubled(ctx context.Context, field graphql.CollectedField, obj *PrimitiveString) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PrimitiveString_doubled,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Doubled(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PrimitiveString_doubled(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PrimitiveString\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PrimitiveString_len(ctx context.Context, field graphql.CollectedField, obj *PrimitiveString) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PrimitiveString_len,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.PrimitiveString().Len(ctx, obj)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PrimitiveString_len(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PrimitiveString\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar primitiveImplementors = []string{\"Primitive\"}\n\nfunc (ec *executionContext) _Primitive(ctx context.Context, sel ast.SelectionSet, obj *Primitive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, primitiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Primitive\")\n\t\tcase \"value\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Primitive_value(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"squared\":\n\t\t\tout.Values[i] = ec._Primitive_squared(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar primitiveStringImplementors = []string{\"PrimitiveString\"}\n\nfunc (ec *executionContext) _PrimitiveString(ctx context.Context, sel ast.SelectionSet, obj *PrimitiveString) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, primitiveStringImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"PrimitiveString\")\n\t\tcase \"value\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._PrimitiveString_value(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"doubled\":\n\t\t\tout.Values[i] = ec._PrimitiveString_doubled(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"len\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._PrimitiveString_len(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) marshalNPrimitive2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPrimitive(ctx context.Context, sel ast.SelectionSet, v Primitive) graphql.Marshaler {\n\treturn ec._Primitive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNPrimitive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPrimitiveᚄ(ctx context.Context, sel ast.SelectionSet, v []Primitive) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNPrimitive2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPrimitive(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalNPrimitiveString2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPrimitiveString(ctx context.Context, sel ast.SelectionSet, v PrimitiveString) graphql.Marshaler {\n\treturn ec._PrimitiveString(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNPrimitiveString2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPrimitiveStringᚄ(ctx context.Context, sel ast.SelectionSet, v []PrimitiveString) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNPrimitiveString2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPrimitiveString(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/followschema/primitive_objects.graphql",
    "content": "extend type Query {\n    primitiveObject: [Primitive!]!\n    primitiveStringObject: [PrimitiveString!]!\n}\n\ntype Primitive {\n    value: Int!\n    squared: Int!\n}\n\ntype PrimitiveString {\n    value: String!\n    doubled: String!\n    len: Int!\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/primitive_objects_test.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestPrimitiveObjects(t *testing.T) {\n\tresolvers := &Stub{}\n\tresolvers.QueryResolver.PrimitiveObject = func(ctx context.Context) (out []Primitive, e error) {\n\t\treturn []Primitive{2, 4}, nil\n\t}\n\n\tresolvers.PrimitiveResolver.Value = func(ctx context.Context, obj *Primitive) (i int, e error) {\n\t\treturn int(*obj), nil\n\t}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"can fetch value\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tPrimitiveObject []struct {\n\t\t\t\tValue   int\n\t\t\t\tSquared int\n\t\t\t}\n\t\t}\n\t\tc.MustPost(`query { primitiveObject { value, squared } }`, &resp)\n\n\t\tassert.Equal(t, 2, resp.PrimitiveObject[0].Value)\n\t\tassert.Equal(t, 4, resp.PrimitiveObject[0].Squared)\n\t\tassert.Equal(t, 4, resp.PrimitiveObject[1].Value)\n\t\tassert.Equal(t, 16, resp.PrimitiveObject[1].Squared)\n\t})\n}\n\nfunc TestPrimitiveStringObjects(t *testing.T) {\n\tresolvers := &Stub{}\n\tresolvers.QueryResolver.PrimitiveStringObject = func(ctx context.Context) (out []PrimitiveString, e error) {\n\t\treturn []PrimitiveString{\"hello\", \"world\"}, nil\n\t}\n\n\tresolvers.PrimitiveStringResolver.Value = func(ctx context.Context, obj *PrimitiveString) (i string, e error) {\n\t\treturn string(*obj), nil\n\t}\n\n\tresolvers.PrimitiveStringResolver.Len = func(ctx context.Context, obj *PrimitiveString) (i int, e error) {\n\t\treturn len(string(*obj)), nil\n\t}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"can fetch value\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tPrimitiveStringObject []struct {\n\t\t\t\tValue   string\n\t\t\t\tDoubled string\n\t\t\t\tLen     int\n\t\t\t}\n\t\t}\n\t\tc.MustPost(`query { primitiveStringObject { value, doubled, len } }`, &resp)\n\n\t\tassert.Equal(t, \"hello\", resp.PrimitiveStringObject[0].Value)\n\t\tassert.Equal(t, \"hellohello\", resp.PrimitiveStringObject[0].Doubled)\n\t\tassert.Equal(t, 5, resp.PrimitiveStringObject[0].Len)\n\t\tassert.Equal(t, \"world\", resp.PrimitiveStringObject[1].Value)\n\t\tassert.Equal(t, \"worldworld\", resp.PrimitiveStringObject[1].Doubled)\n\t\tassert.Equal(t, 5, resp.PrimitiveStringObject[1].Len)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/ptr_to_any.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _PtrToAnyContainer_ptrToAny(ctx context.Context, field graphql.CollectedField, obj *PtrToAnyContainer) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PtrToAnyContainer_ptrToAny,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PtrToAny, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOAny2ᚖinterface,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PtrToAnyContainer_ptrToAny(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PtrToAnyContainer\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Any does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PtrToAnyContainer_binding(ctx context.Context, field graphql.CollectedField, obj *PtrToAnyContainer) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PtrToAnyContainer_binding,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Binding(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOAny2ᚖinterface,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PtrToAnyContainer_binding(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PtrToAnyContainer\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Any does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar ptrToAnyContainerImplementors = []string{\"PtrToAnyContainer\"}\n\nfunc (ec *executionContext) _PtrToAnyContainer(ctx context.Context, sel ast.SelectionSet, obj *PtrToAnyContainer) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, ptrToAnyContainerImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"PtrToAnyContainer\")\n\t\tcase \"ptrToAny\":\n\t\t\tout.Values[i] = ec._PtrToAnyContainer_ptrToAny(ctx, field, obj)\n\t\tcase \"binding\":\n\t\t\tout.Values[i] = ec._PtrToAnyContainer_binding(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) marshalNPtrToAnyContainer2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPtrToAnyContainer(ctx context.Context, sel ast.SelectionSet, v PtrToAnyContainer) graphql.Marshaler {\n\treturn ec._PtrToAnyContainer(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNPtrToAnyContainer2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPtrToAnyContainer(ctx context.Context, sel ast.SelectionSet, v *PtrToAnyContainer) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._PtrToAnyContainer(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOAny2interface(ctx context.Context, v any) (any, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalAny(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOAny2interface(ctx context.Context, sel ast.SelectionSet, v any) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalAny(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOAny2ᚖinterface(ctx context.Context, v any) (*any, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalOAny2interface(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOAny2ᚖinterface(ctx context.Context, sel ast.SelectionSet, v *any) graphql.Marshaler {\n\treturn ec.marshalOAny2interface(ctx, sel, *v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/followschema/ptr_to_any.go",
    "content": "package followschema\n\ntype PtrToAnyContainer struct {\n\tPtrToAny *any\n}\n\nfunc (c *PtrToAnyContainer) Binding() *any {\n\treturn c.PtrToAny\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/ptr_to_any.graphql",
    "content": "scalar Any\n\ntype PtrToAnyContainer {\n    ptrToAny: Any\n    binding: Any\n}\n\nextend type Query {\n    ptrToAnyContainer: PtrToAnyContainer!\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/ptr_to_any_test.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestPtrToAny(t *testing.T) {\n\tresolvers := &Stub{}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tvar a any = `{\"some\":\"thing\"}`\n\tresolvers.QueryResolver.PtrToAnyContainer = func(ctx context.Context) (wrappedStruct *PtrToAnyContainer, e error) {\n\t\tptrToAnyContainer := PtrToAnyContainer{\n\t\t\tPtrToAny: &a,\n\t\t}\n\t\treturn &ptrToAnyContainer, nil\n\t}\n\n\tt.Run(\"binding to pointer to any\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tPtrToAnyContainer struct {\n\t\t\t\tBinding *any\n\t\t\t}\n\t\t}\n\n\t\terr := c.Post(`query { ptrToAnyContainer { binding }}`, &resp)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Equal(t, &a, resp.PtrToAnyContainer.Binding)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/ptr_to_ptr_input.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _PtrToPtrInner_key(ctx context.Context, field graphql.CollectedField, obj *PtrToPtrInner) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PtrToPtrInner_key,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Key, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PtrToPtrInner_key(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PtrToPtrInner\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PtrToPtrInner_value(ctx context.Context, field graphql.CollectedField, obj *PtrToPtrInner) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PtrToPtrInner_value,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Value, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PtrToPtrInner_value(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PtrToPtrInner\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PtrToPtrOuter_name(ctx context.Context, field graphql.CollectedField, obj *PtrToPtrOuter) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PtrToPtrOuter_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PtrToPtrOuter_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PtrToPtrOuter\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PtrToPtrOuter_inner(ctx context.Context, field graphql.CollectedField, obj *PtrToPtrOuter) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PtrToPtrOuter_inner,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Inner, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOPtrToPtrInner2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPtrToPtrInner,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PtrToPtrOuter_inner(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PtrToPtrOuter\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"key\":\n\t\t\t\treturn ec.fieldContext_PtrToPtrInner_key(ctx, field)\n\t\t\tcase \"value\":\n\t\t\t\treturn ec.fieldContext_PtrToPtrInner_value(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type PtrToPtrInner\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PtrToPtrOuter_stupidInner(ctx context.Context, field graphql.CollectedField, obj *PtrToPtrOuter) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PtrToPtrOuter_stupidInner,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.StupidInner, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOPtrToPtrInner2ᚖᚖᚖᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPtrToPtrInner,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PtrToPtrOuter_stupidInner(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PtrToPtrOuter\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"key\":\n\t\t\t\treturn ec.fieldContext_PtrToPtrInner_key(ctx, field)\n\t\t\tcase \"value\":\n\t\t\t\treturn ec.fieldContext_PtrToPtrInner_value(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type PtrToPtrInner\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalInputUpdatePtrToPtrInner(ctx context.Context, obj any) (UpdatePtrToPtrInner, error) {\n\tvar it UpdatePtrToPtrInner\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"key\", \"value\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"key\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"key\"))\n\t\t\tdata, err := ec.unmarshalOString2ᚖstring(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Key = data\n\t\tcase \"value\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"value\"))\n\t\t\tdata, err := ec.unmarshalOString2ᚖstring(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Value = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputUpdatePtrToPtrOuter(ctx context.Context, obj any) (UpdatePtrToPtrOuter, error) {\n\tvar it UpdatePtrToPtrOuter\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"name\", \"inner\", \"stupidInner\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"name\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"name\"))\n\t\t\tdata, err := ec.unmarshalOString2ᚖstring(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Name = data\n\t\tcase \"inner\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"inner\"))\n\t\t\tdata, err := ec.unmarshalOUpdatePtrToPtrInner2ᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐUpdatePtrToPtrInner(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Inner = data\n\t\tcase \"stupidInner\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"stupidInner\"))\n\t\t\tdata, err := ec.unmarshalOUpdatePtrToPtrInner2ᚖᚖᚖᚖᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐUpdatePtrToPtrInner(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.StupidInner = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar ptrToPtrInnerImplementors = []string{\"PtrToPtrInner\"}\n\nfunc (ec *executionContext) _PtrToPtrInner(ctx context.Context, sel ast.SelectionSet, obj *PtrToPtrInner) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, ptrToPtrInnerImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"PtrToPtrInner\")\n\t\tcase \"key\":\n\t\t\tout.Values[i] = ec._PtrToPtrInner_key(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"value\":\n\t\t\tout.Values[i] = ec._PtrToPtrInner_value(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar ptrToPtrOuterImplementors = []string{\"PtrToPtrOuter\"}\n\nfunc (ec *executionContext) _PtrToPtrOuter(ctx context.Context, sel ast.SelectionSet, obj *PtrToPtrOuter) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, ptrToPtrOuterImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"PtrToPtrOuter\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._PtrToPtrOuter_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"inner\":\n\t\t\tout.Values[i] = ec._PtrToPtrOuter_inner(ctx, field, obj)\n\t\tcase \"stupidInner\":\n\t\t\tout.Values[i] = ec._PtrToPtrOuter_stupidInner(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) marshalNPtrToPtrOuter2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPtrToPtrOuter(ctx context.Context, sel ast.SelectionSet, v PtrToPtrOuter) graphql.Marshaler {\n\treturn ec._PtrToPtrOuter(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNPtrToPtrOuter2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPtrToPtrOuter(ctx context.Context, sel ast.SelectionSet, v *PtrToPtrOuter) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._PtrToPtrOuter(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNUpdatePtrToPtrOuter2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐUpdatePtrToPtrOuter(ctx context.Context, v any) (UpdatePtrToPtrOuter, error) {\n\tres, err := ec.unmarshalInputUpdatePtrToPtrOuter(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOPtrToPtrInner2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPtrToPtrInner(ctx context.Context, sel ast.SelectionSet, v *PtrToPtrInner) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._PtrToPtrInner(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOPtrToPtrInner2ᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPtrToPtrInner(ctx context.Context, sel ast.SelectionSet, v **PtrToPtrInner) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.marshalOPtrToPtrInner2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPtrToPtrInner(ctx, sel, *v)\n}\n\nfunc (ec *executionContext) marshalOPtrToPtrInner2ᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPtrToPtrInner(ctx context.Context, sel ast.SelectionSet, v ***PtrToPtrInner) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.marshalOPtrToPtrInner2ᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPtrToPtrInner(ctx, sel, *v)\n}\n\nfunc (ec *executionContext) marshalOPtrToPtrInner2ᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPtrToPtrInner(ctx context.Context, sel ast.SelectionSet, v ****PtrToPtrInner) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.marshalOPtrToPtrInner2ᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPtrToPtrInner(ctx, sel, *v)\n}\n\nfunc (ec *executionContext) marshalOPtrToPtrInner2ᚖᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPtrToPtrInner(ctx context.Context, sel ast.SelectionSet, v *****PtrToPtrInner) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.marshalOPtrToPtrInner2ᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPtrToPtrInner(ctx, sel, *v)\n}\n\nfunc (ec *executionContext) marshalOPtrToPtrInner2ᚖᚖᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPtrToPtrInner(ctx context.Context, sel ast.SelectionSet, v ******PtrToPtrInner) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.marshalOPtrToPtrInner2ᚖᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPtrToPtrInner(ctx, sel, *v)\n}\n\nfunc (ec *executionContext) marshalOPtrToPtrInner2ᚖᚖᚖᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPtrToPtrInner(ctx context.Context, sel ast.SelectionSet, v *******PtrToPtrInner) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.marshalOPtrToPtrInner2ᚖᚖᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPtrToPtrInner(ctx, sel, *v)\n}\n\nfunc (ec *executionContext) unmarshalOUpdatePtrToPtrInner2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐUpdatePtrToPtrInner(ctx context.Context, v any) (*UpdatePtrToPtrInner, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputUpdatePtrToPtrInner(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalOUpdatePtrToPtrInner2ᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐUpdatePtrToPtrInner(ctx context.Context, v any) (**UpdatePtrToPtrInner, error) {\n\tvar pres *UpdatePtrToPtrInner\n\tif v != nil {\n\t\tres, err := ec.unmarshalOUpdatePtrToPtrInner2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐUpdatePtrToPtrInner(ctx, v)\n\t\tif err != nil {\n\t\t\treturn nil, graphql.ErrorOnPath(ctx, err)\n\t\t}\n\t\tpres = res\n\t}\n\treturn &pres, nil\n}\n\nfunc (ec *executionContext) unmarshalOUpdatePtrToPtrInner2ᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐUpdatePtrToPtrInner(ctx context.Context, v any) (***UpdatePtrToPtrInner, error) {\n\tvar pres **UpdatePtrToPtrInner\n\tif v != nil {\n\t\tres, err := ec.unmarshalOUpdatePtrToPtrInner2ᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐUpdatePtrToPtrInner(ctx, v)\n\t\tif err != nil {\n\t\t\treturn nil, graphql.ErrorOnPath(ctx, err)\n\t\t}\n\t\tpres = res\n\t}\n\treturn &pres, nil\n}\n\nfunc (ec *executionContext) unmarshalOUpdatePtrToPtrInner2ᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐUpdatePtrToPtrInner(ctx context.Context, v any) (****UpdatePtrToPtrInner, error) {\n\tvar pres ***UpdatePtrToPtrInner\n\tif v != nil {\n\t\tres, err := ec.unmarshalOUpdatePtrToPtrInner2ᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐUpdatePtrToPtrInner(ctx, v)\n\t\tif err != nil {\n\t\t\treturn nil, graphql.ErrorOnPath(ctx, err)\n\t\t}\n\t\tpres = res\n\t}\n\treturn &pres, nil\n}\n\nfunc (ec *executionContext) unmarshalOUpdatePtrToPtrInner2ᚖᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐUpdatePtrToPtrInner(ctx context.Context, v any) (*****UpdatePtrToPtrInner, error) {\n\tvar pres ****UpdatePtrToPtrInner\n\tif v != nil {\n\t\tres, err := ec.unmarshalOUpdatePtrToPtrInner2ᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐUpdatePtrToPtrInner(ctx, v)\n\t\tif err != nil {\n\t\t\treturn nil, graphql.ErrorOnPath(ctx, err)\n\t\t}\n\t\tpres = res\n\t}\n\treturn &pres, nil\n}\n\nfunc (ec *executionContext) unmarshalOUpdatePtrToPtrInner2ᚖᚖᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐUpdatePtrToPtrInner(ctx context.Context, v any) (******UpdatePtrToPtrInner, error) {\n\tvar pres *****UpdatePtrToPtrInner\n\tif v != nil {\n\t\tres, err := ec.unmarshalOUpdatePtrToPtrInner2ᚖᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐUpdatePtrToPtrInner(ctx, v)\n\t\tif err != nil {\n\t\t\treturn nil, graphql.ErrorOnPath(ctx, err)\n\t\t}\n\t\tpres = res\n\t}\n\treturn &pres, nil\n}\n\nfunc (ec *executionContext) unmarshalOUpdatePtrToPtrInner2ᚖᚖᚖᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐUpdatePtrToPtrInner(ctx context.Context, v any) (*******UpdatePtrToPtrInner, error) {\n\tvar pres ******UpdatePtrToPtrInner\n\tif v != nil {\n\t\tres, err := ec.unmarshalOUpdatePtrToPtrInner2ᚖᚖᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐUpdatePtrToPtrInner(ctx, v)\n\t\tif err != nil {\n\t\t\treturn nil, graphql.ErrorOnPath(ctx, err)\n\t\t}\n\t\tpres = res\n\t}\n\treturn &pres, nil\n}\n\nfunc (ec *executionContext) unmarshalOUpdatePtrToPtrInner2ᚖᚖᚖᚖᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐUpdatePtrToPtrInner(ctx context.Context, v any) (********UpdatePtrToPtrInner, error) {\n\tvar pres *******UpdatePtrToPtrInner\n\tif v != nil {\n\t\tres, err := ec.unmarshalOUpdatePtrToPtrInner2ᚖᚖᚖᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐUpdatePtrToPtrInner(ctx, v)\n\t\tif err != nil {\n\t\t\treturn nil, graphql.ErrorOnPath(ctx, err)\n\t\t}\n\t\tpres = res\n\t}\n\treturn &pres, nil\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/followschema/ptr_to_ptr_input.go",
    "content": "package followschema\n\ntype PtrToPtrOuter struct {\n\tName        string\n\tInner       *PtrToPtrInner\n\tStupidInner *******PtrToPtrInner\n}\n\ntype PtrToPtrInner struct {\n\tKey   string\n\tValue string\n}\n\ntype UpdatePtrToPtrOuter struct {\n\tName        *string\n\tInner       **UpdatePtrToPtrInner\n\tStupidInner ********UpdatePtrToPtrInner\n}\n\ntype UpdatePtrToPtrInner struct {\n\tKey   *string\n\tValue *string\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/ptr_to_ptr_input.graphql",
    "content": "type PtrToPtrOuter {\n    name: String!\n    inner: PtrToPtrInner\n    stupidInner: PtrToPtrInner\n}\n\ntype PtrToPtrInner {\n    key: String!\n    value: String!\n}\n\ninput UpdatePtrToPtrOuter {\n    name: String\n    inner: UpdatePtrToPtrInner\n    stupidInner: UpdatePtrToPtrInner\n}\n\ninput UpdatePtrToPtrInner {\n    key: String\n    value: String\n}\n\nextend type Mutation {\n    updatePtrToPtr(input: UpdatePtrToPtrOuter!): PtrToPtrOuter!\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/ptr_to_ptr_input_test.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\ntype UpdatePtrToPtrResults struct {\n\tUpdatedPtrToPtr PtrToPtrOuter `json:\"updatePtrToPtr\"`\n}\n\nfunc TestPtrToPtr(t *testing.T) {\n\tresolvers := &Stub{}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tresolvers.MutationResolver.UpdatePtrToPtr = func(ctx context.Context, in UpdatePtrToPtrOuter) (ret *PtrToPtrOuter, err error) {\n\t\tret = &PtrToPtrOuter{\n\t\t\tName: \"oldName\",\n\t\t\tInner: &PtrToPtrInner{\n\t\t\t\tKey:   \"oldKey\",\n\t\t\t\tValue: \"oldValue\",\n\t\t\t},\n\t\t\tStupidInner: nest7(&PtrToPtrInner{\n\t\t\t\tKey:   \"oldStupidKey\",\n\t\t\t\tValue: \"oldStupidValue\",\n\t\t\t}),\n\t\t}\n\n\t\tif in.Name != nil {\n\t\t\tret.Name = *in.Name\n\t\t}\n\n\t\tif in.Inner != nil {\n\t\t\tinner := *in.Inner\n\t\t\tif inner == nil {\n\t\t\t\tret.Inner = nil\n\t\t\t} else {\n\t\t\t\tif in.Inner == nil {\n\t\t\t\t\tret.Inner = &PtrToPtrInner{}\n\t\t\t\t}\n\t\t\t\tif inner.Key != nil {\n\t\t\t\t\tret.Inner.Key = *inner.Key\n\t\t\t\t}\n\t\t\t\tif inner.Value != nil {\n\t\t\t\t\tret.Inner.Value = *inner.Value\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif in.StupidInner != nil {\n\t\t\tsi := *in.StupidInner\n\t\t\tif si == nil {\n\t\t\t\tret.StupidInner = nil\n\t\t\t} else {\n\t\t\t\tdeepIn := ******si\n\t\t\t\tdeepOut := ******ret.StupidInner\n\t\t\t\tif deepIn.Key != nil {\n\t\t\t\t\tdeepOut.Key = *deepIn.Key\n\t\t\t\t}\n\t\t\t\tif deepIn.Value != nil {\n\t\t\t\t\tdeepOut.Value = *deepIn.Value\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn ret, err\n\t}\n\n\tt.Run(\"pointer to pointer input missing\", func(t *testing.T) {\n\t\tvar resp UpdatePtrToPtrResults\n\n\t\terr := c.Post(\n\t\t\t`mutation { updatePtrToPtr(input: { name: \"newName\" }) { name, inner { key, value }, stupidInner { key, value }}}`,\n\t\t\t&resp,\n\t\t)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Equal(t, \"newName\", resp.UpdatedPtrToPtr.Name)\n\t\trequire.NotNil(t, resp.UpdatedPtrToPtr.Inner)\n\t\trequire.Equal(t, \"oldKey\", resp.UpdatedPtrToPtr.Inner.Key)\n\t\trequire.Equal(t, \"oldValue\", resp.UpdatedPtrToPtr.Inner.Value)\n\t\trequire.NotNil(t, resp.UpdatedPtrToPtr.StupidInner)\n\t\trequire.NotNil(t, ******resp.UpdatedPtrToPtr.StupidInner)\n\t\trequire.Equal(t, \"oldStupidKey\", (******resp.UpdatedPtrToPtr.StupidInner).Key)\n\t\trequire.Equal(t, \"oldStupidValue\", (******resp.UpdatedPtrToPtr.StupidInner).Value)\n\t})\n\n\tt.Run(\"pointer to pointer input non-null\", func(t *testing.T) {\n\t\tvar resp UpdatePtrToPtrResults\n\n\t\terr := c.Post(`mutation {\n\t\t\tupdatePtrToPtr(input: {\n\t\t\t\tinner: {\n\t\t\t\t\tkey: \"newKey\"\n\t\t\t\t\tvalue: \"newValue\"\n\t\t\t\t}\n\t\t\t})\n\t\t\t{ name, inner { key, value }, stupidInner { key, value }}\n\t\t}`, &resp)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Equal(t, \"oldName\", resp.UpdatedPtrToPtr.Name)\n\t\trequire.NotNil(t, resp.UpdatedPtrToPtr.Inner)\n\t\trequire.Equal(t, \"newKey\", resp.UpdatedPtrToPtr.Inner.Key)\n\t\trequire.Equal(t, \"newValue\", resp.UpdatedPtrToPtr.Inner.Value)\n\t\trequire.NotNil(t, resp.UpdatedPtrToPtr.StupidInner)\n\t\trequire.NotNil(t, ******resp.UpdatedPtrToPtr.StupidInner)\n\t\trequire.Equal(t, \"oldStupidKey\", (******resp.UpdatedPtrToPtr.StupidInner).Key)\n\t\trequire.Equal(t, \"oldStupidValue\", (******resp.UpdatedPtrToPtr.StupidInner).Value)\n\t})\n\n\tt.Run(\"pointer to pointer input null\", func(t *testing.T) {\n\t\tvar resp UpdatePtrToPtrResults\n\n\t\terr := c.Post(\n\t\t\t`mutation { updatePtrToPtr(input: { inner: null }) { name, inner { key, value }, stupidInner { key, value }}}`,\n\t\t\t&resp,\n\t\t)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Equal(t, \"oldName\", resp.UpdatedPtrToPtr.Name)\n\t\trequire.Nil(t, resp.UpdatedPtrToPtr.Inner)\n\t\trequire.NotNil(t, resp.UpdatedPtrToPtr.StupidInner)\n\t\trequire.NotNil(t, ******resp.UpdatedPtrToPtr.StupidInner)\n\t\trequire.Equal(t, \"oldStupidKey\", (******resp.UpdatedPtrToPtr.StupidInner).Key)\n\t\trequire.Equal(t, \"oldStupidValue\", (******resp.UpdatedPtrToPtr.StupidInner).Value)\n\t})\n\n\tt.Run(\"many pointers input non-null\", func(t *testing.T) {\n\t\tvar resp UpdatePtrToPtrResults\n\n\t\terr := c.Post(`mutation {\n\t\t\tupdatePtrToPtr(input: {\n\t\t\t\tstupidInner: {\n\t\t\t\t\tkey: \"newKey\"\n\t\t\t\t\tvalue: \"newValue\"\n\t\t\t\t}\n\t\t\t})\n\t\t\t{ name, inner { key, value }, stupidInner { key, value }}\n\t\t}`, &resp)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Equal(t, \"oldName\", resp.UpdatedPtrToPtr.Name)\n\t\trequire.NotNil(t, resp.UpdatedPtrToPtr.Inner)\n\t\trequire.Equal(t, \"oldKey\", resp.UpdatedPtrToPtr.Inner.Key)\n\t\trequire.Equal(t, \"oldValue\", resp.UpdatedPtrToPtr.Inner.Value)\n\t\trequire.NotNil(t, resp.UpdatedPtrToPtr.StupidInner)\n\t\trequire.NotNil(t, ******resp.UpdatedPtrToPtr.StupidInner)\n\t\trequire.Equal(t, \"newKey\", (******resp.UpdatedPtrToPtr.StupidInner).Key)\n\t\trequire.Equal(t, \"newValue\", (******resp.UpdatedPtrToPtr.StupidInner).Value)\n\t})\n\n\tt.Run(\"many pointers input null\", func(t *testing.T) {\n\t\tvar resp UpdatePtrToPtrResults\n\n\t\terr := c.Post(\n\t\t\t`mutation { updatePtrToPtr(input: { stupidInner: null }) { name, inner { key, value }, stupidInner { key, value }}}`,\n\t\t\t&resp,\n\t\t)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Equal(t, \"oldName\", resp.UpdatedPtrToPtr.Name)\n\t\trequire.NotNil(t, resp.UpdatedPtrToPtr.Inner)\n\t\trequire.Equal(t, \"oldKey\", resp.UpdatedPtrToPtr.Inner.Key)\n\t\trequire.Equal(t, \"oldValue\", resp.UpdatedPtrToPtr.Inner.Value)\n\t\trequire.Nil(t, resp.UpdatedPtrToPtr.StupidInner)\n\t})\n}\n\nfunc nest7(in *PtrToPtrInner) *******PtrToPtrInner {\n\tsi2 := &in\n\tsi3 := &si2\n\tsi4 := &si3\n\tsi5 := &si4\n\tsi6 := &si5\n\tsi7 := &si6\n\n\treturn si7\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/ptr_to_slice.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _PtrToSliceContainer_ptrToSlice(ctx context.Context, field graphql.CollectedField, obj *PtrToSliceContainer) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PtrToSliceContainer_ptrToSlice,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PtrToSlice, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖᚕstringᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PtrToSliceContainer_ptrToSlice(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PtrToSliceContainer\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar ptrToSliceContainerImplementors = []string{\"PtrToSliceContainer\"}\n\nfunc (ec *executionContext) _PtrToSliceContainer(ctx context.Context, sel ast.SelectionSet, obj *PtrToSliceContainer) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, ptrToSliceContainerImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"PtrToSliceContainer\")\n\t\tcase \"ptrToSlice\":\n\t\t\tout.Values[i] = ec._PtrToSliceContainer_ptrToSlice(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) marshalNPtrToSliceContainer2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPtrToSliceContainer(ctx context.Context, sel ast.SelectionSet, v PtrToSliceContainer) graphql.Marshaler {\n\treturn ec._PtrToSliceContainer(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNPtrToSliceContainer2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPtrToSliceContainer(ctx context.Context, sel ast.SelectionSet, v *PtrToSliceContainer) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._PtrToSliceContainer(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/followschema/ptr_to_slice.go",
    "content": "package followschema\n\ntype PtrToSliceContainer struct {\n\tPtrToSlice *[]string\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/ptr_to_slice.graphql",
    "content": "type PtrToSliceContainer {\n    ptrToSlice: [String!]\n}\n\nextend type Query {\n    ptrToSliceContainer: PtrToSliceContainer!\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/ptr_to_slice_test.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestPtrToSlice(t *testing.T) {\n\tresolvers := &Stub{}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tresolvers.QueryResolver.PtrToSliceContainer = func(ctx context.Context) (wrappedStruct *PtrToSliceContainer, e error) {\n\t\tptrToSliceContainer := PtrToSliceContainer{\n\t\t\tPtrToSlice: &[]string{\"hello\"},\n\t\t}\n\t\treturn &ptrToSliceContainer, nil\n\t}\n\n\tt.Run(\"pointer to slice\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tPtrToSliceContainer struct {\n\t\t\t\tPtrToSlice []string\n\t\t\t}\n\t\t}\n\n\t\terr := c.Post(`query { ptrToSliceContainer {  ptrToSlice }}`, &resp)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Equal(t, []string{\"hello\"}, resp.PtrToSliceContainer.PtrToSlice)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/recursive.go",
    "content": "package followschema\n\ntype RecursiveInputSlice struct {\n\tSelf []RecursiveInputSlice\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/resolver.go",
    "content": "package followschema\n\n// THIS CODE WILL BE UPDATED WITH SCHEMA CHANGES. PREVIOUS IMPLEMENTATION FOR SCHEMA CHANGES WILL BE KEPT IN THE COMMENT SECTION. IMPLEMENTATION FOR UNCHANGED SCHEMA WILL BE KEPT.\n\nimport (\n\t\"context\"\n\n\tintrospection1 \"github.com/99designs/gqlgen/codegen/testserver/followschema/introspection\"\n\tinvalid_packagename \"github.com/99designs/gqlgen/codegen/testserver/followschema/invalid-packagename\"\n\t\"github.com/99designs/gqlgen/codegen/testserver/followschema/otherpkg\"\n)\n\ntype Resolver struct{}\n\n// ID is the resolver for the id field.\nfunc (r *backedByInterfaceResolver) ID(ctx context.Context, obj BackedByInterface) (string, error) {\n\tpanic(\"not implemented\")\n}\n\n// Values is the resolver for the values field.\nfunc (r *deferModelResolver) Values(ctx context.Context, obj *DeferModel) ([]string, error) {\n\tpanic(\"not implemented\")\n}\n\n// A is the resolver for the a field.\nfunc (r *errorsResolver) A(ctx context.Context, obj *Errors) (*Error, error) {\n\tpanic(\"not implemented\")\n}\n\n// B is the resolver for the b field.\nfunc (r *errorsResolver) B(ctx context.Context, obj *Errors) (*Error, error) {\n\tpanic(\"not implemented\")\n}\n\n// C is the resolver for the c field.\nfunc (r *errorsResolver) C(ctx context.Context, obj *Errors) (*Error, error) {\n\tpanic(\"not implemented\")\n}\n\n// D is the resolver for the d field.\nfunc (r *errorsResolver) D(ctx context.Context, obj *Errors) (*Error, error) {\n\tpanic(\"not implemented\")\n}\n\n// E is the resolver for the e field.\nfunc (r *errorsResolver) E(ctx context.Context, obj *Errors) (*Error, error) {\n\tpanic(\"not implemented\")\n}\n\n// Field is the resolver for the field field.\nfunc (r *forcedResolverResolver) Field(ctx context.Context, obj *ForcedResolver) (*Circle, error) {\n\tpanic(\"not implemented\")\n}\n\n// ResolverField is the resolver for the resolverField field.\nfunc (r *modelMethodsResolver) ResolverField(ctx context.Context, obj *ModelMethods) (bool, error) {\n\tpanic(\"not implemented\")\n}\n\n// DefaultInput is the resolver for the defaultInput field.\nfunc (r *mutationResolver) DefaultInput(ctx context.Context, input DefaultInput) (*DefaultParametersMirror, error) {\n\tpanic(\"not implemented\")\n}\n\n// OverrideValueViaInput is the resolver for the overrideValueViaInput field.\nfunc (r *mutationResolver) OverrideValueViaInput(ctx context.Context, input FieldsOrderInput) (*FieldsOrderPayload, error) {\n\tpanic(\"not implemented\")\n}\n\n// UpdateProduct is the resolver for the updateProduct field.\nfunc (r *mutationResolver) UpdateProduct(ctx context.Context, input map[string]interface{}) (string, error) {\n\tpanic(\"not implemented\")\n}\n\n// Issue4053 is the resolver for the issue4053 field.\nfunc (r *mutationResolver) Issue4053(ctx context.Context, input *Issue4053Input1) (bool, error) {\n\tpanic(\"not implemented\")\n}\n\n// UpdateSomething is the resolver for the updateSomething field.\nfunc (r *mutationResolver) UpdateSomething(ctx context.Context, input SpecialInput) (string, error) {\n\tpanic(\"not implemented\")\n}\n\n// UpdatePtrToPtr is the resolver for the updatePtrToPtr field.\nfunc (r *mutationResolver) UpdatePtrToPtr(ctx context.Context, input UpdatePtrToPtrOuter) (*PtrToPtrOuter, error) {\n\tpanic(\"not implemented\")\n}\n\n// OldFoo is the resolver for the oldFoo field.\nfunc (r *overlappingFieldsResolver) OldFoo(ctx context.Context, obj *OverlappingFields) (int, error) {\n\tpanic(\"not implemented\")\n}\n\n// FieldScalarMarshal is the resolver for the fieldScalarMarshal field.\nfunc (r *panicsResolver) FieldScalarMarshal(ctx context.Context, obj *Panics) ([]MarshalPanic, error) {\n\tpanic(\"not implemented\")\n}\n\n// ArgUnmarshal is the resolver for the argUnmarshal field.\nfunc (r *panicsResolver) ArgUnmarshal(ctx context.Context, obj *Panics, u []MarshalPanic) (bool, error) {\n\tpanic(\"not implemented\")\n}\n\n// Friends is the resolver for the friends field.\nfunc (r *petResolver) Friends(ctx context.Context, obj *Pet, limit *int) ([]*Pet, error) {\n\tpanic(\"not implemented\")\n}\n\n// Value is the resolver for the value field.\nfunc (r *primitiveResolver) Value(ctx context.Context, obj *Primitive) (int, error) {\n\tpanic(\"not implemented\")\n}\n\n// Value is the resolver for the value field.\nfunc (r *primitiveStringResolver) Value(ctx context.Context, obj *PrimitiveString) (string, error) {\n\tpanic(\"not implemented\")\n}\n\n// Len is the resolver for the len field.\nfunc (r *primitiveStringResolver) Len(ctx context.Context, obj *PrimitiveString) (int, error) {\n\tpanic(\"not implemented\")\n}\n\n// InvalidIdentifier is the resolver for the invalidIdentifier field.\nfunc (r *queryResolver) InvalidIdentifier(ctx context.Context) (*invalid_packagename.InvalidIdentifier, error) {\n\tpanic(\"not implemented\")\n}\n\n// Collision is the resolver for the collision field.\nfunc (r *queryResolver) Collision(ctx context.Context) (*introspection1.It, error) {\n\tpanic(\"not implemented\")\n}\n\n// MapInput is the resolver for the mapInput field.\nfunc (r *queryResolver) MapInput(ctx context.Context, input map[string]any) (*bool, error) {\n\tpanic(\"not implemented\")\n}\n\n// Recursive is the resolver for the recursive field.\nfunc (r *queryResolver) Recursive(ctx context.Context, input *RecursiveInputSlice) (*bool, error) {\n\tpanic(\"not implemented\")\n}\n\n// NestedInputs is the resolver for the nestedInputs field.\nfunc (r *queryResolver) NestedInputs(ctx context.Context, input [][]*OuterInput) (*bool, error) {\n\tpanic(\"not implemented\")\n}\n\n// NestedOutputs is the resolver for the nestedOutputs field.\nfunc (r *queryResolver) NestedOutputs(ctx context.Context) ([][]*OuterObject, error) {\n\tpanic(\"not implemented\")\n}\n\n// ModelMethods is the resolver for the modelMethods field.\nfunc (r *queryResolver) ModelMethods(ctx context.Context) (*ModelMethods, error) {\n\tpanic(\"not implemented\")\n}\n\n// User is the resolver for the user field.\nfunc (r *queryResolver) User(ctx context.Context, id int) (*User, error) {\n\tpanic(\"not implemented\")\n}\n\n// NullableArg is the resolver for the nullableArg field.\nfunc (r *queryResolver) NullableArg(ctx context.Context, arg *int) (*string, error) {\n\tpanic(\"not implemented\")\n}\n\n// InputSlice is the resolver for the inputSlice field.\nfunc (r *queryResolver) InputSlice(ctx context.Context, arg []string) (bool, error) {\n\tpanic(\"not implemented\")\n}\n\n// InputNullableSlice is the resolver for the inputNullableSlice field.\nfunc (r *queryResolver) InputNullableSlice(ctx context.Context, arg []string) (bool, error) {\n\tpanic(\"not implemented\")\n}\n\n// InputOmittable is the resolver for the inputOmittable field.\nfunc (r *queryResolver) InputOmittable(ctx context.Context, arg OmittableInput) (string, error) {\n\tpanic(\"not implemented\")\n}\n\n// ShapeUnion is the resolver for the shapeUnion field.\nfunc (r *queryResolver) ShapeUnion(ctx context.Context) (ShapeUnion, error) {\n\tpanic(\"not implemented\")\n}\n\n// Autobind is the resolver for the autobind field.\nfunc (r *queryResolver) Autobind(ctx context.Context) (*Autobind, error) {\n\tpanic(\"not implemented\")\n}\n\n// DeprecatedField is the resolver for the deprecatedField field.\nfunc (r *queryResolver) DeprecatedField(ctx context.Context) (string, error) {\n\tpanic(\"not implemented\")\n}\n\n// FieldWithDeprecatedArg is the resolver for the fieldWithDeprecatedArg field.\nfunc (r *queryResolver) FieldWithDeprecatedArg(ctx context.Context, oldArg *int, newArg *int) (*string, error) {\n\tpanic(\"not implemented\")\n}\n\n// Overlapping is the resolver for the overlapping field.\nfunc (r *queryResolver) Overlapping(ctx context.Context) (*OverlappingFields, error) {\n\tpanic(\"not implemented\")\n}\n\n// DefaultParameters is the resolver for the defaultParameters field.\nfunc (r *queryResolver) DefaultParameters(ctx context.Context, falsyBoolean *bool, truthyBoolean *bool) (*DefaultParametersMirror, error) {\n\tpanic(\"not implemented\")\n}\n\n// DeferSingle is the resolver for the deferSingle field.\nfunc (r *queryResolver) DeferSingle(ctx context.Context) (*DeferModel, error) {\n\tpanic(\"not implemented\")\n}\n\n// DeferMultiple is the resolver for the deferMultiple field.\nfunc (r *queryResolver) DeferMultiple(ctx context.Context) ([]*DeferModel, error) {\n\tpanic(\"not implemented\")\n}\n\n// DirectiveArg is the resolver for the directiveArg field.\nfunc (r *queryResolver) DirectiveArg(ctx context.Context, arg string) (*string, error) {\n\tpanic(\"not implemented\")\n}\n\n// DirectiveNullableArg is the resolver for the directiveNullableArg field.\nfunc (r *queryResolver) DirectiveNullableArg(ctx context.Context, arg *int, arg2 *int, arg3 *string) (*string, error) {\n\tpanic(\"not implemented\")\n}\n\n// DirectiveSingleNullableArg is the resolver for the directiveSingleNullableArg field.\nfunc (r *queryResolver) DirectiveSingleNullableArg(ctx context.Context, arg1 *string) (*string, error) {\n\tpanic(\"not implemented\")\n}\n\n// DirectiveInputNullable is the resolver for the directiveInputNullable field.\nfunc (r *queryResolver) DirectiveInputNullable(ctx context.Context, arg *InputDirectives) (*string, error) {\n\tpanic(\"not implemented\")\n}\n\n// DirectiveInput is the resolver for the directiveInput field.\nfunc (r *queryResolver) DirectiveInput(ctx context.Context, arg InputDirectives) (*string, error) {\n\tpanic(\"not implemented\")\n}\n\n// DirectiveInputType is the resolver for the directiveInputType field.\nfunc (r *queryResolver) DirectiveInputType(ctx context.Context, arg InnerInput) (*string, error) {\n\tpanic(\"not implemented\")\n}\n\n// DirectiveInputOuter is the resolver for the directiveInputOuter field.\nfunc (r *queryResolver) DirectiveInputOuter(ctx context.Context, arg OuterWrapperInput) (*string, error) {\n\tpanic(\"not implemented\")\n}\n\n// DirectiveObject is the resolver for the directiveObject field.\nfunc (r *queryResolver) DirectiveObject(ctx context.Context) (*ObjectDirectives, error) {\n\tpanic(\"not implemented\")\n}\n\n// DirectiveObjectWithCustomGoModel is the resolver for the directiveObjectWithCustomGoModel field.\nfunc (r *queryResolver) DirectiveObjectWithCustomGoModel(ctx context.Context) (*ObjectDirectivesWithCustomGoModel, error) {\n\tpanic(\"not implemented\")\n}\n\n// DirectiveFieldDef is the resolver for the directiveFieldDef field.\nfunc (r *queryResolver) DirectiveFieldDef(ctx context.Context, ret string) (string, error) {\n\tpanic(\"not implemented\")\n}\n\n// DirectiveField is the resolver for the directiveField field.\nfunc (r *queryResolver) DirectiveField(ctx context.Context) (*string, error) {\n\tpanic(\"not implemented\")\n}\n\n// DirectiveDouble is the resolver for the directiveDouble field.\nfunc (r *queryResolver) DirectiveDouble(ctx context.Context) (*string, error) {\n\tpanic(\"not implemented\")\n}\n\n// DirectiveUnimplemented is the resolver for the directiveUnimplemented field.\nfunc (r *queryResolver) DirectiveUnimplemented(ctx context.Context) (*string, error) {\n\tpanic(\"not implemented\")\n}\n\n// EmbeddedCase1 is the resolver for the embeddedCase1 field.\nfunc (r *queryResolver) EmbeddedCase1(ctx context.Context) (*EmbeddedCase1, error) {\n\tpanic(\"not implemented\")\n}\n\n// EmbeddedCase2 is the resolver for the embeddedCase2 field.\nfunc (r *queryResolver) EmbeddedCase2(ctx context.Context) (*EmbeddedCase2, error) {\n\tpanic(\"not implemented\")\n}\n\n// EmbeddedCase3 is the resolver for the embeddedCase3 field.\nfunc (r *queryResolver) EmbeddedCase3(ctx context.Context) (*EmbeddedCase3, error) {\n\tpanic(\"not implemented\")\n}\n\n// EnumInInput is the resolver for the enumInInput field.\nfunc (r *queryResolver) EnumInInput(ctx context.Context, input *InputWithEnumValue) (EnumTest, error) {\n\tpanic(\"not implemented\")\n}\n\n// SearchProducts is the resolver for the searchProducts field.\nfunc (r *queryResolver) SearchProducts(ctx context.Context, filters map[string]interface{}) ([]string, error) {\n\tpanic(\"not implemented\")\n}\n\n// SearchRequired is the resolver for the searchRequired field.\nfunc (r *queryResolver) SearchRequired(ctx context.Context, filters map[string]interface{}) ([]string, error) {\n\tpanic(\"not implemented\")\n}\n\n// SearchProductsNormal is the resolver for the searchProductsNormal field.\nfunc (r *queryResolver) SearchProductsNormal(ctx context.Context, filters map[string]any) ([]string, error) {\n\tpanic(\"not implemented\")\n}\n\n// SearchWithDefaults is the resolver for the searchWithDefaults field.\nfunc (r *queryResolver) SearchWithDefaults(ctx context.Context, filters map[string]interface{}) ([]string, error) {\n\tpanic(\"not implemented\")\n}\n\n// SearchMixed is the resolver for the searchMixed field.\nfunc (r *queryResolver) SearchMixed(ctx context.Context, filters map[string]interface{}, limit *int, offset *int, sortBy *string) ([]string, error) {\n\tpanic(\"not implemented\")\n}\n\n// FilterProducts is the resolver for the filterProducts field.\nfunc (r *queryResolver) FilterProducts(ctx context.Context, filters map[string]interface{}) ([]string, error) {\n\tpanic(\"not implemented\")\n}\n\n// FindProducts is the resolver for the findProducts field.\nfunc (r *queryResolver) FindProducts(ctx context.Context, filters map[string]interface{}) ([]string, error) {\n\tpanic(\"not implemented\")\n}\n\n// SearchWithDirectives is the resolver for the searchWithDirectives field.\nfunc (r *queryResolver) SearchWithDirectives(ctx context.Context, input map[string]interface{}) ([]string, error) {\n\tpanic(\"not implemented\")\n}\n\n// Shapes is the resolver for the shapes field.\nfunc (r *queryResolver) Shapes(ctx context.Context) ([]Shape, error) {\n\tpanic(\"not implemented\")\n}\n\n// NoShape is the resolver for the noShape field.\nfunc (r *queryResolver) NoShape(ctx context.Context) (Shape, error) {\n\tpanic(\"not implemented\")\n}\n\n// Node is the resolver for the node field.\nfunc (r *queryResolver) Node(ctx context.Context) (Node, error) {\n\tpanic(\"not implemented\")\n}\n\n// NoShapeTypedNil is the resolver for the noShapeTypedNil field.\nfunc (r *queryResolver) NoShapeTypedNil(ctx context.Context) (Shape, error) {\n\tpanic(\"not implemented\")\n}\n\n// Animal is the resolver for the animal field.\nfunc (r *queryResolver) Animal(ctx context.Context) (Animal, error) {\n\tpanic(\"not implemented\")\n}\n\n// NotAnInterface is the resolver for the notAnInterface field.\nfunc (r *queryResolver) NotAnInterface(ctx context.Context) (BackedByInterface, error) {\n\tpanic(\"not implemented\")\n}\n\n// Dog is the resolver for the dog field.\nfunc (r *queryResolver) Dog(ctx context.Context) (*Dog, error) {\n\tpanic(\"not implemented\")\n}\n\n// Issue896a is the resolver for the issue896a field.\nfunc (r *queryResolver) Issue896a(ctx context.Context) ([]*CheckIssue896, error) {\n\tpanic(\"not implemented\")\n}\n\n// MapStringInterface is the resolver for the mapStringInterface field.\nfunc (r *queryResolver) MapStringInterface(ctx context.Context, in map[string]any) (map[string]any, error) {\n\tpanic(\"not implemented\")\n}\n\n// MapNestedStringInterface is the resolver for the mapNestedStringInterface field.\nfunc (r *queryResolver) MapNestedStringInterface(ctx context.Context, in *NestedMapInput) (map[string]any, error) {\n\tpanic(\"not implemented\")\n}\n\n// MapNestedMapSlice is the resolver for the mapNestedMapSlice field.\nfunc (r *queryResolver) MapNestedMapSlice(ctx context.Context, input map[string]any) (*bool, error) {\n\tpanic(\"not implemented\")\n}\n\n// ErrorBubble is the resolver for the errorBubble field.\nfunc (r *queryResolver) ErrorBubble(ctx context.Context) (*Error, error) {\n\tpanic(\"not implemented\")\n}\n\n// ErrorBubbleList is the resolver for the errorBubbleList field.\nfunc (r *queryResolver) ErrorBubbleList(ctx context.Context) ([]*Error, error) {\n\tpanic(\"not implemented\")\n}\n\n// ErrorList is the resolver for the errorList field.\nfunc (r *queryResolver) ErrorList(ctx context.Context) ([]*Error, error) {\n\tpanic(\"not implemented\")\n}\n\n// Errors is the resolver for the errors field.\nfunc (r *queryResolver) Errors(ctx context.Context) (*Errors, error) {\n\tpanic(\"not implemented\")\n}\n\n// Valid is the resolver for the valid field.\nfunc (r *queryResolver) Valid(ctx context.Context) (string, error) {\n\tpanic(\"not implemented\")\n}\n\n// Invalid is the resolver for the invalid field.\nfunc (r *queryResolver) Invalid(ctx context.Context) (string, error) {\n\tpanic(\"not implemented\")\n}\n\n// Panics is the resolver for the panics field.\nfunc (r *queryResolver) Panics(ctx context.Context) (*Panics, error) {\n\tpanic(\"not implemented\")\n}\n\n// PrimitiveObject is the resolver for the primitiveObject field.\nfunc (r *queryResolver) PrimitiveObject(ctx context.Context) ([]Primitive, error) {\n\tpanic(\"not implemented\")\n}\n\n// PrimitiveStringObject is the resolver for the primitiveStringObject field.\nfunc (r *queryResolver) PrimitiveStringObject(ctx context.Context) ([]PrimitiveString, error) {\n\tpanic(\"not implemented\")\n}\n\n// PtrToAnyContainer is the resolver for the ptrToAnyContainer field.\nfunc (r *queryResolver) PtrToAnyContainer(ctx context.Context) (*PtrToAnyContainer, error) {\n\tpanic(\"not implemented\")\n}\n\n// PtrToSliceContainer is the resolver for the ptrToSliceContainer field.\nfunc (r *queryResolver) PtrToSliceContainer(ctx context.Context) (*PtrToSliceContainer, error) {\n\tpanic(\"not implemented\")\n}\n\n// Infinity is the resolver for the infinity field.\nfunc (r *queryResolver) Infinity(ctx context.Context) (float64, error) {\n\tpanic(\"not implemented\")\n}\n\n// StringFromContextInterface is the resolver for the stringFromContextInterface field.\nfunc (r *queryResolver) StringFromContextInterface(ctx context.Context) (*StringFromContextInterface, error) {\n\tpanic(\"not implemented\")\n}\n\n// StringFromContextFunction is the resolver for the stringFromContextFunction field.\nfunc (r *queryResolver) StringFromContextFunction(ctx context.Context) (string, error) {\n\tpanic(\"not implemented\")\n}\n\n// DefaultScalar is the resolver for the defaultScalar field.\nfunc (r *queryResolver) DefaultScalar(ctx context.Context, arg string) (string, error) {\n\tpanic(\"not implemented\")\n}\n\n// SkipInclude is the resolver for the skipInclude field.\nfunc (r *queryResolver) SkipInclude(ctx context.Context) (*SkipIncludeTestType, error) {\n\tpanic(\"not implemented\")\n}\n\n// Slices is the resolver for the slices field.\nfunc (r *queryResolver) Slices(ctx context.Context) (*Slices, error) {\n\tpanic(\"not implemented\")\n}\n\n// ScalarSlice is the resolver for the scalarSlice field.\nfunc (r *queryResolver) ScalarSlice(ctx context.Context) ([]byte, error) {\n\tpanic(\"not implemented\")\n}\n\n// Fallback is the resolver for the fallback field.\nfunc (r *queryResolver) Fallback(ctx context.Context, arg FallbackToStringEncoding) (FallbackToStringEncoding, error) {\n\tpanic(\"not implemented\")\n}\n\n// OptionalUnion is the resolver for the optionalUnion field.\nfunc (r *queryResolver) OptionalUnion(ctx context.Context) (TestUnion, error) {\n\tpanic(\"not implemented\")\n}\n\n// VOkCaseValue is the resolver for the vOkCaseValue field.\nfunc (r *queryResolver) VOkCaseValue(ctx context.Context) (*VOkCaseValue, error) {\n\tpanic(\"not implemented\")\n}\n\n// VOkCaseNil is the resolver for the vOkCaseNil field.\nfunc (r *queryResolver) VOkCaseNil(ctx context.Context) (*VOkCaseNil, error) {\n\tpanic(\"not implemented\")\n}\n\n// ValidType is the resolver for the validType field.\nfunc (r *queryResolver) ValidType(ctx context.Context) (*ValidType, error) {\n\tpanic(\"not implemented\")\n}\n\n// VariadicModel is the resolver for the variadicModel field.\nfunc (r *queryResolver) VariadicModel(ctx context.Context) (*VariadicModel, error) {\n\tpanic(\"not implemented\")\n}\n\n// WrappedStruct is the resolver for the wrappedStruct field.\nfunc (r *queryResolver) WrappedStruct(ctx context.Context) (*WrappedStruct, error) {\n\tpanic(\"not implemented\")\n}\n\n// WrappedScalar is the resolver for the wrappedScalar field.\nfunc (r *queryResolver) WrappedScalar(ctx context.Context) (otherpkg.Scalar, error) {\n\tpanic(\"not implemented\")\n}\n\n// WrappedMap is the resolver for the wrappedMap field.\nfunc (r *queryResolver) WrappedMap(ctx context.Context) (WrappedMap, error) {\n\tpanic(\"not implemented\")\n}\n\n// WrappedSlice is the resolver for the wrappedSlice field.\nfunc (r *queryResolver) WrappedSlice(ctx context.Context) (WrappedSlice, error) {\n\tpanic(\"not implemented\")\n}\n\n// Updated is the resolver for the updated field.\nfunc (r *subscriptionResolver) Updated(ctx context.Context) (<-chan string, error) {\n\tpanic(\"not implemented\")\n}\n\n// InitPayload is the resolver for the initPayload field.\nfunc (r *subscriptionResolver) InitPayload(ctx context.Context) (<-chan string, error) {\n\tpanic(\"not implemented\")\n}\n\n// DirectiveArg is the resolver for the directiveArg field.\nfunc (r *subscriptionResolver) DirectiveArg(ctx context.Context, arg string) (<-chan *string, error) {\n\tpanic(\"not implemented\")\n}\n\n// DirectiveNullableArg is the resolver for the directiveNullableArg field.\nfunc (r *subscriptionResolver) DirectiveNullableArg(ctx context.Context, arg *int, arg2 *int, arg3 *string) (<-chan *string, error) {\n\tpanic(\"not implemented\")\n}\n\n// DirectiveDouble is the resolver for the directiveDouble field.\nfunc (r *subscriptionResolver) DirectiveDouble(ctx context.Context) (<-chan *string, error) {\n\tpanic(\"not implemented\")\n}\n\n// DirectiveUnimplemented is the resolver for the directiveUnimplemented field.\nfunc (r *subscriptionResolver) DirectiveUnimplemented(ctx context.Context) (<-chan *string, error) {\n\tpanic(\"not implemented\")\n}\n\n// Issue896b is the resolver for the issue896b field.\nfunc (r *subscriptionResolver) Issue896b(ctx context.Context) (<-chan []*CheckIssue896, error) {\n\tpanic(\"not implemented\")\n}\n\n// ErrorRequired is the resolver for the errorRequired field.\nfunc (r *subscriptionResolver) ErrorRequired(ctx context.Context) (<-chan *Error, error) {\n\tpanic(\"not implemented\")\n}\n\n// Friends is the resolver for the friends field.\nfunc (r *userResolver) Friends(ctx context.Context, obj *User) ([]*User, error) {\n\tpanic(\"not implemented\")\n}\n\n// Pets is the resolver for the pets field.\nfunc (r *userResolver) Pets(ctx context.Context, obj *User, limit *int) ([]*Pet, error) {\n\tpanic(\"not implemented\")\n}\n\n// Get is the resolver for the get field.\nfunc (r *wrappedMapResolver) Get(ctx context.Context, obj WrappedMap, key string) (string, error) {\n\tpanic(\"not implemented\")\n}\n\n// Get is the resolver for the get field.\nfunc (r *wrappedSliceResolver) Get(ctx context.Context, obj WrappedSlice, idx int) (string, error) {\n\tpanic(\"not implemented\")\n}\n\n// BackedByInterface returns BackedByInterfaceResolver implementation.\nfunc (r *Resolver) BackedByInterface() BackedByInterfaceResolver {\n\treturn &backedByInterfaceResolver{r}\n}\n\n// DeferModel returns DeferModelResolver implementation.\nfunc (r *Resolver) DeferModel() DeferModelResolver { return &deferModelResolver{r} }\n\n// Errors returns ErrorsResolver implementation.\nfunc (r *Resolver) Errors() ErrorsResolver { return &errorsResolver{r} }\n\n// ForcedResolver returns ForcedResolverResolver implementation.\nfunc (r *Resolver) ForcedResolver() ForcedResolverResolver { return &forcedResolverResolver{r} }\n\n// ModelMethods returns ModelMethodsResolver implementation.\nfunc (r *Resolver) ModelMethods() ModelMethodsResolver { return &modelMethodsResolver{r} }\n\n// Mutation returns MutationResolver implementation.\nfunc (r *Resolver) Mutation() MutationResolver { return &mutationResolver{r} }\n\n// OverlappingFields returns OverlappingFieldsResolver implementation.\nfunc (r *Resolver) OverlappingFields() OverlappingFieldsResolver {\n\treturn &overlappingFieldsResolver{r}\n}\n\n// Panics returns PanicsResolver implementation.\nfunc (r *Resolver) Panics() PanicsResolver { return &panicsResolver{r} }\n\n// Pet returns PetResolver implementation.\nfunc (r *Resolver) Pet() PetResolver { return &petResolver{r} }\n\n// Primitive returns PrimitiveResolver implementation.\nfunc (r *Resolver) Primitive() PrimitiveResolver { return &primitiveResolver{r} }\n\n// PrimitiveString returns PrimitiveStringResolver implementation.\nfunc (r *Resolver) PrimitiveString() PrimitiveStringResolver { return &primitiveStringResolver{r} }\n\n// Query returns QueryResolver implementation.\nfunc (r *Resolver) Query() QueryResolver { return &queryResolver{r} }\n\n// Subscription returns SubscriptionResolver implementation.\nfunc (r *Resolver) Subscription() SubscriptionResolver { return &subscriptionResolver{r} }\n\n// User returns UserResolver implementation.\nfunc (r *Resolver) User() UserResolver { return &userResolver{r} }\n\n// WrappedMap returns WrappedMapResolver implementation.\nfunc (r *Resolver) WrappedMap() WrappedMapResolver { return &wrappedMapResolver{r} }\n\n// WrappedSlice returns WrappedSliceResolver implementation.\nfunc (r *Resolver) WrappedSlice() WrappedSliceResolver { return &wrappedSliceResolver{r} }\n\ntype backedByInterfaceResolver struct{ *Resolver }\ntype deferModelResolver struct{ *Resolver }\ntype errorsResolver struct{ *Resolver }\ntype forcedResolverResolver struct{ *Resolver }\ntype modelMethodsResolver struct{ *Resolver }\ntype mutationResolver struct{ *Resolver }\ntype overlappingFieldsResolver struct{ *Resolver }\ntype panicsResolver struct{ *Resolver }\ntype petResolver struct{ *Resolver }\ntype primitiveResolver struct{ *Resolver }\ntype primitiveStringResolver struct{ *Resolver }\ntype queryResolver struct{ *Resolver }\ntype subscriptionResolver struct{ *Resolver }\ntype userResolver struct{ *Resolver }\ntype wrappedMapResolver struct{ *Resolver }\ntype wrappedSliceResolver struct{ *Resolver }\n"
  },
  {
    "path": "codegen/testserver/followschema/response_extension_test.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestResponseExtension(t *testing.T) {\n\tresolvers := &Stub{}\n\tresolvers.QueryResolver.Valid = func(ctx context.Context) (s string, e error) {\n\t\treturn \"Ok\", nil\n\t}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tsrv.AroundResponses(func(ctx context.Context, next graphql.ResponseHandler) *graphql.Response {\n\t\tgraphql.RegisterExtension(ctx, \"example\", \"value\")\n\n\t\treturn next(ctx)\n\t})\n\n\tc := client.New(srv)\n\n\traw, _ := c.RawPost(`query { valid }`)\n\trequire.Equal(t, \"value\", raw.Extensions[\"example\"])\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/root_.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n}\n\ntype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\ntype ResolverRoot interface {\n\tBackedByInterface() BackedByInterfaceResolver\n\tDeferModel() DeferModelResolver\n\tErrors() ErrorsResolver\n\tForcedResolver() ForcedResolverResolver\n\tModelMethods() ModelMethodsResolver\n\tMutation() MutationResolver\n\tOverlappingFields() OverlappingFieldsResolver\n\tPanics() PanicsResolver\n\tPet() PetResolver\n\tPrimitive() PrimitiveResolver\n\tPrimitiveString() PrimitiveStringResolver\n\tQuery() QueryResolver\n\tSubscription() SubscriptionResolver\n\tUser() UserResolver\n\tWrappedMap() WrappedMapResolver\n\tWrappedSlice() WrappedSliceResolver\n\tFieldsOrderInput() FieldsOrderInputResolver\n}\n\ntype DirectiveRoot struct {\n\tCustom        func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error)\n\tDefer         func(ctx context.Context, obj any, next graphql.Resolver, ifArg *bool, label *string) (res any, err error)\n\tDirective1    func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error)\n\tDirective2    func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error)\n\tDirective3    func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error)\n\tLength        func(ctx context.Context, obj any, next graphql.Resolver, min int, max *int, message *string) (res any, err error)\n\tLogged        func(ctx context.Context, obj any, next graphql.Resolver, id string) (res any, err error)\n\tMakeNil       func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error)\n\tMakeTypedNil  func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error)\n\tNoop          func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error)\n\tOrder1        func(ctx context.Context, obj any, next graphql.Resolver, location string) (res any, err error)\n\tOrder2        func(ctx context.Context, obj any, next graphql.Resolver, location string) (res any, err error)\n\tPopulate      func(ctx context.Context, obj any, next graphql.Resolver, value string) (res any, err error)\n\tRange         func(ctx context.Context, obj any, next graphql.Resolver, min *int, max *int) (res any, err error)\n\tToNull        func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error)\n\tUnimplemented func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error)\n}\n\ntype ComplexityRoot struct {\n\tA struct {\n\t\tID func(childComplexity int) int\n\t}\n\n\tAIt struct {\n\t\tID func(childComplexity int) int\n\t}\n\n\tAbIt struct {\n\t\tID func(childComplexity int) int\n\t}\n\n\tAutobind struct {\n\t\tIdInt func(childComplexity int) int\n\t\tIdStr func(childComplexity int) int\n\t\tInt   func(childComplexity int) int\n\t\tInt32 func(childComplexity int) int\n\t\tInt64 func(childComplexity int) int\n\t}\n\n\tB struct {\n\t\tID func(childComplexity int) int\n\t}\n\n\tBackedByInterface struct {\n\t\tID                      func(childComplexity int) int\n\t\tThisShouldBind          func(childComplexity int) int\n\t\tThisShouldBindWithError func(childComplexity int) int\n\t}\n\n\tCat struct {\n\t\tCatBreed func(childComplexity int) int\n\t\tSize     func(childComplexity int) int\n\t\tSpecies  func(childComplexity int) int\n\t}\n\n\tCheckIssue896 struct {\n\t\tID func(childComplexity int) int\n\t}\n\n\tCircle struct {\n\t\tArea        func(childComplexity int) int\n\t\tCoordinates func(childComplexity int) int\n\t\tRadius      func(childComplexity int) int\n\t}\n\n\tConcreteNodeA struct {\n\t\tChild func(childComplexity int) int\n\t\tID    func(childComplexity int) int\n\t\tName  func(childComplexity int) int\n\t}\n\n\tConcreteNodeInterface struct {\n\t\tChild func(childComplexity int) int\n\t\tID    func(childComplexity int) int\n\t}\n\n\tContent_Post struct {\n\t\tFoo func(childComplexity int) int\n\t}\n\n\tContent_User struct {\n\t\tFoo func(childComplexity int) int\n\t}\n\n\tCoordinates struct {\n\t\tX func(childComplexity int) int\n\t\tY func(childComplexity int) int\n\t}\n\n\tDefaultParametersMirror struct {\n\t\tFalsyBoolean  func(childComplexity int) int\n\t\tTruthyBoolean func(childComplexity int) int\n\t}\n\n\tDeferModel struct {\n\t\tID     func(childComplexity int) int\n\t\tName   func(childComplexity int) int\n\t\tValues func(childComplexity int) int\n\t}\n\n\tDog struct {\n\t\tDogBreed func(childComplexity int) int\n\t\tSize     func(childComplexity int) int\n\t\tSpecies  func(childComplexity int) int\n\t}\n\n\tEmbeddedCase1 struct {\n\t\tExportedEmbeddedPointerExportedMethod func(childComplexity int) int\n\t}\n\n\tEmbeddedCase2 struct {\n\t\tUnexportedEmbeddedPointerExportedMethod func(childComplexity int) int\n\t}\n\n\tEmbeddedCase3 struct {\n\t\tUnexportedEmbeddedInterfaceExportedMethod func(childComplexity int) int\n\t}\n\n\tEmbeddedDefaultScalar struct {\n\t\tValue func(childComplexity int) int\n\t}\n\n\tEmbeddedPointer struct {\n\t\tID    func(childComplexity int) int\n\t\tTitle func(childComplexity int) int\n\t}\n\n\tError struct {\n\t\tErrorOnNonRequiredField func(childComplexity int) int\n\t\tErrorOnRequiredField    func(childComplexity int) int\n\t\tID                      func(childComplexity int) int\n\t\tNilOnRequiredField      func(childComplexity int) int\n\t}\n\n\tErrors struct {\n\t\tA func(childComplexity int) int\n\t\tB func(childComplexity int) int\n\t\tC func(childComplexity int) int\n\t\tD func(childComplexity int) int\n\t\tE func(childComplexity int) int\n\t}\n\n\tFieldsOrderPayload struct {\n\t\tFirstFieldValue func(childComplexity int) int\n\t}\n\n\tForcedResolver struct {\n\t\tField func(childComplexity int) int\n\t}\n\n\tHorse struct {\n\t\tHorseBreed func(childComplexity int) int\n\t\tSize       func(childComplexity int) int\n\t\tSpecies    func(childComplexity int) int\n\t}\n\n\tInnerObject struct {\n\t\tID func(childComplexity int) int\n\t}\n\n\tInvalidIdentifier struct {\n\t\tID func(childComplexity int) int\n\t}\n\n\tIt struct {\n\t\tID func(childComplexity int) int\n\t}\n\n\tLoopA struct {\n\t\tB func(childComplexity int) int\n\t}\n\n\tLoopB struct {\n\t\tA func(childComplexity int) int\n\t}\n\n\tMap struct {\n\t\tID func(childComplexity int) int\n\t}\n\n\tMapNested struct {\n\t\tValue func(childComplexity int) int\n\t}\n\n\tMapStringInterfaceType struct {\n\t\tA      func(childComplexity int) int\n\t\tB      func(childComplexity int) int\n\t\tC      func(childComplexity int) int\n\t\tNested func(childComplexity int) int\n\t}\n\n\tModelMethods struct {\n\t\tNoContext     func(childComplexity int) int\n\t\tResolverField func(childComplexity int) int\n\t\tWithContext   func(childComplexity int) int\n\t}\n\n\tMutation struct {\n\t\tDefaultInput          func(childComplexity int, input DefaultInput) int\n\t\tIssue4053             func(childComplexity int, input *Issue4053Input1) int\n\t\tOverrideValueViaInput func(childComplexity int, input FieldsOrderInput) int\n\t\tUpdateProduct         func(childComplexity int, id string, name *string, price *float64) int\n\t\tUpdatePtrToPtr        func(childComplexity int, input UpdatePtrToPtrOuter) int\n\t\tUpdateSomething       func(childComplexity int, input SpecialInput) int\n\t}\n\n\tObjectDirectives struct {\n\t\tNullableText func(childComplexity int) int\n\t\tOrder        func(childComplexity int) int\n\t\tText         func(childComplexity int) int\n\t}\n\n\tObjectDirectivesWithCustomGoModel struct {\n\t\tNullableText func(childComplexity int) int\n\t}\n\n\tOuterObject struct {\n\t\tInner func(childComplexity int) int\n\t}\n\n\tOverlappingFields struct {\n\t\tFoo    func(childComplexity int) int\n\t\tNewFoo func(childComplexity int) int\n\t\tOldFoo func(childComplexity int) int\n\t}\n\n\tPanics struct {\n\t\tArgUnmarshal       func(childComplexity int, u []MarshalPanic) int\n\t\tFieldFuncMarshal   func(childComplexity int, u []MarshalPanic) int\n\t\tFieldScalarMarshal func(childComplexity int) int\n\t}\n\n\tPet struct {\n\t\tFriends func(childComplexity int, limit *int) int\n\t\tID      func(childComplexity int) int\n\t}\n\n\tPrimitive struct {\n\t\tSquared func(childComplexity int) int\n\t\tValue   func(childComplexity int) int\n\t}\n\n\tPrimitiveString struct {\n\t\tDoubled func(childComplexity int) int\n\t\tLen     func(childComplexity int) int\n\t\tValue   func(childComplexity int) int\n\t}\n\n\tPtrToAnyContainer struct {\n\t\tBinding  func(childComplexity int) int\n\t\tPtrToAny func(childComplexity int) int\n\t}\n\n\tPtrToPtrInner struct {\n\t\tKey   func(childComplexity int) int\n\t\tValue func(childComplexity int) int\n\t}\n\n\tPtrToPtrOuter struct {\n\t\tInner       func(childComplexity int) int\n\t\tName        func(childComplexity int) int\n\t\tStupidInner func(childComplexity int) int\n\t}\n\n\tPtrToSliceContainer struct {\n\t\tPtrToSlice func(childComplexity int) int\n\t}\n\n\tQuery struct {\n\t\tAnimal                           func(childComplexity int) int\n\t\tAutobind                         func(childComplexity int) int\n\t\tCollision                        func(childComplexity int) int\n\t\tDefaultParameters                func(childComplexity int, falsyBoolean *bool, truthyBoolean *bool) int\n\t\tDefaultScalar                    func(childComplexity int, arg string) int\n\t\tDeferMultiple                    func(childComplexity int) int\n\t\tDeferSingle                      func(childComplexity int) int\n\t\tDeprecatedField                  func(childComplexity int) int\n\t\tDirectiveArg                     func(childComplexity int, arg string) int\n\t\tDirectiveDouble                  func(childComplexity int) int\n\t\tDirectiveField                   func(childComplexity int) int\n\t\tDirectiveFieldDef                func(childComplexity int, ret string) int\n\t\tDirectiveInput                   func(childComplexity int, arg InputDirectives) int\n\t\tDirectiveInputNullable           func(childComplexity int, arg *InputDirectives) int\n\t\tDirectiveInputOuter              func(childComplexity int, arg OuterWrapperInput) int\n\t\tDirectiveInputType               func(childComplexity int, arg InnerInput) int\n\t\tDirectiveNullableArg             func(childComplexity int, arg *int, arg2 *int, arg3 *string) int\n\t\tDirectiveObject                  func(childComplexity int) int\n\t\tDirectiveObjectWithCustomGoModel func(childComplexity int) int\n\t\tDirectiveSingleNullableArg       func(childComplexity int, arg1 *string) int\n\t\tDirectiveUnimplemented           func(childComplexity int) int\n\t\tDog                              func(childComplexity int) int\n\t\tEmbeddedCase1                    func(childComplexity int) int\n\t\tEmbeddedCase2                    func(childComplexity int) int\n\t\tEmbeddedCase3                    func(childComplexity int) int\n\t\tEnumInInput                      func(childComplexity int, input *InputWithEnumValue) int\n\t\tErrorBubble                      func(childComplexity int) int\n\t\tErrorBubbleList                  func(childComplexity int) int\n\t\tErrorList                        func(childComplexity int) int\n\t\tErrors                           func(childComplexity int) int\n\t\tFallback                         func(childComplexity int, arg FallbackToStringEncoding) int\n\t\tFieldWithDeprecatedArg           func(childComplexity int, oldArg *int, newArg *int) int\n\t\tFilterProducts                   func(childComplexity int, query *string, category *string, minPrice *int) int\n\t\tFindProducts                     func(childComplexity int, query *string, category *string, minPrice *int) int\n\t\tInfinity                         func(childComplexity int) int\n\t\tInputNullableSlice               func(childComplexity int, arg []string) int\n\t\tInputOmittable                   func(childComplexity int, arg OmittableInput) int\n\t\tInputSlice                       func(childComplexity int, arg []string) int\n\t\tInvalid                          func(childComplexity int) int\n\t\tInvalidIdentifier                func(childComplexity int) int\n\t\tIssue896a                        func(childComplexity int) int\n\t\tMapInput                         func(childComplexity int, input map[string]any) int\n\t\tMapNestedMapSlice                func(childComplexity int, input map[string]any) int\n\t\tMapNestedStringInterface         func(childComplexity int, in *NestedMapInput) int\n\t\tMapStringInterface               func(childComplexity int, in map[string]any) int\n\t\tModelMethods                     func(childComplexity int) int\n\t\tNestedInputs                     func(childComplexity int, input [][]*OuterInput) int\n\t\tNestedOutputs                    func(childComplexity int) int\n\t\tNoShape                          func(childComplexity int) int\n\t\tNoShapeTypedNil                  func(childComplexity int) int\n\t\tNode                             func(childComplexity int) int\n\t\tNotAnInterface                   func(childComplexity int) int\n\t\tNullableArg                      func(childComplexity int, arg *int) int\n\t\tOptionalUnion                    func(childComplexity int) int\n\t\tOverlapping                      func(childComplexity int) int\n\t\tPanics                           func(childComplexity int) int\n\t\tPrimitiveObject                  func(childComplexity int) int\n\t\tPrimitiveStringObject            func(childComplexity int) int\n\t\tPtrToAnyContainer                func(childComplexity int) int\n\t\tPtrToSliceContainer              func(childComplexity int) int\n\t\tRecursive                        func(childComplexity int, input *RecursiveInputSlice) int\n\t\tScalarSlice                      func(childComplexity int) int\n\t\tSearchMixed                      func(childComplexity int, query *string, category *string, minPrice *int, limit *int, offset *int, sortBy *string) int\n\t\tSearchProducts                   func(childComplexity int, query *string, category *string, minPrice *int) int\n\t\tSearchProductsNormal             func(childComplexity int, filters map[string]any) int\n\t\tSearchRequired                   func(childComplexity int, name string, age int) int\n\t\tSearchWithDefaults               func(childComplexity int, query *string, limit *int, includeArchived *bool) int\n\t\tSearchWithDirectives             func(childComplexity int, oldField *string, newField *string) int\n\t\tShapeUnion                       func(childComplexity int) int\n\t\tShapes                           func(childComplexity int) int\n\t\tSkipInclude                      func(childComplexity int) int\n\t\tSlices                           func(childComplexity int) int\n\t\tStringFromContextFunction        func(childComplexity int) int\n\t\tStringFromContextInterface       func(childComplexity int) int\n\t\tUser                             func(childComplexity int, id int) int\n\t\tVOkCaseNil                       func(childComplexity int) int\n\t\tVOkCaseValue                     func(childComplexity int) int\n\t\tValid                            func(childComplexity int) int\n\t\tValidType                        func(childComplexity int) int\n\t\tVariadicModel                    func(childComplexity int) int\n\t\tWrappedMap                       func(childComplexity int) int\n\t\tWrappedScalar                    func(childComplexity int) int\n\t\tWrappedSlice                     func(childComplexity int) int\n\t\tWrappedStruct                    func(childComplexity int) int\n\t}\n\n\tRectangle struct {\n\t\tArea        func(childComplexity int) int\n\t\tCoordinates func(childComplexity int) int\n\t\tLength      func(childComplexity int) int\n\t\tWidth       func(childComplexity int) int\n\t}\n\n\tSize struct {\n\t\tHeight func(childComplexity int) int\n\t\tWeight func(childComplexity int) int\n\t}\n\n\tSkipIncludeTestType struct {\n\t\tA func(childComplexity int) int\n\t\tB func(childComplexity int) int\n\t}\n\n\tSlices struct {\n\t\tTest1 func(childComplexity int) int\n\t\tTest2 func(childComplexity int) int\n\t\tTest3 func(childComplexity int) int\n\t\tTest4 func(childComplexity int) int\n\t}\n\n\tSubscription struct {\n\t\tDirectiveArg           func(childComplexity int, arg string) int\n\t\tDirectiveDouble        func(childComplexity int) int\n\t\tDirectiveNullableArg   func(childComplexity int, arg *int, arg2 *int, arg3 *string) int\n\t\tDirectiveUnimplemented func(childComplexity int) int\n\t\tErrorRequired          func(childComplexity int) int\n\t\tInitPayload            func(childComplexity int) int\n\t\tIssue896b              func(childComplexity int) int\n\t\tUpdated                func(childComplexity int) int\n\t}\n\n\tUser struct {\n\t\tCreated func(childComplexity int) int\n\t\tFriends func(childComplexity int) int\n\t\tID      func(childComplexity int) int\n\t\tPets    func(childComplexity int, limit *int) int\n\t\tUpdated func(childComplexity int) int\n\t}\n\n\tVOkCaseNil struct {\n\t\tValue func(childComplexity int) int\n\t}\n\n\tVOkCaseValue struct {\n\t\tValue func(childComplexity int) int\n\t}\n\n\tValidType struct {\n\t\tDifferentCase      func(childComplexity int) int\n\t\tDifferentCaseOld   func(childComplexity int) int\n\t\tValidArgs          func(childComplexity int, breakArg string, defaultArg string, funcArg string, interfaceArg string, selectArg string, caseArg string, deferArg string, goArg string, mapArg string, structArg string, chanArg string, elseArg string, gotoArg string, packageArg string, switchArg string, constArg string, fallthroughArg string, ifArg string, rangeArg string, typeArg string, continueArg string, forArg string, importArg string, returnArg string, varArg string, _ string) int\n\t\tValidInputKeywords func(childComplexity int, input *ValidInput) int\n\t}\n\n\tVariadicModel struct {\n\t\tValue func(childComplexity int, rank int) int\n\t}\n\n\tWrappedMap struct {\n\t\tGet func(childComplexity int, key string) int\n\t}\n\n\tWrappedSlice struct {\n\t\tGet func(childComplexity int, idx int) int\n\t}\n\n\tWrappedStruct struct {\n\t\tDesc func(childComplexity int) int\n\t\tName func(childComplexity int) int\n\t}\n\n\tXXIt struct {\n\t\tID func(childComplexity int) int\n\t}\n\n\tXxIt struct {\n\t\tID func(childComplexity int) int\n\t}\n\n\tAsdfIt struct {\n\t\tID func(childComplexity int) int\n\t}\n\n\tIIt struct {\n\t\tID func(childComplexity int) int\n\t}\n}\n\ntype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.SchemaData != nil {\n\t\treturn e.SchemaData\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := newExecutionContext(nil, e, nil)\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"A.id\":\n\t\tif e.ComplexityRoot.A.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.A.ID(childComplexity), true\n\n\tcase \"AIt.id\":\n\t\tif e.ComplexityRoot.AIt.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.AIt.ID(childComplexity), true\n\n\tcase \"AbIt.id\":\n\t\tif e.ComplexityRoot.AbIt.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.AbIt.ID(childComplexity), true\n\n\tcase \"Autobind.idInt\":\n\t\tif e.ComplexityRoot.Autobind.IdInt == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Autobind.IdInt(childComplexity), true\n\n\tcase \"Autobind.idStr\":\n\t\tif e.ComplexityRoot.Autobind.IdStr == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Autobind.IdStr(childComplexity), true\n\n\tcase \"Autobind.int\":\n\t\tif e.ComplexityRoot.Autobind.Int == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Autobind.Int(childComplexity), true\n\n\tcase \"Autobind.int32\":\n\t\tif e.ComplexityRoot.Autobind.Int32 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Autobind.Int32(childComplexity), true\n\n\tcase \"Autobind.int64\":\n\t\tif e.ComplexityRoot.Autobind.Int64 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Autobind.Int64(childComplexity), true\n\n\tcase \"B.id\":\n\t\tif e.ComplexityRoot.B.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.B.ID(childComplexity), true\n\n\tcase \"BackedByInterface.id\":\n\t\tif e.ComplexityRoot.BackedByInterface.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.BackedByInterface.ID(childComplexity), true\n\n\tcase \"BackedByInterface.thisShouldBind\":\n\t\tif e.ComplexityRoot.BackedByInterface.ThisShouldBind == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.BackedByInterface.ThisShouldBind(childComplexity), true\n\n\tcase \"BackedByInterface.thisShouldBindWithError\":\n\t\tif e.ComplexityRoot.BackedByInterface.ThisShouldBindWithError == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.BackedByInterface.ThisShouldBindWithError(childComplexity), true\n\n\tcase \"Cat.catBreed\":\n\t\tif e.ComplexityRoot.Cat.CatBreed == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Cat.CatBreed(childComplexity), true\n\n\tcase \"Cat.size\":\n\t\tif e.ComplexityRoot.Cat.Size == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Cat.Size(childComplexity), true\n\n\tcase \"Cat.species\":\n\t\tif e.ComplexityRoot.Cat.Species == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Cat.Species(childComplexity), true\n\n\tcase \"CheckIssue896.id\":\n\t\tif e.ComplexityRoot.CheckIssue896.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.CheckIssue896.ID(childComplexity), true\n\n\tcase \"Circle.area\":\n\t\tif e.ComplexityRoot.Circle.Area == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Circle.Area(childComplexity), true\n\n\tcase \"Circle.coordinates\":\n\t\tif e.ComplexityRoot.Circle.Coordinates == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Circle.Coordinates(childComplexity), true\n\n\tcase \"Circle.radius\":\n\t\tif e.ComplexityRoot.Circle.Radius == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Circle.Radius(childComplexity), true\n\n\tcase \"ConcreteNodeA.child\":\n\t\tif e.ComplexityRoot.ConcreteNodeA.Child == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.ConcreteNodeA.Child(childComplexity), true\n\n\tcase \"ConcreteNodeA.id\":\n\t\tif e.ComplexityRoot.ConcreteNodeA.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.ConcreteNodeA.ID(childComplexity), true\n\n\tcase \"ConcreteNodeA.name\":\n\t\tif e.ComplexityRoot.ConcreteNodeA.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.ConcreteNodeA.Name(childComplexity), true\n\n\tcase \"ConcreteNodeInterface.child\":\n\t\tif e.ComplexityRoot.ConcreteNodeInterface.Child == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.ConcreteNodeInterface.Child(childComplexity), true\n\n\tcase \"ConcreteNodeInterface.id\":\n\t\tif e.ComplexityRoot.ConcreteNodeInterface.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.ConcreteNodeInterface.ID(childComplexity), true\n\n\tcase \"Content_Post.foo\":\n\t\tif e.ComplexityRoot.Content_Post.Foo == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Content_Post.Foo(childComplexity), true\n\n\tcase \"Content_User.foo\":\n\t\tif e.ComplexityRoot.Content_User.Foo == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Content_User.Foo(childComplexity), true\n\n\tcase \"Coordinates.x\":\n\t\tif e.ComplexityRoot.Coordinates.X == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Coordinates.X(childComplexity), true\n\n\tcase \"Coordinates.y\":\n\t\tif e.ComplexityRoot.Coordinates.Y == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Coordinates.Y(childComplexity), true\n\n\tcase \"DefaultParametersMirror.falsyBoolean\":\n\t\tif e.ComplexityRoot.DefaultParametersMirror.FalsyBoolean == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.DefaultParametersMirror.FalsyBoolean(childComplexity), true\n\n\tcase \"DefaultParametersMirror.truthyBoolean\":\n\t\tif e.ComplexityRoot.DefaultParametersMirror.TruthyBoolean == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.DefaultParametersMirror.TruthyBoolean(childComplexity), true\n\n\tcase \"DeferModel.id\":\n\t\tif e.ComplexityRoot.DeferModel.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.DeferModel.ID(childComplexity), true\n\n\tcase \"DeferModel.name\":\n\t\tif e.ComplexityRoot.DeferModel.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.DeferModel.Name(childComplexity), true\n\n\tcase \"DeferModel.values\":\n\t\tif e.ComplexityRoot.DeferModel.Values == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.DeferModel.Values(childComplexity), true\n\n\tcase \"Dog.dogBreed\":\n\t\tif e.ComplexityRoot.Dog.DogBreed == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Dog.DogBreed(childComplexity), true\n\n\tcase \"Dog.size\":\n\t\tif e.ComplexityRoot.Dog.Size == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Dog.Size(childComplexity), true\n\n\tcase \"Dog.species\":\n\t\tif e.ComplexityRoot.Dog.Species == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Dog.Species(childComplexity), true\n\n\tcase \"EmbeddedCase1.exportedEmbeddedPointerExportedMethod\":\n\t\tif e.ComplexityRoot.EmbeddedCase1.ExportedEmbeddedPointerExportedMethod == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.EmbeddedCase1.ExportedEmbeddedPointerExportedMethod(childComplexity), true\n\n\tcase \"EmbeddedCase2.unexportedEmbeddedPointerExportedMethod\":\n\t\tif e.ComplexityRoot.EmbeddedCase2.UnexportedEmbeddedPointerExportedMethod == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.EmbeddedCase2.UnexportedEmbeddedPointerExportedMethod(childComplexity), true\n\n\tcase \"EmbeddedCase3.unexportedEmbeddedInterfaceExportedMethod\":\n\t\tif e.ComplexityRoot.EmbeddedCase3.UnexportedEmbeddedInterfaceExportedMethod == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.EmbeddedCase3.UnexportedEmbeddedInterfaceExportedMethod(childComplexity), true\n\n\tcase \"EmbeddedDefaultScalar.value\":\n\t\tif e.ComplexityRoot.EmbeddedDefaultScalar.Value == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.EmbeddedDefaultScalar.Value(childComplexity), true\n\n\tcase \"EmbeddedPointer.ID\":\n\t\tif e.ComplexityRoot.EmbeddedPointer.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.EmbeddedPointer.ID(childComplexity), true\n\n\tcase \"EmbeddedPointer.Title\":\n\t\tif e.ComplexityRoot.EmbeddedPointer.Title == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.EmbeddedPointer.Title(childComplexity), true\n\n\tcase \"Error.errorOnNonRequiredField\":\n\t\tif e.ComplexityRoot.Error.ErrorOnNonRequiredField == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Error.ErrorOnNonRequiredField(childComplexity), true\n\n\tcase \"Error.errorOnRequiredField\":\n\t\tif e.ComplexityRoot.Error.ErrorOnRequiredField == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Error.ErrorOnRequiredField(childComplexity), true\n\n\tcase \"Error.id\":\n\t\tif e.ComplexityRoot.Error.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Error.ID(childComplexity), true\n\n\tcase \"Error.nilOnRequiredField\":\n\t\tif e.ComplexityRoot.Error.NilOnRequiredField == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Error.NilOnRequiredField(childComplexity), true\n\n\tcase \"Errors.a\":\n\t\tif e.ComplexityRoot.Errors.A == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Errors.A(childComplexity), true\n\n\tcase \"Errors.b\":\n\t\tif e.ComplexityRoot.Errors.B == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Errors.B(childComplexity), true\n\n\tcase \"Errors.c\":\n\t\tif e.ComplexityRoot.Errors.C == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Errors.C(childComplexity), true\n\n\tcase \"Errors.d\":\n\t\tif e.ComplexityRoot.Errors.D == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Errors.D(childComplexity), true\n\n\tcase \"Errors.e\":\n\t\tif e.ComplexityRoot.Errors.E == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Errors.E(childComplexity), true\n\n\tcase \"FieldsOrderPayload.firstFieldValue\":\n\t\tif e.ComplexityRoot.FieldsOrderPayload.FirstFieldValue == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.FieldsOrderPayload.FirstFieldValue(childComplexity), true\n\n\tcase \"ForcedResolver.field\":\n\t\tif e.ComplexityRoot.ForcedResolver.Field == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.ForcedResolver.Field(childComplexity), true\n\n\tcase \"Horse.horseBreed\":\n\t\tif e.ComplexityRoot.Horse.HorseBreed == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Horse.HorseBreed(childComplexity), true\n\n\tcase \"Horse.size\":\n\t\tif e.ComplexityRoot.Horse.Size == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Horse.Size(childComplexity), true\n\n\tcase \"Horse.species\":\n\t\tif e.ComplexityRoot.Horse.Species == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Horse.Species(childComplexity), true\n\n\tcase \"InnerObject.id\":\n\t\tif e.ComplexityRoot.InnerObject.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.InnerObject.ID(childComplexity), true\n\n\tcase \"InvalidIdentifier.id\":\n\t\tif e.ComplexityRoot.InvalidIdentifier.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.InvalidIdentifier.ID(childComplexity), true\n\n\tcase \"It.id\":\n\t\tif e.ComplexityRoot.It.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.It.ID(childComplexity), true\n\n\tcase \"LoopA.b\":\n\t\tif e.ComplexityRoot.LoopA.B == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.LoopA.B(childComplexity), true\n\n\tcase \"LoopB.a\":\n\t\tif e.ComplexityRoot.LoopB.A == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.LoopB.A(childComplexity), true\n\n\tcase \"Map.id\":\n\t\tif e.ComplexityRoot.Map.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Map.ID(childComplexity), true\n\n\tcase \"MapNested.value\":\n\t\tif e.ComplexityRoot.MapNested.Value == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MapNested.Value(childComplexity), true\n\n\tcase \"MapStringInterfaceType.a\":\n\t\tif e.ComplexityRoot.MapStringInterfaceType.A == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MapStringInterfaceType.A(childComplexity), true\n\n\tcase \"MapStringInterfaceType.b\":\n\t\tif e.ComplexityRoot.MapStringInterfaceType.B == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MapStringInterfaceType.B(childComplexity), true\n\n\tcase \"MapStringInterfaceType.c\":\n\t\tif e.ComplexityRoot.MapStringInterfaceType.C == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MapStringInterfaceType.C(childComplexity), true\n\n\tcase \"MapStringInterfaceType.nested\":\n\t\tif e.ComplexityRoot.MapStringInterfaceType.Nested == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MapStringInterfaceType.Nested(childComplexity), true\n\n\tcase \"ModelMethods.noContext\":\n\t\tif e.ComplexityRoot.ModelMethods.NoContext == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.ModelMethods.NoContext(childComplexity), true\n\n\tcase \"ModelMethods.resolverField\":\n\t\tif e.ComplexityRoot.ModelMethods.ResolverField == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.ModelMethods.ResolverField(childComplexity), true\n\n\tcase \"ModelMethods.withContext\":\n\t\tif e.ComplexityRoot.ModelMethods.WithContext == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.ModelMethods.WithContext(childComplexity), true\n\n\tcase \"Mutation.defaultInput\":\n\t\tif e.ComplexityRoot.Mutation.DefaultInput == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Mutation_defaultInput_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Mutation.DefaultInput(childComplexity, args[\"input\"].(DefaultInput)), true\n\n\tcase \"Mutation.issue4053\":\n\t\tif e.ComplexityRoot.Mutation.Issue4053 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Mutation_issue4053_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Mutation.Issue4053(childComplexity, args[\"input\"].(*Issue4053Input1)), true\n\n\tcase \"Mutation.overrideValueViaInput\":\n\t\tif e.ComplexityRoot.Mutation.OverrideValueViaInput == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Mutation_overrideValueViaInput_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Mutation.OverrideValueViaInput(childComplexity, args[\"input\"].(FieldsOrderInput)), true\n\n\tcase \"Mutation.updateProduct\":\n\t\tif e.ComplexityRoot.Mutation.UpdateProduct == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Mutation_updateProduct_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Mutation.UpdateProduct(childComplexity, args[\"id\"].(string), args[\"name\"].(*string), args[\"price\"].(*float64)), true\n\n\tcase \"Mutation.updatePtrToPtr\":\n\t\tif e.ComplexityRoot.Mutation.UpdatePtrToPtr == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Mutation_updatePtrToPtr_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Mutation.UpdatePtrToPtr(childComplexity, args[\"input\"].(UpdatePtrToPtrOuter)), true\n\n\tcase \"Mutation.updateSomething\":\n\t\tif e.ComplexityRoot.Mutation.UpdateSomething == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Mutation_updateSomething_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Mutation.UpdateSomething(childComplexity, args[\"input\"].(SpecialInput)), true\n\n\tcase \"ObjectDirectives.nullableText\":\n\t\tif e.ComplexityRoot.ObjectDirectives.NullableText == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.ObjectDirectives.NullableText(childComplexity), true\n\n\tcase \"ObjectDirectives.order\":\n\t\tif e.ComplexityRoot.ObjectDirectives.Order == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.ObjectDirectives.Order(childComplexity), true\n\n\tcase \"ObjectDirectives.text\":\n\t\tif e.ComplexityRoot.ObjectDirectives.Text == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.ObjectDirectives.Text(childComplexity), true\n\n\tcase \"ObjectDirectivesWithCustomGoModel.nullableText\":\n\t\tif e.ComplexityRoot.ObjectDirectivesWithCustomGoModel.NullableText == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.ObjectDirectivesWithCustomGoModel.NullableText(childComplexity), true\n\n\tcase \"OuterObject.inner\":\n\t\tif e.ComplexityRoot.OuterObject.Inner == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.OuterObject.Inner(childComplexity), true\n\n\tcase \"OverlappingFields.oneFoo\", \"OverlappingFields.twoFoo\":\n\t\tif e.ComplexityRoot.OverlappingFields.Foo == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.OverlappingFields.Foo(childComplexity), true\n\n\tcase \"OverlappingFields.newFoo\", \"OverlappingFields.new_foo\":\n\t\tif e.ComplexityRoot.OverlappingFields.NewFoo == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.OverlappingFields.NewFoo(childComplexity), true\n\n\tcase \"OverlappingFields.oldFoo\":\n\t\tif e.ComplexityRoot.OverlappingFields.OldFoo == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.OverlappingFields.OldFoo(childComplexity), true\n\n\tcase \"Panics.argUnmarshal\":\n\t\tif e.ComplexityRoot.Panics.ArgUnmarshal == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Panics_argUnmarshal_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Panics.ArgUnmarshal(childComplexity, args[\"u\"].([]MarshalPanic)), true\n\n\tcase \"Panics.fieldFuncMarshal\":\n\t\tif e.ComplexityRoot.Panics.FieldFuncMarshal == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Panics_fieldFuncMarshal_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Panics.FieldFuncMarshal(childComplexity, args[\"u\"].([]MarshalPanic)), true\n\n\tcase \"Panics.fieldScalarMarshal\":\n\t\tif e.ComplexityRoot.Panics.FieldScalarMarshal == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Panics.FieldScalarMarshal(childComplexity), true\n\n\tcase \"Pet.friends\":\n\t\tif e.ComplexityRoot.Pet.Friends == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Pet_friends_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Pet.Friends(childComplexity, args[\"limit\"].(*int)), true\n\n\tcase \"Pet.id\":\n\t\tif e.ComplexityRoot.Pet.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Pet.ID(childComplexity), true\n\n\tcase \"Primitive.squared\":\n\t\tif e.ComplexityRoot.Primitive.Squared == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Primitive.Squared(childComplexity), true\n\n\tcase \"Primitive.value\":\n\t\tif e.ComplexityRoot.Primitive.Value == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Primitive.Value(childComplexity), true\n\n\tcase \"PrimitiveString.doubled\":\n\t\tif e.ComplexityRoot.PrimitiveString.Doubled == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PrimitiveString.Doubled(childComplexity), true\n\n\tcase \"PrimitiveString.len\":\n\t\tif e.ComplexityRoot.PrimitiveString.Len == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PrimitiveString.Len(childComplexity), true\n\n\tcase \"PrimitiveString.value\":\n\t\tif e.ComplexityRoot.PrimitiveString.Value == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PrimitiveString.Value(childComplexity), true\n\n\tcase \"PtrToAnyContainer.binding\":\n\t\tif e.ComplexityRoot.PtrToAnyContainer.Binding == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PtrToAnyContainer.Binding(childComplexity), true\n\n\tcase \"PtrToAnyContainer.ptrToAny\":\n\t\tif e.ComplexityRoot.PtrToAnyContainer.PtrToAny == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PtrToAnyContainer.PtrToAny(childComplexity), true\n\n\tcase \"PtrToPtrInner.key\":\n\t\tif e.ComplexityRoot.PtrToPtrInner.Key == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PtrToPtrInner.Key(childComplexity), true\n\n\tcase \"PtrToPtrInner.value\":\n\t\tif e.ComplexityRoot.PtrToPtrInner.Value == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PtrToPtrInner.Value(childComplexity), true\n\n\tcase \"PtrToPtrOuter.inner\":\n\t\tif e.ComplexityRoot.PtrToPtrOuter.Inner == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PtrToPtrOuter.Inner(childComplexity), true\n\n\tcase \"PtrToPtrOuter.name\":\n\t\tif e.ComplexityRoot.PtrToPtrOuter.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PtrToPtrOuter.Name(childComplexity), true\n\n\tcase \"PtrToPtrOuter.stupidInner\":\n\t\tif e.ComplexityRoot.PtrToPtrOuter.StupidInner == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PtrToPtrOuter.StupidInner(childComplexity), true\n\n\tcase \"PtrToSliceContainer.ptrToSlice\":\n\t\tif e.ComplexityRoot.PtrToSliceContainer.PtrToSlice == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PtrToSliceContainer.PtrToSlice(childComplexity), true\n\n\tcase \"Query.animal\":\n\t\tif e.ComplexityRoot.Query.Animal == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Animal(childComplexity), true\n\n\tcase \"Query.autobind\":\n\t\tif e.ComplexityRoot.Query.Autobind == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Autobind(childComplexity), true\n\n\tcase \"Query.collision\":\n\t\tif e.ComplexityRoot.Query.Collision == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Collision(childComplexity), true\n\n\tcase \"Query.defaultParameters\":\n\t\tif e.ComplexityRoot.Query.DefaultParameters == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_defaultParameters_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DefaultParameters(childComplexity, args[\"falsyBoolean\"].(*bool), args[\"truthyBoolean\"].(*bool)), true\n\n\tcase \"Query.defaultScalar\":\n\t\tif e.ComplexityRoot.Query.DefaultScalar == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_defaultScalar_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DefaultScalar(childComplexity, args[\"arg\"].(string)), true\n\n\tcase \"Query.deferMultiple\":\n\t\tif e.ComplexityRoot.Query.DeferMultiple == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DeferMultiple(childComplexity), true\n\n\tcase \"Query.deferSingle\":\n\t\tif e.ComplexityRoot.Query.DeferSingle == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DeferSingle(childComplexity), true\n\n\tcase \"Query.deprecatedField\":\n\t\tif e.ComplexityRoot.Query.DeprecatedField == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DeprecatedField(childComplexity), true\n\n\tcase \"Query.directiveArg\":\n\t\tif e.ComplexityRoot.Query.DirectiveArg == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_directiveArg_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DirectiveArg(childComplexity, args[\"arg\"].(string)), true\n\n\tcase \"Query.directiveDouble\":\n\t\tif e.ComplexityRoot.Query.DirectiveDouble == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DirectiveDouble(childComplexity), true\n\n\tcase \"Query.directiveField\":\n\t\tif e.ComplexityRoot.Query.DirectiveField == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DirectiveField(childComplexity), true\n\n\tcase \"Query.directiveFieldDef\":\n\t\tif e.ComplexityRoot.Query.DirectiveFieldDef == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_directiveFieldDef_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DirectiveFieldDef(childComplexity, args[\"ret\"].(string)), true\n\n\tcase \"Query.directiveInput\":\n\t\tif e.ComplexityRoot.Query.DirectiveInput == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_directiveInput_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DirectiveInput(childComplexity, args[\"arg\"].(InputDirectives)), true\n\n\tcase \"Query.directiveInputNullable\":\n\t\tif e.ComplexityRoot.Query.DirectiveInputNullable == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_directiveInputNullable_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DirectiveInputNullable(childComplexity, args[\"arg\"].(*InputDirectives)), true\n\n\tcase \"Query.directiveInputOuter\":\n\t\tif e.ComplexityRoot.Query.DirectiveInputOuter == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_directiveInputOuter_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DirectiveInputOuter(childComplexity, args[\"arg\"].(OuterWrapperInput)), true\n\n\tcase \"Query.directiveInputType\":\n\t\tif e.ComplexityRoot.Query.DirectiveInputType == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_directiveInputType_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DirectiveInputType(childComplexity, args[\"arg\"].(InnerInput)), true\n\n\tcase \"Query.directiveNullableArg\":\n\t\tif e.ComplexityRoot.Query.DirectiveNullableArg == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_directiveNullableArg_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DirectiveNullableArg(childComplexity, args[\"arg\"].(*int), args[\"arg2\"].(*int), args[\"arg3\"].(*string)), true\n\n\tcase \"Query.directiveObject\":\n\t\tif e.ComplexityRoot.Query.DirectiveObject == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DirectiveObject(childComplexity), true\n\n\tcase \"Query.directiveObjectWithCustomGoModel\":\n\t\tif e.ComplexityRoot.Query.DirectiveObjectWithCustomGoModel == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DirectiveObjectWithCustomGoModel(childComplexity), true\n\n\tcase \"Query.directiveSingleNullableArg\":\n\t\tif e.ComplexityRoot.Query.DirectiveSingleNullableArg == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_directiveSingleNullableArg_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DirectiveSingleNullableArg(childComplexity, args[\"arg1\"].(*string)), true\n\n\tcase \"Query.directiveUnimplemented\":\n\t\tif e.ComplexityRoot.Query.DirectiveUnimplemented == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DirectiveUnimplemented(childComplexity), true\n\n\tcase \"Query.dog\":\n\t\tif e.ComplexityRoot.Query.Dog == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Dog(childComplexity), true\n\n\tcase \"Query.embeddedCase1\":\n\t\tif e.ComplexityRoot.Query.EmbeddedCase1 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.EmbeddedCase1(childComplexity), true\n\n\tcase \"Query.embeddedCase2\":\n\t\tif e.ComplexityRoot.Query.EmbeddedCase2 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.EmbeddedCase2(childComplexity), true\n\n\tcase \"Query.embeddedCase3\":\n\t\tif e.ComplexityRoot.Query.EmbeddedCase3 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.EmbeddedCase3(childComplexity), true\n\n\tcase \"Query.enumInInput\":\n\t\tif e.ComplexityRoot.Query.EnumInInput == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_enumInInput_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.EnumInInput(childComplexity, args[\"input\"].(*InputWithEnumValue)), true\n\n\tcase \"Query.errorBubble\":\n\t\tif e.ComplexityRoot.Query.ErrorBubble == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.ErrorBubble(childComplexity), true\n\n\tcase \"Query.errorBubbleList\":\n\t\tif e.ComplexityRoot.Query.ErrorBubbleList == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.ErrorBubbleList(childComplexity), true\n\n\tcase \"Query.errorList\":\n\t\tif e.ComplexityRoot.Query.ErrorList == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.ErrorList(childComplexity), true\n\n\tcase \"Query.errors\":\n\t\tif e.ComplexityRoot.Query.Errors == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Errors(childComplexity), true\n\n\tcase \"Query.fallback\":\n\t\tif e.ComplexityRoot.Query.Fallback == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_fallback_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Fallback(childComplexity, args[\"arg\"].(FallbackToStringEncoding)), true\n\n\tcase \"Query.fieldWithDeprecatedArg\":\n\t\tif e.ComplexityRoot.Query.FieldWithDeprecatedArg == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_fieldWithDeprecatedArg_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.FieldWithDeprecatedArg(childComplexity, args[\"oldArg\"].(*int), args[\"newArg\"].(*int)), true\n\n\tcase \"Query.filterProducts\":\n\t\tif e.ComplexityRoot.Query.FilterProducts == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_filterProducts_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.FilterProducts(childComplexity, args[\"query\"].(*string), args[\"category\"].(*string), args[\"minPrice\"].(*int)), true\n\n\tcase \"Query.findProducts\":\n\t\tif e.ComplexityRoot.Query.FindProducts == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_findProducts_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.FindProducts(childComplexity, args[\"query\"].(*string), args[\"category\"].(*string), args[\"minPrice\"].(*int)), true\n\n\tcase \"Query.infinity\":\n\t\tif e.ComplexityRoot.Query.Infinity == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Infinity(childComplexity), true\n\n\tcase \"Query.inputNullableSlice\":\n\t\tif e.ComplexityRoot.Query.InputNullableSlice == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_inputNullableSlice_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.InputNullableSlice(childComplexity, args[\"arg\"].([]string)), true\n\n\tcase \"Query.inputOmittable\":\n\t\tif e.ComplexityRoot.Query.InputOmittable == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_inputOmittable_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.InputOmittable(childComplexity, args[\"arg\"].(OmittableInput)), true\n\n\tcase \"Query.inputSlice\":\n\t\tif e.ComplexityRoot.Query.InputSlice == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_inputSlice_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.InputSlice(childComplexity, args[\"arg\"].([]string)), true\n\n\tcase \"Query.invalid\":\n\t\tif e.ComplexityRoot.Query.Invalid == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Invalid(childComplexity), true\n\n\tcase \"Query.invalidIdentifier\":\n\t\tif e.ComplexityRoot.Query.InvalidIdentifier == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.InvalidIdentifier(childComplexity), true\n\n\tcase \"Query.issue896a\":\n\t\tif e.ComplexityRoot.Query.Issue896a == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Issue896a(childComplexity), true\n\n\tcase \"Query.mapInput\":\n\t\tif e.ComplexityRoot.Query.MapInput == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_mapInput_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.MapInput(childComplexity, args[\"input\"].(map[string]any)), true\n\n\tcase \"Query.mapNestedMapSlice\":\n\t\tif e.ComplexityRoot.Query.MapNestedMapSlice == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_mapNestedMapSlice_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.MapNestedMapSlice(childComplexity, args[\"input\"].(map[string]any)), true\n\n\tcase \"Query.mapNestedStringInterface\":\n\t\tif e.ComplexityRoot.Query.MapNestedStringInterface == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_mapNestedStringInterface_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.MapNestedStringInterface(childComplexity, args[\"in\"].(*NestedMapInput)), true\n\n\tcase \"Query.mapStringInterface\":\n\t\tif e.ComplexityRoot.Query.MapStringInterface == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_mapStringInterface_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.MapStringInterface(childComplexity, args[\"in\"].(map[string]any)), true\n\n\tcase \"Query.modelMethods\":\n\t\tif e.ComplexityRoot.Query.ModelMethods == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.ModelMethods(childComplexity), true\n\n\tcase \"Query.nestedInputs\":\n\t\tif e.ComplexityRoot.Query.NestedInputs == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_nestedInputs_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.NestedInputs(childComplexity, args[\"input\"].([][]*OuterInput)), true\n\n\tcase \"Query.nestedOutputs\":\n\t\tif e.ComplexityRoot.Query.NestedOutputs == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.NestedOutputs(childComplexity), true\n\n\tcase \"Query.noShape\":\n\t\tif e.ComplexityRoot.Query.NoShape == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.NoShape(childComplexity), true\n\n\tcase \"Query.noShapeTypedNil\":\n\t\tif e.ComplexityRoot.Query.NoShapeTypedNil == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.NoShapeTypedNil(childComplexity), true\n\n\tcase \"Query.node\":\n\t\tif e.ComplexityRoot.Query.Node == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Node(childComplexity), true\n\n\tcase \"Query.notAnInterface\":\n\t\tif e.ComplexityRoot.Query.NotAnInterface == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.NotAnInterface(childComplexity), true\n\n\tcase \"Query.nullableArg\":\n\t\tif e.ComplexityRoot.Query.NullableArg == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_nullableArg_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.NullableArg(childComplexity, args[\"arg\"].(*int)), true\n\n\tcase \"Query.optionalUnion\":\n\t\tif e.ComplexityRoot.Query.OptionalUnion == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.OptionalUnion(childComplexity), true\n\n\tcase \"Query.overlapping\":\n\t\tif e.ComplexityRoot.Query.Overlapping == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Overlapping(childComplexity), true\n\n\tcase \"Query.panics\":\n\t\tif e.ComplexityRoot.Query.Panics == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Panics(childComplexity), true\n\n\tcase \"Query.primitiveObject\":\n\t\tif e.ComplexityRoot.Query.PrimitiveObject == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.PrimitiveObject(childComplexity), true\n\n\tcase \"Query.primitiveStringObject\":\n\t\tif e.ComplexityRoot.Query.PrimitiveStringObject == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.PrimitiveStringObject(childComplexity), true\n\n\tcase \"Query.ptrToAnyContainer\":\n\t\tif e.ComplexityRoot.Query.PtrToAnyContainer == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.PtrToAnyContainer(childComplexity), true\n\n\tcase \"Query.ptrToSliceContainer\":\n\t\tif e.ComplexityRoot.Query.PtrToSliceContainer == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.PtrToSliceContainer(childComplexity), true\n\n\tcase \"Query.recursive\":\n\t\tif e.ComplexityRoot.Query.Recursive == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_recursive_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Recursive(childComplexity, args[\"input\"].(*RecursiveInputSlice)), true\n\n\tcase \"Query.scalarSlice\":\n\t\tif e.ComplexityRoot.Query.ScalarSlice == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.ScalarSlice(childComplexity), true\n\n\tcase \"Query.searchMixed\":\n\t\tif e.ComplexityRoot.Query.SearchMixed == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_searchMixed_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.SearchMixed(childComplexity, args[\"query\"].(*string), args[\"category\"].(*string), args[\"minPrice\"].(*int), args[\"limit\"].(*int), args[\"offset\"].(*int), args[\"sortBy\"].(*string)), true\n\n\tcase \"Query.searchProducts\":\n\t\tif e.ComplexityRoot.Query.SearchProducts == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_searchProducts_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.SearchProducts(childComplexity, args[\"query\"].(*string), args[\"category\"].(*string), args[\"minPrice\"].(*int)), true\n\n\tcase \"Query.searchProductsNormal\":\n\t\tif e.ComplexityRoot.Query.SearchProductsNormal == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_searchProductsNormal_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.SearchProductsNormal(childComplexity, args[\"filters\"].(map[string]any)), true\n\n\tcase \"Query.searchRequired\":\n\t\tif e.ComplexityRoot.Query.SearchRequired == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_searchRequired_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.SearchRequired(childComplexity, args[\"name\"].(string), args[\"age\"].(int)), true\n\n\tcase \"Query.searchWithDefaults\":\n\t\tif e.ComplexityRoot.Query.SearchWithDefaults == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_searchWithDefaults_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.SearchWithDefaults(childComplexity, args[\"query\"].(*string), args[\"limit\"].(*int), args[\"includeArchived\"].(*bool)), true\n\n\tcase \"Query.searchWithDirectives\":\n\t\tif e.ComplexityRoot.Query.SearchWithDirectives == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_searchWithDirectives_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.SearchWithDirectives(childComplexity, args[\"oldField\"].(*string), args[\"newField\"].(*string)), true\n\n\tcase \"Query.shapeUnion\":\n\t\tif e.ComplexityRoot.Query.ShapeUnion == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.ShapeUnion(childComplexity), true\n\n\tcase \"Query.shapes\":\n\t\tif e.ComplexityRoot.Query.Shapes == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Shapes(childComplexity), true\n\n\tcase \"Query.skipInclude\":\n\t\tif e.ComplexityRoot.Query.SkipInclude == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.SkipInclude(childComplexity), true\n\n\tcase \"Query.slices\":\n\t\tif e.ComplexityRoot.Query.Slices == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Slices(childComplexity), true\n\n\tcase \"Query.stringFromContextFunction\":\n\t\tif e.ComplexityRoot.Query.StringFromContextFunction == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.StringFromContextFunction(childComplexity), true\n\n\tcase \"Query.stringFromContextInterface\":\n\t\tif e.ComplexityRoot.Query.StringFromContextInterface == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.StringFromContextInterface(childComplexity), true\n\n\tcase \"Query.user\":\n\t\tif e.ComplexityRoot.Query.User == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_user_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.User(childComplexity, args[\"id\"].(int)), true\n\n\tcase \"Query.vOkCaseNil\":\n\t\tif e.ComplexityRoot.Query.VOkCaseNil == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.VOkCaseNil(childComplexity), true\n\n\tcase \"Query.vOkCaseValue\":\n\t\tif e.ComplexityRoot.Query.VOkCaseValue == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.VOkCaseValue(childComplexity), true\n\n\tcase \"Query.valid\":\n\t\tif e.ComplexityRoot.Query.Valid == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Valid(childComplexity), true\n\n\tcase \"Query.validType\":\n\t\tif e.ComplexityRoot.Query.ValidType == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.ValidType(childComplexity), true\n\n\tcase \"Query.variadicModel\":\n\t\tif e.ComplexityRoot.Query.VariadicModel == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.VariadicModel(childComplexity), true\n\n\tcase \"Query.wrappedMap\":\n\t\tif e.ComplexityRoot.Query.WrappedMap == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.WrappedMap(childComplexity), true\n\n\tcase \"Query.wrappedScalar\":\n\t\tif e.ComplexityRoot.Query.WrappedScalar == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.WrappedScalar(childComplexity), true\n\n\tcase \"Query.wrappedSlice\":\n\t\tif e.ComplexityRoot.Query.WrappedSlice == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.WrappedSlice(childComplexity), true\n\n\tcase \"Query.wrappedStruct\":\n\t\tif e.ComplexityRoot.Query.WrappedStruct == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.WrappedStruct(childComplexity), true\n\n\tcase \"Rectangle.area\":\n\t\tif e.ComplexityRoot.Rectangle.Area == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Rectangle.Area(childComplexity), true\n\n\tcase \"Rectangle.coordinates\":\n\t\tif e.ComplexityRoot.Rectangle.Coordinates == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Rectangle.Coordinates(childComplexity), true\n\n\tcase \"Rectangle.length\":\n\t\tif e.ComplexityRoot.Rectangle.Length == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Rectangle.Length(childComplexity), true\n\n\tcase \"Rectangle.width\":\n\t\tif e.ComplexityRoot.Rectangle.Width == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Rectangle.Width(childComplexity), true\n\n\tcase \"Size.height\":\n\t\tif e.ComplexityRoot.Size.Height == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Size.Height(childComplexity), true\n\n\tcase \"Size.weight\":\n\t\tif e.ComplexityRoot.Size.Weight == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Size.Weight(childComplexity), true\n\n\tcase \"SkipIncludeTestType.a\":\n\t\tif e.ComplexityRoot.SkipIncludeTestType.A == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.SkipIncludeTestType.A(childComplexity), true\n\n\tcase \"SkipIncludeTestType.b\":\n\t\tif e.ComplexityRoot.SkipIncludeTestType.B == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.SkipIncludeTestType.B(childComplexity), true\n\n\tcase \"Slices.test1\":\n\t\tif e.ComplexityRoot.Slices.Test1 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Slices.Test1(childComplexity), true\n\n\tcase \"Slices.test2\":\n\t\tif e.ComplexityRoot.Slices.Test2 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Slices.Test2(childComplexity), true\n\n\tcase \"Slices.test3\":\n\t\tif e.ComplexityRoot.Slices.Test3 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Slices.Test3(childComplexity), true\n\n\tcase \"Slices.test4\":\n\t\tif e.ComplexityRoot.Slices.Test4 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Slices.Test4(childComplexity), true\n\n\tcase \"Subscription.directiveArg\":\n\t\tif e.ComplexityRoot.Subscription.DirectiveArg == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Subscription_directiveArg_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Subscription.DirectiveArg(childComplexity, args[\"arg\"].(string)), true\n\n\tcase \"Subscription.directiveDouble\":\n\t\tif e.ComplexityRoot.Subscription.DirectiveDouble == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Subscription.DirectiveDouble(childComplexity), true\n\n\tcase \"Subscription.directiveNullableArg\":\n\t\tif e.ComplexityRoot.Subscription.DirectiveNullableArg == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Subscription_directiveNullableArg_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Subscription.DirectiveNullableArg(childComplexity, args[\"arg\"].(*int), args[\"arg2\"].(*int), args[\"arg3\"].(*string)), true\n\n\tcase \"Subscription.directiveUnimplemented\":\n\t\tif e.ComplexityRoot.Subscription.DirectiveUnimplemented == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Subscription.DirectiveUnimplemented(childComplexity), true\n\n\tcase \"Subscription.errorRequired\":\n\t\tif e.ComplexityRoot.Subscription.ErrorRequired == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Subscription.ErrorRequired(childComplexity), true\n\n\tcase \"Subscription.initPayload\":\n\t\tif e.ComplexityRoot.Subscription.InitPayload == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Subscription.InitPayload(childComplexity), true\n\n\tcase \"Subscription.issue896b\":\n\t\tif e.ComplexityRoot.Subscription.Issue896b == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Subscription.Issue896b(childComplexity), true\n\n\tcase \"Subscription.updated\":\n\t\tif e.ComplexityRoot.Subscription.Updated == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Subscription.Updated(childComplexity), true\n\n\tcase \"User.created\":\n\t\tif e.ComplexityRoot.User.Created == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.Created(childComplexity), true\n\n\tcase \"User.friends\":\n\t\tif e.ComplexityRoot.User.Friends == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.Friends(childComplexity), true\n\n\tcase \"User.id\":\n\t\tif e.ComplexityRoot.User.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.ID(childComplexity), true\n\n\tcase \"User.pets\":\n\t\tif e.ComplexityRoot.User.Pets == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_User_pets_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.Pets(childComplexity, args[\"limit\"].(*int)), true\n\n\tcase \"User.updated\":\n\t\tif e.ComplexityRoot.User.Updated == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.Updated(childComplexity), true\n\n\tcase \"VOkCaseNil.value\":\n\t\tif e.ComplexityRoot.VOkCaseNil.Value == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.VOkCaseNil.Value(childComplexity), true\n\n\tcase \"VOkCaseValue.value\":\n\t\tif e.ComplexityRoot.VOkCaseValue.Value == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.VOkCaseValue.Value(childComplexity), true\n\n\tcase \"ValidType.differentCase\":\n\t\tif e.ComplexityRoot.ValidType.DifferentCase == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.ValidType.DifferentCase(childComplexity), true\n\n\tcase \"ValidType.different_case\":\n\t\tif e.ComplexityRoot.ValidType.DifferentCaseOld == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.ValidType.DifferentCaseOld(childComplexity), true\n\n\tcase \"ValidType.validArgs\":\n\t\tif e.ComplexityRoot.ValidType.ValidArgs == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_ValidType_validArgs_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.ValidType.ValidArgs(childComplexity, args[\"break\"].(string), args[\"default\"].(string), args[\"func\"].(string), args[\"interface\"].(string), args[\"select\"].(string), args[\"case\"].(string), args[\"defer\"].(string), args[\"go\"].(string), args[\"map\"].(string), args[\"struct\"].(string), args[\"chan\"].(string), args[\"else\"].(string), args[\"goto\"].(string), args[\"package\"].(string), args[\"switch\"].(string), args[\"const\"].(string), args[\"fallthrough\"].(string), args[\"if\"].(string), args[\"range\"].(string), args[\"type\"].(string), args[\"continue\"].(string), args[\"for\"].(string), args[\"import\"].(string), args[\"return\"].(string), args[\"var\"].(string), args[\"_\"].(string)), true\n\n\tcase \"ValidType.validInputKeywords\":\n\t\tif e.ComplexityRoot.ValidType.ValidInputKeywords == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_ValidType_validInputKeywords_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.ValidType.ValidInputKeywords(childComplexity, args[\"input\"].(*ValidInput)), true\n\n\tcase \"VariadicModel.value\":\n\t\tif e.ComplexityRoot.VariadicModel.Value == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_VariadicModel_value_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.VariadicModel.Value(childComplexity, args[\"rank\"].(int)), true\n\n\tcase \"WrappedMap.get\":\n\t\tif e.ComplexityRoot.WrappedMap.Get == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_WrappedMap_get_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.WrappedMap.Get(childComplexity, args[\"key\"].(string)), true\n\n\tcase \"WrappedSlice.get\":\n\t\tif e.ComplexityRoot.WrappedSlice.Get == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_WrappedSlice_get_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.WrappedSlice.Get(childComplexity, args[\"idx\"].(int)), true\n\n\tcase \"WrappedStruct.desc\":\n\t\tif e.ComplexityRoot.WrappedStruct.Desc == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.WrappedStruct.Desc(childComplexity), true\n\n\tcase \"WrappedStruct.name\":\n\t\tif e.ComplexityRoot.WrappedStruct.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.WrappedStruct.Name(childComplexity), true\n\n\tcase \"XXIt.id\":\n\t\tif e.ComplexityRoot.XXIt.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.XXIt.ID(childComplexity), true\n\n\tcase \"XxIt.id\":\n\t\tif e.ComplexityRoot.XxIt.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.XxIt.ID(childComplexity), true\n\n\tcase \"asdfIt.id\":\n\t\tif e.ComplexityRoot.AsdfIt.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.AsdfIt.ID(childComplexity), true\n\n\tcase \"iIt.id\":\n\t\tif e.ComplexityRoot.IIt.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.IIt.ID(childComplexity), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap(\n\t\tec.unmarshalInputChanges,\n\t\tec.unmarshalInputDefaultInput,\n\t\tec.unmarshalInputDirectiveInput,\n\t\tec.unmarshalInputFieldsOrderInput,\n\t\tec.unmarshalInputInnerDirectives,\n\t\tec.unmarshalInputInnerInput,\n\t\tec.unmarshalInputInputDirectives,\n\t\tec.unmarshalInputInputWithEnumValue,\n\t\tec.unmarshalInputIssue4053Input1,\n\t\tec.unmarshalInputIssue4053Input2,\n\t\tec.unmarshalInputMapNestedInput,\n\t\tec.unmarshalInputMapNestedMapSliceInput,\n\t\tec.unmarshalInputMapStringInterfaceInput,\n\t\tec.unmarshalInputNestedInput,\n\t\tec.unmarshalInputNestedMapInput,\n\t\tec.unmarshalInputOmittableInput,\n\t\tec.unmarshalInputOuterInput,\n\t\tec.unmarshalInputOuterWrapperInput,\n\t\tec.unmarshalInputRecursiveInputSlice,\n\t\tec.unmarshalInputRequiredFilters,\n\t\tec.unmarshalInputSearchFilters,\n\t\tec.unmarshalInputSearchWithDefaults,\n\t\tec.unmarshalInputSpecialInput,\n\t\tec.unmarshalInputUpdateProductInput,\n\t\tec.unmarshalInputUpdatePtrToPtrInner,\n\t\tec.unmarshalInputUpdatePtrToPtrOuter,\n\t\tec.unmarshalInputValidInput,\n\t)\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\tcase ast.Mutation:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tif !first {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tfirst = false\n\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\tdata := ec._Mutation(ctx, opCtx.Operation.SelectionSet)\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\n\t\t\treturn &graphql.Response{\n\t\t\t\tData: buf.Bytes(),\n\t\t\t}\n\t\t}\n\tcase ast.Subscription:\n\t\tnext := ec._Subscription(ctx, opCtx.Operation.SelectionSet)\n\n\t\tvar buf bytes.Buffer\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tbuf.Reset()\n\t\t\tdata := next(ctx)\n\n\t\t\tif data == nil {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tdata.MarshalGQL(&buf)\n\n\t\t\treturn &graphql.Response{\n\t\t\t\tData: buf.Bytes(),\n\t\t\t}\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"inline_arguments_transformed_schema.graphql\", Input: `directive @custom on ARGUMENT_DEFINITION\ndirective @defer(if: Boolean = true, label: String) on FRAGMENT_SPREAD | INLINE_FRAGMENT\ndirective @directive1 on FIELD_DEFINITION\ndirective @directive2 on FIELD_DEFINITION\ndirective @directive3 on INPUT_OBJECT\ndirective @goField(forceResolver: Boolean, name: String, omittable: Boolean, type: String) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION\ndirective @goModel(model: String, models: [String!]) on OBJECT | INPUT_OBJECT | SCALAR | ENUM | INTERFACE | UNION\ndirective @inlineArguments on ARGUMENT_DEFINITION\ndirective @length(min: Int!, max: Int, message: String) on ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION | FIELD_DEFINITION\ndirective @logged(id: UUID!) on FIELD\ndirective @makeNil on FIELD_DEFINITION\ndirective @makeTypedNil on FIELD_DEFINITION\ndirective @noop on ARGUMENT_DEFINITION\ndirective @order1(location: String!) repeatable on FIELD_DEFINITION | OBJECT\ndirective @order2(location: String!) on OBJECT\ndirective @populate(value: String!) on ARGUMENT_DEFINITION\ndirective @range(min: Int = 0, max: Int) on ARGUMENT_DEFINITION\ndirective @toNull on ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION | FIELD_DEFINITION\ndirective @unimplemented on FIELD_DEFINITION\ntype A {\n\tid: ID!\n}\ntype AIt {\n\tid: ID!\n}\ntype AbIt {\n\tid: ID!\n}\ninterface Animal {\n\tspecies: String!\n\tsize: Size!\n}\nscalar Any\ntype Autobind {\n\tint: Int!\n\tint32: Int!\n\tint64: Int!\n\tidStr: ID!\n\tidInt: ID!\n}\ntype B {\n\tid: ID!\n}\ntype BackedByInterface {\n\tid: String!\n\tthisShouldBind: String!\n\tthisShouldBindWithError: String!\n}\nscalar Bytes\ntype Cat implements Animal {\n\tspecies: String!\n\tsize: Size!\n\tcatBreed: String!\n}\ninput Changes @goModel(model: \"map[string]interface{}\") {\n\ta: Int\n\tb: Int\n}\ntype CheckIssue896 {\n\tid: Int\n}\ntype Circle implements Shape {\n\tradius: Float\n\tarea: Float\n\tcoordinates: Coordinates\n}\ntype ConcreteNodeA implements Node {\n\tid: ID!\n\tchild: Node!\n\tname: String!\n}\n\"\"\"\n Implements the Node interface with another interface \n\"\"\"\ntype ConcreteNodeInterface implements Node {\n\tid: ID!\n\tchild: Node!\n}\nunion Content_Child = Content_User | Content_Post\ntype Content_Post {\n\tfoo: String\n}\ntype Content_User {\n\tfoo: String\n}\ntype Coordinates {\n\tx: Float!\n\ty: Float!\n}\nscalar CustomScalar @goModel(model: \"followschema.CustomScalar\")\ninput DefaultInput {\n\tfalsyBoolean: Boolean = false\n\ttruthyBoolean: Boolean = true\n}\ntype DefaultParametersMirror {\n\tfalsyBoolean: Boolean\n\ttruthyBoolean: Boolean\n}\n\"\"\"\n This doesnt have an implementation in the typemap, so it should act like a string \n\"\"\"\nscalar DefaultScalarImplementation\ntype DeferModel {\n\tid: ID!\n\tname: String!\n\tvalues: [String!]! @goField(forceResolver: true)\n}\ninput DirectiveInput @goModel(model: \"map[string]interface{}\") {\n\toldField: String @deprecated(reason: \"Use newField instead\")\n\tnewField: String\n}\ntype Dog implements Animal {\n\tspecies: String!\n\tsize: Size!\n\tdogBreed: String!\n}\nscalar Email\ntype EmbeddedCase1 @goModel(model: \"followschema.EmbeddedCase1\") {\n\texportedEmbeddedPointerExportedMethod: String!\n}\ntype EmbeddedCase2 @goModel(model: \"followschema.EmbeddedCase2\") {\n\tunexportedEmbeddedPointerExportedMethod: String!\n}\ntype EmbeddedCase3 @goModel(model: \"followschema.EmbeddedCase3\") {\n\tunexportedEmbeddedInterfaceExportedMethod: String!\n}\ntype EmbeddedDefaultScalar {\n\tvalue: DefaultScalarImplementation\n}\ntype EmbeddedPointer @goModel(model: \"followschema.EmbeddedPointerModel\") {\n\tID: String\n\tTitle: String\n}\nenum EnumTest {\n\tOK\n\tNG\n}\ntype Error {\n\tid: ID!\n\terrorOnNonRequiredField: String\n\terrorOnRequiredField: String!\n\tnilOnRequiredField: String!\n}\ntype Errors {\n\ta: Error!\n\tb: Error!\n\tc: Error!\n\td: Error!\n\te: Error!\n}\nenum FallbackToStringEncoding {\n\tA\n\tB\n\tC\n}\ninput FieldsOrderInput {\n\tfirstField: String\n\toverrideFirstField: String\n}\ntype FieldsOrderPayload {\n\tfirstFieldValue: String\n}\ntype ForcedResolver {\n\tfield: Circle @goField(forceResolver: true)\n}\ntype Horse implements Mammalian & Animal {\n\tspecies: String!\n\tsize: Size!\n\thorseBreed: String!\n}\ninput InnerDirectives {\n\tmessage: String! @length(min: 1, message: \"not valid\")\n}\ninput InnerInput {\n\tid: Int!\n}\ntype InnerObject {\n\tid: Int!\n}\ninput InputDirectives @directive3 {\n\ttext: String! @length(min: 0, max: 7, message: \"not valid\")\n\tnullableText: String @toNull\n\tinner: InnerDirectives!\n\tinnerNullable: InnerDirectives\n\tthirdParty: ThirdParty @length(min: 0, max: 7)\n}\ninput InputWithEnumValue {\n\tenum: EnumTest!\n}\ntype InvalidIdentifier {\n\tid: Int!\n}\ninput Issue4053Input1 {\n\tinput2: Issue4053Input2\n}\ninput Issue4053Input2 {\n\thello: String\n\thelloWithDefault: String = \"world\"\n}\ntype It {\n\tid: ID!\n}\ntype LoopA {\n\tb: LoopB!\n}\ntype LoopB {\n\ta: LoopA!\n}\ninterface Mammalian implements Animal {\n\tspecies: String!\n\tsize: Size!\n}\n\"\"\"\nSince gqlgen defines default implementation for a Map scalar, this tests that the builtin is _not_\nadded to the TypeMap\n\"\"\"\ntype Map {\n\tid: ID!\n}\ntype MapNested @goModel(model: \"followschema.MapNested\") {\n\tvalue: CustomScalar!\n}\ninput MapNestedInput @goModel(model: \"followschema.MapNested\") {\n\tvalue: CustomScalar!\n}\ninput MapNestedMapSliceInput @goModel(model: \"map[string]interface{}\") {\n\tname: String\n\trecurse: [MapNestedMapSliceInput!]\n}\ninput MapStringInterfaceInput @goModel(model: \"map[string]interface{}\") {\n\ta: String!\n\tb: Int\n\tc: CustomScalar\n\tnested: MapNestedInput\n}\ntype MapStringInterfaceType @goModel(model: \"map[string]interface{}\") {\n\ta: String\n\tb: Int\n\tc: CustomScalar\n\tnested: MapNested\n}\nscalar MarshalPanic\ntype ModelMethods {\n\tresolverField: Boolean!\n\tnoContext: Boolean!\n\twithContext: Boolean!\n}\ntype Mutation {\n\tdefaultInput(input: DefaultInput!): DefaultParametersMirror!\n\toverrideValueViaInput(input: FieldsOrderInput!): FieldsOrderPayload!\n\tupdateProduct(id: ID!, name: String, price: Float): String!\n\tissue4053(input: Issue4053Input1): Boolean!\n\tupdateSomething(input: SpecialInput!): String!\n\tupdatePtrToPtr(input: UpdatePtrToPtrOuter!): PtrToPtrOuter!\n}\ninput NestedInput {\n\tfield: Email!\n}\ninput NestedMapInput {\n\tmap: MapStringInterfaceInput\n}\ninterface Node {\n\tid: ID!\n\tchild: Node!\n}\ntype ObjectDirectives @order1(location: \"order1_1\") @order1(location: \"order1_2\") @order2(location: \"order2_1\") {\n\ttext: String! @length(min: 0, max: 7, message: \"not valid\")\n\tnullableText: String @toNull\n\torder: [String!]!\n}\ntype ObjectDirectivesWithCustomGoModel {\n\tnullableText: String @toNull\n}\ninput OmittableInput {\n\tid: ID @goField(omittable: true)\n\tbool: Boolean @goField(omittable: true)\n\tstr: String @goField(omittable: true)\n\tint: Int @goField(omittable: true)\n\ttime: Time @goField(omittable: true)\n\tenum: Status @goField(omittable: true)\n\tscalar: ThirdParty @goField(omittable: true)\n\tobject: OuterInput @goField(omittable: true)\n}\ninput OuterInput {\n\tinner: InnerInput!\n}\ntype OuterObject {\n\tinner: InnerObject!\n}\ninput OuterWrapperInput {\n\tinner: InputDirectives!\n}\ntype OverlappingFields {\n\toneFoo: Int! @goField(name: \"foo\")\n\ttwoFoo: Int! @goField(name: \"foo\")\n\toldFoo: Int! @goField(name: \"foo\", forceResolver: true)\n\tnewFoo: Int!\n\tnew_foo: Int!\n}\ntype Panics {\n\tfieldScalarMarshal: [MarshalPanic!]!\n\tfieldFuncMarshal(u: [MarshalPanic!]!): [MarshalPanic!]!\n\targUnmarshal(u: [MarshalPanic!]!): Boolean!\n}\ntype Pet {\n\tid: Int!\n\tfriends(limit: Int): [Pet!] @goField(forceResolver: true)\n}\ntype Primitive {\n\tvalue: Int!\n\tsquared: Int!\n}\ntype PrimitiveString {\n\tvalue: String!\n\tdoubled: String!\n\tlen: Int!\n}\ntype PtrToAnyContainer {\n\tptrToAny: Any\n\tbinding: Any\n}\ntype PtrToPtrInner {\n\tkey: String!\n\tvalue: String!\n}\ntype PtrToPtrOuter {\n\tname: String!\n\tinner: PtrToPtrInner\n\tstupidInner: PtrToPtrInner\n}\ntype PtrToSliceContainer {\n\tptrToSlice: [String!]\n}\ntype Query {\n\tinvalidIdentifier: InvalidIdentifier\n\tcollision: It\n\tmapInput(input: Changes): Boolean\n\trecursive(input: RecursiveInputSlice): Boolean\n\tnestedInputs(input: [[OuterInput]] = [[{inner:{id:1}}]]): Boolean\n\tnestedOutputs: [[OuterObject]]\n\tmodelMethods: ModelMethods\n\tuser(id: Int!): User!\n\tnullableArg(arg: Int = 123): String\n\tinputSlice(arg: [String!]!): Boolean!\n\tinputNullableSlice(arg: [String!]): Boolean!\n\tinputOmittable(arg: OmittableInput!): String!\n\tshapeUnion: ShapeUnion!\n\tautobind: Autobind\n\tdeprecatedField: String! @deprecated(reason: \"test deprecated directive\")\n\tfieldWithDeprecatedArg(oldArg: Int @deprecated(reason: \"old arg\"), newArg: Int): String\n\toverlapping: OverlappingFields\n\tdefaultParameters(falsyBoolean: Boolean = false, truthyBoolean: Boolean = true): DefaultParametersMirror!\n\tdeferSingle: DeferModel\n\tdeferMultiple: [DeferModel!]\n\tdirectiveArg(arg: String! @length(min: 1, max: 255, message: \"invalid length\")): String\n\tdirectiveNullableArg(arg: Int @range(min: 0), arg2: Int @range, arg3: String @toNull): String\n\tdirectiveSingleNullableArg(arg1: String @populate(value: \"test\") @noop): String\n\tdirectiveInputNullable(arg: InputDirectives): String\n\tdirectiveInput(arg: InputDirectives!): String\n\tdirectiveInputType(arg: InnerInput! @custom): String\n\tdirectiveInputOuter(arg: OuterWrapperInput!): String\n\tdirectiveObject: ObjectDirectives @order1(location: \"Query_field\")\n\tdirectiveObjectWithCustomGoModel: ObjectDirectivesWithCustomGoModel\n\tdirectiveFieldDef(ret: String!): String! @length(min: 1, message: \"not valid\")\n\tdirectiveField: String\n\tdirectiveDouble: String @directive1 @directive2\n\tdirectiveUnimplemented: String @unimplemented\n\tembeddedCase1: EmbeddedCase1\n\tembeddedCase2: EmbeddedCase2\n\tembeddedCase3: EmbeddedCase3\n\tenumInInput(input: InputWithEnumValue): EnumTest!\n\tsearchProducts(query: String, category: String, minPrice: Int): [String!]!\n\tsearchRequired(name: String!, age: Int!): [String!]!\n\tsearchProductsNormal(filters: SearchFilters): [String!]!\n\tsearchWithDefaults(query: String = \"default search\", limit: Int = 20, includeArchived: Boolean = false): [String!]!\n\tsearchMixed(query: String, category: String, minPrice: Int, limit: Int = 10, offset: Int = 0, sortBy: String): [String!]!\n\tfilterProducts(query: String, category: String, minPrice: Int): [String!]!\n\tfindProducts(query: String, category: String, minPrice: Int): [String!]!\n\tsearchWithDirectives(oldField: String @deprecated(reason: \"Use newField instead\"), newField: String): [String!]!\n\tshapes: [Shape]\n\tnoShape: Shape @makeNil\n\tnode: Node!\n\tnoShapeTypedNil: Shape @makeTypedNil\n\tanimal: Animal @makeTypedNil\n\tnotAnInterface: BackedByInterface\n\tdog: Dog\n\tissue896a: [CheckIssue896!]\n\tmapStringInterface(in: MapStringInterfaceInput): MapStringInterfaceType\n\tmapNestedStringInterface(in: NestedMapInput): MapStringInterfaceType\n\tmapNestedMapSlice(input: MapNestedMapSliceInput): Boolean\n\terrorBubble: Error\n\terrorBubbleList: [Error!]\n\terrorList: [Error]\n\terrors: Errors\n\tvalid: String!\n\tinvalid: String!\n\tpanics: Panics\n\tprimitiveObject: [Primitive!]!\n\tprimitiveStringObject: [PrimitiveString!]!\n\tptrToAnyContainer: PtrToAnyContainer!\n\tptrToSliceContainer: PtrToSliceContainer!\n\tinfinity: Float!\n\tstringFromContextInterface: StringFromContextInterface!\n\tstringFromContextFunction: StringFromContextFunction!\n\tdefaultScalar(arg: DefaultScalarImplementation! = \"default\"): DefaultScalarImplementation!\n\tskipInclude: SkipIncludeTestType\n\tslices: Slices\n\tscalarSlice: Bytes!\n\tfallback(arg: FallbackToStringEncoding!): FallbackToStringEncoding!\n\toptionalUnion: TestUnion\n\tvOkCaseValue: VOkCaseValue\n\tvOkCaseNil: VOkCaseNil\n\tvalidType: ValidType\n\tvariadicModel: VariadicModel\n\twrappedStruct: WrappedStruct!\n\twrappedScalar: WrappedScalar!\n\twrappedMap: WrappedMap!\n\twrappedSlice: WrappedSlice!\n}\ntype Rectangle implements Shape {\n\tlength: Float\n\twidth: Float\n\tarea: Float\n\tcoordinates: Coordinates\n}\ninput RecursiveInputSlice {\n\tself: [RecursiveInputSlice!]\n}\ninput RequiredFilters @goModel(model: \"map[string]interface{}\") {\n\tname: String!\n\tage: Int!\n}\ninput SearchFilters @goModel(model: \"map[string]interface{}\") {\n\tquery: String\n\tcategory: String\n\tminPrice: Int\n}\ninput SearchWithDefaults @goModel(model: \"map[string]interface{}\") {\n\tquery: String = \"default search\"\n\tlimit: Int = 20\n\tincludeArchived: Boolean = false\n}\ninterface Shape {\n\tarea: Float\n\tcoordinates: Coordinates\n}\nunion ShapeUnion @goModel(model: \"followschema.ShapeUnion\") = Circle | Rectangle\ntype Size {\n\theight: Int!\n\tweight: Int!\n}\ntype SkipIncludeTestType {\n\ta: String\n\tb: String\n}\ntype Slices {\n\ttest1: [String]\n\ttest2: [String!]\n\ttest3: [String]!\n\ttest4: [String!]!\n}\ninput SpecialInput {\n\tnesting: NestedInput!\n}\nenum Status {\n\tOK\n\tERROR\n}\nscalar StringFromContextFunction\nscalar StringFromContextInterface\ntype Subscription {\n\tupdated: String!\n\tinitPayload: String!\n\tdirectiveArg(arg: String! @length(min: 1, max: 255, message: \"invalid length\")): String\n\tdirectiveNullableArg(arg: Int @range(min: 0), arg2: Int @range, arg3: String @toNull): String\n\tdirectiveDouble: String @directive1 @directive2\n\tdirectiveUnimplemented: String @unimplemented\n\tissue896b: [CheckIssue896]\n\terrorRequired: Error!\n}\nunion TestUnion = A | B\nscalar ThirdParty @goModel(model: \"followschema.ThirdParty\")\nscalar Time\nscalar UUID\ninput UpdateProductInput @goModel(model: \"map[string]interface{}\") {\n\tid: ID!\n\tname: String\n\tprice: Float\n}\ninput UpdatePtrToPtrInner {\n\tkey: String\n\tvalue: String\n}\ninput UpdatePtrToPtrOuter {\n\tname: String\n\tinner: UpdatePtrToPtrInner\n\tstupidInner: UpdatePtrToPtrInner\n}\ntype User {\n\tid: Int!\n\tfriends: [User!]! @goField(forceResolver: true)\n\tcreated: Time!\n\tupdated: Time\n\tpets(limit: Int): [Pet!] @goField(forceResolver: true)\n}\ntype VOkCaseNil @goModel(model: \"followschema.VOkCaseNil\") {\n\tvalue: String\n}\ntype VOkCaseValue @goModel(model: \"followschema.VOkCaseValue\") {\n\tvalue: String\n}\ninput ValidInput {\n\tbreak: String!\n\tdefault: String!\n\tfunc: String!\n\tinterface: String!\n\tselect: String!\n\tcase: String!\n\tdefer: String!\n\tgo: String!\n\tmap: String!\n\tstruct: String!\n\tchan: String!\n\telse: String!\n\tgoto: String!\n\tpackage: String!\n\tswitch: String!\n\tconst: String!\n\tfallthrough: String!\n\tif: String!\n\trange: String!\n\ttype: String!\n\tcontinue: String!\n\tfor: String!\n\timport: String!\n\treturn: String!\n\tvar: String!\n\t_: String! @goField(name: \"Underscore\")\n}\n\"\"\"\n These things are all valid, but without care generate invalid go code \n\"\"\"\ntype ValidType {\n\tdifferentCase: String!\n\tdifferent_case: String! @goField(name: \"DifferentCaseOld\")\n\tvalidInputKeywords(input: ValidInput): Boolean!\n\tvalidArgs(break: String!, default: String!, func: String!, interface: String!, select: String!, case: String!, defer: String!, go: String!, map: String!, struct: String!, chan: String!, else: String!, goto: String!, package: String!, switch: String!, const: String!, fallthrough: String!, if: String!, range: String!, type: String!, continue: String!, for: String!, import: String!, return: String!, var: String!, _: String!): Boolean!\n}\ntype VariadicModel {\n\tvalue(rank: Int!): String\n}\ntype WrappedMap {\n\tget(key: String!): String!\n}\nscalar WrappedScalar\ntype WrappedSlice {\n\tget(idx: Int!): String!\n}\ntype WrappedStruct {\n\tname: WrappedScalar!\n\tdesc: WrappedScalar\n}\ntype XXIt {\n\tid: ID!\n}\ntype XxIt {\n\tid: ID!\n}\ntype asdfIt {\n\tid: ID!\n}\ntype iIt {\n\tid: ID!\n}\n`, BuiltIn: true},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n"
  },
  {
    "path": "codegen/testserver/followschema/scalar_context.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNStringFromContextFunction2string(ctx context.Context, v any) (string, error) {\n\tres, err := UnmarshalStringFromContextFunction(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNStringFromContextFunction2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := MarshalStringFromContextFunction(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn graphql.WrapContextMarshaler(ctx, res)\n}\n\nfunc (ec *executionContext) unmarshalNStringFromContextInterface2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐStringFromContextInterface(ctx context.Context, v any) (StringFromContextInterface, error) {\n\tvar res StringFromContextInterface\n\terr := res.UnmarshalGQLContext(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNStringFromContextInterface2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐStringFromContextInterface(ctx context.Context, sel ast.SelectionSet, v StringFromContextInterface) graphql.Marshaler {\n\treturn graphql.WrapContextMarshaler(ctx, v)\n}\n\nfunc (ec *executionContext) unmarshalNStringFromContextInterface2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐStringFromContextInterface(ctx context.Context, v any) (*StringFromContextInterface, error) {\n\tvar res = new(StringFromContextInterface)\n\terr := res.UnmarshalGQLContext(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNStringFromContextInterface2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐStringFromContextInterface(ctx context.Context, sel ast.SelectionSet, v *StringFromContextInterface) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn graphql.WrapContextMarshaler(ctx, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/followschema/scalar_context.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"io\"\n\t\"strconv\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\ntype StringFromContextInterface struct {\n\tOperationName string\n}\n\nvar (\n\t_ graphql.ContextMarshaler   = StringFromContextInterface{}\n\t_ graphql.ContextUnmarshaler = (*StringFromContextInterface)(nil)\n)\n\nfunc (StringFromContextInterface) MarshalGQLContext(ctx context.Context, w io.Writer) error {\n\tio.WriteString(w, strconv.Quote(graphql.GetFieldContext(ctx).Field.Name))\n\treturn nil\n}\n\nfunc (i *StringFromContextInterface) UnmarshalGQLContext(ctx context.Context, v any) error {\n\ti.OperationName = graphql.GetFieldContext(ctx).Field.Name\n\treturn nil\n}\n\nfunc MarshalStringFromContextFunction(v string) graphql.ContextMarshaler {\n\treturn graphql.ContextWriterFunc(func(ctx context.Context, w io.Writer) error {\n\t\tio.WriteString(w, strconv.Quote(graphql.GetFieldContext(ctx).Field.Name))\n\t\treturn nil\n\t})\n}\n\nfunc UnmarshalStringFromContextFunction(ctx context.Context, v any) (string, error) {\n\treturn graphql.GetFieldContext(ctx).Field.Name, nil\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/scalar_context.graphql",
    "content": "extend type Query {\n    infinity: Float!\n    stringFromContextInterface: StringFromContextInterface!\n    stringFromContextFunction: StringFromContextFunction!\n}\n\nscalar StringFromContextInterface\nscalar StringFromContextFunction\n"
  },
  {
    "path": "codegen/testserver/followschema/scalar_context_test.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"math\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestFloatInfAndNaN(t *testing.T) {\n\tresolvers := &Stub{}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tresolvers.QueryResolver.Infinity = func(ctx context.Context) (float64, error) {\n\t\treturn math.Inf(-1), nil\n\t}\n\n\tt.Run(\"errors on marshaller with context\", func(t *testing.T) {\n\t\terr := c.Post(`query { infinity }`, nil)\n\t\trequire.Error(t, err)\n\t})\n}\n\nfunc TestContextPassedToMarshal(t *testing.T) {\n\tresolvers := &Stub{}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tresolvers.QueryResolver.StringFromContextInterface = func(ctx context.Context) (*StringFromContextInterface, error) {\n\t\treturn &StringFromContextInterface{}, nil\n\t}\n\tresolvers.QueryResolver.StringFromContextFunction = func(ctx context.Context) (string, error) {\n\t\treturn \"\", nil\n\t}\n\n\tvar res struct {\n\t\tStringFromContextInterface string\n\t\tStringFromContextFunction  string\n\t}\n\terr := c.Post(`query my_name {\n\t\tstringFromContextInterface\n\t\tstringFromContextFunction\n\t}`, &res)\n\trequire.NoError(t, err)\n\trequire.Equal(t, \"stringFromContextInterface\", res.StringFromContextInterface)\n\trequire.Equal(t, \"stringFromContextFunction\", res.StringFromContextFunction)\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/scalar_default.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _EmbeddedDefaultScalar_value(ctx context.Context, field graphql.CollectedField, obj *EmbeddedDefaultScalar) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_EmbeddedDefaultScalar_value,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Value, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalODefaultScalarImplementation2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_EmbeddedDefaultScalar_value(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"EmbeddedDefaultScalar\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type DefaultScalarImplementation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar embeddedDefaultScalarImplementors = []string{\"EmbeddedDefaultScalar\"}\n\nfunc (ec *executionContext) _EmbeddedDefaultScalar(ctx context.Context, sel ast.SelectionSet, obj *EmbeddedDefaultScalar) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, embeddedDefaultScalarImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"EmbeddedDefaultScalar\")\n\t\tcase \"value\":\n\t\t\tout.Values[i] = ec._EmbeddedDefaultScalar_value(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNDefaultScalarImplementation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNDefaultScalarImplementation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalODefaultScalarImplementation2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalODefaultScalarImplementation2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/followschema/scalar_default.graphql",
    "content": "extend type Query {\n    defaultScalar(arg: DefaultScalarImplementation! = \"default\"): DefaultScalarImplementation!\n}\n\n\"\"\" This doesnt have an implementation in the typemap, so it should act like a string \"\"\"\nscalar DefaultScalarImplementation\n\ntype EmbeddedDefaultScalar {\n    value: DefaultScalarImplementation\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/scalar_default_test.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestDefaultScalarImplementation(t *testing.T) {\n\tresolvers := &Stub{}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tresolvers.QueryResolver.DefaultScalar = func(ctx context.Context, arg string) (i string, e error) {\n\t\treturn arg, nil\n\t}\n\n\tt.Run(\"with arg value\", func(t *testing.T) {\n\t\tvar resp struct{ DefaultScalar string }\n\t\tc.MustPost(`query { defaultScalar(arg: \"fff\") }`, &resp)\n\t\trequire.Equal(t, \"fff\", resp.DefaultScalar)\n\t})\n\n\tt.Run(\"with default value\", func(t *testing.T) {\n\t\tvar resp struct{ DefaultScalar string }\n\t\tc.MustPost(`query { defaultScalar  }`, &resp)\n\t\trequire.Equal(t, \"default\", resp.DefaultScalar)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/schema.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\tintrospection1 \"github.com/99designs/gqlgen/codegen/testserver/followschema/introspection\"\n\tinvalid_packagename \"github.com/99designs/gqlgen/codegen/testserver/followschema/invalid-packagename\"\n\t\"github.com/99designs/gqlgen/codegen/testserver/followschema/otherpkg\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\ntype ForcedResolverResolver interface {\n\tField(ctx context.Context, obj *ForcedResolver) (*Circle, error)\n}\ntype ModelMethodsResolver interface {\n\tResolverField(ctx context.Context, obj *ModelMethods) (bool, error)\n}\ntype PetResolver interface {\n\tFriends(ctx context.Context, obj *Pet, limit *int) ([]*Pet, error)\n}\ntype QueryResolver interface {\n\tInvalidIdentifier(ctx context.Context) (*invalid_packagename.InvalidIdentifier, error)\n\tCollision(ctx context.Context) (*introspection1.It, error)\n\tMapInput(ctx context.Context, input map[string]any) (*bool, error)\n\tRecursive(ctx context.Context, input *RecursiveInputSlice) (*bool, error)\n\tNestedInputs(ctx context.Context, input [][]*OuterInput) (*bool, error)\n\tNestedOutputs(ctx context.Context) ([][]*OuterObject, error)\n\tModelMethods(ctx context.Context) (*ModelMethods, error)\n\tUser(ctx context.Context, id int) (*User, error)\n\tNullableArg(ctx context.Context, arg *int) (*string, error)\n\tInputSlice(ctx context.Context, arg []string) (bool, error)\n\tInputNullableSlice(ctx context.Context, arg []string) (bool, error)\n\tInputOmittable(ctx context.Context, arg OmittableInput) (string, error)\n\tShapeUnion(ctx context.Context) (ShapeUnion, error)\n\tAutobind(ctx context.Context) (*Autobind, error)\n\tDeprecatedField(ctx context.Context) (string, error)\n\tFieldWithDeprecatedArg(ctx context.Context, oldArg *int, newArg *int) (*string, error)\n\tOverlapping(ctx context.Context) (*OverlappingFields, error)\n\tDefaultParameters(ctx context.Context, falsyBoolean *bool, truthyBoolean *bool) (*DefaultParametersMirror, error)\n\tDeferSingle(ctx context.Context) (*DeferModel, error)\n\tDeferMultiple(ctx context.Context) ([]*DeferModel, error)\n\tDirectiveArg(ctx context.Context, arg string) (*string, error)\n\tDirectiveNullableArg(ctx context.Context, arg *int, arg2 *int, arg3 *string) (*string, error)\n\tDirectiveSingleNullableArg(ctx context.Context, arg1 *string) (*string, error)\n\tDirectiveInputNullable(ctx context.Context, arg *InputDirectives) (*string, error)\n\tDirectiveInput(ctx context.Context, arg InputDirectives) (*string, error)\n\tDirectiveInputType(ctx context.Context, arg InnerInput) (*string, error)\n\tDirectiveInputOuter(ctx context.Context, arg OuterWrapperInput) (*string, error)\n\tDirectiveObject(ctx context.Context) (*ObjectDirectives, error)\n\tDirectiveObjectWithCustomGoModel(ctx context.Context) (*ObjectDirectivesWithCustomGoModel, error)\n\tDirectiveFieldDef(ctx context.Context, ret string) (string, error)\n\tDirectiveField(ctx context.Context) (*string, error)\n\tDirectiveDouble(ctx context.Context) (*string, error)\n\tDirectiveUnimplemented(ctx context.Context) (*string, error)\n\tEmbeddedCase1(ctx context.Context) (*EmbeddedCase1, error)\n\tEmbeddedCase2(ctx context.Context) (*EmbeddedCase2, error)\n\tEmbeddedCase3(ctx context.Context) (*EmbeddedCase3, error)\n\tEnumInInput(ctx context.Context, input *InputWithEnumValue) (EnumTest, error)\n\tSearchProducts(ctx context.Context, filters map[string]interface{}) ([]string, error)\n\tSearchRequired(ctx context.Context, filters map[string]interface{}) ([]string, error)\n\tSearchProductsNormal(ctx context.Context, filters map[string]any) ([]string, error)\n\tSearchWithDefaults(ctx context.Context, filters map[string]interface{}) ([]string, error)\n\tSearchMixed(ctx context.Context, filters map[string]interface{}, limit *int, offset *int, sortBy *string) ([]string, error)\n\tFilterProducts(ctx context.Context, filters map[string]interface{}) ([]string, error)\n\tFindProducts(ctx context.Context, filters map[string]interface{}) ([]string, error)\n\tSearchWithDirectives(ctx context.Context, input map[string]interface{}) ([]string, error)\n\tShapes(ctx context.Context) ([]Shape, error)\n\tNoShape(ctx context.Context) (Shape, error)\n\tNode(ctx context.Context) (Node, error)\n\tNoShapeTypedNil(ctx context.Context) (Shape, error)\n\tAnimal(ctx context.Context) (Animal, error)\n\tNotAnInterface(ctx context.Context) (BackedByInterface, error)\n\tDog(ctx context.Context) (*Dog, error)\n\tIssue896a(ctx context.Context) ([]*CheckIssue896, error)\n\tMapStringInterface(ctx context.Context, in map[string]any) (map[string]any, error)\n\tMapNestedStringInterface(ctx context.Context, in *NestedMapInput) (map[string]any, error)\n\tMapNestedMapSlice(ctx context.Context, input map[string]any) (*bool, error)\n\tErrorBubble(ctx context.Context) (*Error, error)\n\tErrorBubbleList(ctx context.Context) ([]*Error, error)\n\tErrorList(ctx context.Context) ([]*Error, error)\n\tErrors(ctx context.Context) (*Errors, error)\n\tValid(ctx context.Context) (string, error)\n\tInvalid(ctx context.Context) (string, error)\n\tPanics(ctx context.Context) (*Panics, error)\n\tPrimitiveObject(ctx context.Context) ([]Primitive, error)\n\tPrimitiveStringObject(ctx context.Context) ([]PrimitiveString, error)\n\tPtrToAnyContainer(ctx context.Context) (*PtrToAnyContainer, error)\n\tPtrToSliceContainer(ctx context.Context) (*PtrToSliceContainer, error)\n\tInfinity(ctx context.Context) (float64, error)\n\tStringFromContextInterface(ctx context.Context) (*StringFromContextInterface, error)\n\tStringFromContextFunction(ctx context.Context) (string, error)\n\tDefaultScalar(ctx context.Context, arg string) (string, error)\n\tSkipInclude(ctx context.Context) (*SkipIncludeTestType, error)\n\tSlices(ctx context.Context) (*Slices, error)\n\tScalarSlice(ctx context.Context) ([]byte, error)\n\tFallback(ctx context.Context, arg FallbackToStringEncoding) (FallbackToStringEncoding, error)\n\tOptionalUnion(ctx context.Context) (TestUnion, error)\n\tVOkCaseValue(ctx context.Context) (*VOkCaseValue, error)\n\tVOkCaseNil(ctx context.Context) (*VOkCaseNil, error)\n\tValidType(ctx context.Context) (*ValidType, error)\n\tVariadicModel(ctx context.Context) (*VariadicModel, error)\n\tWrappedStruct(ctx context.Context) (*WrappedStruct, error)\n\tWrappedScalar(ctx context.Context) (otherpkg.Scalar, error)\n\tWrappedMap(ctx context.Context) (WrappedMap, error)\n\tWrappedSlice(ctx context.Context) (WrappedSlice, error)\n}\ntype SubscriptionResolver interface {\n\tUpdated(ctx context.Context) (<-chan string, error)\n\tInitPayload(ctx context.Context) (<-chan string, error)\n\tDirectiveArg(ctx context.Context, arg string) (<-chan *string, error)\n\tDirectiveNullableArg(ctx context.Context, arg *int, arg2 *int, arg3 *string) (<-chan *string, error)\n\tDirectiveDouble(ctx context.Context) (<-chan *string, error)\n\tDirectiveUnimplemented(ctx context.Context) (<-chan *string, error)\n\tIssue896b(ctx context.Context) (<-chan []*CheckIssue896, error)\n\tErrorRequired(ctx context.Context) (<-chan *Error, error)\n}\ntype UserResolver interface {\n\tFriends(ctx context.Context, obj *User) ([]*User, error)\n\n\tPets(ctx context.Context, obj *User, limit *int) ([]*Pet, error)\n}\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) dir_defer_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"if\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"if\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"label\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"label\"] = arg1\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Pet_friends_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"limit\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"limit\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_defaultParameters_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"falsyBoolean\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"falsyBoolean\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"truthyBoolean\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"truthyBoolean\"] = arg1\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_defaultScalar_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"arg\", ec.unmarshalNDefaultScalarImplementation2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_directiveArg_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\n\targ0, err := ec.field_Query_directiveArg_argsArg(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_directiveArg_argsArg(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (string, error) {\n\tif _, ok := rawArgs[\"arg\"]; !ok {\n\t\tvar zeroVal string\n\t\treturn zeroVal, nil\n\t}\n\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"arg\"))\n\tdirective0 := func(ctx context.Context) (any, error) {\n\t\ttmp, ok := rawArgs[\"arg\"]\n\t\tif !ok {\n\t\t\tvar zeroVal string\n\t\t\treturn zeroVal, nil\n\t\t}\n\t\treturn ec.unmarshalNString2string(ctx, tmp)\n\t}\n\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\tmin, err := ec.unmarshalNInt2int(ctx, 1)\n\t\tif err != nil {\n\t\t\tvar zeroVal string\n\t\t\treturn zeroVal, err\n\t\t}\n\t\tmax, err := ec.unmarshalOInt2ᚖint(ctx, 255)\n\t\tif err != nil {\n\t\t\tvar zeroVal string\n\t\t\treturn zeroVal, err\n\t\t}\n\t\tmessage, err := ec.unmarshalOString2ᚖstring(ctx, \"invalid length\")\n\t\tif err != nil {\n\t\t\tvar zeroVal string\n\t\t\treturn zeroVal, err\n\t\t}\n\t\tif ec.Directives.Length == nil {\n\t\t\tvar zeroVal string\n\t\t\treturn zeroVal, errors.New(\"directive length is not implemented\")\n\t\t}\n\t\treturn ec.Directives.Length(ctx, rawArgs, directive0, min, max, message)\n\t}\n\n\ttmp, err := directive1(ctx)\n\tif err != nil {\n\t\tvar zeroVal string\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(string); ok {\n\t\treturn data, nil\n\t} else {\n\t\tvar zeroVal string\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from directive, should be string`, tmp))\n\t}\n}\n\nfunc (ec *executionContext) field_Query_directiveFieldDef_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"ret\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"ret\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_directiveInputNullable_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"arg\", ec.unmarshalOInputDirectives2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐInputDirectives)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_directiveInputOuter_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"arg\", ec.unmarshalNOuterWrapperInput2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐOuterWrapperInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_directiveInputType_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\n\targ0, err := ec.field_Query_directiveInputType_argsArg(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_directiveInputType_argsArg(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (InnerInput, error) {\n\tif _, ok := rawArgs[\"arg\"]; !ok {\n\t\tvar zeroVal InnerInput\n\t\treturn zeroVal, nil\n\t}\n\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"arg\"))\n\tdirective0 := func(ctx context.Context) (any, error) {\n\t\ttmp, ok := rawArgs[\"arg\"]\n\t\tif !ok {\n\t\t\tvar zeroVal InnerInput\n\t\t\treturn zeroVal, nil\n\t\t}\n\t\treturn ec.unmarshalNInnerInput2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐInnerInput(ctx, tmp)\n\t}\n\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\tif ec.Directives.Custom == nil {\n\t\t\tvar zeroVal InnerInput\n\t\t\treturn zeroVal, errors.New(\"directive custom is not implemented\")\n\t\t}\n\t\treturn ec.Directives.Custom(ctx, rawArgs, directive0)\n\t}\n\n\ttmp, err := directive1(ctx)\n\tif err != nil {\n\t\tvar zeroVal InnerInput\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(InnerInput); ok {\n\t\treturn data, nil\n\t} else {\n\t\tvar zeroVal InnerInput\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from directive, should be github.com/99designs/gqlgen/codegen/testserver/followschema.InnerInput`, tmp))\n\t}\n}\n\nfunc (ec *executionContext) field_Query_directiveInput_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"arg\", ec.unmarshalNInputDirectives2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐInputDirectives)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_directiveNullableArg_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\n\targ0, err := ec.field_Query_directiveNullableArg_argsArg(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\n\targ1, err := ec.field_Query_directiveNullableArg_argsArg2(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg2\"] = arg1\n\n\targ2, err := ec.field_Query_directiveNullableArg_argsArg3(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg3\"] = arg2\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_directiveNullableArg_argsArg(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (*int, error) {\n\tif _, ok := rawArgs[\"arg\"]; !ok {\n\t\tvar zeroVal *int\n\t\treturn zeroVal, nil\n\t}\n\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"arg\"))\n\tdirective0 := func(ctx context.Context) (any, error) {\n\t\ttmp, ok := rawArgs[\"arg\"]\n\t\tif !ok {\n\t\t\tvar zeroVal *int\n\t\t\treturn zeroVal, nil\n\t\t}\n\t\treturn ec.unmarshalOInt2ᚖint(ctx, tmp)\n\t}\n\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\tmin, err := ec.unmarshalOInt2ᚖint(ctx, 0)\n\t\tif err != nil {\n\t\t\tvar zeroVal *int\n\t\t\treturn zeroVal, err\n\t\t}\n\t\tif ec.Directives.Range == nil {\n\t\t\tvar zeroVal *int\n\t\t\treturn zeroVal, errors.New(\"directive range is not implemented\")\n\t\t}\n\t\treturn ec.Directives.Range(ctx, rawArgs, directive0, min, nil)\n\t}\n\n\ttmp, err := directive1(ctx)\n\tif err != nil {\n\t\tvar zeroVal *int\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(*int); ok {\n\t\treturn data, nil\n\t} else if tmp == nil {\n\t\tvar zeroVal *int\n\t\treturn zeroVal, nil\n\t} else {\n\t\tvar zeroVal *int\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from directive, should be *int`, tmp))\n\t}\n}\n\nfunc (ec *executionContext) field_Query_directiveNullableArg_argsArg2(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (*int, error) {\n\tif _, ok := rawArgs[\"arg2\"]; !ok {\n\t\tvar zeroVal *int\n\t\treturn zeroVal, nil\n\t}\n\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"arg2\"))\n\tdirective0 := func(ctx context.Context) (any, error) {\n\t\ttmp, ok := rawArgs[\"arg2\"]\n\t\tif !ok {\n\t\t\tvar zeroVal *int\n\t\t\treturn zeroVal, nil\n\t\t}\n\t\treturn ec.unmarshalOInt2ᚖint(ctx, tmp)\n\t}\n\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\tmin, err := ec.unmarshalOInt2ᚖint(ctx, 0)\n\t\tif err != nil {\n\t\t\tvar zeroVal *int\n\t\t\treturn zeroVal, err\n\t\t}\n\t\tif ec.Directives.Range == nil {\n\t\t\tvar zeroVal *int\n\t\t\treturn zeroVal, errors.New(\"directive range is not implemented\")\n\t\t}\n\t\treturn ec.Directives.Range(ctx, rawArgs, directive0, min, nil)\n\t}\n\n\ttmp, err := directive1(ctx)\n\tif err != nil {\n\t\tvar zeroVal *int\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(*int); ok {\n\t\treturn data, nil\n\t} else if tmp == nil {\n\t\tvar zeroVal *int\n\t\treturn zeroVal, nil\n\t} else {\n\t\tvar zeroVal *int\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from directive, should be *int`, tmp))\n\t}\n}\n\nfunc (ec *executionContext) field_Query_directiveNullableArg_argsArg3(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (*string, error) {\n\tif _, ok := rawArgs[\"arg3\"]; !ok {\n\t\tvar zeroVal *string\n\t\treturn zeroVal, nil\n\t}\n\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"arg3\"))\n\tdirective0 := func(ctx context.Context) (any, error) {\n\t\ttmp, ok := rawArgs[\"arg3\"]\n\t\tif !ok {\n\t\t\tvar zeroVal *string\n\t\t\treturn zeroVal, nil\n\t\t}\n\t\treturn ec.unmarshalOString2ᚖstring(ctx, tmp)\n\t}\n\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\tif ec.Directives.ToNull == nil {\n\t\t\tvar zeroVal *string\n\t\t\treturn zeroVal, errors.New(\"directive toNull is not implemented\")\n\t\t}\n\t\treturn ec.Directives.ToNull(ctx, rawArgs, directive0)\n\t}\n\n\ttmp, err := directive1(ctx)\n\tif err != nil {\n\t\tvar zeroVal *string\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(*string); ok {\n\t\treturn data, nil\n\t} else if tmp == nil {\n\t\tvar zeroVal *string\n\t\treturn zeroVal, nil\n\t} else {\n\t\tvar zeroVal *string\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from directive, should be *string`, tmp))\n\t}\n}\n\nfunc (ec *executionContext) field_Query_directiveSingleNullableArg_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\n\targ0, err := ec.field_Query_directiveSingleNullableArg_argsArg1(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg1\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_directiveSingleNullableArg_argsArg1(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (*string, error) {\n\tif _, ok := rawArgs[\"arg1\"]; !ok {\n\t\tvar zeroVal *string\n\t\treturn zeroVal, nil\n\t}\n\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"arg1\"))\n\tdirective0 := func(ctx context.Context) (any, error) {\n\t\ttmp, ok := rawArgs[\"arg1\"]\n\t\tif !ok {\n\t\t\tvar zeroVal *string\n\t\t\treturn zeroVal, nil\n\t\t}\n\t\treturn ec.unmarshalOString2ᚖstring(ctx, tmp)\n\t}\n\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\tvalue, err := ec.unmarshalNString2string(ctx, \"test\")\n\t\tif err != nil {\n\t\t\tvar zeroVal *string\n\t\t\treturn zeroVal, err\n\t\t}\n\t\tif ec.Directives.Populate == nil {\n\t\t\tvar zeroVal *string\n\t\t\treturn zeroVal, errors.New(\"directive populate is not implemented\")\n\t\t}\n\t\treturn ec.Directives.Populate(ctx, rawArgs, directive0, value)\n\t}\n\tdirective2 := func(ctx context.Context) (any, error) {\n\t\tif ec.Directives.Noop == nil {\n\t\t\tvar zeroVal *string\n\t\t\treturn zeroVal, errors.New(\"directive noop is not implemented\")\n\t\t}\n\t\treturn ec.Directives.Noop(ctx, rawArgs, directive1)\n\t}\n\n\ttmp, err := directive2(ctx)\n\tif err != nil {\n\t\tvar zeroVal *string\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(*string); ok {\n\t\treturn data, nil\n\t} else if tmp == nil {\n\t\tvar zeroVal *string\n\t\treturn zeroVal, nil\n\t} else {\n\t\tvar zeroVal *string\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from directive, should be *string`, tmp))\n\t}\n}\n\nfunc (ec *executionContext) field_Query_enumInInput_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"input\", ec.unmarshalOInputWithEnumValue2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐInputWithEnumValue)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"input\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_fallback_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"arg\", ec.unmarshalNFallbackToStringEncoding2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐFallbackToStringEncoding)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_fieldWithDeprecatedArg_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"oldArg\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"oldArg\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"newArg\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"newArg\"] = arg1\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_filterProducts_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"query\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"query\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"category\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"category\"] = arg1\n\targ2, err := graphql.ProcessArgField(ctx, rawArgs, \"minPrice\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"minPrice\"] = arg2\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_findProducts_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"query\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"query\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"category\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"category\"] = arg1\n\targ2, err := graphql.ProcessArgField(ctx, rawArgs, \"minPrice\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"minPrice\"] = arg2\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_inputNullableSlice_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"arg\", ec.unmarshalOString2ᚕstringᚄ)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_inputOmittable_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"arg\", ec.unmarshalNOmittableInput2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐOmittableInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_inputSlice_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"arg\", ec.unmarshalNString2ᚕstringᚄ)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_mapInput_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"input\", ec.unmarshalOChanges2map)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"input\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_mapNestedMapSlice_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"input\", ec.unmarshalOMapNestedMapSliceInput2map)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"input\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_mapNestedStringInterface_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"in\", ec.unmarshalONestedMapInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐNestedMapInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"in\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_mapStringInterface_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"in\", ec.unmarshalOMapStringInterfaceInput2map)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"in\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_nestedInputs_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"input\", ec.unmarshalOOuterInput2ᚕᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐOuterInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"input\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_nullableArg_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"arg\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_recursive_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"input\", ec.unmarshalORecursiveInputSlice2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐRecursiveInputSlice)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"input\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_searchMixed_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"query\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"query\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"category\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"category\"] = arg1\n\targ2, err := graphql.ProcessArgField(ctx, rawArgs, \"minPrice\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"minPrice\"] = arg2\n\targ3, err := graphql.ProcessArgField(ctx, rawArgs, \"limit\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"limit\"] = arg3\n\targ4, err := graphql.ProcessArgField(ctx, rawArgs, \"offset\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"offset\"] = arg4\n\targ5, err := graphql.ProcessArgField(ctx, rawArgs, \"sortBy\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"sortBy\"] = arg5\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_searchProductsNormal_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"filters\", ec.unmarshalOSearchFilters2map)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"filters\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_searchProducts_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"query\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"query\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"category\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"category\"] = arg1\n\targ2, err := graphql.ProcessArgField(ctx, rawArgs, \"minPrice\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"minPrice\"] = arg2\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_searchRequired_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"age\", ec.unmarshalNInt2int)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"age\"] = arg1\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_searchWithDefaults_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"query\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"query\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"limit\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"limit\"] = arg1\n\targ2, err := graphql.ProcessArgField(ctx, rawArgs, \"includeArchived\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeArchived\"] = arg2\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_searchWithDirectives_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"oldField\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"oldField\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"newField\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"newField\"] = arg1\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_user_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"id\", ec.unmarshalNInt2int)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"id\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Subscription_directiveArg_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\n\targ0, err := ec.field_Subscription_directiveArg_argsArg(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Subscription_directiveArg_argsArg(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (string, error) {\n\tif _, ok := rawArgs[\"arg\"]; !ok {\n\t\tvar zeroVal string\n\t\treturn zeroVal, nil\n\t}\n\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"arg\"))\n\tdirective0 := func(ctx context.Context) (any, error) {\n\t\ttmp, ok := rawArgs[\"arg\"]\n\t\tif !ok {\n\t\t\tvar zeroVal string\n\t\t\treturn zeroVal, nil\n\t\t}\n\t\treturn ec.unmarshalNString2string(ctx, tmp)\n\t}\n\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\tmin, err := ec.unmarshalNInt2int(ctx, 1)\n\t\tif err != nil {\n\t\t\tvar zeroVal string\n\t\t\treturn zeroVal, err\n\t\t}\n\t\tmax, err := ec.unmarshalOInt2ᚖint(ctx, 255)\n\t\tif err != nil {\n\t\t\tvar zeroVal string\n\t\t\treturn zeroVal, err\n\t\t}\n\t\tmessage, err := ec.unmarshalOString2ᚖstring(ctx, \"invalid length\")\n\t\tif err != nil {\n\t\t\tvar zeroVal string\n\t\t\treturn zeroVal, err\n\t\t}\n\t\tif ec.Directives.Length == nil {\n\t\t\tvar zeroVal string\n\t\t\treturn zeroVal, errors.New(\"directive length is not implemented\")\n\t\t}\n\t\treturn ec.Directives.Length(ctx, rawArgs, directive0, min, max, message)\n\t}\n\n\ttmp, err := directive1(ctx)\n\tif err != nil {\n\t\tvar zeroVal string\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(string); ok {\n\t\treturn data, nil\n\t} else {\n\t\tvar zeroVal string\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from directive, should be string`, tmp))\n\t}\n}\n\nfunc (ec *executionContext) field_Subscription_directiveNullableArg_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\n\targ0, err := ec.field_Subscription_directiveNullableArg_argsArg(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\n\targ1, err := ec.field_Subscription_directiveNullableArg_argsArg2(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg2\"] = arg1\n\n\targ2, err := ec.field_Subscription_directiveNullableArg_argsArg3(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg3\"] = arg2\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Subscription_directiveNullableArg_argsArg(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (*int, error) {\n\tif _, ok := rawArgs[\"arg\"]; !ok {\n\t\tvar zeroVal *int\n\t\treturn zeroVal, nil\n\t}\n\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"arg\"))\n\tdirective0 := func(ctx context.Context) (any, error) {\n\t\ttmp, ok := rawArgs[\"arg\"]\n\t\tif !ok {\n\t\t\tvar zeroVal *int\n\t\t\treturn zeroVal, nil\n\t\t}\n\t\treturn ec.unmarshalOInt2ᚖint(ctx, tmp)\n\t}\n\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\tmin, err := ec.unmarshalOInt2ᚖint(ctx, 0)\n\t\tif err != nil {\n\t\t\tvar zeroVal *int\n\t\t\treturn zeroVal, err\n\t\t}\n\t\tif ec.Directives.Range == nil {\n\t\t\tvar zeroVal *int\n\t\t\treturn zeroVal, errors.New(\"directive range is not implemented\")\n\t\t}\n\t\treturn ec.Directives.Range(ctx, rawArgs, directive0, min, nil)\n\t}\n\n\ttmp, err := directive1(ctx)\n\tif err != nil {\n\t\tvar zeroVal *int\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(*int); ok {\n\t\treturn data, nil\n\t} else if tmp == nil {\n\t\tvar zeroVal *int\n\t\treturn zeroVal, nil\n\t} else {\n\t\tvar zeroVal *int\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from directive, should be *int`, tmp))\n\t}\n}\n\nfunc (ec *executionContext) field_Subscription_directiveNullableArg_argsArg2(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (*int, error) {\n\tif _, ok := rawArgs[\"arg2\"]; !ok {\n\t\tvar zeroVal *int\n\t\treturn zeroVal, nil\n\t}\n\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"arg2\"))\n\tdirective0 := func(ctx context.Context) (any, error) {\n\t\ttmp, ok := rawArgs[\"arg2\"]\n\t\tif !ok {\n\t\t\tvar zeroVal *int\n\t\t\treturn zeroVal, nil\n\t\t}\n\t\treturn ec.unmarshalOInt2ᚖint(ctx, tmp)\n\t}\n\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\tmin, err := ec.unmarshalOInt2ᚖint(ctx, 0)\n\t\tif err != nil {\n\t\t\tvar zeroVal *int\n\t\t\treturn zeroVal, err\n\t\t}\n\t\tif ec.Directives.Range == nil {\n\t\t\tvar zeroVal *int\n\t\t\treturn zeroVal, errors.New(\"directive range is not implemented\")\n\t\t}\n\t\treturn ec.Directives.Range(ctx, rawArgs, directive0, min, nil)\n\t}\n\n\ttmp, err := directive1(ctx)\n\tif err != nil {\n\t\tvar zeroVal *int\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(*int); ok {\n\t\treturn data, nil\n\t} else if tmp == nil {\n\t\tvar zeroVal *int\n\t\treturn zeroVal, nil\n\t} else {\n\t\tvar zeroVal *int\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from directive, should be *int`, tmp))\n\t}\n}\n\nfunc (ec *executionContext) field_Subscription_directiveNullableArg_argsArg3(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (*string, error) {\n\tif _, ok := rawArgs[\"arg3\"]; !ok {\n\t\tvar zeroVal *string\n\t\treturn zeroVal, nil\n\t}\n\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"arg3\"))\n\tdirective0 := func(ctx context.Context) (any, error) {\n\t\ttmp, ok := rawArgs[\"arg3\"]\n\t\tif !ok {\n\t\t\tvar zeroVal *string\n\t\t\treturn zeroVal, nil\n\t\t}\n\t\treturn ec.unmarshalOString2ᚖstring(ctx, tmp)\n\t}\n\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\tif ec.Directives.ToNull == nil {\n\t\t\tvar zeroVal *string\n\t\t\treturn zeroVal, errors.New(\"directive toNull is not implemented\")\n\t\t}\n\t\treturn ec.Directives.ToNull(ctx, rawArgs, directive0)\n\t}\n\n\ttmp, err := directive1(ctx)\n\tif err != nil {\n\t\tvar zeroVal *string\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(*string); ok {\n\t\treturn data, nil\n\t} else if tmp == nil {\n\t\tvar zeroVal *string\n\t\treturn zeroVal, nil\n\t} else {\n\t\tvar zeroVal *string\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from directive, should be *string`, tmp))\n\t}\n}\n\nfunc (ec *executionContext) field_User_pets_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"limit\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"limit\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Autobind_int(ctx context.Context, field graphql.CollectedField, obj *Autobind) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Autobind_int,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Int, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Autobind_int(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Autobind\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Autobind_int32(ctx context.Context, field graphql.CollectedField, obj *Autobind) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Autobind_int32,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Int32, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInt2int32,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Autobind_int32(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Autobind\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Autobind_int64(ctx context.Context, field graphql.CollectedField, obj *Autobind) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Autobind_int64,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Int64, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInt2int64,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Autobind_int64(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Autobind\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Autobind_idStr(ctx context.Context, field graphql.CollectedField, obj *Autobind) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Autobind_idStr,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IdStr, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Autobind_idStr(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Autobind\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Autobind_idInt(ctx context.Context, field graphql.CollectedField, obj *Autobind) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Autobind_idInt,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IdInt, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNID2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Autobind_idInt(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Autobind\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _EmbeddedPointer_ID(ctx context.Context, field graphql.CollectedField, obj *EmbeddedPointerModel) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_EmbeddedPointer_ID,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2string,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_EmbeddedPointer_ID(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"EmbeddedPointer\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _EmbeddedPointer_Title(ctx context.Context, field graphql.CollectedField, obj *EmbeddedPointerModel) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_EmbeddedPointer_Title,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Title, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2string,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_EmbeddedPointer_Title(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"EmbeddedPointer\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ForcedResolver_field(ctx context.Context, field graphql.CollectedField, obj *ForcedResolver) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ForcedResolver_field,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.ForcedResolver().Field(ctx, obj)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOCircle2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐCircle,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ForcedResolver_field(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ForcedResolver\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"radius\":\n\t\t\t\treturn ec.fieldContext_Circle_radius(ctx, field)\n\t\t\tcase \"area\":\n\t\t\t\treturn ec.fieldContext_Circle_area(ctx, field)\n\t\t\tcase \"coordinates\":\n\t\t\t\treturn ec.fieldContext_Circle_coordinates(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Circle\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _InnerObject_id(ctx context.Context, field graphql.CollectedField, obj *InnerObject) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_InnerObject_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_InnerObject_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"InnerObject\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _InvalidIdentifier_id(ctx context.Context, field graphql.CollectedField, obj *invalid_packagename.InvalidIdentifier) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_InvalidIdentifier_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_InvalidIdentifier_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"InvalidIdentifier\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _It_id(ctx context.Context, field graphql.CollectedField, obj *introspection1.It) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_It_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_It_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"It\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ModelMethods_resolverField(ctx context.Context, field graphql.CollectedField, obj *ModelMethods) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ModelMethods_resolverField,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.ModelMethods().ResolverField(ctx, obj)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ModelMethods_resolverField(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ModelMethods\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ModelMethods_noContext(ctx context.Context, field graphql.CollectedField, obj *ModelMethods) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ModelMethods_noContext,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.NoContext(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ModelMethods_noContext(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ModelMethods\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ModelMethods_withContext(ctx context.Context, field graphql.CollectedField, obj *ModelMethods) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ModelMethods_withContext,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.WithContext(ctx), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ModelMethods_withContext(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ModelMethods\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _OuterObject_inner(ctx context.Context, field graphql.CollectedField, obj *OuterObject) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_OuterObject_inner,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Inner, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInnerObject2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐInnerObject,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_OuterObject_inner(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"OuterObject\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_InnerObject_id(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type InnerObject\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Pet_id(ctx context.Context, field graphql.CollectedField, obj *Pet) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Pet_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Pet_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Pet\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Pet_friends(ctx context.Context, field graphql.CollectedField, obj *Pet) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Pet_friends,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Pet().Friends(ctx, obj, fc.Args[\"limit\"].(*int))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOPet2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPetᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Pet_friends(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Pet\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Pet_id(ctx, field)\n\t\t\tcase \"friends\":\n\t\t\t\treturn ec.fieldContext_Pet_friends(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Pet\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Pet_friends_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_invalidIdentifier(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_invalidIdentifier,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().InvalidIdentifier(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOInvalidIdentifier2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚋinvalidᚑpackagenameᚐInvalidIdentifier,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_invalidIdentifier(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_InvalidIdentifier_id(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type InvalidIdentifier\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_collision(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_collision,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Collision(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOIt2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚋintrospectionᚐIt,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_collision(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_It_id(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type It\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_mapInput(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_mapInput,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().MapInput(ctx, fc.Args[\"input\"].(map[string]any))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOBoolean2ᚖbool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_mapInput(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_mapInput_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_recursive(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_recursive,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().Recursive(ctx, fc.Args[\"input\"].(*RecursiveInputSlice))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOBoolean2ᚖbool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_recursive(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_recursive_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_nestedInputs(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_nestedInputs,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().NestedInputs(ctx, fc.Args[\"input\"].([][]*OuterInput))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOBoolean2ᚖbool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_nestedInputs(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_nestedInputs_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_nestedOutputs(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_nestedOutputs,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().NestedOutputs(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOOuterObject2ᚕᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐOuterObject,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_nestedOutputs(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"inner\":\n\t\t\t\treturn ec.fieldContext_OuterObject_inner(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type OuterObject\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_modelMethods(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_modelMethods,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().ModelMethods(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOModelMethods2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐModelMethods,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_modelMethods(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"resolverField\":\n\t\t\t\treturn ec.fieldContext_ModelMethods_resolverField(ctx, field)\n\t\t\tcase \"noContext\":\n\t\t\t\treturn ec.fieldContext_ModelMethods_noContext(ctx, field)\n\t\t\tcase \"withContext\":\n\t\t\t\treturn ec.fieldContext_ModelMethods_withContext(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type ModelMethods\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_user(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_user,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().User(ctx, fc.Args[\"id\"].(int))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐUser,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_user(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_User_id(ctx, field)\n\t\t\tcase \"friends\":\n\t\t\t\treturn ec.fieldContext_User_friends(ctx, field)\n\t\t\tcase \"created\":\n\t\t\t\treturn ec.fieldContext_User_created(ctx, field)\n\t\t\tcase \"updated\":\n\t\t\t\treturn ec.fieldContext_User_updated(ctx, field)\n\t\t\tcase \"pets\":\n\t\t\t\treturn ec.fieldContext_User_pets(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type User\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_user_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_nullableArg(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_nullableArg,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().NullableArg(ctx, fc.Args[\"arg\"].(*int))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_nullableArg(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_nullableArg_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_inputSlice(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_inputSlice,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().InputSlice(ctx, fc.Args[\"arg\"].([]string))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_inputSlice(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_inputSlice_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_inputNullableSlice(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_inputNullableSlice,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().InputNullableSlice(ctx, fc.Args[\"arg\"].([]string))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_inputNullableSlice(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_inputNullableSlice_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_inputOmittable(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_inputOmittable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().InputOmittable(ctx, fc.Args[\"arg\"].(OmittableInput))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_inputOmittable(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_inputOmittable_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_shapeUnion(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_shapeUnion,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().ShapeUnion(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNShapeUnion2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐShapeUnion,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_shapeUnion(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ShapeUnion does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_autobind(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_autobind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Autobind(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOAutobind2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐAutobind,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_autobind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"int\":\n\t\t\t\treturn ec.fieldContext_Autobind_int(ctx, field)\n\t\t\tcase \"int32\":\n\t\t\t\treturn ec.fieldContext_Autobind_int32(ctx, field)\n\t\t\tcase \"int64\":\n\t\t\t\treturn ec.fieldContext_Autobind_int64(ctx, field)\n\t\t\tcase \"idStr\":\n\t\t\t\treturn ec.fieldContext_Autobind_idStr(ctx, field)\n\t\t\tcase \"idInt\":\n\t\t\t\treturn ec.fieldContext_Autobind_idInt(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Autobind\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_deprecatedField(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_deprecatedField,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().DeprecatedField(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_deprecatedField(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_fieldWithDeprecatedArg(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_fieldWithDeprecatedArg,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().FieldWithDeprecatedArg(ctx, fc.Args[\"oldArg\"].(*int), fc.Args[\"newArg\"].(*int))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_fieldWithDeprecatedArg(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_fieldWithDeprecatedArg_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_overlapping(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_overlapping,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Overlapping(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOOverlappingFields2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐOverlappingFields,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_overlapping(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"oneFoo\":\n\t\t\t\treturn ec.fieldContext_OverlappingFields_oneFoo(ctx, field)\n\t\t\tcase \"twoFoo\":\n\t\t\t\treturn ec.fieldContext_OverlappingFields_twoFoo(ctx, field)\n\t\t\tcase \"oldFoo\":\n\t\t\t\treturn ec.fieldContext_OverlappingFields_oldFoo(ctx, field)\n\t\t\tcase \"newFoo\":\n\t\t\t\treturn ec.fieldContext_OverlappingFields_newFoo(ctx, field)\n\t\t\tcase \"new_foo\":\n\t\t\t\treturn ec.fieldContext_OverlappingFields_new_foo(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type OverlappingFields\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_defaultParameters(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_defaultParameters,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().DefaultParameters(ctx, fc.Args[\"falsyBoolean\"].(*bool), fc.Args[\"truthyBoolean\"].(*bool))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNDefaultParametersMirror2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐDefaultParametersMirror,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_defaultParameters(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"falsyBoolean\":\n\t\t\t\treturn ec.fieldContext_DefaultParametersMirror_falsyBoolean(ctx, field)\n\t\t\tcase \"truthyBoolean\":\n\t\t\t\treturn ec.fieldContext_DefaultParametersMirror_truthyBoolean(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type DefaultParametersMirror\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_defaultParameters_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_deferSingle(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_deferSingle,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().DeferSingle(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalODeferModel2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐDeferModel,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_deferSingle(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_DeferModel_id(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_DeferModel_name(ctx, field)\n\t\t\tcase \"values\":\n\t\t\t\treturn ec.fieldContext_DeferModel_values(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type DeferModel\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_deferMultiple(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_deferMultiple,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().DeferMultiple(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalODeferModel2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐDeferModelᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_deferMultiple(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_DeferModel_id(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_DeferModel_name(ctx, field)\n\t\t\tcase \"values\":\n\t\t\t\treturn ec.fieldContext_DeferModel_values(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type DeferModel\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_directiveArg(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_directiveArg,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().DirectiveArg(ctx, fc.Args[\"arg\"].(string))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_directiveArg(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_directiveArg_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_directiveNullableArg(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_directiveNullableArg,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().DirectiveNullableArg(ctx, fc.Args[\"arg\"].(*int), fc.Args[\"arg2\"].(*int), fc.Args[\"arg3\"].(*string))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_directiveNullableArg(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_directiveNullableArg_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_directiveSingleNullableArg(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_directiveSingleNullableArg,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().DirectiveSingleNullableArg(ctx, fc.Args[\"arg1\"].(*string))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_directiveSingleNullableArg(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_directiveSingleNullableArg_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_directiveInputNullable(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_directiveInputNullable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().DirectiveInputNullable(ctx, fc.Args[\"arg\"].(*InputDirectives))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_directiveInputNullable(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_directiveInputNullable_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_directiveInput(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_directiveInput,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().DirectiveInput(ctx, fc.Args[\"arg\"].(InputDirectives))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_directiveInput(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_directiveInput_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_directiveInputType(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_directiveInputType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().DirectiveInputType(ctx, fc.Args[\"arg\"].(InnerInput))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_directiveInputType(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_directiveInputType_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_directiveInputOuter(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_directiveInputOuter,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().DirectiveInputOuter(ctx, fc.Args[\"arg\"].(OuterWrapperInput))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_directiveInputOuter(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_directiveInputOuter_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_directiveObject(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_directiveObject,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().DirectiveObject(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tlocation, err := ec.unmarshalNString2string(ctx, \"order1_1\")\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal *ObjectDirectives\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tif ec.Directives.Order1 == nil {\n\t\t\t\t\tvar zeroVal *ObjectDirectives\n\t\t\t\t\treturn zeroVal, errors.New(\"directive order1 is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Order1(ctx, nil, directive0, location)\n\t\t\t}\n\t\t\tdirective2 := func(ctx context.Context) (any, error) {\n\t\t\t\tlocation, err := ec.unmarshalNString2string(ctx, \"order1_2\")\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal *ObjectDirectives\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tif ec.Directives.Order1 == nil {\n\t\t\t\t\tvar zeroVal *ObjectDirectives\n\t\t\t\t\treturn zeroVal, errors.New(\"directive order1 is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Order1(ctx, nil, directive1, location)\n\t\t\t}\n\t\t\tdirective3 := func(ctx context.Context) (any, error) {\n\t\t\t\tlocation, err := ec.unmarshalNString2string(ctx, \"order2_1\")\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal *ObjectDirectives\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tif ec.Directives.Order2 == nil {\n\t\t\t\t\tvar zeroVal *ObjectDirectives\n\t\t\t\t\treturn zeroVal, errors.New(\"directive order2 is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Order2(ctx, nil, directive2, location)\n\t\t\t}\n\t\t\tdirective4 := func(ctx context.Context) (any, error) {\n\t\t\t\tlocation, err := ec.unmarshalNString2string(ctx, \"Query_field\")\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal *ObjectDirectives\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tif ec.Directives.Order1 == nil {\n\t\t\t\t\tvar zeroVal *ObjectDirectives\n\t\t\t\t\treturn zeroVal, errors.New(\"directive order1 is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Order1(ctx, nil, directive3, location)\n\t\t\t}\n\n\t\t\tnext = directive4\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOObjectDirectives2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐObjectDirectives,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_directiveObject(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"text\":\n\t\t\t\treturn ec.fieldContext_ObjectDirectives_text(ctx, field)\n\t\t\tcase \"nullableText\":\n\t\t\t\treturn ec.fieldContext_ObjectDirectives_nullableText(ctx, field)\n\t\t\tcase \"order\":\n\t\t\t\treturn ec.fieldContext_ObjectDirectives_order(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type ObjectDirectives\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_directiveObjectWithCustomGoModel(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_directiveObjectWithCustomGoModel,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().DirectiveObjectWithCustomGoModel(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOObjectDirectivesWithCustomGoModel2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐObjectDirectivesWithCustomGoModel,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_directiveObjectWithCustomGoModel(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"nullableText\":\n\t\t\t\treturn ec.fieldContext_ObjectDirectivesWithCustomGoModel_nullableText(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type ObjectDirectivesWithCustomGoModel\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_directiveFieldDef(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_directiveFieldDef,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().DirectiveFieldDef(ctx, fc.Args[\"ret\"].(string))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tmin, err := ec.unmarshalNInt2int(ctx, 1)\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal string\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tmessage, err := ec.unmarshalOString2ᚖstring(ctx, \"not valid\")\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal string\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tif ec.Directives.Length == nil {\n\t\t\t\t\tvar zeroVal string\n\t\t\t\t\treturn zeroVal, errors.New(\"directive length is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Length(ctx, nil, directive0, min, nil, message)\n\t\t\t}\n\n\t\t\tnext = directive1\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_directiveFieldDef(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_directiveFieldDef_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_directiveField(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_directiveField,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().DirectiveField(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_directiveField(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_directiveDouble(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_directiveDouble,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().DirectiveDouble(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tif ec.Directives.Directive1 == nil {\n\t\t\t\t\tvar zeroVal *string\n\t\t\t\t\treturn zeroVal, errors.New(\"directive directive1 is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Directive1(ctx, nil, directive0)\n\t\t\t}\n\t\t\tdirective2 := func(ctx context.Context) (any, error) {\n\t\t\t\tif ec.Directives.Directive2 == nil {\n\t\t\t\t\tvar zeroVal *string\n\t\t\t\t\treturn zeroVal, errors.New(\"directive directive2 is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Directive2(ctx, nil, directive1)\n\t\t\t}\n\n\t\t\tnext = directive2\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_directiveDouble(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_directiveUnimplemented(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_directiveUnimplemented,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().DirectiveUnimplemented(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tif ec.Directives.Unimplemented == nil {\n\t\t\t\t\tvar zeroVal *string\n\t\t\t\t\treturn zeroVal, errors.New(\"directive unimplemented is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Unimplemented(ctx, nil, directive0)\n\t\t\t}\n\n\t\t\tnext = directive1\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_directiveUnimplemented(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_embeddedCase1(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_embeddedCase1,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().EmbeddedCase1(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOEmbeddedCase12ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐEmbeddedCase1,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_embeddedCase1(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"exportedEmbeddedPointerExportedMethod\":\n\t\t\t\treturn ec.fieldContext_EmbeddedCase1_exportedEmbeddedPointerExportedMethod(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type EmbeddedCase1\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_embeddedCase2(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_embeddedCase2,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().EmbeddedCase2(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOEmbeddedCase22ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐEmbeddedCase2,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_embeddedCase2(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"unexportedEmbeddedPointerExportedMethod\":\n\t\t\t\treturn ec.fieldContext_EmbeddedCase2_unexportedEmbeddedPointerExportedMethod(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type EmbeddedCase2\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_embeddedCase3(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_embeddedCase3,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().EmbeddedCase3(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOEmbeddedCase32ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐEmbeddedCase3,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_embeddedCase3(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"unexportedEmbeddedInterfaceExportedMethod\":\n\t\t\t\treturn ec.fieldContext_EmbeddedCase3_unexportedEmbeddedInterfaceExportedMethod(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type EmbeddedCase3\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_enumInInput(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_enumInInput,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().EnumInInput(ctx, fc.Args[\"input\"].(*InputWithEnumValue))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNEnumTest2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐEnumTest,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_enumInInput(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type EnumTest does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_enumInInput_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_searchProducts(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_searchProducts,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().SearchProducts(ctx, map[string]interface{}{\n\t\t\t\t\"query\":    fc.Args[\"query\"].(*string),\n\t\t\t\t\"category\": fc.Args[\"category\"].(*string),\n\t\t\t\t\"minPrice\": fc.Args[\"minPrice\"].(*int),\n\t\t\t})\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNString2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_searchProducts(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_searchProducts_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_searchRequired(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_searchRequired,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().SearchRequired(ctx, map[string]interface{}{\n\t\t\t\t\"name\": fc.Args[\"name\"].(string),\n\t\t\t\t\"age\":  fc.Args[\"age\"].(int),\n\t\t\t})\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNString2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_searchRequired(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_searchRequired_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_searchProductsNormal(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_searchProductsNormal,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().SearchProductsNormal(ctx, fc.Args[\"filters\"].(map[string]any))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNString2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_searchProductsNormal(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_searchProductsNormal_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_searchWithDefaults(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_searchWithDefaults,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().SearchWithDefaults(ctx, map[string]interface{}{\n\t\t\t\t\"query\":           fc.Args[\"query\"].(*string),\n\t\t\t\t\"limit\":           fc.Args[\"limit\"].(*int),\n\t\t\t\t\"includeArchived\": fc.Args[\"includeArchived\"].(*bool),\n\t\t\t})\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNString2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_searchWithDefaults(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_searchWithDefaults_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_searchMixed(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_searchMixed,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().SearchMixed(ctx, map[string]interface{}{\n\t\t\t\t\"query\":    fc.Args[\"query\"].(*string),\n\t\t\t\t\"category\": fc.Args[\"category\"].(*string),\n\t\t\t\t\"minPrice\": fc.Args[\"minPrice\"].(*int),\n\t\t\t}, fc.Args[\"limit\"].(*int), fc.Args[\"offset\"].(*int), fc.Args[\"sortBy\"].(*string))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNString2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_searchMixed(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_searchMixed_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_filterProducts(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_filterProducts,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().FilterProducts(ctx, map[string]interface{}{\n\t\t\t\t\"query\":    fc.Args[\"query\"].(*string),\n\t\t\t\t\"category\": fc.Args[\"category\"].(*string),\n\t\t\t\t\"minPrice\": fc.Args[\"minPrice\"].(*int),\n\t\t\t})\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNString2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_filterProducts(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_filterProducts_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_findProducts(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_findProducts,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().FindProducts(ctx, map[string]interface{}{\n\t\t\t\t\"query\":    fc.Args[\"query\"].(*string),\n\t\t\t\t\"category\": fc.Args[\"category\"].(*string),\n\t\t\t\t\"minPrice\": fc.Args[\"minPrice\"].(*int),\n\t\t\t})\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNString2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_findProducts(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_findProducts_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_searchWithDirectives(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_searchWithDirectives,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().SearchWithDirectives(ctx, map[string]interface{}{\n\t\t\t\t\"oldField\": fc.Args[\"oldField\"].(*string),\n\t\t\t\t\"newField\": fc.Args[\"newField\"].(*string),\n\t\t\t})\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNString2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_searchWithDirectives(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_searchWithDirectives_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_shapes(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_shapes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Shapes(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOShape2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐShape,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_shapes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"FieldContext.Child cannot be called on type INTERFACE\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_noShape(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_noShape,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().NoShape(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tif ec.Directives.MakeNil == nil {\n\t\t\t\t\tvar zeroVal Shape\n\t\t\t\t\treturn zeroVal, errors.New(\"directive makeNil is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.MakeNil(ctx, nil, directive0)\n\t\t\t}\n\n\t\t\tnext = directive1\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOShape2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐShape,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_noShape(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"FieldContext.Child cannot be called on type INTERFACE\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_node(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_node,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Node(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNNode2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐNode,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_node(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"FieldContext.Child cannot be called on type INTERFACE\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_noShapeTypedNil(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_noShapeTypedNil,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().NoShapeTypedNil(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tif ec.Directives.MakeTypedNil == nil {\n\t\t\t\t\tvar zeroVal Shape\n\t\t\t\t\treturn zeroVal, errors.New(\"directive makeTypedNil is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.MakeTypedNil(ctx, nil, directive0)\n\t\t\t}\n\n\t\t\tnext = directive1\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOShape2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐShape,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_noShapeTypedNil(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"FieldContext.Child cannot be called on type INTERFACE\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_animal(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_animal,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Animal(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tif ec.Directives.MakeTypedNil == nil {\n\t\t\t\t\tvar zeroVal Animal\n\t\t\t\t\treturn zeroVal, errors.New(\"directive makeTypedNil is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.MakeTypedNil(ctx, nil, directive0)\n\t\t\t}\n\n\t\t\tnext = directive1\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOAnimal2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐAnimal,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_animal(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"FieldContext.Child cannot be called on type INTERFACE\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_notAnInterface(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_notAnInterface,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().NotAnInterface(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOBackedByInterface2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐBackedByInterface,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_notAnInterface(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_BackedByInterface_id(ctx, field)\n\t\t\tcase \"thisShouldBind\":\n\t\t\t\treturn ec.fieldContext_BackedByInterface_thisShouldBind(ctx, field)\n\t\t\tcase \"thisShouldBindWithError\":\n\t\t\t\treturn ec.fieldContext_BackedByInterface_thisShouldBindWithError(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type BackedByInterface\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_dog(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_dog,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Dog(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalODog2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐDog,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_dog(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"species\":\n\t\t\t\treturn ec.fieldContext_Dog_species(ctx, field)\n\t\t\tcase \"size\":\n\t\t\t\treturn ec.fieldContext_Dog_size(ctx, field)\n\t\t\tcase \"dogBreed\":\n\t\t\t\treturn ec.fieldContext_Dog_dogBreed(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Dog\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_issue896a(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_issue896a,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Issue896a(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOCheckIssue8962ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐCheckIssue896ᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_issue896a(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_CheckIssue896_id(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type CheckIssue896\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_mapStringInterface(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_mapStringInterface,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().MapStringInterface(ctx, fc.Args[\"in\"].(map[string]any))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOMapStringInterfaceType2map,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_mapStringInterface(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"a\":\n\t\t\t\treturn ec.fieldContext_MapStringInterfaceType_a(ctx, field)\n\t\t\tcase \"b\":\n\t\t\t\treturn ec.fieldContext_MapStringInterfaceType_b(ctx, field)\n\t\t\tcase \"c\":\n\t\t\t\treturn ec.fieldContext_MapStringInterfaceType_c(ctx, field)\n\t\t\tcase \"nested\":\n\t\t\t\treturn ec.fieldContext_MapStringInterfaceType_nested(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type MapStringInterfaceType\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_mapStringInterface_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_mapNestedStringInterface(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_mapNestedStringInterface,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().MapNestedStringInterface(ctx, fc.Args[\"in\"].(*NestedMapInput))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOMapStringInterfaceType2map,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_mapNestedStringInterface(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"a\":\n\t\t\t\treturn ec.fieldContext_MapStringInterfaceType_a(ctx, field)\n\t\t\tcase \"b\":\n\t\t\t\treturn ec.fieldContext_MapStringInterfaceType_b(ctx, field)\n\t\t\tcase \"c\":\n\t\t\t\treturn ec.fieldContext_MapStringInterfaceType_c(ctx, field)\n\t\t\tcase \"nested\":\n\t\t\t\treturn ec.fieldContext_MapStringInterfaceType_nested(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type MapStringInterfaceType\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_mapNestedStringInterface_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_mapNestedMapSlice(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_mapNestedMapSlice,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().MapNestedMapSlice(ctx, fc.Args[\"input\"].(map[string]any))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOBoolean2ᚖbool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_mapNestedMapSlice(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_mapNestedMapSlice_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_errorBubble(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_errorBubble,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().ErrorBubble(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOError2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐError,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_errorBubble(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Error_id(ctx, field)\n\t\t\tcase \"errorOnNonRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnNonRequiredField(ctx, field)\n\t\t\tcase \"errorOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnRequiredField(ctx, field)\n\t\t\tcase \"nilOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_nilOnRequiredField(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Error\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_errorBubbleList(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_errorBubbleList,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().ErrorBubbleList(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOError2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐErrorᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_errorBubbleList(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Error_id(ctx, field)\n\t\t\tcase \"errorOnNonRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnNonRequiredField(ctx, field)\n\t\t\tcase \"errorOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnRequiredField(ctx, field)\n\t\t\tcase \"nilOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_nilOnRequiredField(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Error\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_errorList(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_errorList,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().ErrorList(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOError2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐError,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_errorList(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Error_id(ctx, field)\n\t\t\tcase \"errorOnNonRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnNonRequiredField(ctx, field)\n\t\t\tcase \"errorOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnRequiredField(ctx, field)\n\t\t\tcase \"nilOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_nilOnRequiredField(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Error\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_errors(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_errors,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Errors(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOErrors2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐErrors,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_errors(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"a\":\n\t\t\t\treturn ec.fieldContext_Errors_a(ctx, field)\n\t\t\tcase \"b\":\n\t\t\t\treturn ec.fieldContext_Errors_b(ctx, field)\n\t\t\tcase \"c\":\n\t\t\t\treturn ec.fieldContext_Errors_c(ctx, field)\n\t\t\tcase \"d\":\n\t\t\t\treturn ec.fieldContext_Errors_d(ctx, field)\n\t\t\tcase \"e\":\n\t\t\t\treturn ec.fieldContext_Errors_e(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Errors\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_valid(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_valid,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Valid(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_valid(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_invalid(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_invalid,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Invalid(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_invalid(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_panics(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_panics,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Panics(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOPanics2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPanics,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_panics(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"fieldScalarMarshal\":\n\t\t\t\treturn ec.fieldContext_Panics_fieldScalarMarshal(ctx, field)\n\t\t\tcase \"fieldFuncMarshal\":\n\t\t\t\treturn ec.fieldContext_Panics_fieldFuncMarshal(ctx, field)\n\t\t\tcase \"argUnmarshal\":\n\t\t\t\treturn ec.fieldContext_Panics_argUnmarshal(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Panics\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_primitiveObject(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_primitiveObject,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().PrimitiveObject(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNPrimitive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPrimitiveᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_primitiveObject(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"value\":\n\t\t\t\treturn ec.fieldContext_Primitive_value(ctx, field)\n\t\t\tcase \"squared\":\n\t\t\t\treturn ec.fieldContext_Primitive_squared(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Primitive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_primitiveStringObject(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_primitiveStringObject,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().PrimitiveStringObject(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNPrimitiveString2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPrimitiveStringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_primitiveStringObject(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"value\":\n\t\t\t\treturn ec.fieldContext_PrimitiveString_value(ctx, field)\n\t\t\tcase \"doubled\":\n\t\t\t\treturn ec.fieldContext_PrimitiveString_doubled(ctx, field)\n\t\t\tcase \"len\":\n\t\t\t\treturn ec.fieldContext_PrimitiveString_len(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type PrimitiveString\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_ptrToAnyContainer(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_ptrToAnyContainer,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().PtrToAnyContainer(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNPtrToAnyContainer2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPtrToAnyContainer,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_ptrToAnyContainer(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"ptrToAny\":\n\t\t\t\treturn ec.fieldContext_PtrToAnyContainer_ptrToAny(ctx, field)\n\t\t\tcase \"binding\":\n\t\t\t\treturn ec.fieldContext_PtrToAnyContainer_binding(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type PtrToAnyContainer\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_ptrToSliceContainer(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_ptrToSliceContainer,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().PtrToSliceContainer(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNPtrToSliceContainer2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPtrToSliceContainer,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_ptrToSliceContainer(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"ptrToSlice\":\n\t\t\t\treturn ec.fieldContext_PtrToSliceContainer_ptrToSlice(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type PtrToSliceContainer\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_infinity(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_infinity,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Infinity(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNFloat2float64,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_infinity(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Float does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_stringFromContextInterface(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_stringFromContextInterface,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().StringFromContextInterface(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNStringFromContextInterface2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐStringFromContextInterface,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_stringFromContextInterface(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type StringFromContextInterface does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_stringFromContextFunction(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_stringFromContextFunction,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().StringFromContextFunction(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNStringFromContextFunction2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_stringFromContextFunction(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type StringFromContextFunction does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_defaultScalar(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_defaultScalar,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().DefaultScalar(ctx, fc.Args[\"arg\"].(string))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNDefaultScalarImplementation2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_defaultScalar(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type DefaultScalarImplementation does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_defaultScalar_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_skipInclude(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_skipInclude,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().SkipInclude(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOSkipIncludeTestType2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐSkipIncludeTestType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_skipInclude(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"a\":\n\t\t\t\treturn ec.fieldContext_SkipIncludeTestType_a(ctx, field)\n\t\t\tcase \"b\":\n\t\t\t\treturn ec.fieldContext_SkipIncludeTestType_b(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type SkipIncludeTestType\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_slices(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_slices,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Slices(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOSlices2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐSlices,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_slices(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"test1\":\n\t\t\t\treturn ec.fieldContext_Slices_test1(ctx, field)\n\t\t\tcase \"test2\":\n\t\t\t\treturn ec.fieldContext_Slices_test2(ctx, field)\n\t\t\tcase \"test3\":\n\t\t\t\treturn ec.fieldContext_Slices_test3(ctx, field)\n\t\t\tcase \"test4\":\n\t\t\t\treturn ec.fieldContext_Slices_test4(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Slices\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_scalarSlice(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_scalarSlice,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().ScalarSlice(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNBytes2ᚕbyte,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_scalarSlice(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Bytes does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_fallback(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_fallback,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().Fallback(ctx, fc.Args[\"arg\"].(FallbackToStringEncoding))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNFallbackToStringEncoding2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐFallbackToStringEncoding,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_fallback(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type FallbackToStringEncoding does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_fallback_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_optionalUnion(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_optionalUnion,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().OptionalUnion(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOTestUnion2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐTestUnion,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_optionalUnion(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type TestUnion does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_vOkCaseValue(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_vOkCaseValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().VOkCaseValue(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOVOkCaseValue2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐVOkCaseValue,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_vOkCaseValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"value\":\n\t\t\t\treturn ec.fieldContext_VOkCaseValue_value(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type VOkCaseValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_vOkCaseNil(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_vOkCaseNil,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().VOkCaseNil(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOVOkCaseNil2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐVOkCaseNil,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_vOkCaseNil(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"value\":\n\t\t\t\treturn ec.fieldContext_VOkCaseNil_value(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type VOkCaseNil\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_validType(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_validType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().ValidType(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOValidType2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐValidType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_validType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"differentCase\":\n\t\t\t\treturn ec.fieldContext_ValidType_differentCase(ctx, field)\n\t\t\tcase \"different_case\":\n\t\t\t\treturn ec.fieldContext_ValidType_different_case(ctx, field)\n\t\t\tcase \"validInputKeywords\":\n\t\t\t\treturn ec.fieldContext_ValidType_validInputKeywords(ctx, field)\n\t\t\tcase \"validArgs\":\n\t\t\t\treturn ec.fieldContext_ValidType_validArgs(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type ValidType\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_variadicModel(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_variadicModel,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().VariadicModel(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOVariadicModel2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐVariadicModel,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_variadicModel(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"value\":\n\t\t\t\treturn ec.fieldContext_VariadicModel_value(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type VariadicModel\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_wrappedStruct(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_wrappedStruct,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().WrappedStruct(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNWrappedStruct2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐWrappedStruct,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_wrappedStruct(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_WrappedStruct_name(ctx, field)\n\t\t\tcase \"desc\":\n\t\t\t\treturn ec.fieldContext_WrappedStruct_desc(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type WrappedStruct\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_wrappedScalar(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_wrappedScalar,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().WrappedScalar(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNWrappedScalar2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚋotherpkgᚐScalar,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_wrappedScalar(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type WrappedScalar does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_wrappedMap(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_wrappedMap,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().WrappedMap(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNWrappedMap2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐWrappedMap,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_wrappedMap(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"get\":\n\t\t\t\treturn ec.fieldContext_WrappedMap_get(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type WrappedMap\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_wrappedSlice(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_wrappedSlice,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().WrappedSlice(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNWrappedSlice2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐWrappedSlice,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_wrappedSlice(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"get\":\n\t\t\t\treturn ec.fieldContext_WrappedSlice_get(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type WrappedSlice\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.IntrospectType(fc.Args[\"name\"].(string))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___schema,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.IntrospectSchema()\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Subscription_updated(ctx context.Context, field graphql.CollectedField) (ret func(ctx context.Context) graphql.Marshaler) {\n\treturn graphql.ResolveFieldStream(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Subscription_updated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Subscription().Updated(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Subscription_updated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Subscription\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Subscription_initPayload(ctx context.Context, field graphql.CollectedField) (ret func(ctx context.Context) graphql.Marshaler) {\n\treturn graphql.ResolveFieldStream(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Subscription_initPayload,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Subscription().InitPayload(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Subscription_initPayload(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Subscription\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Subscription_directiveArg(ctx context.Context, field graphql.CollectedField) (ret func(ctx context.Context) graphql.Marshaler) {\n\treturn graphql.ResolveFieldStream(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Subscription_directiveArg,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Subscription().DirectiveArg(ctx, fc.Args[\"arg\"].(string))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Subscription_directiveArg(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Subscription\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Subscription_directiveArg_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Subscription_directiveNullableArg(ctx context.Context, field graphql.CollectedField) (ret func(ctx context.Context) graphql.Marshaler) {\n\treturn graphql.ResolveFieldStream(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Subscription_directiveNullableArg,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Subscription().DirectiveNullableArg(ctx, fc.Args[\"arg\"].(*int), fc.Args[\"arg2\"].(*int), fc.Args[\"arg3\"].(*string))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Subscription_directiveNullableArg(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Subscription\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Subscription_directiveNullableArg_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Subscription_directiveDouble(ctx context.Context, field graphql.CollectedField) (ret func(ctx context.Context) graphql.Marshaler) {\n\treturn graphql.ResolveFieldStream(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Subscription_directiveDouble,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Subscription().DirectiveDouble(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tif ec.Directives.Directive1 == nil {\n\t\t\t\t\tvar zeroVal *string\n\t\t\t\t\treturn zeroVal, errors.New(\"directive directive1 is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Directive1(ctx, nil, directive0)\n\t\t\t}\n\t\t\tdirective2 := func(ctx context.Context) (any, error) {\n\t\t\t\tif ec.Directives.Directive2 == nil {\n\t\t\t\t\tvar zeroVal *string\n\t\t\t\t\treturn zeroVal, errors.New(\"directive directive2 is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Directive2(ctx, nil, directive1)\n\t\t\t}\n\n\t\t\tnext = directive2\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Subscription_directiveDouble(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Subscription\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Subscription_directiveUnimplemented(ctx context.Context, field graphql.CollectedField) (ret func(ctx context.Context) graphql.Marshaler) {\n\treturn graphql.ResolveFieldStream(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Subscription_directiveUnimplemented,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Subscription().DirectiveUnimplemented(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tif ec.Directives.Unimplemented == nil {\n\t\t\t\t\tvar zeroVal *string\n\t\t\t\t\treturn zeroVal, errors.New(\"directive unimplemented is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Unimplemented(ctx, nil, directive0)\n\t\t\t}\n\n\t\t\tnext = directive1\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Subscription_directiveUnimplemented(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Subscription\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Subscription_issue896b(ctx context.Context, field graphql.CollectedField) (ret func(ctx context.Context) graphql.Marshaler) {\n\treturn graphql.ResolveFieldStream(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Subscription_issue896b,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Subscription().Issue896b(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOCheckIssue8962ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐCheckIssue896,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Subscription_issue896b(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Subscription\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_CheckIssue896_id(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type CheckIssue896\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Subscription_errorRequired(ctx context.Context, field graphql.CollectedField) (ret func(ctx context.Context) graphql.Marshaler) {\n\treturn graphql.ResolveFieldStream(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Subscription_errorRequired,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Subscription().ErrorRequired(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNError2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐError,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Subscription_errorRequired(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Subscription\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Error_id(ctx, field)\n\t\t\tcase \"errorOnNonRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnNonRequiredField(ctx, field)\n\t\t\tcase \"errorOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnRequiredField(ctx, field)\n\t\t\tcase \"nilOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_nilOnRequiredField(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Error\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_id(ctx context.Context, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_friends(ctx context.Context, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_friends,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.User().Friends(ctx, obj)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNUser2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐUserᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_friends(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_User_id(ctx, field)\n\t\t\tcase \"friends\":\n\t\t\t\treturn ec.fieldContext_User_friends(ctx, field)\n\t\t\tcase \"created\":\n\t\t\t\treturn ec.fieldContext_User_created(ctx, field)\n\t\t\tcase \"updated\":\n\t\t\t\treturn ec.fieldContext_User_updated(ctx, field)\n\t\t\tcase \"pets\":\n\t\t\t\treturn ec.fieldContext_User_pets(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type User\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_created(ctx context.Context, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_created,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Created, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNTime2timeᚐTime,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_created(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Time does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_updated(ctx context.Context, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_updated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Updated, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOTime2ᚖtimeᚐTime,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_updated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Time does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_pets(ctx context.Context, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_pets,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.User().Pets(ctx, obj, fc.Args[\"limit\"].(*int))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOPet2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPetᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_pets(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Pet_id(ctx, field)\n\t\t\tcase \"friends\":\n\t\t\t\treturn ec.fieldContext_Pet_friends(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Pet\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_User_pets_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalInputChanges(ctx context.Context, obj any) (map[string]any, error) {\n\tvar it map[string]any\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"a\", \"b\"}\n\tit = make(map[string]any, len(asMap))\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"a\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"a\"))\n\t\t\tdata, err := ec.unmarshalOInt2ᚖint(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"a\"] = data\n\t\tcase \"b\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"b\"))\n\t\t\tdata, err := ec.unmarshalOInt2ᚖint(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"b\"] = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputInnerInput(ctx context.Context, obj any) (InnerInput, error) {\n\tvar it InnerInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"id\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"id\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"id\"))\n\t\t\tdata, err := ec.unmarshalNInt2int(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.ID = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputOmittableInput(ctx context.Context, obj any) (OmittableInput, error) {\n\tvar it OmittableInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"id\", \"bool\", \"str\", \"int\", \"time\", \"enum\", \"scalar\", \"object\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"id\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"id\"))\n\t\t\tdata, err := ec.unmarshalOID2ᚖstring(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.ID = graphql.OmittableOf(data)\n\t\tcase \"bool\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"bool\"))\n\t\t\tdata, err := ec.unmarshalOBoolean2ᚖbool(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Bool = graphql.OmittableOf(data)\n\t\tcase \"str\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"str\"))\n\t\t\tdata, err := ec.unmarshalOString2ᚖstring(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Str = graphql.OmittableOf(data)\n\t\tcase \"int\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"int\"))\n\t\t\tdata, err := ec.unmarshalOInt2ᚖint(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Int = graphql.OmittableOf(data)\n\t\tcase \"time\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"time\"))\n\t\t\tdata, err := ec.unmarshalOTime2ᚖtimeᚐTime(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Time = graphql.OmittableOf(data)\n\t\tcase \"enum\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"enum\"))\n\t\t\tdata, err := ec.unmarshalOStatus2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐStatus(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Enum = graphql.OmittableOf(data)\n\t\tcase \"scalar\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"scalar\"))\n\t\t\tdata, err := ec.unmarshalOThirdParty2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐThirdParty(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Scalar = graphql.OmittableOf(data)\n\t\tcase \"object\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"object\"))\n\t\t\tdata, err := ec.unmarshalOOuterInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐOuterInput(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Object = graphql.OmittableOf(data)\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputOuterInput(ctx context.Context, obj any) (OuterInput, error) {\n\tvar it OuterInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"inner\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"inner\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"inner\"))\n\t\t\tdata, err := ec.unmarshalNInnerInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐInnerInput(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Inner = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputRecursiveInputSlice(ctx context.Context, obj any) (RecursiveInputSlice, error) {\n\tvar it RecursiveInputSlice\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"self\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"self\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"self\"))\n\t\t\tdata, err := ec.unmarshalORecursiveInputSlice2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐRecursiveInputSliceᚄ(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Self = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar autobindImplementors = []string{\"Autobind\"}\n\nfunc (ec *executionContext) _Autobind(ctx context.Context, sel ast.SelectionSet, obj *Autobind) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, autobindImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Autobind\")\n\t\tcase \"int\":\n\t\t\tout.Values[i] = ec._Autobind_int(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"int32\":\n\t\t\tout.Values[i] = ec._Autobind_int32(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"int64\":\n\t\t\tout.Values[i] = ec._Autobind_int64(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"idStr\":\n\t\t\tout.Values[i] = ec._Autobind_idStr(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"idInt\":\n\t\t\tout.Values[i] = ec._Autobind_idInt(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar embeddedPointerImplementors = []string{\"EmbeddedPointer\"}\n\nfunc (ec *executionContext) _EmbeddedPointer(ctx context.Context, sel ast.SelectionSet, obj *EmbeddedPointerModel) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, embeddedPointerImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"EmbeddedPointer\")\n\t\tcase \"ID\":\n\t\t\tout.Values[i] = ec._EmbeddedPointer_ID(ctx, field, obj)\n\t\tcase \"Title\":\n\t\t\tout.Values[i] = ec._EmbeddedPointer_Title(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar forcedResolverImplementors = []string{\"ForcedResolver\"}\n\nfunc (ec *executionContext) _ForcedResolver(ctx context.Context, sel ast.SelectionSet, obj *ForcedResolver) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, forcedResolverImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"ForcedResolver\")\n\t\tcase \"field\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._ForcedResolver_field(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar innerObjectImplementors = []string{\"InnerObject\"}\n\nfunc (ec *executionContext) _InnerObject(ctx context.Context, sel ast.SelectionSet, obj *InnerObject) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, innerObjectImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"InnerObject\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._InnerObject_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar invalidIdentifierImplementors = []string{\"InvalidIdentifier\"}\n\nfunc (ec *executionContext) _InvalidIdentifier(ctx context.Context, sel ast.SelectionSet, obj *invalid_packagename.InvalidIdentifier) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, invalidIdentifierImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"InvalidIdentifier\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._InvalidIdentifier_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar itImplementors = []string{\"It\"}\n\nfunc (ec *executionContext) _It(ctx context.Context, sel ast.SelectionSet, obj *introspection1.It) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, itImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"It\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._It_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar modelMethodsImplementors = []string{\"ModelMethods\"}\n\nfunc (ec *executionContext) _ModelMethods(ctx context.Context, sel ast.SelectionSet, obj *ModelMethods) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, modelMethodsImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"ModelMethods\")\n\t\tcase \"resolverField\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._ModelMethods_resolverField(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"noContext\":\n\t\t\tout.Values[i] = ec._ModelMethods_noContext(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"withContext\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._ModelMethods_withContext(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar outerObjectImplementors = []string{\"OuterObject\"}\n\nfunc (ec *executionContext) _OuterObject(ctx context.Context, sel ast.SelectionSet, obj *OuterObject) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, outerObjectImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"OuterObject\")\n\t\tcase \"inner\":\n\t\t\tout.Values[i] = ec._OuterObject_inner(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar petImplementors = []string{\"Pet\"}\n\nfunc (ec *executionContext) _Pet(ctx context.Context, sel ast.SelectionSet, obj *Pet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, petImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Pet\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._Pet_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"friends\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Pet_friends(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"invalidIdentifier\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_invalidIdentifier(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"collision\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_collision(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"mapInput\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_mapInput(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"recursive\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_recursive(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"nestedInputs\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_nestedInputs(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"nestedOutputs\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_nestedOutputs(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"modelMethods\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_modelMethods(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"user\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_user(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"nullableArg\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_nullableArg(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"inputSlice\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_inputSlice(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"inputNullableSlice\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_inputNullableSlice(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"inputOmittable\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_inputOmittable(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"shapeUnion\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_shapeUnion(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"autobind\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_autobind(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"deprecatedField\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_deprecatedField(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"fieldWithDeprecatedArg\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_fieldWithDeprecatedArg(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"overlapping\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_overlapping(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"defaultParameters\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_defaultParameters(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"deferSingle\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_deferSingle(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"deferMultiple\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_deferMultiple(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"directiveArg\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_directiveArg(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"directiveNullableArg\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_directiveNullableArg(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"directiveSingleNullableArg\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_directiveSingleNullableArg(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"directiveInputNullable\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_directiveInputNullable(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"directiveInput\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_directiveInput(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"directiveInputType\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_directiveInputType(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"directiveInputOuter\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_directiveInputOuter(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"directiveObject\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_directiveObject(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"directiveObjectWithCustomGoModel\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_directiveObjectWithCustomGoModel(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"directiveFieldDef\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_directiveFieldDef(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"directiveField\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_directiveField(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"directiveDouble\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_directiveDouble(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"directiveUnimplemented\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_directiveUnimplemented(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"embeddedCase1\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_embeddedCase1(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"embeddedCase2\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_embeddedCase2(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"embeddedCase3\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_embeddedCase3(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"enumInInput\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_enumInInput(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"searchProducts\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_searchProducts(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"searchRequired\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_searchRequired(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"searchProductsNormal\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_searchProductsNormal(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"searchWithDefaults\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_searchWithDefaults(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"searchMixed\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_searchMixed(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"filterProducts\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_filterProducts(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findProducts\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_findProducts(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"searchWithDirectives\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_searchWithDirectives(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"shapes\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_shapes(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"noShape\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_noShape(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"node\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_node(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"noShapeTypedNil\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_noShapeTypedNil(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"animal\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_animal(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"notAnInterface\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_notAnInterface(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"dog\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_dog(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"issue896a\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_issue896a(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"mapStringInterface\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_mapStringInterface(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"mapNestedStringInterface\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_mapNestedStringInterface(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"mapNestedMapSlice\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_mapNestedMapSlice(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"errorBubble\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_errorBubble(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"errorBubbleList\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_errorBubbleList(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"errorList\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_errorList(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"errors\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_errors(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"valid\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_valid(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"invalid\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_invalid(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"panics\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_panics(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"primitiveObject\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_primitiveObject(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"primitiveStringObject\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_primitiveStringObject(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"ptrToAnyContainer\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_ptrToAnyContainer(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"ptrToSliceContainer\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_ptrToSliceContainer(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"infinity\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_infinity(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"stringFromContextInterface\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_stringFromContextInterface(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"stringFromContextFunction\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_stringFromContextFunction(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"defaultScalar\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_defaultScalar(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"skipInclude\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_skipInclude(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"slices\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_slices(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"scalarSlice\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_scalarSlice(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"fallback\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_fallback(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"optionalUnion\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_optionalUnion(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"vOkCaseValue\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_vOkCaseValue(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"vOkCaseNil\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_vOkCaseNil(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"validType\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_validType(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"variadicModel\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_variadicModel(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"wrappedStruct\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_wrappedStruct(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"wrappedScalar\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_wrappedScalar(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"wrappedMap\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_wrappedMap(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"wrappedSlice\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_wrappedSlice(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar subscriptionImplementors = []string{\"Subscription\"}\n\nfunc (ec *executionContext) _Subscription(ctx context.Context, sel ast.SelectionSet) func(ctx context.Context) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, subscriptionImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Subscription\",\n\t})\n\tif len(fields) != 1 {\n\t\tgraphql.AddErrorf(ctx, \"must subscribe to exactly one stream\")\n\t\treturn nil\n\t}\n\n\tswitch fields[0].Name {\n\tcase \"updated\":\n\t\treturn ec._Subscription_updated(ctx, fields[0])\n\tcase \"initPayload\":\n\t\treturn ec._Subscription_initPayload(ctx, fields[0])\n\tcase \"directiveArg\":\n\t\treturn ec._Subscription_directiveArg(ctx, fields[0])\n\tcase \"directiveNullableArg\":\n\t\treturn ec._Subscription_directiveNullableArg(ctx, fields[0])\n\tcase \"directiveDouble\":\n\t\treturn ec._Subscription_directiveDouble(ctx, fields[0])\n\tcase \"directiveUnimplemented\":\n\t\treturn ec._Subscription_directiveUnimplemented(ctx, fields[0])\n\tcase \"issue896b\":\n\t\treturn ec._Subscription_issue896b(ctx, fields[0])\n\tcase \"errorRequired\":\n\t\treturn ec._Subscription_errorRequired(ctx, fields[0])\n\tdefault:\n\t\tpanic(\"unknown field \" + strconv.Quote(fields[0].Name))\n\t}\n}\n\nvar userImplementors = []string{\"User\"}\n\nfunc (ec *executionContext) _User(ctx context.Context, sel ast.SelectionSet, obj *User) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, userImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"User\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._User_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"friends\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._User_friends(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"created\":\n\t\t\tout.Values[i] = ec._User_created(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"updated\":\n\t\t\tout.Values[i] = ec._User_updated(ctx, field, obj)\n\t\tcase \"pets\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._User_pets(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNInnerInput2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐInnerInput(ctx context.Context, v any) (InnerInput, error) {\n\tres, err := ec.unmarshalInputInnerInput(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalNInnerInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐInnerInput(ctx context.Context, v any) (*InnerInput, error) {\n\tres, err := ec.unmarshalInputInnerInput(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNInnerObject2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐInnerObject(ctx context.Context, sel ast.SelectionSet, v *InnerObject) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._InnerObject(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNOmittableInput2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐOmittableInput(ctx context.Context, v any) (OmittableInput, error) {\n\tres, err := ec.unmarshalInputOmittableInput(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNPet2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPet(ctx context.Context, sel ast.SelectionSet, v *Pet) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Pet(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNRecursiveInputSlice2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐRecursiveInputSlice(ctx context.Context, v any) (RecursiveInputSlice, error) {\n\tres, err := ec.unmarshalInputRecursiveInputSlice(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalNTime2timeᚐTime(ctx context.Context, v any) (time.Time, error) {\n\tres, err := graphql.UnmarshalTime(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNTime2timeᚐTime(ctx context.Context, sel ast.SelectionSet, v time.Time) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalTime(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNUUID2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNUUID2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNUser2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐUser(ctx context.Context, sel ast.SelectionSet, v User) graphql.Marshaler {\n\treturn ec._User(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNUser2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐUserᚄ(ctx context.Context, sel ast.SelectionSet, v []*User) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐUser(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalNUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐUser(ctx context.Context, sel ast.SelectionSet, v *User) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._User(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOAutobind2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐAutobind(ctx context.Context, sel ast.SelectionSet, v *Autobind) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Autobind(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOChanges2map(ctx context.Context, v any) (map[string]any, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputChanges(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOInvalidIdentifier2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚋinvalidᚑpackagenameᚐInvalidIdentifier(ctx context.Context, sel ast.SelectionSet, v *invalid_packagename.InvalidIdentifier) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._InvalidIdentifier(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOIt2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚋintrospectionᚐIt(ctx context.Context, sel ast.SelectionSet, v *introspection1.It) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._It(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOModelMethods2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐModelMethods(ctx context.Context, sel ast.SelectionSet, v *ModelMethods) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._ModelMethods(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOOuterInput2ᚕᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐOuterInput(ctx context.Context, v any) ([][]*OuterInput, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([][]*OuterInput, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalOOuterInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐOuterInput(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) unmarshalOOuterInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐOuterInput(ctx context.Context, v any) ([]*OuterInput, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]*OuterInput, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalOOuterInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐOuterInput(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) unmarshalOOuterInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐOuterInput(ctx context.Context, v any) (*OuterInput, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputOuterInput(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOOuterObject2ᚕᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐOuterObject(ctx context.Context, sel ast.SelectionSet, v [][]*OuterObject) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalOOuterObject2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐOuterObject(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOOuterObject2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐOuterObject(ctx context.Context, sel ast.SelectionSet, v []*OuterObject) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalOOuterObject2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐOuterObject(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOOuterObject2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐOuterObject(ctx context.Context, sel ast.SelectionSet, v *OuterObject) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._OuterObject(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOPet2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPetᚄ(ctx context.Context, sel ast.SelectionSet, v []*Pet) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNPet2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐPet(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalORecursiveInputSlice2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐRecursiveInputSliceᚄ(ctx context.Context, v any) ([]RecursiveInputSlice, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]RecursiveInputSlice, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNRecursiveInputSlice2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐRecursiveInputSlice(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) unmarshalORecursiveInputSlice2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐRecursiveInputSlice(ctx context.Context, v any) (*RecursiveInputSlice, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputRecursiveInputSlice(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalOStatus2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐStatus(ctx context.Context, v any) (*Status, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar res = new(Status)\n\terr := res.UnmarshalGQL(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOStatus2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐStatus(ctx context.Context, sel ast.SelectionSet, v *Status) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn v\n}\n\nfunc (ec *executionContext) unmarshalOThirdParty2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐThirdParty(ctx context.Context, v any) (*ThirdParty, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := UnmarshalThirdParty(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOThirdParty2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐThirdParty(ctx context.Context, sel ast.SelectionSet, v *ThirdParty) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := MarshalThirdParty(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOTime2ᚖtimeᚐTime(ctx context.Context, v any) (*time.Time, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalTime(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOTime2ᚖtimeᚐTime(ctx context.Context, sel ast.SelectionSet, v *time.Time) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalTime(*v)\n\treturn res\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/followschema/schema.graphql",
    "content": "directive @goModel(\n    model: String\n    models: [String!]\n) on OBJECT | INPUT_OBJECT | SCALAR | ENUM | INTERFACE | UNION\ndirective @goField(\n    forceResolver: Boolean\n    name: String\n    omittable: Boolean\n    type: String\n) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION\ndirective @defer(\n    if: Boolean = true\n    label: String\n) on FRAGMENT_SPREAD | INLINE_FRAGMENT\n\ntype Query {\n    invalidIdentifier: InvalidIdentifier\n    collision: It\n    mapInput(input: Changes): Boolean\n    recursive(input: RecursiveInputSlice): Boolean\n    nestedInputs(input: [[OuterInput]] = [[{ inner: { id: 1 } }]]): Boolean\n    nestedOutputs: [[OuterObject]]\n    modelMethods: ModelMethods\n    user(id: Int!): User!\n    nullableArg(arg: Int = 123): String\n    inputSlice(arg: [String!]!): Boolean!\n    inputNullableSlice(arg: [String!]): Boolean!\n    inputOmittable(arg: OmittableInput!): String!\n    shapeUnion: ShapeUnion!\n    autobind: Autobind\n    deprecatedField: String! @deprecated(reason: \"test deprecated directive\")\n    fieldWithDeprecatedArg(oldArg: Int @deprecated(reason: \"old arg\"), newArg: Int): String\n}\n\ntype Subscription {\n    updated: String!\n    initPayload: String!\n}\n\ntype Pet {\n    id: Int!\n    friends(limit: Int): [Pet!] @goField(forceResolver: true)\n}\n\ntype User {\n    id: Int!\n    friends: [User!]! @goField(forceResolver: true)\n    created: Time!\n    updated: Time\n    pets(limit: Int): [Pet!] @goField(forceResolver: true)\n}\n\ntype Autobind {\n    int: Int!\n    int32: Int!\n    int64: Int!\n\n    idStr: ID!\n    idInt: ID!\n}\n\ntype ModelMethods {\n    resolverField: Boolean!\n    noContext: Boolean!\n    withContext: Boolean!\n}\n\ntype InvalidIdentifier {\n    id: Int!\n}\n\ntype It {\n    id: ID!\n}\n\ninput Changes @goModel(model: \"map[string]interface{}\") {\n    a: Int\n    b: Int\n}\n\ninput RecursiveInputSlice {\n    self: [RecursiveInputSlice!]\n}\n\ninput InnerInput {\n    id: Int!\n}\n\ninput OuterInput {\n    inner: InnerInput!\n}\n\ninput OmittableInput {\n    id: ID @goField(omittable: true)\n    bool: Boolean @goField(omittable: true)\n    str: String @goField(omittable: true)\n    int: Int @goField(omittable: true)\n    time: Time @goField(omittable: true)\n    enum: Status @goField(omittable: true)\n    scalar: ThirdParty @goField(omittable: true)\n    object: OuterInput @goField(omittable: true)\n}\n\nscalar ThirdParty @goModel(model: \"followschema.ThirdParty\")\n\ntype OuterObject {\n    inner: InnerObject!\n}\n\ntype InnerObject {\n    id: Int!\n}\n\ntype ForcedResolver {\n    field: Circle @goField(forceResolver: true)\n}\n\ntype EmbeddedPointer @goModel(model: \"followschema.EmbeddedPointerModel\") {\n    ID: String\n    Title: String\n}\n\nscalar UUID\n\nenum Status {\n    OK\n    ERROR\n}\n\nscalar Time\n"
  },
  {
    "path": "codegen/testserver/followschema/skip-include.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _SkipIncludeTestType_a(ctx context.Context, field graphql.CollectedField, obj *SkipIncludeTestType) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_SkipIncludeTestType_a,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.A, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_SkipIncludeTestType_a(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"SkipIncludeTestType\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _SkipIncludeTestType_b(ctx context.Context, field graphql.CollectedField, obj *SkipIncludeTestType) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_SkipIncludeTestType_b,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.B, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_SkipIncludeTestType_b(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"SkipIncludeTestType\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar skipIncludeTestTypeImplementors = []string{\"SkipIncludeTestType\"}\n\nfunc (ec *executionContext) _SkipIncludeTestType(ctx context.Context, sel ast.SelectionSet, obj *SkipIncludeTestType) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, skipIncludeTestTypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"SkipIncludeTestType\")\n\t\tcase \"a\":\n\t\t\tout.Values[i] = ec._SkipIncludeTestType_a(ctx, field, obj)\n\t\tcase \"b\":\n\t\t\tout.Values[i] = ec._SkipIncludeTestType_b(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) marshalOSkipIncludeTestType2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐSkipIncludeTestType(ctx context.Context, sel ast.SelectionSet, v *SkipIncludeTestType) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._SkipIncludeTestType(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/followschema/skip-include.graphql",
    "content": "extend type Query {\n    skipInclude: SkipIncludeTestType\n}\n\ntype SkipIncludeTestType {\n    a: String\n    b: String\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/slices.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Slices_test1(ctx context.Context, field graphql.CollectedField, obj *Slices) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Slices_test1,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Test1, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚕᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Slices_test1(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Slices\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Slices_test2(ctx context.Context, field graphql.CollectedField, obj *Slices) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Slices_test2,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Test2, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚕstringᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Slices_test2(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Slices\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Slices_test3(ctx context.Context, field graphql.CollectedField, obj *Slices) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Slices_test3,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Test3, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2ᚕᚖstring,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Slices_test3(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Slices\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Slices_test4(ctx context.Context, field graphql.CollectedField, obj *Slices) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Slices_test4,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Test4, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Slices_test4(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Slices\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar slicesImplementors = []string{\"Slices\"}\n\nfunc (ec *executionContext) _Slices(ctx context.Context, sel ast.SelectionSet, obj *Slices) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, slicesImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Slices\")\n\t\tcase \"test1\":\n\t\t\tout.Values[i] = ec._Slices_test1(ctx, field, obj)\n\t\tcase \"test2\":\n\t\t\tout.Values[i] = ec._Slices_test2(ctx, field, obj)\n\t\tcase \"test3\":\n\t\t\tout.Values[i] = ec._Slices_test3(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"test4\":\n\t\t\tout.Values[i] = ec._Slices_test4(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBytes2ᚕbyte(ctx context.Context, v any) ([]byte, error) {\n\tres, err := UnmarshalBytes(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBytes2ᚕbyte(ctx context.Context, sel ast.SelectionSet, v []byte) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\tres := MarshalBytes(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalOSlices2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐSlices(ctx context.Context, sel ast.SelectionSet, v *Slices) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Slices(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/followschema/slices.graphql",
    "content": "extend type Query {\n    slices: Slices\n    scalarSlice: Bytes!\n}\n\ntype Slices {\n    test1: [String]\n    test2: [String!]\n    test3: [String]!\n    test4: [String!]!\n}\n\nscalar Bytes\n"
  },
  {
    "path": "codegen/testserver/followschema/slices_test.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestSlices(t *testing.T) {\n\tresolvers := &Stub{}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"nulls vs empty slices\", func(t *testing.T) {\n\t\tresolvers.QueryResolver.Slices = func(ctx context.Context) (slices *Slices, e error) {\n\t\t\treturn &Slices{}, nil\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tSlices Slices\n\t\t}\n\t\tc.MustPost(`query { slices { test1, test2, test3, test4 }}`, &resp)\n\t\trequire.Nil(t, resp.Slices.Test1)\n\t\trequire.Nil(t, resp.Slices.Test2)\n\t\trequire.NotNil(t, resp.Slices.Test3)\n\t\trequire.NotNil(t, resp.Slices.Test4)\n\t})\n\n\tt.Run(\"custom scalars to slices work\", func(t *testing.T) {\n\t\tresolvers.QueryResolver.ScalarSlice = func(ctx context.Context) ([]byte, error) {\n\t\t\treturn []byte(\"testing\"), nil\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tScalarSlice string\n\t\t}\n\t\tc.MustPost(`query { scalarSlice }`, &resp)\n\t\trequire.Equal(t, \"testing\", resp.ScalarSlice)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/stub.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\n\tintrospection1 \"github.com/99designs/gqlgen/codegen/testserver/followschema/introspection\"\n\tinvalid_packagename \"github.com/99designs/gqlgen/codegen/testserver/followschema/invalid-packagename\"\n\t\"github.com/99designs/gqlgen/codegen/testserver/followschema/otherpkg\"\n)\n\ntype Stub struct {\n\tBackedByInterfaceResolver struct {\n\t\tID func(ctx context.Context, obj BackedByInterface) (string, error)\n\t}\n\tDeferModelResolver struct {\n\t\tValues func(ctx context.Context, obj *DeferModel) ([]string, error)\n\t}\n\tErrorsResolver struct {\n\t\tA func(ctx context.Context, obj *Errors) (*Error, error)\n\t\tB func(ctx context.Context, obj *Errors) (*Error, error)\n\t\tC func(ctx context.Context, obj *Errors) (*Error, error)\n\t\tD func(ctx context.Context, obj *Errors) (*Error, error)\n\t\tE func(ctx context.Context, obj *Errors) (*Error, error)\n\t}\n\tForcedResolverResolver struct {\n\t\tField func(ctx context.Context, obj *ForcedResolver) (*Circle, error)\n\t}\n\tModelMethodsResolver struct {\n\t\tResolverField func(ctx context.Context, obj *ModelMethods) (bool, error)\n\t}\n\tMutationResolver struct {\n\t\tDefaultInput          func(ctx context.Context, input DefaultInput) (*DefaultParametersMirror, error)\n\t\tOverrideValueViaInput func(ctx context.Context, input FieldsOrderInput) (*FieldsOrderPayload, error)\n\t\tUpdateProduct         func(ctx context.Context, input map[string]interface{}) (string, error)\n\t\tIssue4053             func(ctx context.Context, input *Issue4053Input1) (bool, error)\n\t\tUpdateSomething       func(ctx context.Context, input SpecialInput) (string, error)\n\t\tUpdatePtrToPtr        func(ctx context.Context, input UpdatePtrToPtrOuter) (*PtrToPtrOuter, error)\n\t}\n\tOverlappingFieldsResolver struct {\n\t\tOldFoo func(ctx context.Context, obj *OverlappingFields) (int, error)\n\t}\n\tPanicsResolver struct {\n\t\tFieldScalarMarshal func(ctx context.Context, obj *Panics) ([]MarshalPanic, error)\n\t\tArgUnmarshal       func(ctx context.Context, obj *Panics, u []MarshalPanic) (bool, error)\n\t}\n\tPetResolver struct {\n\t\tFriends func(ctx context.Context, obj *Pet, limit *int) ([]*Pet, error)\n\t}\n\tPrimitiveResolver struct {\n\t\tValue func(ctx context.Context, obj *Primitive) (int, error)\n\t}\n\tPrimitiveStringResolver struct {\n\t\tValue func(ctx context.Context, obj *PrimitiveString) (string, error)\n\t\tLen   func(ctx context.Context, obj *PrimitiveString) (int, error)\n\t}\n\tQueryResolver struct {\n\t\tInvalidIdentifier                func(ctx context.Context) (*invalid_packagename.InvalidIdentifier, error)\n\t\tCollision                        func(ctx context.Context) (*introspection1.It, error)\n\t\tMapInput                         func(ctx context.Context, input map[string]any) (*bool, error)\n\t\tRecursive                        func(ctx context.Context, input *RecursiveInputSlice) (*bool, error)\n\t\tNestedInputs                     func(ctx context.Context, input [][]*OuterInput) (*bool, error)\n\t\tNestedOutputs                    func(ctx context.Context) ([][]*OuterObject, error)\n\t\tModelMethods                     func(ctx context.Context) (*ModelMethods, error)\n\t\tUser                             func(ctx context.Context, id int) (*User, error)\n\t\tNullableArg                      func(ctx context.Context, arg *int) (*string, error)\n\t\tInputSlice                       func(ctx context.Context, arg []string) (bool, error)\n\t\tInputNullableSlice               func(ctx context.Context, arg []string) (bool, error)\n\t\tInputOmittable                   func(ctx context.Context, arg OmittableInput) (string, error)\n\t\tShapeUnion                       func(ctx context.Context) (ShapeUnion, error)\n\t\tAutobind                         func(ctx context.Context) (*Autobind, error)\n\t\tDeprecatedField                  func(ctx context.Context) (string, error)\n\t\tFieldWithDeprecatedArg           func(ctx context.Context, oldArg *int, newArg *int) (*string, error)\n\t\tOverlapping                      func(ctx context.Context) (*OverlappingFields, error)\n\t\tDefaultParameters                func(ctx context.Context, falsyBoolean *bool, truthyBoolean *bool) (*DefaultParametersMirror, error)\n\t\tDeferSingle                      func(ctx context.Context) (*DeferModel, error)\n\t\tDeferMultiple                    func(ctx context.Context) ([]*DeferModel, error)\n\t\tDirectiveArg                     func(ctx context.Context, arg string) (*string, error)\n\t\tDirectiveNullableArg             func(ctx context.Context, arg *int, arg2 *int, arg3 *string) (*string, error)\n\t\tDirectiveSingleNullableArg       func(ctx context.Context, arg1 *string) (*string, error)\n\t\tDirectiveInputNullable           func(ctx context.Context, arg *InputDirectives) (*string, error)\n\t\tDirectiveInput                   func(ctx context.Context, arg InputDirectives) (*string, error)\n\t\tDirectiveInputType               func(ctx context.Context, arg InnerInput) (*string, error)\n\t\tDirectiveInputOuter              func(ctx context.Context, arg OuterWrapperInput) (*string, error)\n\t\tDirectiveObject                  func(ctx context.Context) (*ObjectDirectives, error)\n\t\tDirectiveObjectWithCustomGoModel func(ctx context.Context) (*ObjectDirectivesWithCustomGoModel, error)\n\t\tDirectiveFieldDef                func(ctx context.Context, ret string) (string, error)\n\t\tDirectiveField                   func(ctx context.Context) (*string, error)\n\t\tDirectiveDouble                  func(ctx context.Context) (*string, error)\n\t\tDirectiveUnimplemented           func(ctx context.Context) (*string, error)\n\t\tEmbeddedCase1                    func(ctx context.Context) (*EmbeddedCase1, error)\n\t\tEmbeddedCase2                    func(ctx context.Context) (*EmbeddedCase2, error)\n\t\tEmbeddedCase3                    func(ctx context.Context) (*EmbeddedCase3, error)\n\t\tEnumInInput                      func(ctx context.Context, input *InputWithEnumValue) (EnumTest, error)\n\t\tSearchProducts                   func(ctx context.Context, filters map[string]interface{}) ([]string, error)\n\t\tSearchRequired                   func(ctx context.Context, filters map[string]interface{}) ([]string, error)\n\t\tSearchProductsNormal             func(ctx context.Context, filters map[string]any) ([]string, error)\n\t\tSearchWithDefaults               func(ctx context.Context, filters map[string]interface{}) ([]string, error)\n\t\tSearchMixed                      func(ctx context.Context, filters map[string]interface{}, limit *int, offset *int, sortBy *string) ([]string, error)\n\t\tFilterProducts                   func(ctx context.Context, filters map[string]interface{}) ([]string, error)\n\t\tFindProducts                     func(ctx context.Context, filters map[string]interface{}) ([]string, error)\n\t\tSearchWithDirectives             func(ctx context.Context, input map[string]interface{}) ([]string, error)\n\t\tShapes                           func(ctx context.Context) ([]Shape, error)\n\t\tNoShape                          func(ctx context.Context) (Shape, error)\n\t\tNode                             func(ctx context.Context) (Node, error)\n\t\tNoShapeTypedNil                  func(ctx context.Context) (Shape, error)\n\t\tAnimal                           func(ctx context.Context) (Animal, error)\n\t\tNotAnInterface                   func(ctx context.Context) (BackedByInterface, error)\n\t\tDog                              func(ctx context.Context) (*Dog, error)\n\t\tIssue896a                        func(ctx context.Context) ([]*CheckIssue896, error)\n\t\tMapStringInterface               func(ctx context.Context, in map[string]any) (map[string]any, error)\n\t\tMapNestedStringInterface         func(ctx context.Context, in *NestedMapInput) (map[string]any, error)\n\t\tMapNestedMapSlice                func(ctx context.Context, input map[string]any) (*bool, error)\n\t\tErrorBubble                      func(ctx context.Context) (*Error, error)\n\t\tErrorBubbleList                  func(ctx context.Context) ([]*Error, error)\n\t\tErrorList                        func(ctx context.Context) ([]*Error, error)\n\t\tErrors                           func(ctx context.Context) (*Errors, error)\n\t\tValid                            func(ctx context.Context) (string, error)\n\t\tInvalid                          func(ctx context.Context) (string, error)\n\t\tPanics                           func(ctx context.Context) (*Panics, error)\n\t\tPrimitiveObject                  func(ctx context.Context) ([]Primitive, error)\n\t\tPrimitiveStringObject            func(ctx context.Context) ([]PrimitiveString, error)\n\t\tPtrToAnyContainer                func(ctx context.Context) (*PtrToAnyContainer, error)\n\t\tPtrToSliceContainer              func(ctx context.Context) (*PtrToSliceContainer, error)\n\t\tInfinity                         func(ctx context.Context) (float64, error)\n\t\tStringFromContextInterface       func(ctx context.Context) (*StringFromContextInterface, error)\n\t\tStringFromContextFunction        func(ctx context.Context) (string, error)\n\t\tDefaultScalar                    func(ctx context.Context, arg string) (string, error)\n\t\tSkipInclude                      func(ctx context.Context) (*SkipIncludeTestType, error)\n\t\tSlices                           func(ctx context.Context) (*Slices, error)\n\t\tScalarSlice                      func(ctx context.Context) ([]byte, error)\n\t\tFallback                         func(ctx context.Context, arg FallbackToStringEncoding) (FallbackToStringEncoding, error)\n\t\tOptionalUnion                    func(ctx context.Context) (TestUnion, error)\n\t\tVOkCaseValue                     func(ctx context.Context) (*VOkCaseValue, error)\n\t\tVOkCaseNil                       func(ctx context.Context) (*VOkCaseNil, error)\n\t\tValidType                        func(ctx context.Context) (*ValidType, error)\n\t\tVariadicModel                    func(ctx context.Context) (*VariadicModel, error)\n\t\tWrappedStruct                    func(ctx context.Context) (*WrappedStruct, error)\n\t\tWrappedScalar                    func(ctx context.Context) (otherpkg.Scalar, error)\n\t\tWrappedMap                       func(ctx context.Context) (WrappedMap, error)\n\t\tWrappedSlice                     func(ctx context.Context) (WrappedSlice, error)\n\t}\n\tSubscriptionResolver struct {\n\t\tUpdated                func(ctx context.Context) (<-chan string, error)\n\t\tInitPayload            func(ctx context.Context) (<-chan string, error)\n\t\tDirectiveArg           func(ctx context.Context, arg string) (<-chan *string, error)\n\t\tDirectiveNullableArg   func(ctx context.Context, arg *int, arg2 *int, arg3 *string) (<-chan *string, error)\n\t\tDirectiveDouble        func(ctx context.Context) (<-chan *string, error)\n\t\tDirectiveUnimplemented func(ctx context.Context) (<-chan *string, error)\n\t\tIssue896b              func(ctx context.Context) (<-chan []*CheckIssue896, error)\n\t\tErrorRequired          func(ctx context.Context) (<-chan *Error, error)\n\t}\n\tUserResolver struct {\n\t\tFriends func(ctx context.Context, obj *User) ([]*User, error)\n\t\tPets    func(ctx context.Context, obj *User, limit *int) ([]*Pet, error)\n\t}\n\tWrappedMapResolver struct {\n\t\tGet func(ctx context.Context, obj WrappedMap, key string) (string, error)\n\t}\n\tWrappedSliceResolver struct {\n\t\tGet func(ctx context.Context, obj WrappedSlice, idx int) (string, error)\n\t}\n\n\tFieldsOrderInputResolver struct {\n\t\tOverrideFirstField func(ctx context.Context, obj *FieldsOrderInput, data *string) error\n\t}\n}\n\nfunc (r *Stub) BackedByInterface() BackedByInterfaceResolver {\n\treturn &stubBackedByInterface{r}\n}\nfunc (r *Stub) DeferModel() DeferModelResolver {\n\treturn &stubDeferModel{r}\n}\nfunc (r *Stub) Errors() ErrorsResolver {\n\treturn &stubErrors{r}\n}\nfunc (r *Stub) ForcedResolver() ForcedResolverResolver {\n\treturn &stubForcedResolver{r}\n}\nfunc (r *Stub) ModelMethods() ModelMethodsResolver {\n\treturn &stubModelMethods{r}\n}\nfunc (r *Stub) Mutation() MutationResolver {\n\treturn &stubMutation{r}\n}\nfunc (r *Stub) OverlappingFields() OverlappingFieldsResolver {\n\treturn &stubOverlappingFields{r}\n}\nfunc (r *Stub) Panics() PanicsResolver {\n\treturn &stubPanics{r}\n}\nfunc (r *Stub) Pet() PetResolver {\n\treturn &stubPet{r}\n}\nfunc (r *Stub) Primitive() PrimitiveResolver {\n\treturn &stubPrimitive{r}\n}\nfunc (r *Stub) PrimitiveString() PrimitiveStringResolver {\n\treturn &stubPrimitiveString{r}\n}\nfunc (r *Stub) Query() QueryResolver {\n\treturn &stubQuery{r}\n}\nfunc (r *Stub) Subscription() SubscriptionResolver {\n\treturn &stubSubscription{r}\n}\nfunc (r *Stub) User() UserResolver {\n\treturn &stubUser{r}\n}\nfunc (r *Stub) WrappedMap() WrappedMapResolver {\n\treturn &stubWrappedMap{r}\n}\nfunc (r *Stub) WrappedSlice() WrappedSliceResolver {\n\treturn &stubWrappedSlice{r}\n}\n\nfunc (r *Stub) FieldsOrderInput() FieldsOrderInputResolver {\n\treturn &stubFieldsOrderInput{r}\n}\n\ntype stubBackedByInterface struct{ *Stub }\n\nfunc (r *stubBackedByInterface) ID(ctx context.Context, obj BackedByInterface) (string, error) {\n\treturn r.BackedByInterfaceResolver.ID(ctx, obj)\n}\n\ntype stubDeferModel struct{ *Stub }\n\nfunc (r *stubDeferModel) Values(ctx context.Context, obj *DeferModel) ([]string, error) {\n\treturn r.DeferModelResolver.Values(ctx, obj)\n}\n\ntype stubErrors struct{ *Stub }\n\nfunc (r *stubErrors) A(ctx context.Context, obj *Errors) (*Error, error) {\n\treturn r.ErrorsResolver.A(ctx, obj)\n}\nfunc (r *stubErrors) B(ctx context.Context, obj *Errors) (*Error, error) {\n\treturn r.ErrorsResolver.B(ctx, obj)\n}\nfunc (r *stubErrors) C(ctx context.Context, obj *Errors) (*Error, error) {\n\treturn r.ErrorsResolver.C(ctx, obj)\n}\nfunc (r *stubErrors) D(ctx context.Context, obj *Errors) (*Error, error) {\n\treturn r.ErrorsResolver.D(ctx, obj)\n}\nfunc (r *stubErrors) E(ctx context.Context, obj *Errors) (*Error, error) {\n\treturn r.ErrorsResolver.E(ctx, obj)\n}\n\ntype stubForcedResolver struct{ *Stub }\n\nfunc (r *stubForcedResolver) Field(ctx context.Context, obj *ForcedResolver) (*Circle, error) {\n\treturn r.ForcedResolverResolver.Field(ctx, obj)\n}\n\ntype stubModelMethods struct{ *Stub }\n\nfunc (r *stubModelMethods) ResolverField(ctx context.Context, obj *ModelMethods) (bool, error) {\n\treturn r.ModelMethodsResolver.ResolverField(ctx, obj)\n}\n\ntype stubMutation struct{ *Stub }\n\nfunc (r *stubMutation) DefaultInput(ctx context.Context, input DefaultInput) (*DefaultParametersMirror, error) {\n\treturn r.MutationResolver.DefaultInput(ctx, input)\n}\nfunc (r *stubMutation) OverrideValueViaInput(ctx context.Context, input FieldsOrderInput) (*FieldsOrderPayload, error) {\n\treturn r.MutationResolver.OverrideValueViaInput(ctx, input)\n}\nfunc (r *stubMutation) UpdateProduct(ctx context.Context, input map[string]interface{}) (string, error) {\n\treturn r.MutationResolver.UpdateProduct(ctx, input)\n}\nfunc (r *stubMutation) Issue4053(ctx context.Context, input *Issue4053Input1) (bool, error) {\n\treturn r.MutationResolver.Issue4053(ctx, input)\n}\nfunc (r *stubMutation) UpdateSomething(ctx context.Context, input SpecialInput) (string, error) {\n\treturn r.MutationResolver.UpdateSomething(ctx, input)\n}\nfunc (r *stubMutation) UpdatePtrToPtr(ctx context.Context, input UpdatePtrToPtrOuter) (*PtrToPtrOuter, error) {\n\treturn r.MutationResolver.UpdatePtrToPtr(ctx, input)\n}\n\ntype stubOverlappingFields struct{ *Stub }\n\nfunc (r *stubOverlappingFields) OldFoo(ctx context.Context, obj *OverlappingFields) (int, error) {\n\treturn r.OverlappingFieldsResolver.OldFoo(ctx, obj)\n}\n\ntype stubPanics struct{ *Stub }\n\nfunc (r *stubPanics) FieldScalarMarshal(ctx context.Context, obj *Panics) ([]MarshalPanic, error) {\n\treturn r.PanicsResolver.FieldScalarMarshal(ctx, obj)\n}\nfunc (r *stubPanics) ArgUnmarshal(ctx context.Context, obj *Panics, u []MarshalPanic) (bool, error) {\n\treturn r.PanicsResolver.ArgUnmarshal(ctx, obj, u)\n}\n\ntype stubPet struct{ *Stub }\n\nfunc (r *stubPet) Friends(ctx context.Context, obj *Pet, limit *int) ([]*Pet, error) {\n\treturn r.PetResolver.Friends(ctx, obj, limit)\n}\n\ntype stubPrimitive struct{ *Stub }\n\nfunc (r *stubPrimitive) Value(ctx context.Context, obj *Primitive) (int, error) {\n\treturn r.PrimitiveResolver.Value(ctx, obj)\n}\n\ntype stubPrimitiveString struct{ *Stub }\n\nfunc (r *stubPrimitiveString) Value(ctx context.Context, obj *PrimitiveString) (string, error) {\n\treturn r.PrimitiveStringResolver.Value(ctx, obj)\n}\nfunc (r *stubPrimitiveString) Len(ctx context.Context, obj *PrimitiveString) (int, error) {\n\treturn r.PrimitiveStringResolver.Len(ctx, obj)\n}\n\ntype stubQuery struct{ *Stub }\n\nfunc (r *stubQuery) InvalidIdentifier(ctx context.Context) (*invalid_packagename.InvalidIdentifier, error) {\n\treturn r.QueryResolver.InvalidIdentifier(ctx)\n}\nfunc (r *stubQuery) Collision(ctx context.Context) (*introspection1.It, error) {\n\treturn r.QueryResolver.Collision(ctx)\n}\nfunc (r *stubQuery) MapInput(ctx context.Context, input map[string]any) (*bool, error) {\n\treturn r.QueryResolver.MapInput(ctx, input)\n}\nfunc (r *stubQuery) Recursive(ctx context.Context, input *RecursiveInputSlice) (*bool, error) {\n\treturn r.QueryResolver.Recursive(ctx, input)\n}\nfunc (r *stubQuery) NestedInputs(ctx context.Context, input [][]*OuterInput) (*bool, error) {\n\treturn r.QueryResolver.NestedInputs(ctx, input)\n}\nfunc (r *stubQuery) NestedOutputs(ctx context.Context) ([][]*OuterObject, error) {\n\treturn r.QueryResolver.NestedOutputs(ctx)\n}\nfunc (r *stubQuery) ModelMethods(ctx context.Context) (*ModelMethods, error) {\n\treturn r.QueryResolver.ModelMethods(ctx)\n}\nfunc (r *stubQuery) User(ctx context.Context, id int) (*User, error) {\n\treturn r.QueryResolver.User(ctx, id)\n}\nfunc (r *stubQuery) NullableArg(ctx context.Context, arg *int) (*string, error) {\n\treturn r.QueryResolver.NullableArg(ctx, arg)\n}\nfunc (r *stubQuery) InputSlice(ctx context.Context, arg []string) (bool, error) {\n\treturn r.QueryResolver.InputSlice(ctx, arg)\n}\nfunc (r *stubQuery) InputNullableSlice(ctx context.Context, arg []string) (bool, error) {\n\treturn r.QueryResolver.InputNullableSlice(ctx, arg)\n}\nfunc (r *stubQuery) InputOmittable(ctx context.Context, arg OmittableInput) (string, error) {\n\treturn r.QueryResolver.InputOmittable(ctx, arg)\n}\nfunc (r *stubQuery) ShapeUnion(ctx context.Context) (ShapeUnion, error) {\n\treturn r.QueryResolver.ShapeUnion(ctx)\n}\nfunc (r *stubQuery) Autobind(ctx context.Context) (*Autobind, error) {\n\treturn r.QueryResolver.Autobind(ctx)\n}\nfunc (r *stubQuery) DeprecatedField(ctx context.Context) (string, error) {\n\treturn r.QueryResolver.DeprecatedField(ctx)\n}\nfunc (r *stubQuery) FieldWithDeprecatedArg(ctx context.Context, oldArg *int, newArg *int) (*string, error) {\n\treturn r.QueryResolver.FieldWithDeprecatedArg(ctx, oldArg, newArg)\n}\nfunc (r *stubQuery) Overlapping(ctx context.Context) (*OverlappingFields, error) {\n\treturn r.QueryResolver.Overlapping(ctx)\n}\nfunc (r *stubQuery) DefaultParameters(ctx context.Context, falsyBoolean *bool, truthyBoolean *bool) (*DefaultParametersMirror, error) {\n\treturn r.QueryResolver.DefaultParameters(ctx, falsyBoolean, truthyBoolean)\n}\nfunc (r *stubQuery) DeferSingle(ctx context.Context) (*DeferModel, error) {\n\treturn r.QueryResolver.DeferSingle(ctx)\n}\nfunc (r *stubQuery) DeferMultiple(ctx context.Context) ([]*DeferModel, error) {\n\treturn r.QueryResolver.DeferMultiple(ctx)\n}\nfunc (r *stubQuery) DirectiveArg(ctx context.Context, arg string) (*string, error) {\n\treturn r.QueryResolver.DirectiveArg(ctx, arg)\n}\nfunc (r *stubQuery) DirectiveNullableArg(ctx context.Context, arg *int, arg2 *int, arg3 *string) (*string, error) {\n\treturn r.QueryResolver.DirectiveNullableArg(ctx, arg, arg2, arg3)\n}\nfunc (r *stubQuery) DirectiveSingleNullableArg(ctx context.Context, arg1 *string) (*string, error) {\n\treturn r.QueryResolver.DirectiveSingleNullableArg(ctx, arg1)\n}\nfunc (r *stubQuery) DirectiveInputNullable(ctx context.Context, arg *InputDirectives) (*string, error) {\n\treturn r.QueryResolver.DirectiveInputNullable(ctx, arg)\n}\nfunc (r *stubQuery) DirectiveInput(ctx context.Context, arg InputDirectives) (*string, error) {\n\treturn r.QueryResolver.DirectiveInput(ctx, arg)\n}\nfunc (r *stubQuery) DirectiveInputType(ctx context.Context, arg InnerInput) (*string, error) {\n\treturn r.QueryResolver.DirectiveInputType(ctx, arg)\n}\nfunc (r *stubQuery) DirectiveInputOuter(ctx context.Context, arg OuterWrapperInput) (*string, error) {\n\treturn r.QueryResolver.DirectiveInputOuter(ctx, arg)\n}\nfunc (r *stubQuery) DirectiveObject(ctx context.Context) (*ObjectDirectives, error) {\n\treturn r.QueryResolver.DirectiveObject(ctx)\n}\nfunc (r *stubQuery) DirectiveObjectWithCustomGoModel(ctx context.Context) (*ObjectDirectivesWithCustomGoModel, error) {\n\treturn r.QueryResolver.DirectiveObjectWithCustomGoModel(ctx)\n}\nfunc (r *stubQuery) DirectiveFieldDef(ctx context.Context, ret string) (string, error) {\n\treturn r.QueryResolver.DirectiveFieldDef(ctx, ret)\n}\nfunc (r *stubQuery) DirectiveField(ctx context.Context) (*string, error) {\n\treturn r.QueryResolver.DirectiveField(ctx)\n}\nfunc (r *stubQuery) DirectiveDouble(ctx context.Context) (*string, error) {\n\treturn r.QueryResolver.DirectiveDouble(ctx)\n}\nfunc (r *stubQuery) DirectiveUnimplemented(ctx context.Context) (*string, error) {\n\treturn r.QueryResolver.DirectiveUnimplemented(ctx)\n}\nfunc (r *stubQuery) EmbeddedCase1(ctx context.Context) (*EmbeddedCase1, error) {\n\treturn r.QueryResolver.EmbeddedCase1(ctx)\n}\nfunc (r *stubQuery) EmbeddedCase2(ctx context.Context) (*EmbeddedCase2, error) {\n\treturn r.QueryResolver.EmbeddedCase2(ctx)\n}\nfunc (r *stubQuery) EmbeddedCase3(ctx context.Context) (*EmbeddedCase3, error) {\n\treturn r.QueryResolver.EmbeddedCase3(ctx)\n}\nfunc (r *stubQuery) EnumInInput(ctx context.Context, input *InputWithEnumValue) (EnumTest, error) {\n\treturn r.QueryResolver.EnumInInput(ctx, input)\n}\nfunc (r *stubQuery) SearchProducts(ctx context.Context, filters map[string]interface{}) ([]string, error) {\n\treturn r.QueryResolver.SearchProducts(ctx, filters)\n}\nfunc (r *stubQuery) SearchRequired(ctx context.Context, filters map[string]interface{}) ([]string, error) {\n\treturn r.QueryResolver.SearchRequired(ctx, filters)\n}\nfunc (r *stubQuery) SearchProductsNormal(ctx context.Context, filters map[string]any) ([]string, error) {\n\treturn r.QueryResolver.SearchProductsNormal(ctx, filters)\n}\nfunc (r *stubQuery) SearchWithDefaults(ctx context.Context, filters map[string]interface{}) ([]string, error) {\n\treturn r.QueryResolver.SearchWithDefaults(ctx, filters)\n}\nfunc (r *stubQuery) SearchMixed(ctx context.Context, filters map[string]interface{}, limit *int, offset *int, sortBy *string) ([]string, error) {\n\treturn r.QueryResolver.SearchMixed(ctx, filters, limit, offset, sortBy)\n}\nfunc (r *stubQuery) FilterProducts(ctx context.Context, filters map[string]interface{}) ([]string, error) {\n\treturn r.QueryResolver.FilterProducts(ctx, filters)\n}\nfunc (r *stubQuery) FindProducts(ctx context.Context, filters map[string]interface{}) ([]string, error) {\n\treturn r.QueryResolver.FindProducts(ctx, filters)\n}\nfunc (r *stubQuery) SearchWithDirectives(ctx context.Context, input map[string]interface{}) ([]string, error) {\n\treturn r.QueryResolver.SearchWithDirectives(ctx, input)\n}\nfunc (r *stubQuery) Shapes(ctx context.Context) ([]Shape, error) {\n\treturn r.QueryResolver.Shapes(ctx)\n}\nfunc (r *stubQuery) NoShape(ctx context.Context) (Shape, error) {\n\treturn r.QueryResolver.NoShape(ctx)\n}\nfunc (r *stubQuery) Node(ctx context.Context) (Node, error) {\n\treturn r.QueryResolver.Node(ctx)\n}\nfunc (r *stubQuery) NoShapeTypedNil(ctx context.Context) (Shape, error) {\n\treturn r.QueryResolver.NoShapeTypedNil(ctx)\n}\nfunc (r *stubQuery) Animal(ctx context.Context) (Animal, error) {\n\treturn r.QueryResolver.Animal(ctx)\n}\nfunc (r *stubQuery) NotAnInterface(ctx context.Context) (BackedByInterface, error) {\n\treturn r.QueryResolver.NotAnInterface(ctx)\n}\nfunc (r *stubQuery) Dog(ctx context.Context) (*Dog, error) {\n\treturn r.QueryResolver.Dog(ctx)\n}\nfunc (r *stubQuery) Issue896a(ctx context.Context) ([]*CheckIssue896, error) {\n\treturn r.QueryResolver.Issue896a(ctx)\n}\nfunc (r *stubQuery) MapStringInterface(ctx context.Context, in map[string]any) (map[string]any, error) {\n\treturn r.QueryResolver.MapStringInterface(ctx, in)\n}\nfunc (r *stubQuery) MapNestedStringInterface(ctx context.Context, in *NestedMapInput) (map[string]any, error) {\n\treturn r.QueryResolver.MapNestedStringInterface(ctx, in)\n}\nfunc (r *stubQuery) MapNestedMapSlice(ctx context.Context, input map[string]any) (*bool, error) {\n\treturn r.QueryResolver.MapNestedMapSlice(ctx, input)\n}\nfunc (r *stubQuery) ErrorBubble(ctx context.Context) (*Error, error) {\n\treturn r.QueryResolver.ErrorBubble(ctx)\n}\nfunc (r *stubQuery) ErrorBubbleList(ctx context.Context) ([]*Error, error) {\n\treturn r.QueryResolver.ErrorBubbleList(ctx)\n}\nfunc (r *stubQuery) ErrorList(ctx context.Context) ([]*Error, error) {\n\treturn r.QueryResolver.ErrorList(ctx)\n}\nfunc (r *stubQuery) Errors(ctx context.Context) (*Errors, error) {\n\treturn r.QueryResolver.Errors(ctx)\n}\nfunc (r *stubQuery) Valid(ctx context.Context) (string, error) {\n\treturn r.QueryResolver.Valid(ctx)\n}\nfunc (r *stubQuery) Invalid(ctx context.Context) (string, error) {\n\treturn r.QueryResolver.Invalid(ctx)\n}\nfunc (r *stubQuery) Panics(ctx context.Context) (*Panics, error) {\n\treturn r.QueryResolver.Panics(ctx)\n}\nfunc (r *stubQuery) PrimitiveObject(ctx context.Context) ([]Primitive, error) {\n\treturn r.QueryResolver.PrimitiveObject(ctx)\n}\nfunc (r *stubQuery) PrimitiveStringObject(ctx context.Context) ([]PrimitiveString, error) {\n\treturn r.QueryResolver.PrimitiveStringObject(ctx)\n}\nfunc (r *stubQuery) PtrToAnyContainer(ctx context.Context) (*PtrToAnyContainer, error) {\n\treturn r.QueryResolver.PtrToAnyContainer(ctx)\n}\nfunc (r *stubQuery) PtrToSliceContainer(ctx context.Context) (*PtrToSliceContainer, error) {\n\treturn r.QueryResolver.PtrToSliceContainer(ctx)\n}\nfunc (r *stubQuery) Infinity(ctx context.Context) (float64, error) {\n\treturn r.QueryResolver.Infinity(ctx)\n}\nfunc (r *stubQuery) StringFromContextInterface(ctx context.Context) (*StringFromContextInterface, error) {\n\treturn r.QueryResolver.StringFromContextInterface(ctx)\n}\nfunc (r *stubQuery) StringFromContextFunction(ctx context.Context) (string, error) {\n\treturn r.QueryResolver.StringFromContextFunction(ctx)\n}\nfunc (r *stubQuery) DefaultScalar(ctx context.Context, arg string) (string, error) {\n\treturn r.QueryResolver.DefaultScalar(ctx, arg)\n}\nfunc (r *stubQuery) SkipInclude(ctx context.Context) (*SkipIncludeTestType, error) {\n\treturn r.QueryResolver.SkipInclude(ctx)\n}\nfunc (r *stubQuery) Slices(ctx context.Context) (*Slices, error) {\n\treturn r.QueryResolver.Slices(ctx)\n}\nfunc (r *stubQuery) ScalarSlice(ctx context.Context) ([]byte, error) {\n\treturn r.QueryResolver.ScalarSlice(ctx)\n}\nfunc (r *stubQuery) Fallback(ctx context.Context, arg FallbackToStringEncoding) (FallbackToStringEncoding, error) {\n\treturn r.QueryResolver.Fallback(ctx, arg)\n}\nfunc (r *stubQuery) OptionalUnion(ctx context.Context) (TestUnion, error) {\n\treturn r.QueryResolver.OptionalUnion(ctx)\n}\nfunc (r *stubQuery) VOkCaseValue(ctx context.Context) (*VOkCaseValue, error) {\n\treturn r.QueryResolver.VOkCaseValue(ctx)\n}\nfunc (r *stubQuery) VOkCaseNil(ctx context.Context) (*VOkCaseNil, error) {\n\treturn r.QueryResolver.VOkCaseNil(ctx)\n}\nfunc (r *stubQuery) ValidType(ctx context.Context) (*ValidType, error) {\n\treturn r.QueryResolver.ValidType(ctx)\n}\nfunc (r *stubQuery) VariadicModel(ctx context.Context) (*VariadicModel, error) {\n\treturn r.QueryResolver.VariadicModel(ctx)\n}\nfunc (r *stubQuery) WrappedStruct(ctx context.Context) (*WrappedStruct, error) {\n\treturn r.QueryResolver.WrappedStruct(ctx)\n}\nfunc (r *stubQuery) WrappedScalar(ctx context.Context) (otherpkg.Scalar, error) {\n\treturn r.QueryResolver.WrappedScalar(ctx)\n}\nfunc (r *stubQuery) WrappedMap(ctx context.Context) (WrappedMap, error) {\n\treturn r.QueryResolver.WrappedMap(ctx)\n}\nfunc (r *stubQuery) WrappedSlice(ctx context.Context) (WrappedSlice, error) {\n\treturn r.QueryResolver.WrappedSlice(ctx)\n}\n\ntype stubSubscription struct{ *Stub }\n\nfunc (r *stubSubscription) Updated(ctx context.Context) (<-chan string, error) {\n\treturn r.SubscriptionResolver.Updated(ctx)\n}\nfunc (r *stubSubscription) InitPayload(ctx context.Context) (<-chan string, error) {\n\treturn r.SubscriptionResolver.InitPayload(ctx)\n}\nfunc (r *stubSubscription) DirectiveArg(ctx context.Context, arg string) (<-chan *string, error) {\n\treturn r.SubscriptionResolver.DirectiveArg(ctx, arg)\n}\nfunc (r *stubSubscription) DirectiveNullableArg(ctx context.Context, arg *int, arg2 *int, arg3 *string) (<-chan *string, error) {\n\treturn r.SubscriptionResolver.DirectiveNullableArg(ctx, arg, arg2, arg3)\n}\nfunc (r *stubSubscription) DirectiveDouble(ctx context.Context) (<-chan *string, error) {\n\treturn r.SubscriptionResolver.DirectiveDouble(ctx)\n}\nfunc (r *stubSubscription) DirectiveUnimplemented(ctx context.Context) (<-chan *string, error) {\n\treturn r.SubscriptionResolver.DirectiveUnimplemented(ctx)\n}\nfunc (r *stubSubscription) Issue896b(ctx context.Context) (<-chan []*CheckIssue896, error) {\n\treturn r.SubscriptionResolver.Issue896b(ctx)\n}\nfunc (r *stubSubscription) ErrorRequired(ctx context.Context) (<-chan *Error, error) {\n\treturn r.SubscriptionResolver.ErrorRequired(ctx)\n}\n\ntype stubUser struct{ *Stub }\n\nfunc (r *stubUser) Friends(ctx context.Context, obj *User) ([]*User, error) {\n\treturn r.UserResolver.Friends(ctx, obj)\n}\nfunc (r *stubUser) Pets(ctx context.Context, obj *User, limit *int) ([]*Pet, error) {\n\treturn r.UserResolver.Pets(ctx, obj, limit)\n}\n\ntype stubWrappedMap struct{ *Stub }\n\nfunc (r *stubWrappedMap) Get(ctx context.Context, obj WrappedMap, key string) (string, error) {\n\treturn r.WrappedMapResolver.Get(ctx, obj, key)\n}\n\ntype stubWrappedSlice struct{ *Stub }\n\nfunc (r *stubWrappedSlice) Get(ctx context.Context, obj WrappedSlice, idx int) (string, error) {\n\treturn r.WrappedSliceResolver.Get(ctx, obj, idx)\n}\n\ntype stubFieldsOrderInput struct{ *Stub }\n\nfunc (r *stubFieldsOrderInput) OverrideFirstField(ctx context.Context, obj *FieldsOrderInput, data *string) error {\n\treturn r.FieldsOrderInputResolver.OverrideFirstField(ctx, obj, data)\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/subscription_test.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"runtime\"\n\t\"sort\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestSubscriptions(t *testing.T) {\n\ttick := make(chan string, 1)\n\n\tresolvers := &Stub{}\n\n\tresolvers.SubscriptionResolver.InitPayload = func(ctx context.Context) (strings <-chan string, e error) {\n\t\tpayload := transport.GetInitPayload(ctx)\n\t\tchannel := make(chan string, len(payload)+1)\n\n\t\tgo func() {\n\t\t\t<-ctx.Done()\n\t\t\tclose(channel)\n\t\t}()\n\n\t\t// Test the helper function separately\n\t\tauth := payload.Authorization()\n\t\tif auth != \"\" {\n\t\t\tchannel <- \"AUTH:\" + auth\n\t\t} else {\n\t\t\tchannel <- \"AUTH:NONE\"\n\t\t}\n\n\t\t// Send them over the channel in alphabetic order\n\t\tkeys := make([]string, 0, len(payload))\n\t\tfor key := range payload {\n\t\t\tkeys = append(keys, key)\n\t\t}\n\t\tsort.Strings(keys)\n\t\tfor _, key := range keys {\n\t\t\tchannel <- fmt.Sprintf(\"%s = %#+v\", key, payload[key])\n\t\t}\n\n\t\treturn channel, nil\n\t}\n\n\terrorTick := make(chan *Error, 1)\n\tresolvers.SubscriptionResolver.ErrorRequired = func(ctx context.Context) (<-chan *Error, error) {\n\t\tres := make(chan *Error, 1)\n\n\t\tgo func() {\n\t\t\tfor {\n\t\t\t\tselect {\n\t\t\t\tcase t := <-errorTick:\n\t\t\t\t\tres <- t\n\t\t\t\tcase <-ctx.Done():\n\t\t\t\t\tclose(res)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}()\n\t\treturn res, nil\n\t}\n\n\tresolvers.SubscriptionResolver.Updated = func(ctx context.Context) (<-chan string, error) {\n\t\tres := make(chan string, 1)\n\n\t\tgo func() {\n\t\t\tfor {\n\t\t\t\tselect {\n\t\t\t\tcase t := <-tick:\n\t\t\t\t\tres <- t\n\t\t\t\tcase <-ctx.Done():\n\t\t\t\t\tclose(res)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}()\n\t\treturn res, nil\n\t}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.Websocket{\n\t\tKeepAlivePingInterval: time.Second,\n\t})\n\tsrv.AroundFields(func(ctx context.Context, next graphql.Resolver) (res any, err error) {\n\t\tpath, _ := ctx.Value(ckey(\"path\")).([]int)\n\t\treturn next(context.WithValue(ctx, ckey(\"path\"), append(path, 1)))\n\t})\n\n\tsrv.AroundFields(func(ctx context.Context, next graphql.Resolver) (res any, err error) {\n\t\tpath, _ := ctx.Value(ckey(\"path\")).([]int)\n\t\treturn next(context.WithValue(ctx, ckey(\"path\"), append(path, 2)))\n\t})\n\n\tc := client.New(srv)\n\n\tt.Run(\"wont leak goroutines\", func(t *testing.T) {\n\t\truntime.GC() // ensure no go-routines left from preceding tests\n\t\tinitialGoroutineCount := runtime.NumGoroutine()\n\n\t\tsub := c.Websocket(`subscription { updated }`)\n\n\t\ttick <- \"message\"\n\n\t\tvar msg struct {\n\t\t\tresp struct {\n\t\t\t\tUpdated string\n\t\t\t}\n\t\t}\n\n\t\terr := sub.Next(&msg.resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"message\", msg.resp.Updated)\n\t\tsub.Close()\n\n\t\t// need a little bit of time for goroutines to settle\n\t\tstart := time.Now()\n\t\tfor time.Since(start).Seconds() < 2 && initialGoroutineCount != runtime.NumGoroutine() {\n\t\t\ttime.Sleep(5 * time.Millisecond)\n\t\t}\n\n\t\trequire.Equal(t, initialGoroutineCount, runtime.NumGoroutine())\n\t})\n\n\tt.Run(\"will parse init payload\", func(t *testing.T) {\n\t\truntime.GC() // ensure no go-routines left from preceding tests\n\t\tinitialGoroutineCount := runtime.NumGoroutine()\n\n\t\tsub := c.WebsocketWithPayload(`subscription { initPayload }`, map[string]any{\n\t\t\t\"Authorization\": \"Bearer of the curse\",\n\t\t\t\"number\":        32,\n\t\t\t\"strings\":       []string{\"hello\", \"world\"},\n\t\t})\n\n\t\tvar msg struct {\n\t\t\tresp struct {\n\t\t\t\tInitPayload string\n\t\t\t}\n\t\t}\n\n\t\terr := sub.Next(&msg.resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"AUTH:Bearer of the curse\", msg.resp.InitPayload)\n\t\terr = sub.Next(&msg.resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"Authorization = \\\"Bearer of the curse\\\"\", msg.resp.InitPayload)\n\t\terr = sub.Next(&msg.resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"number = 32\", msg.resp.InitPayload)\n\t\terr = sub.Next(&msg.resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"strings = []interface {}{\\\"hello\\\", \\\"world\\\"}\", msg.resp.InitPayload)\n\t\tsub.Close()\n\n\t\t// need a little bit of time for goroutines to settle\n\t\tstart := time.Now()\n\t\tfor time.Since(start).Seconds() < 2 && initialGoroutineCount != runtime.NumGoroutine() {\n\t\t\ttime.Sleep(5 * time.Millisecond)\n\t\t}\n\n\t\trequire.Equal(t, initialGoroutineCount, runtime.NumGoroutine())\n\t})\n\n\tt.Run(\"websocket gets errors\", func(t *testing.T) {\n\t\truntime.GC() // ensure no go-routines left from preceding tests\n\t\tinitialGoroutineCount := runtime.NumGoroutine()\n\n\t\tsub := c.Websocket(`subscription { errorRequired { id } }`)\n\n\t\terrorTick <- &Error{ID: \"ID1234\"}\n\n\t\tvar msg struct {\n\t\t\tresp struct {\n\t\t\t\tErrorRequired *struct {\n\t\t\t\t\tId string\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\terr := sub.Next(&msg.resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"ID1234\", msg.resp.ErrorRequired.Id)\n\n\t\terrorTick <- nil\n\t\terr = sub.Next(&msg.resp)\n\t\trequire.Error(t, err)\n\n\t\tsub.Close()\n\n\t\t// need a little bit of time for goroutines to settle\n\t\tstart := time.Now()\n\t\tfor time.Since(start).Seconds() < 2 && initialGoroutineCount != runtime.NumGoroutine() {\n\t\t\ttime.Sleep(5 * time.Millisecond)\n\t\t}\n\n\t\trequire.Equal(t, initialGoroutineCount, runtime.NumGoroutine())\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/thirdparty.go",
    "content": "package followschema\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\ntype ThirdParty struct {\n\tstr string\n}\n\nfunc MarshalThirdParty(tp ThirdParty) graphql.Marshaler {\n\treturn graphql.WriterFunc(func(w io.Writer) {\n\t\t_, err := io.WriteString(w, strconv.Quote(tp.str))\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t})\n}\n\nfunc UnmarshalThirdParty(input any) (ThirdParty, error) {\n\tswitch input := input.(type) {\n\tcase string:\n\t\treturn ThirdParty{str: input}, nil\n\tdefault:\n\t\treturn ThirdParty{}, fmt.Errorf(\"unknown type for input: %s\", input)\n\t}\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/time_test.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestTime(t *testing.T) {\n\tresolvers := &Stub{}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tresolvers.QueryResolver.User = func(ctx context.Context, id int) (user *User, e error) {\n\t\treturn &User{}, nil\n\t}\n\n\tt.Run(\"zero value in nullable field\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tUser struct {\n\t\t\t\tUpdated *string\n\t\t\t}\n\t\t}\n\n\t\terr := c.Post(`query { user(id: 1) { updated } }`, &resp)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Nil(t, resp.User.Updated)\n\t})\n\n\tt.Run(\"zero value in non nullable field\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tUser struct {\n\t\t\t\tCreated *string\n\t\t\t}\n\t\t}\n\n\t\terr := c.Post(`query { user(id: 1) { created } }`, &resp)\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t`[{\"message\":\"the requested element is null which the schema does not allow\",\"path\":[\"user\",\"created\"]}]`,\n\t\t)\n\t})\n\n\tt.Run(\"with values\", func(t *testing.T) {\n\t\tresolvers.QueryResolver.User = func(ctx context.Context, id int) (user *User, e error) {\n\t\t\tupdated := time.Date(2010, 1, 1, 0, 0, 20, 1, time.UTC)\n\t\t\treturn &User{\n\t\t\t\tCreated: time.Date(2010, 1, 1, 0, 0, 10, 1, time.UTC),\n\t\t\t\tUpdated: &updated,\n\t\t\t}, nil\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tUser struct {\n\t\t\t\tCreated string\n\t\t\t\tUpdated string\n\t\t\t}\n\t\t}\n\n\t\terr := c.Post(`query { user(id: 1) { created, updated } }`, &resp)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Equal(t, \"2010-01-01T00:00:10.000000001Z\", resp.User.Created)\n\t\trequire.Equal(t, \"2010-01-01T00:00:20.000000001Z\", resp.User.Updated)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/typefallback.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNFallbackToStringEncoding2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐFallbackToStringEncoding(ctx context.Context, v any) (FallbackToStringEncoding, error) {\n\ttmp, err := graphql.UnmarshalString(v)\n\tres := FallbackToStringEncoding(tmp)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNFallbackToStringEncoding2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐFallbackToStringEncoding(ctx context.Context, sel ast.SelectionSet, v FallbackToStringEncoding) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(string(v))\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/followschema/typefallback.graphql",
    "content": "extend type Query {\n    fallback(arg: FallbackToStringEncoding!): FallbackToStringEncoding!\n}\n\nenum FallbackToStringEncoding {\n    A\n    B\n    C\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/typefallback_test.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestTypeFallback(t *testing.T) {\n\tresolvers := &Stub{}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tresolvers.QueryResolver.Fallback = func(ctx context.Context, arg FallbackToStringEncoding) (FallbackToStringEncoding, error) {\n\t\treturn arg, nil\n\t}\n\n\tt.Run(\"fallback to string passthrough\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tFallback string\n\t\t}\n\t\tc.MustPost(`query { fallback(arg: A) }`, &resp)\n\t\trequire.Equal(t, \"A\", resp.Fallback)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/useptr.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _A_id(ctx context.Context, field graphql.CollectedField, obj *A) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_A_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_A_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"A\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _B_id(ctx context.Context, field graphql.CollectedField, obj *B) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_B_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_B_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"B\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\nfunc (ec *executionContext) _TestUnion(ctx context.Context, sel ast.SelectionSet, obj TestUnion) graphql.Marshaler {\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\tcase B:\n\t\treturn ec._B(ctx, sel, &obj)\n\tcase *B:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._B(ctx, sel, obj)\n\tcase A:\n\t\treturn ec._A(ctx, sel, &obj)\n\tcase *A:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._A(ctx, sel, obj)\n\tdefault:\n\t\tif typedObj, ok := obj.(graphql.Marshaler); ok {\n\t\t\treturn typedObj\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T; non-generated variants of TestUnion must implement graphql.Marshaler\", obj))\n\t\t}\n\t}\n}\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar aImplementors = []string{\"A\", \"TestUnion\"}\n\nfunc (ec *executionContext) _A(ctx context.Context, sel ast.SelectionSet, obj *A) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, aImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"A\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._A_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar bImplementors = []string{\"B\", \"TestUnion\"}\n\nfunc (ec *executionContext) _B(ctx context.Context, sel ast.SelectionSet, obj *B) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, bImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"B\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._B_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) marshalOTestUnion2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐTestUnion(ctx context.Context, sel ast.SelectionSet, v TestUnion) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._TestUnion(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/followschema/useptr.graphql",
    "content": "type A {\n    id: ID!\n}\n\ntype B {\n    id: ID!\n}\n\nunion TestUnion = A | B\n\nextend type Query {\n    optionalUnion: TestUnion\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/useptr_test.go",
    "content": "package followschema\n\nimport (\n\t\"reflect\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestUserPtr(t *testing.T) {\n\ts := &Stub{}\n\tr := reflect.TypeOf(s.QueryResolver.OptionalUnion)\n\trequire.Equal(t, reflect.Interface, r.Out(0).Kind())\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/v-ok.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _VOkCaseNil_value(ctx context.Context, field graphql.CollectedField, obj *VOkCaseNil) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_VOkCaseNil_value,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tv, ok := obj.Value()\n\t\t\tif !ok {\n\t\t\t\treturn nil, nil\n\t\t\t}\n\t\t\treturn v, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2string,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_VOkCaseNil_value(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"VOkCaseNil\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _VOkCaseValue_value(ctx context.Context, field graphql.CollectedField, obj *VOkCaseValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_VOkCaseValue_value,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tv, ok := obj.Value()\n\t\t\tif !ok {\n\t\t\t\treturn nil, nil\n\t\t\t}\n\t\t\treturn v, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2string,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_VOkCaseValue_value(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"VOkCaseValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar vOkCaseNilImplementors = []string{\"VOkCaseNil\"}\n\nfunc (ec *executionContext) _VOkCaseNil(ctx context.Context, sel ast.SelectionSet, obj *VOkCaseNil) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, vOkCaseNilImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"VOkCaseNil\")\n\t\tcase \"value\":\n\t\t\tout.Values[i] = ec._VOkCaseNil_value(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar vOkCaseValueImplementors = []string{\"VOkCaseValue\"}\n\nfunc (ec *executionContext) _VOkCaseValue(ctx context.Context, sel ast.SelectionSet, obj *VOkCaseValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, vOkCaseValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"VOkCaseValue\")\n\t\tcase \"value\":\n\t\t\tout.Values[i] = ec._VOkCaseValue_value(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) marshalOVOkCaseNil2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐVOkCaseNil(ctx context.Context, sel ast.SelectionSet, v *VOkCaseNil) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._VOkCaseNil(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOVOkCaseValue2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐVOkCaseValue(ctx context.Context, sel ast.SelectionSet, v *VOkCaseValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._VOkCaseValue(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/followschema/v-ok.go",
    "content": "package followschema\n\n// VOkCaseValue model\ntype VOkCaseValue struct{}\n\nfunc (v VOkCaseValue) Value() (string, bool) {\n\treturn \"hi\", true\n}\n\n// VOkCaseNil model\ntype VOkCaseNil struct{}\n\nfunc (v VOkCaseNil) Value() (string, bool) {\n\treturn \"\", false\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/v-ok.graphql",
    "content": "extend type Query {\n    vOkCaseValue: VOkCaseValue\n    vOkCaseNil: VOkCaseNil\n}\n\ntype VOkCaseValue @goModel(model:\"followschema.VOkCaseValue\") {\n  value: String\n}\n\ntype VOkCaseNil @goModel(model:\"followschema.VOkCaseNil\") {\n  value: String\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/v-ok_test.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestOk(t *testing.T) {\n\tresolver := &Stub{}\n\tresolver.QueryResolver.VOkCaseValue = func(ctx context.Context) (*VOkCaseValue, error) {\n\t\treturn &VOkCaseValue{}, nil\n\t}\n\tresolver.QueryResolver.VOkCaseNil = func(ctx context.Context) (*VOkCaseNil, error) {\n\t\treturn &VOkCaseNil{}, nil\n\t}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolver}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"v ok case value\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tVOkCaseValue struct {\n\t\t\t\tValue string\n\t\t\t}\n\t\t}\n\t\terr := c.Post(`query { vOkCaseValue { value } }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"hi\", resp.VOkCaseValue.Value)\n\t})\n\n\tt.Run(\"v ok case nil\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tVOkCaseNil struct {\n\t\t\t\tValue *string\n\t\t\t}\n\t\t}\n\t\terr := c.Post(`query { vOkCaseNil { value } }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Nil(t, resp.VOkCaseNil.Value)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/validtypes.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_ValidType_validArgs_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"break\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"break\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"default\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"default\"] = arg1\n\targ2, err := graphql.ProcessArgField(ctx, rawArgs, \"func\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"func\"] = arg2\n\targ3, err := graphql.ProcessArgField(ctx, rawArgs, \"interface\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"interface\"] = arg3\n\targ4, err := graphql.ProcessArgField(ctx, rawArgs, \"select\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"select\"] = arg4\n\targ5, err := graphql.ProcessArgField(ctx, rawArgs, \"case\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"case\"] = arg5\n\targ6, err := graphql.ProcessArgField(ctx, rawArgs, \"defer\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"defer\"] = arg6\n\targ7, err := graphql.ProcessArgField(ctx, rawArgs, \"go\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"go\"] = arg7\n\targ8, err := graphql.ProcessArgField(ctx, rawArgs, \"map\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"map\"] = arg8\n\targ9, err := graphql.ProcessArgField(ctx, rawArgs, \"struct\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"struct\"] = arg9\n\targ10, err := graphql.ProcessArgField(ctx, rawArgs, \"chan\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"chan\"] = arg10\n\targ11, err := graphql.ProcessArgField(ctx, rawArgs, \"else\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"else\"] = arg11\n\targ12, err := graphql.ProcessArgField(ctx, rawArgs, \"goto\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"goto\"] = arg12\n\targ13, err := graphql.ProcessArgField(ctx, rawArgs, \"package\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"package\"] = arg13\n\targ14, err := graphql.ProcessArgField(ctx, rawArgs, \"switch\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"switch\"] = arg14\n\targ15, err := graphql.ProcessArgField(ctx, rawArgs, \"const\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"const\"] = arg15\n\targ16, err := graphql.ProcessArgField(ctx, rawArgs, \"fallthrough\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"fallthrough\"] = arg16\n\targ17, err := graphql.ProcessArgField(ctx, rawArgs, \"if\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"if\"] = arg17\n\targ18, err := graphql.ProcessArgField(ctx, rawArgs, \"range\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"range\"] = arg18\n\targ19, err := graphql.ProcessArgField(ctx, rawArgs, \"type\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"type\"] = arg19\n\targ20, err := graphql.ProcessArgField(ctx, rawArgs, \"continue\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"continue\"] = arg20\n\targ21, err := graphql.ProcessArgField(ctx, rawArgs, \"for\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"for\"] = arg21\n\targ22, err := graphql.ProcessArgField(ctx, rawArgs, \"import\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"import\"] = arg22\n\targ23, err := graphql.ProcessArgField(ctx, rawArgs, \"return\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"return\"] = arg23\n\targ24, err := graphql.ProcessArgField(ctx, rawArgs, \"var\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"var\"] = arg24\n\targ25, err := graphql.ProcessArgField(ctx, rawArgs, \"_\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"_\"] = arg25\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_ValidType_validInputKeywords_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"input\", ec.unmarshalOValidInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐValidInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"input\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Content_Post_foo(ctx context.Context, field graphql.CollectedField, obj *ContentPost) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Content_Post_foo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Foo, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Content_Post_foo(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Content_Post\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Content_User_foo(ctx context.Context, field graphql.CollectedField, obj *ContentUser) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Content_User_foo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Foo, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Content_User_foo(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Content_User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ValidType_differentCase(ctx context.Context, field graphql.CollectedField, obj *ValidType) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ValidType_differentCase,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DifferentCase, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ValidType_differentCase(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ValidType\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ValidType_different_case(ctx context.Context, field graphql.CollectedField, obj *ValidType) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ValidType_different_case,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DifferentCaseOld, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ValidType_different_case(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ValidType\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ValidType_validInputKeywords(ctx context.Context, field graphql.CollectedField, obj *ValidType) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ValidType_validInputKeywords,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ValidInputKeywords, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ValidType_validInputKeywords(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ValidType\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_ValidType_validInputKeywords_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ValidType_validArgs(ctx context.Context, field graphql.CollectedField, obj *ValidType) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ValidType_validArgs,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ValidArgs, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ValidType_validArgs(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ValidType\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_ValidType_validArgs_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalInputValidInput(ctx context.Context, obj any) (ValidInput, error) {\n\tvar it ValidInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"break\", \"default\", \"func\", \"interface\", \"select\", \"case\", \"defer\", \"go\", \"map\", \"struct\", \"chan\", \"else\", \"goto\", \"package\", \"switch\", \"const\", \"fallthrough\", \"if\", \"range\", \"type\", \"continue\", \"for\", \"import\", \"return\", \"var\", \"_\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"break\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"break\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Break = data\n\t\tcase \"default\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"default\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Default = data\n\t\tcase \"func\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"func\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Func = data\n\t\tcase \"interface\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"interface\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Interface = data\n\t\tcase \"select\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"select\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Select = data\n\t\tcase \"case\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"case\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Case = data\n\t\tcase \"defer\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"defer\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Defer = data\n\t\tcase \"go\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"go\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Go = data\n\t\tcase \"map\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"map\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Map = data\n\t\tcase \"struct\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"struct\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Struct = data\n\t\tcase \"chan\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"chan\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Chan = data\n\t\tcase \"else\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"else\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Else = data\n\t\tcase \"goto\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"goto\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Goto = data\n\t\tcase \"package\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"package\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Package = data\n\t\tcase \"switch\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"switch\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Switch = data\n\t\tcase \"const\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"const\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Const = data\n\t\tcase \"fallthrough\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"fallthrough\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Fallthrough = data\n\t\tcase \"if\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"if\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.If = data\n\t\tcase \"range\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"range\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Range = data\n\t\tcase \"type\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"type\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Type = data\n\t\tcase \"continue\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"continue\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Continue = data\n\t\tcase \"for\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"for\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.For = data\n\t\tcase \"import\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"import\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Import = data\n\t\tcase \"return\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"return\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Return = data\n\t\tcase \"var\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"var\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Var = data\n\t\tcase \"_\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"_\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Underscore = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\nfunc (ec *executionContext) _Content_Child(ctx context.Context, sel ast.SelectionSet, obj ContentChild) graphql.Marshaler {\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\tcase ContentUser:\n\t\treturn ec._Content_User(ctx, sel, &obj)\n\tcase *ContentUser:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Content_User(ctx, sel, obj)\n\tcase ContentPost:\n\t\treturn ec._Content_Post(ctx, sel, &obj)\n\tcase *ContentPost:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Content_Post(ctx, sel, obj)\n\tdefault:\n\t\tif typedObj, ok := obj.(graphql.Marshaler); ok {\n\t\t\treturn typedObj\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T; non-generated variants of Content_Child must implement graphql.Marshaler\", obj))\n\t\t}\n\t}\n}\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar content_PostImplementors = []string{\"Content_Post\", \"Content_Child\"}\n\nfunc (ec *executionContext) _Content_Post(ctx context.Context, sel ast.SelectionSet, obj *ContentPost) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, content_PostImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Content_Post\")\n\t\tcase \"foo\":\n\t\t\tout.Values[i] = ec._Content_Post_foo(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar content_UserImplementors = []string{\"Content_User\", \"Content_Child\"}\n\nfunc (ec *executionContext) _Content_User(ctx context.Context, sel ast.SelectionSet, obj *ContentUser) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, content_UserImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Content_User\")\n\t\tcase \"foo\":\n\t\t\tout.Values[i] = ec._Content_User_foo(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar validTypeImplementors = []string{\"ValidType\"}\n\nfunc (ec *executionContext) _ValidType(ctx context.Context, sel ast.SelectionSet, obj *ValidType) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, validTypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"ValidType\")\n\t\tcase \"differentCase\":\n\t\t\tout.Values[i] = ec._ValidType_differentCase(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"different_case\":\n\t\t\tout.Values[i] = ec._ValidType_different_case(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"validInputKeywords\":\n\t\t\tout.Values[i] = ec._ValidType_validInputKeywords(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"validArgs\":\n\t\t\tout.Values[i] = ec._ValidType_validArgs(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalOValidInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐValidInput(ctx context.Context, v any) (*ValidInput, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputValidInput(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOValidType2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐValidType(ctx context.Context, sel ast.SelectionSet, v *ValidType) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._ValidType(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/followschema/validtypes.graphql",
    "content": "extend type Query {\n    validType: ValidType\n}\n\n\"\"\" These things are all valid, but without care generate invalid go code \"\"\"\ntype ValidType {\n    differentCase: String!\n    different_case: String! @goField(name:\"DifferentCaseOld\")\n    validInputKeywords(input: ValidInput): Boolean!\n    validArgs(\n        break:       String!,\n        default:     String!,\n        func:        String!,\n        interface:   String!,\n        select:      String!,\n        case:        String!,\n        defer:       String!,\n        go:          String!,\n        map:         String!,\n        struct:      String!,\n        chan:        String!,\n        else:        String!,\n        goto:        String!,\n        package:     String!,\n        switch:      String!,\n        const:       String!,\n        fallthrough: String!,\n        if:          String!,\n        range:       String!,\n        type:        String!,\n        continue:    String!,\n        for:         String!,\n        import:      String!,\n        return:      String!,\n        var:         String!,\n        _:           String!,\n    ): Boolean!\n}\n\ninput ValidInput {\n    break:       String!\n    default:     String!\n    func:        String!\n    interface:   String!\n    select:      String!\n    case:        String!\n    defer:       String!\n    go:          String!\n    map:         String!\n    struct:      String!\n    chan:        String!\n    else:        String!\n    goto:        String!\n    package:     String!\n    switch:      String!\n    const:       String!\n    fallthrough: String!\n    if:          String!\n    range:       String!\n    type:        String!\n    continue:    String!\n    for:         String!\n    import:      String!\n    return:      String!\n    var:         String!\n    _:           String! @goField(name: \"Underscore\")\n}\n\n# see https://github.com/99designs/gqlgen/issues/694\ntype Content_User {\n  foo: String\n}\n\ntype Content_Post {\n  foo: String\n}\n\nunion Content_Child = Content_User | Content_Post\n"
  },
  {
    "path": "codegen/testserver/followschema/validtypes_test.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestValidType(t *testing.T) {\n\tresolvers := &Stub{}\n\tresolvers.QueryResolver.ValidType = func(ctx context.Context) (validType *ValidType, e error) {\n\t\treturn &ValidType{\n\t\t\tDifferentCase:    \"new\",\n\t\t\tDifferentCaseOld: \"old\",\n\t\t}, nil\n\t}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"fields with differing cases can be distinguished\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tValidType struct {\n\t\t\t\tNew string `json:\"differentCase\"`\n\t\t\t\tOld string `json:\"different_case\"`\n\t\t\t}\n\t\t}\n\t\terr := c.Post(`query { validType { differentCase, different_case } }`, &resp)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Equal(t, \"new\", resp.ValidType.New)\n\t\trequire.Equal(t, \"old\", resp.ValidType.Old)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/variadic.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_VariadicModel_value_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"rank\", ec.unmarshalNInt2int)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"rank\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _VariadicModel_value(ctx context.Context, field graphql.CollectedField, obj *VariadicModel) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_VariadicModel_value,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Value(ctx, fc.Args[\"rank\"].(int))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2string,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_VariadicModel_value(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"VariadicModel\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_VariadicModel_value_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar variadicModelImplementors = []string{\"VariadicModel\"}\n\nfunc (ec *executionContext) _VariadicModel(ctx context.Context, sel ast.SelectionSet, obj *VariadicModel) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, variadicModelImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"VariadicModel\")\n\t\tcase \"value\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._VariadicModel_value(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) marshalOVariadicModel2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐVariadicModel(ctx context.Context, sel ast.SelectionSet, v *VariadicModel) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._VariadicModel(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/followschema/variadic.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"strconv\"\n)\n\ntype VariadicModel struct{}\n\ntype VariadicModelOption func(*VariadicModel)\n\nfunc (v VariadicModel) Value(\n\tctx context.Context,\n\trank int,\n\topts ...VariadicModelOption,\n) (string, error) {\n\treturn strconv.Itoa(rank), nil\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/variadic.graphql",
    "content": "extend type Query {\n    variadicModel: VariadicModel\n}\n\ntype VariadicModel {\n    value(rank: Int!): String\n}\n"
  },
  {
    "path": "codegen/testserver/followschema/weird_type_cases.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _AIt_id(ctx context.Context, field graphql.CollectedField, obj *AIt) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_AIt_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_AIt_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"AIt\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _AbIt_id(ctx context.Context, field graphql.CollectedField, obj *AbIt) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_AbIt_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_AbIt_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"AbIt\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _XXIt_id(ctx context.Context, field graphql.CollectedField, obj *XXIt) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_XXIt_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_XXIt_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"XXIt\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _XxIt_id(ctx context.Context, field graphql.CollectedField, obj *XxIt) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_XxIt_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_XxIt_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"XxIt\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _asdfIt_id(ctx context.Context, field graphql.CollectedField, obj *AsdfIt) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_asdfIt_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_asdfIt_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"asdfIt\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _iIt_id(ctx context.Context, field graphql.CollectedField, obj *IIt) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_iIt_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_iIt_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"iIt\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar aItImplementors = []string{\"AIt\"}\n\nfunc (ec *executionContext) _AIt(ctx context.Context, sel ast.SelectionSet, obj *AIt) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, aItImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"AIt\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._AIt_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar abItImplementors = []string{\"AbIt\"}\n\nfunc (ec *executionContext) _AbIt(ctx context.Context, sel ast.SelectionSet, obj *AbIt) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, abItImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"AbIt\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._AbIt_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar xXItImplementors = []string{\"XXIt\"}\n\nfunc (ec *executionContext) _XXIt(ctx context.Context, sel ast.SelectionSet, obj *XXIt) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, xXItImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"XXIt\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._XXIt_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar xxItImplementors = []string{\"XxIt\"}\n\nfunc (ec *executionContext) _XxIt(ctx context.Context, sel ast.SelectionSet, obj *XxIt) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, xxItImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"XxIt\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._XxIt_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar asdfItImplementors = []string{\"asdfIt\"}\n\nfunc (ec *executionContext) _asdfIt(ctx context.Context, sel ast.SelectionSet, obj *AsdfIt) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, asdfItImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"asdfIt\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._asdfIt_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar iItImplementors = []string{\"iIt\"}\n\nfunc (ec *executionContext) _iIt(ctx context.Context, sel ast.SelectionSet, obj *IIt) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, iItImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"iIt\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._iIt_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/followschema/weird_type_cases.graphql",
    "content": "# regression test for https://github.com/99designs/gqlgen/issues/583\n\ntype asdfIt { id: ID! }\ntype iIt { id: ID! }\ntype AIt { id: ID! }\ntype XXIt { id: ID! }\ntype AbIt { id: ID! }\ntype XxIt { id: ID! }\n"
  },
  {
    "path": "codegen/testserver/followschema/wrapped_type.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/codegen/testserver/followschema/otherpkg\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\ntype WrappedMapResolver interface {\n\tGet(ctx context.Context, obj WrappedMap, key string) (string, error)\n}\ntype WrappedSliceResolver interface {\n\tGet(ctx context.Context, obj WrappedSlice, idx int) (string, error)\n}\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_WrappedMap_get_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"key\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"key\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_WrappedSlice_get_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"idx\", ec.unmarshalNInt2int)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"idx\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _WrappedMap_get(ctx context.Context, field graphql.CollectedField, obj WrappedMap) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_WrappedMap_get,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.WrappedMap().Get(ctx, obj, fc.Args[\"key\"].(string))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_WrappedMap_get(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"WrappedMap\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_WrappedMap_get_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _WrappedSlice_get(ctx context.Context, field graphql.CollectedField, obj WrappedSlice) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_WrappedSlice_get,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.WrappedSlice().Get(ctx, obj, fc.Args[\"idx\"].(int))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_WrappedSlice_get(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"WrappedSlice\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_WrappedSlice_get_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _WrappedStruct_name(ctx context.Context, field graphql.CollectedField, obj *WrappedStruct) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_WrappedStruct_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNWrappedScalar2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚋotherpkgᚐScalar,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_WrappedStruct_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"WrappedStruct\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type WrappedScalar does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _WrappedStruct_desc(ctx context.Context, field graphql.CollectedField, obj *WrappedStruct) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_WrappedStruct_desc,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Desc, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOWrappedScalar2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚋotherpkgᚐScalar,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_WrappedStruct_desc(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"WrappedStruct\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type WrappedScalar does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar wrappedMapImplementors = []string{\"WrappedMap\"}\n\nfunc (ec *executionContext) _WrappedMap(ctx context.Context, sel ast.SelectionSet, obj WrappedMap) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, wrappedMapImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"WrappedMap\")\n\t\tcase \"get\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._WrappedMap_get(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar wrappedSliceImplementors = []string{\"WrappedSlice\"}\n\nfunc (ec *executionContext) _WrappedSlice(ctx context.Context, sel ast.SelectionSet, obj WrappedSlice) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, wrappedSliceImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"WrappedSlice\")\n\t\tcase \"get\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._WrappedSlice_get(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar wrappedStructImplementors = []string{\"WrappedStruct\"}\n\nfunc (ec *executionContext) _WrappedStruct(ctx context.Context, sel ast.SelectionSet, obj *WrappedStruct) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, wrappedStructImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"WrappedStruct\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._WrappedStruct_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"desc\":\n\t\t\tout.Values[i] = ec._WrappedStruct_desc(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) marshalNWrappedMap2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐWrappedMap(ctx context.Context, sel ast.SelectionSet, v WrappedMap) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._WrappedMap(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNWrappedScalar2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚋotherpkgᚐScalar(ctx context.Context, v any) (otherpkg.Scalar, error) {\n\ttmp, err := graphql.UnmarshalString(v)\n\tres := otherpkg.Scalar(tmp)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNWrappedScalar2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚋotherpkgᚐScalar(ctx context.Context, sel ast.SelectionSet, v otherpkg.Scalar) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(string(v))\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNWrappedSlice2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐWrappedSlice(ctx context.Context, sel ast.SelectionSet, v WrappedSlice) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._WrappedSlice(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNWrappedStruct2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐWrappedStruct(ctx context.Context, sel ast.SelectionSet, v WrappedStruct) graphql.Marshaler {\n\treturn ec._WrappedStruct(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNWrappedStruct2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚐWrappedStruct(ctx context.Context, sel ast.SelectionSet, v *WrappedStruct) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._WrappedStruct(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOWrappedScalar2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚋotherpkgᚐScalar(ctx context.Context, v any) (*otherpkg.Scalar, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\ttmp, err := graphql.UnmarshalString(v)\n\tres := otherpkg.Scalar(tmp)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOWrappedScalar2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋfollowschemaᚋotherpkgᚐScalar(ctx context.Context, sel ast.SelectionSet, v *otherpkg.Scalar) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(string(*v))\n\treturn res\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/followschema/wrapped_type.go",
    "content": "package followschema\n\nimport \"github.com/99designs/gqlgen/codegen/testserver/followschema/otherpkg\"\n\ntype (\n\tWrappedScalar = otherpkg.Scalar\n\tWrappedStruct otherpkg.Struct\n\tWrappedMap    otherpkg.Map\n\tWrappedSlice  otherpkg.Slice\n)\n"
  },
  {
    "path": "codegen/testserver/followschema/wrapped_type.graphql",
    "content": "# regression test for https://github.com/99designs/gqlgen/issues/721\n\nextend type Query {\n    wrappedStruct: WrappedStruct!\n    wrappedScalar: WrappedScalar!\n    wrappedMap: WrappedMap!\n    wrappedSlice: WrappedSlice!\n}\n\ntype WrappedStruct { name: WrappedScalar!, desc: WrappedScalar }\nscalar WrappedScalar\ntype WrappedMap { get(key: String!): String! }\ntype WrappedSlice { get(idx: Int!): String! }\n"
  },
  {
    "path": "codegen/testserver/followschema/wrapped_type_test.go",
    "content": "package followschema\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/codegen/testserver/followschema/otherpkg\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestWrappedTypes(t *testing.T) {\n\tresolvers := &Stub{}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tresolvers.QueryResolver.WrappedScalar = func(ctx context.Context) (scalar WrappedScalar, e error) {\n\t\treturn \"hello\", nil\n\t}\n\n\tresolvers.QueryResolver.WrappedStruct = func(ctx context.Context) (wrappedStruct *WrappedStruct, e error) {\n\t\twrapped := WrappedStruct(otherpkg.Struct{\n\t\t\tName: \"hello\",\n\t\t})\n\t\treturn &wrapped, nil\n\t}\n\n\tresolvers.QueryResolver.WrappedMap = func(ctx context.Context) (wrappedMap WrappedMap, e error) {\n\t\twrapped := WrappedMap(map[string]string{\n\t\t\t\"name\": \"hello\",\n\t\t})\n\t\treturn wrapped, nil\n\t}\n\n\tresolvers.QueryResolver.WrappedSlice = func(ctx context.Context) (slice WrappedSlice, err error) {\n\t\twrapped := WrappedSlice([]string{\"hello\"})\n\t\treturn wrapped, nil\n\t}\n\n\tresolvers.WrappedMapResolver.Get = func(ctx context.Context, obj WrappedMap, key string) (s string, err error) {\n\t\treturn obj[key], nil\n\t}\n\n\tresolvers.WrappedSliceResolver.Get = func(ctx context.Context, obj WrappedSlice, idx int) (s string, err error) {\n\t\treturn obj[idx], nil\n\t}\n\n\tt.Run(\"wrapped struct\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tWrappedStruct struct {\n\t\t\t\tName string\n\t\t\t}\n\t\t}\n\n\t\terr := c.Post(`query { wrappedStruct { name } }`, &resp)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Equal(t, \"hello\", resp.WrappedStruct.Name)\n\t})\n\n\tt.Run(\"wrapped scalar\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tWrappedScalar string\n\t\t}\n\n\t\terr := c.Post(`query { wrappedScalar }`, &resp)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Equal(t, \"hello\", resp.WrappedScalar)\n\t})\n\n\tt.Run(\"wrapped map\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tWrappedMap struct {\n\t\t\t\tName string\n\t\t\t}\n\t\t}\n\n\t\terr := c.Post(`query { wrappedMap { name: get(key: \"name\") } }`, &resp)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Equal(t, \"hello\", resp.WrappedMap.Name)\n\t})\n\n\tt.Run(\"wrapped slice\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tWrappedSlice struct {\n\t\t\t\tFirst string\n\t\t\t}\n\t\t}\n\n\t\terr := c.Post(`query { wrappedSlice { first: get(idx: 0) } }`, &resp)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Equal(t, \"hello\", resp.WrappedSlice.First)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/generated_test.go",
    "content": "package testserver\n\nimport (\n\t\"bytes\"\n\t\"go/ast\"\n\t\"go/parser\"\n\t\"go/printer\"\n\t\"go/token\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"sort\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestLayouts(t *testing.T) {\n\tsinglefileFSet := token.NewFileSet()\n\tsinglefilePkg := loadPackage(t, \"singlefile\", singlefileFSet)\n\n\tfollowschemaFSet := token.NewFileSet()\n\tfollowschemaPkg := loadPackage(t, \"followschema\", followschemaFSet)\n\n\tsinglefileDecls := collectDeclStrings(singlefilePkg.Files)\n\tfollowschemaDecls := collectDeclStrings(followschemaPkg.Files)\n\n\t// Normalize package names so that both sides can be compared.\n\tfor i, s := range followschemaDecls {\n\t\tfollowschemaDecls[i] = strings.ReplaceAll(s, \"followschema\", \"singlefile\")\n\t}\n\n\trequire.Equal(t, singlefileDecls, followschemaDecls)\n}\n\nfunc loadPackage(t *testing.T, name string, fset *token.FileSet) *ast.Package {\n\tpath, err := filepath.Abs(name)\n\trequire.NoError(t, err)\n\tfiles, err := os.ReadDir(path)\n\trequire.NoError(t, err)\n\n\tpkg := ast.Package{\n\t\tName:  name,\n\t\tFiles: make(map[string]*ast.File),\n\t}\n\tfor _, f := range files {\n\t\t// Only compare generated files.\n\t\tif strings.HasSuffix(f.Name(), \".generated.go\") ||\n\t\t\tf.Name() == \"generated.go\" ||\n\t\t\tf.Name() == \"resolver.go\" ||\n\t\t\tf.Name() == \"stub.go\" ||\n\t\t\tf.Name() == \"models-gen.go\" {\n\t\t\tfilename := filepath.Join(path, f.Name())\n\t\t\tsrc, err := parser.ParseFile(fset, filename, nil, parser.AllErrors)\n\t\t\trequire.NoError(t, err)\n\t\t\tpkg.Files[filename] = src\n\t\t}\n\t}\n\n\treturn &pkg\n}\n\nfunc collectDeclStrings(files map[string]*ast.File) []string {\n\tprintFSet := token.NewFileSet()\n\n\tvar strs []string\n\tvar buf bytes.Buffer\n\tfor _, f := range files {\n\t\tfor _, decl := range f.Decls {\n\t\t\tif gd, ok := decl.(*ast.GenDecl); ok && gd.Tok == token.IMPORT {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tbuf.Reset()\n\t\t\tif err := printer.Fprint(&buf, printFSet, decl); err != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tstrs = append(strs, buf.String())\n\t\t}\n\t}\n\n\tsort.Strings(strs)\n\treturn strs\n}\n"
  },
  {
    "path": "codegen/testserver/nullabledirectives/directive.graphql",
    "content": "directive @populate(value: String!) on ARGUMENT_DEFINITION\ndirective @noop on ARGUMENT_DEFINITION\n\ntype Query {\n    directiveSingleNullableArg(\n        arg1: String @populate(value: \"test\") @noop,\n    ): String\n}\n"
  },
  {
    "path": "codegen/testserver/nullabledirectives/directive_test.go",
    "content": "//go:generate go run ../../../testdata/gqlgen.go -config gqlgen.yml -stub stub.go\n\npackage followschema\n\nimport (\n\t\"context\"\n\t\"reflect\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/codegen/testserver/nullabledirectives/generated\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\n// isNil checks if the given value is nil\nfunc isNil(input any) bool {\n\tif input == nil {\n\t\treturn true\n\t}\n\t// Using reflect to check if the value is nil. This is necessary for\n\t// any types that are not nil types but have a nil value (e.g. *string).\n\tvalue := reflect.ValueOf(input)\n\treturn value.IsNil()\n}\n\nfunc TestDirectives(t *testing.T) {\n\tresolvers := &Stub{}\n\tok := \"Ok\"\n\tresolvers.QueryResolver.DirectiveSingleNullableArg = func(ctx context.Context, arg1 *string) (*string, error) {\n\t\tif arg1 != nil {\n\t\t\treturn arg1, nil\n\t\t}\n\n\t\treturn &ok, nil\n\t}\n\n\tsrv := handler.New(generated.NewExecutableSchema(generated.Config{\n\t\tResolvers: resolvers,\n\t\tDirectives: generated.DirectiveRoot{\n\t\t\tPopulate: func(ctx context.Context, obj any, next graphql.Resolver, value string) (any, error) {\n\t\t\t\tres, err := next(ctx)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\tif !isNil(res) {\n\t\t\t\t\treturn res, err\n\t\t\t\t}\n\n\t\t\t\treturn &value, nil\n\t\t\t},\n\t\t\tNoop: func(ctx context.Context, obj any, next graphql.Resolver) (any, error) {\n\t\t\t\treturn next(ctx)\n\t\t\t},\n\t\t},\n\t}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"arg directives\", func(t *testing.T) {\n\t\tt.Run(\"directive is called with null arguments\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveSingleNullableArg *string\n\t\t\t}\n\n\t\t\terr := c.Post(`query { directiveSingleNullableArg }`, &resp)\n\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Equal(t, \"test\", *resp.DirectiveSingleNullableArg)\n\t\t})\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/nullabledirectives/generated/directive.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage generated\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\ntype QueryResolver interface {\n\tDirectiveSingleNullableArg(ctx context.Context, arg1 *string) (*string, error)\n}\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) dir_populate_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"value\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"value\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_directiveSingleNullableArg_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\n\targ0, err := ec.field_Query_directiveSingleNullableArg_argsArg1(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg1\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_directiveSingleNullableArg_argsArg1(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (*string, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"arg1\"))\n\tdirective0 := func(ctx context.Context) (any, error) {\n\t\ttmp, ok := rawArgs[\"arg1\"]\n\t\tif !ok {\n\t\t\tvar zeroVal *string\n\t\t\treturn zeroVal, nil\n\t\t}\n\t\treturn ec.unmarshalOString2ᚖstring(ctx, tmp)\n\t}\n\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\tvalue, err := ec.unmarshalNString2string(ctx, \"test\")\n\t\tif err != nil {\n\t\t\tvar zeroVal *string\n\t\t\treturn zeroVal, err\n\t\t}\n\t\tif ec.Directives.Populate == nil {\n\t\t\tvar zeroVal *string\n\t\t\treturn zeroVal, errors.New(\"directive populate is not implemented\")\n\t\t}\n\t\treturn ec.Directives.Populate(ctx, rawArgs, directive0, value)\n\t}\n\tdirective2 := func(ctx context.Context) (any, error) {\n\t\tif ec.Directives.Noop == nil {\n\t\t\tvar zeroVal *string\n\t\t\treturn zeroVal, errors.New(\"directive noop is not implemented\")\n\t\t}\n\t\treturn ec.Directives.Noop(ctx, rawArgs, directive1)\n\t}\n\n\ttmp, err := directive2(ctx)\n\tif err != nil {\n\t\tvar zeroVal *string\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(*string); ok {\n\t\treturn data, nil\n\t} else if tmp == nil {\n\t\tvar zeroVal *string\n\t\treturn zeroVal, nil\n\t} else {\n\t\tvar zeroVal *string\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from directive, should be *string`, tmp))\n\t}\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Query_directiveSingleNullableArg(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_directiveSingleNullableArg,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().DirectiveSingleNullableArg(ctx, fc.Args[\"arg1\"].(*string))\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_directiveSingleNullableArg(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_directiveSingleNullableArg_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.IntrospectType(fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___schema,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.IntrospectSchema()\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"directiveSingleNullableArg\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_directiveSingleNullableArg(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/nullabledirectives/generated/models/models-gen.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage models\n\ntype Query struct {\n}\n"
  },
  {
    "path": "codegen/testserver/nullabledirectives/generated/prelude.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage generated\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) dir_defer_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"if\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"if\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"label\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"label\"] = arg1\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_isRepeatable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsRepeatable, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_locations,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Locations, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__DirectiveLocation2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_defaultValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DefaultValue, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_types,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Types(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_queryType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.QueryType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_mutationType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.MutationType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_subscriptionType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SubscriptionType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_directives,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Directives(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_kind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Kind(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__TypeKind2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_specifiedByURL,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SpecifiedByURL(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_fields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_interfaces,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Interfaces(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_possibleTypes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PossibleTypes(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_enumValues,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_inputFields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.InputFields(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_ofType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.OfType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_isOneOf,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsOneOf(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOBoolean2bool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/nullabledirectives/generated/resolvers/resolver.go",
    "content": "package resolver\n\n// THIS CODE WILL BE UPDATED WITH SCHEMA CHANGES. PREVIOUS IMPLEMENTATION FOR SCHEMA CHANGES WILL BE KEPT IN THE COMMENT SECTION. IMPLEMENTATION FOR UNCHANGED SCHEMA WILL BE KEPT.\n\nimport (\n\t\"context\"\n\n\tnullabledirectives \"github.com/99designs/gqlgen/codegen/testserver/nullabledirectives/generated\"\n)\n\ntype Resolver struct{}\n\n// DirectiveSingleNullableArg is the resolver for the directiveSingleNullableArg field.\nfunc (r *queryResolver) DirectiveSingleNullableArg(ctx context.Context, arg1 *string) (*string, error) {\n\tpanic(\"not implemented\")\n}\n\n// Query returns nullabledirectives.QueryResolver implementation.\nfunc (r *Resolver) Query() nullabledirectives.QueryResolver { return &queryResolver{r} }\n\ntype queryResolver struct{ *Resolver }\n\n// !!! WARNING !!!\n// The code below was going to be deleted when updating resolvers. It has been copied here so you have\n// one last chance to move it out of harms way if you want. There are two reasons this happens:\n//  - When renaming or deleting a resolver the old code will be put in here. You can safely delete\n//    it when you're done.\n//  - You have helper methods in this file. Move them out to keep these resolver files clean.\n/*\n\ttype Resolver struct{}\n*/\n"
  },
  {
    "path": "codegen/testserver/nullabledirectives/generated/root_.generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage generated\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n}\n\ntype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\ntype ResolverRoot interface {\n\tQuery() QueryResolver\n}\n\ntype DirectiveRoot struct {\n\tNoop     func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error)\n\tPopulate func(ctx context.Context, obj any, next graphql.Resolver, value string) (res any, err error)\n}\n\ntype ComplexityRoot struct {\n\tQuery struct {\n\t\tDirectiveSingleNullableArg func(childComplexity int, arg1 *string) int\n\t}\n}\n\ntype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.SchemaData != nil {\n\t\treturn e.SchemaData\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := newExecutionContext(nil, e, nil)\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"Query.directiveSingleNullableArg\":\n\t\tif e.ComplexityRoot.Query.DirectiveSingleNullableArg == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_directiveSingleNullableArg_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DirectiveSingleNullableArg(childComplexity, args[\"arg1\"].(*string)), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap()\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"../directive.graphql\", Input: `directive @populate(value: String!) on ARGUMENT_DEFINITION\ndirective @noop on ARGUMENT_DEFINITION\n\ntype Query {\n    directiveSingleNullableArg(\n        arg1: String @populate(value: \"test\") @noop,\n    ): String\n}\n`, BuiltIn: false},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n"
  },
  {
    "path": "codegen/testserver/nullabledirectives/gqlgen.yml",
    "content": "schema:\n  - \"*.graphql\"\nskip_validation: true\nexec:\n  layout: follow-schema\n  dir: generated\n  package: generated\nmodel:\n  filename: generated/models/models-gen.go\n  package: models\nresolver:\n  filename: generated/resolvers/resolver.go\n  package: resolver\n  type: Resolver\n\ncall_argument_directives_with_null: true\n"
  },
  {
    "path": "codegen/testserver/nullabledirectives/stub.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage followschema\n\nimport (\n\t\"context\"\n\n\t\"github.com/99designs/gqlgen/codegen/testserver/nullabledirectives/generated\"\n)\n\ntype Stub struct {\n\tQueryResolver struct {\n\t\tDirectiveSingleNullableArg func(ctx context.Context, arg1 *string) (*string, error)\n\t}\n}\n\nfunc (r *Stub) Query() generated.QueryResolver {\n\treturn &stubQuery{r}\n}\n\ntype stubQuery struct{ *Stub }\n\nfunc (r *stubQuery) DirectiveSingleNullableArg(ctx context.Context, arg1 *string) (*string, error) {\n\treturn r.QueryResolver.DirectiveSingleNullableArg(ctx, arg1)\n}\n"
  },
  {
    "path": "codegen/testserver/protogetters/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage protogetters\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"embed\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/codegen/testserver/protogetters/models\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n}\n\ntype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\ntype ResolverRoot interface {\n\tQuery() QueryResolver\n}\n\ntype DirectiveRoot struct {\n}\n\ntype ComplexityRoot struct {\n\tQuery struct {\n\t\tUser func(childComplexity int, id string) int\n\t}\n\n\tUser struct {\n\t\tGetAge   func(childComplexity int) int\n\t\tGetEmail func(childComplexity int) int\n\t\tGetId    func(childComplexity int) int\n\t\tGetName  func(childComplexity int) int\n\t}\n}\n\ntype QueryResolver interface {\n\tUser(ctx context.Context, id string) (*models.User, error)\n}\n\ntype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.SchemaData != nil {\n\t\treturn e.SchemaData\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := newExecutionContext(nil, e, nil)\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"Query.user\":\n\t\tif e.ComplexityRoot.Query.User == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_user_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.User(childComplexity, args[\"id\"].(string)), true\n\n\tcase \"User.age\":\n\t\tif e.ComplexityRoot.User.GetAge == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.GetAge(childComplexity), true\n\tcase \"User.email\":\n\t\tif e.ComplexityRoot.User.GetEmail == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.GetEmail(childComplexity), true\n\tcase \"User.id\":\n\t\tif e.ComplexityRoot.User.GetId == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.GetId(childComplexity), true\n\tcase \"User.name\":\n\t\tif e.ComplexityRoot.User.GetName == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.GetName(childComplexity), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap()\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\n//go:embed \"schema.graphql\"\nvar sourcesFS embed.FS\n\nfunc sourceData(filename string) string {\n\tdata, err := sourcesFS.ReadFile(filename)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"codegen problem: %s not available\", filename))\n\t}\n\treturn string(data)\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"schema.graphql\", Input: sourceData(\"schema.graphql\"), BuiltIn: false},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_user_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"id\", ec.unmarshalNID2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"id\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Query_user(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_user,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().User(ctx, fc.Args[\"id\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalOUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋprotogettersᚋmodelsᚐUser,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_user(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_User_id(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_User_name(ctx, field)\n\t\t\tcase \"email\":\n\t\t\t\treturn ec.fieldContext_User_email(ctx, field)\n\t\t\tcase \"age\":\n\t\t\t\treturn ec.fieldContext_User_age(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type User\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_user_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.IntrospectType(fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___schema,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.IntrospectSchema()\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_id(ctx context.Context, field graphql.CollectedField, obj *models.User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.GetId(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_name(ctx context.Context, field graphql.CollectedField, obj *models.User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tif !obj.HasName() {\n\t\t\t\treturn nil, nil\n\t\t\t}\n\t\t\treturn obj.GetName(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2string,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_email(ctx context.Context, field graphql.CollectedField, obj *models.User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_email,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tif !obj.HasEmail() {\n\t\t\t\treturn nil, nil\n\t\t\t}\n\t\t\treturn obj.GetEmail(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2string,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_email(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_age(ctx context.Context, field graphql.CollectedField, obj *models.User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_age,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.GetAge(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int32,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_age(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_isRepeatable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsRepeatable, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_locations,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Locations, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__DirectiveLocation2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_defaultValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DefaultValue, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_types,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Types(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_queryType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.QueryType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_mutationType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.MutationType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_subscriptionType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SubscriptionType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_directives,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Directives(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_kind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Kind(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__TypeKind2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_specifiedByURL,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SpecifiedByURL(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_fields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_interfaces,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Interfaces(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_possibleTypes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PossibleTypes(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_enumValues,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_inputFields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.InputFields(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_ofType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.OfType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_isOneOf,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsOneOf(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOBoolean2bool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"user\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_user(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar userImplementors = []string{\"User\"}\n\nfunc (ec *executionContext) _User(ctx context.Context, sel ast.SelectionSet, obj *models.User) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, userImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"User\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._User_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._User_name(ctx, field, obj)\n\t\tcase \"email\":\n\t\t\tout.Values[i] = ec._User_email(ctx, field, obj)\n\t\tcase \"age\":\n\t\t\tout.Values[i] = ec._User_age(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNID2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalID(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNID2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalID(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNInt2int32(ctx context.Context, v any) (int32, error) {\n\tres, err := graphql.UnmarshalInt32(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNInt2int32(ctx context.Context, sel ast.SelectionSet, v int32) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalInt32(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalOUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋprotogettersᚋmodelsᚐUser(ctx context.Context, sel ast.SelectionSet, v *models.User) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._User(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/protogetters/gqlgen.yml",
    "content": "schema:\n  - \"*.graphql\"\nexec:\n  filename: generated.go\n  package: protogetters\nmodel:\n  filename: models_gen.go\n  package: protogetters\nresolver:\n  layout: follow-schema\n  dir: .\n  package: protogetters\n  filename_template: \"{name}.resolvers.go\"\n\nautobind:\n  - github.com/99designs/gqlgen/codegen/testserver/protogetters/models\n\nautobind_getter_haser: true\n\nmodels:\n  Query:\n    fields:\n      user:\n        resolver: true\n"
  },
  {
    "path": "codegen/testserver/protogetters/models/user.go",
    "content": "package models\n\n// User simulates a protobuf editions message with getter and haser methods\ntype User struct {\n\tid    string\n\tname  *string\n\temail *string\n\tage   int32\n}\n\n// NewUser creates a new User\nfunc NewUser(id string, name, email *string, age int32) *User {\n\treturn &User{\n\t\tid:    id,\n\t\tname:  name,\n\t\temail: email,\n\t\tage:   age,\n\t}\n}\n\n// GetId is a protobuf-style getter\nfunc (u *User) GetId() string {\n\treturn u.id\n}\n\n// GetName is a protobuf-style getter\nfunc (u *User) GetName() string {\n\tif u.name == nil {\n\t\treturn \"\"\n\t}\n\treturn *u.name\n}\n\n// HasName is a protobuf-style haser\nfunc (u *User) HasName() bool {\n\treturn u.name != nil\n}\n\n// GetEmail is a protobuf-style getter\nfunc (u *User) GetEmail() string {\n\tif u.email == nil {\n\t\treturn \"\"\n\t}\n\treturn *u.email\n}\n\n// HasEmail is a protobuf-style haser\nfunc (u *User) HasEmail() bool {\n\treturn u.email != nil\n}\n\n// GetAge is a protobuf-style getter for non-nullable field\nfunc (u *User) GetAge() int32 {\n\treturn u.age\n}\n"
  },
  {
    "path": "codegen/testserver/protogetters/models_gen.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage protogetters\n\ntype Query struct {\n}\n"
  },
  {
    "path": "codegen/testserver/protogetters/protogetters_test.go",
    "content": "//go:generate go run ../../../testdata/gqlgen.go -config gqlgen.yml -stub stub.go\npackage protogetters\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/codegen/testserver/protogetters/models\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n)\n\nfunc TestProtoGetters(t *testing.T) {\n\tresolver := &Resolver{}\n\tc := client.New(handler.NewDefaultServer(NewExecutableSchema(Config{Resolvers: resolver})))\n\n\tt.Run(\"user with all fields set\", func(t *testing.T) {\n\t\tname := \"Alice\"\n\t\temail := \"alice@example.com\"\n\t\tresolver.users = map[string]*models.User{\n\t\t\t\"1\": models.NewUser(\"1\", &name, &email, 30),\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tUser struct {\n\t\t\t\tID    string\n\t\t\t\tName  *string\n\t\t\t\tEmail *string\n\t\t\t\tAge   int\n\t\t\t}\n\t\t}\n\t\tc.MustPost(`{user(id:\"1\"){id name email age}}`, &resp)\n\n\t\trequire.Equal(t, \"1\", resp.User.ID)\n\t\trequire.NotNil(t, resp.User.Name)\n\t\trequire.Equal(t, \"Alice\", *resp.User.Name)\n\t\trequire.NotNil(t, resp.User.Email)\n\t\trequire.Equal(t, \"alice@example.com\", *resp.User.Email)\n\t\trequire.Equal(t, 30, resp.User.Age)\n\t})\n\n\tt.Run(\"user with nullable fields unset\", func(t *testing.T) {\n\t\tresolver.users = map[string]*models.User{\n\t\t\t\"2\": models.NewUser(\"2\", nil, nil, 25),\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tUser struct {\n\t\t\t\tID    string\n\t\t\t\tName  *string\n\t\t\t\tEmail *string\n\t\t\t\tAge   int\n\t\t\t}\n\t\t}\n\t\tc.MustPost(`{user(id:\"2\"){id name email age}}`, &resp)\n\n\t\trequire.Equal(t, \"2\", resp.User.ID)\n\t\trequire.Nil(t, resp.User.Name)\n\t\trequire.Nil(t, resp.User.Email)\n\t\trequire.Equal(t, 25, resp.User.Age)\n\t})\n\n\tt.Run(\"user with only name set\", func(t *testing.T) {\n\t\tname := \"Bob\"\n\t\tresolver.users = map[string]*models.User{\n\t\t\t\"3\": models.NewUser(\"3\", &name, nil, 40),\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tUser struct {\n\t\t\t\tID    string\n\t\t\t\tName  *string\n\t\t\t\tEmail *string\n\t\t\t\tAge   int\n\t\t\t}\n\t\t}\n\t\tc.MustPost(`{user(id:\"3\"){id name email age}}`, &resp)\n\n\t\trequire.Equal(t, \"3\", resp.User.ID)\n\t\trequire.NotNil(t, resp.User.Name)\n\t\trequire.Equal(t, \"Bob\", *resp.User.Name)\n\t\trequire.Nil(t, resp.User.Email)\n\t\trequire.Equal(t, 40, resp.User.Age)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/protogetters/resolver.go",
    "content": "package protogetters\n\nimport \"github.com/99designs/gqlgen/codegen/testserver/protogetters/models\"\n\n// This file will not be regenerated automatically.\n//\n// It serves as dependency injection for your app, add any dependencies you require\n// here.\n\ntype Resolver struct {\n\tusers map[string]*models.User\n}\n"
  },
  {
    "path": "codegen/testserver/protogetters/schema.graphql",
    "content": "type Query {\n  user(id: ID!): User\n}\n\ntype User {\n  id: ID!\n  name: String\n  email: String\n  age: Int!\n}\n"
  },
  {
    "path": "codegen/testserver/protogetters/schema.resolvers.go",
    "content": "package protogetters\n\n// This file will be automatically regenerated based on the schema, any resolver\n// implementations\n// will be copied through when generating and any unknown code will be moved to the end.\n// Code generated by github.com/99designs/gqlgen version v0.17.88-dev\n\nimport (\n\t\"context\"\n\n\t\"github.com/99designs/gqlgen/codegen/testserver/protogetters/models\"\n)\n\n// User is the resolver for the user field.\nfunc (r *queryResolver) User(ctx context.Context, id string) (*models.User, error) {\n\treturn r.users[id], nil\n}\n\n// Query returns QueryResolver implementation.\nfunc (r *Resolver) Query() QueryResolver { return &queryResolver{r} }\n\ntype queryResolver struct{ *Resolver }\n"
  },
  {
    "path": "codegen/testserver/protogetters/stub.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage protogetters\n\nimport (\n\t\"context\"\n\n\t\"github.com/99designs/gqlgen/codegen/testserver/protogetters/models\"\n)\n\ntype Stub struct {\n\tQueryResolver struct {\n\t\tUser func(ctx context.Context, id string) (*models.User, error)\n\t}\n}\n\nfunc (r *Stub) Query() QueryResolver {\n\treturn &stubQuery{r}\n}\n\ntype stubQuery struct{ *Stub }\n\nfunc (r *stubQuery) User(ctx context.Context, id string) (*models.User, error) {\n\treturn r.QueryResolver.User(ctx, id)\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/builtinscalar.graphql",
    "content": "\n\"\"\"\nSince gqlgen defines default implementation for a Map scalar, this tests that the builtin is _not_\nadded to the TypeMap\n\"\"\"\ntype Map {\n    id: ID!\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/bytes.go",
    "content": "package singlefile\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\nfunc MarshalBytes(b []byte) graphql.Marshaler {\n\treturn graphql.WriterFunc(func(w io.Writer) {\n\t\t_, _ = fmt.Fprintf(w, \"%q\", string(b))\n\t})\n}\n\nfunc UnmarshalBytes(v any) ([]byte, error) {\n\tswitch v := v.(type) {\n\tcase string:\n\t\treturn []byte(v), nil\n\tcase *string:\n\t\treturn []byte(*v), nil\n\tcase []byte:\n\t\treturn v, nil\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"%T is not []byte\", v)\n\t}\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/complexity.graphql",
    "content": "extend type Query {\n    overlapping: OverlappingFields\n}\n\ntype OverlappingFields {\n  oneFoo: Int! @goField(name: \"foo\")\n  twoFoo: Int! @goField(name: \"foo\")\n  oldFoo: Int! @goField(name: \"foo\", forceResolver: true)\n  newFoo: Int!\n  new_foo: Int!\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/complexity_test.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/extension\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestComplexityCollisions(t *testing.T) {\n\tresolvers := &Stub{}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tresolvers.QueryResolver.Overlapping = func(ctx context.Context) (fields *OverlappingFields, e error) {\n\t\treturn &OverlappingFields{\n\t\t\tFoo:    2,\n\t\t\tNewFoo: 3,\n\t\t}, nil\n\t}\n\n\tresolvers.OverlappingFieldsResolver.OldFoo = func(ctx context.Context, obj *OverlappingFields) (i int, e error) {\n\t\treturn obj.Foo, nil\n\t}\n\n\tvar resp struct {\n\t\tOverlapping struct {\n\t\t\tOneFoo  int `json:\"oneFoo\"`\n\t\t\tTwoFoo  int `json:\"twoFoo\"`\n\t\t\tOldFoo  int `json:\"oldFoo\"`\n\t\t\tNewFoo  int `json:\"newFoo\"`\n\t\t\tNew_foo int `json:\"new_foo\"`\n\t\t}\n\t}\n\tc.MustPost(`query { overlapping { oneFoo, twoFoo, oldFoo, newFoo, new_foo } }`, &resp)\n\trequire.Equal(t, 2, resp.Overlapping.OneFoo)\n\trequire.Equal(t, 2, resp.Overlapping.TwoFoo)\n\trequire.Equal(t, 2, resp.Overlapping.OldFoo)\n\trequire.Equal(t, 3, resp.Overlapping.NewFoo)\n\trequire.Equal(t, 3, resp.Overlapping.New_foo)\n}\n\nfunc TestComplexityFuncs(t *testing.T) {\n\tresolvers := &Stub{}\n\tcfg := Config{Resolvers: resolvers}\n\tcfg.Complexity.OverlappingFields.Foo = func(childComplexity int) int { return 1000 }\n\tcfg.Complexity.OverlappingFields.NewFoo = func(childComplexity int) int { return 5 }\n\n\tsrv := handler.New(NewExecutableSchema(cfg))\n\tsrv.AddTransport(transport.POST{})\n\tsrv.Use(extension.FixedComplexityLimit(10))\n\tc := client.New(srv)\n\n\tresolvers.QueryResolver.Overlapping = func(ctx context.Context) (fields *OverlappingFields, e error) {\n\t\treturn &OverlappingFields{\n\t\t\tFoo:    2,\n\t\t\tNewFoo: 3,\n\t\t}, nil\n\t}\n\n\tt.Run(\"with high complexity limit will not run\", func(t *testing.T) {\n\t\tran := false\n\t\tresolvers.OverlappingFieldsResolver.OldFoo = func(ctx context.Context, obj *OverlappingFields) (i int, e error) {\n\t\t\tran = true\n\t\t\treturn obj.Foo, nil\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tOverlapping any\n\t\t}\n\t\terr := c.Post(`query { overlapping { oneFoo, twoFoo, oldFoo, newFoo, new_foo } }`, &resp)\n\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t`[{\"message\":\"operation has complexity 2012, which exceeds the limit of 10\",\"extensions\":{\"code\":\"COMPLEXITY_LIMIT_EXCEEDED\"}}]`,\n\t\t)\n\t\trequire.False(t, ran)\n\t})\n\n\tt.Run(\"with low complexity will run\", func(t *testing.T) {\n\t\tran := false\n\t\tresolvers.QueryResolver.Overlapping = func(ctx context.Context) (fields *OverlappingFields, e error) {\n\t\t\tran = true\n\t\t\treturn &OverlappingFields{\n\t\t\t\tFoo:    2,\n\t\t\t\tNewFoo: 3,\n\t\t\t}, nil\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tOverlapping any\n\t\t}\n\t\tc.MustPost(`query { overlapping { newFoo } }`, &resp)\n\n\t\trequire.True(t, ran)\n\t})\n\n\tt.Run(\"with multiple low complexity will not run\", func(t *testing.T) {\n\t\tran := false\n\t\tresolvers.QueryResolver.Overlapping = func(ctx context.Context) (fields *OverlappingFields, e error) {\n\t\t\tran = true\n\t\t\treturn &OverlappingFields{\n\t\t\t\tFoo:    2,\n\t\t\t\tNewFoo: 3,\n\t\t\t}, nil\n\t\t}\n\n\t\tvar resp any\n\t\terr := c.Post(`query {\n\t\t\ta: overlapping { newFoo },\n\t\t\tb: overlapping { newFoo },\n\t\t\tc: overlapping { newFoo },\n\t\t}`, &resp)\n\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t`[{\"message\":\"operation has complexity 18, which exceeds the limit of 10\",\"extensions\":{\"code\":\"COMPLEXITY_LIMIT_EXCEEDED\"}}]`,\n\t\t)\n\t\trequire.False(t, ran)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/defaults.graphql",
    "content": "extend type Query {\n    defaultParameters(\n        falsyBoolean: Boolean = false\n        truthyBoolean: Boolean = true\n    ): DefaultParametersMirror!\n}\n\nextend type Mutation {\n    defaultInput(input: DefaultInput!): DefaultParametersMirror!\n}\n\ninput DefaultInput {\n    falsyBoolean: Boolean = false\n    truthyBoolean: Boolean = true\n}\n\ntype DefaultParametersMirror {\n    falsyBoolean: Boolean\n    truthyBoolean: Boolean\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/defaults_test.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc assertDefaults(t *testing.T, ret *DefaultParametersMirror) {\n\trequire.NotNil(t, ret)\n\trequire.NotNil(t, ret.FalsyBoolean)\n\trequire.False(t, *ret.FalsyBoolean)\n\trequire.NotNil(t, ret.TruthyBoolean)\n\trequire.True(t, *ret.TruthyBoolean)\n}\n\nfunc TestDefaults(t *testing.T) {\n\tresolvers := &Stub{}\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"default field parameters\", func(t *testing.T) {\n\t\tresolvers.QueryResolver.DefaultParameters = func(\n\t\t\tctx context.Context,\n\t\t\tfalsyBoolean, truthyBoolean *bool,\n\t\t) (*DefaultParametersMirror, error) {\n\t\t\treturn &DefaultParametersMirror{\n\t\t\t\tFalsyBoolean:  falsyBoolean,\n\t\t\t\tTruthyBoolean: truthyBoolean,\n\t\t\t}, nil\n\t\t}\n\n\t\tvar resp struct{ DefaultParameters *DefaultParametersMirror }\n\t\terr := c.Post(`query {\n\t\t\tdefaultParameters {\n\t\t\t\tfalsyBoolean\n\t\t\t\ttruthyBoolean\n\t\t\t}\n\t\t}`, &resp)\n\t\trequire.NoError(t, err)\n\t\tassertDefaults(t, resp.DefaultParameters)\n\t})\n\n\tt.Run(\"default input fields\", func(t *testing.T) {\n\t\tresolvers.MutationResolver.DefaultInput = func(\n\t\t\tctx context.Context,\n\t\t\tinput DefaultInput,\n\t\t) (*DefaultParametersMirror, error) {\n\t\t\treturn &DefaultParametersMirror{\n\t\t\t\tFalsyBoolean:  input.FalsyBoolean,\n\t\t\t\tTruthyBoolean: input.TruthyBoolean,\n\t\t\t}, nil\n\t\t}\n\n\t\tvar resp struct{ DefaultInput *DefaultParametersMirror }\n\t\terr := c.Post(`mutation {\n\t\t\tdefaultInput(input: {}) {\n\t\t\t\tfalsyBoolean\n\t\t\t\ttruthyBoolean\n\t\t\t}\n\t\t}`, &resp)\n\t\trequire.NoError(t, err)\n\t\tassertDefaults(t, resp.DefaultInput)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/defer.graphql",
    "content": "extend type Query {\n    deferSingle: DeferModel\n    deferMultiple: [DeferModel!]\n}\n\ntype DeferModel {\n    id: ID!\n    name: String!\n    values: [String!]! @goField(forceResolver: true)\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/defer_test.go",
    "content": "package singlefile\n\nimport (\n\t\"cmp\"\n\t\"context\"\n\t\"encoding/json\"\n\t\"math/rand\"\n\t\"reflect\"\n\t\"slices\"\n\t\"strconv\"\n\t\"strings\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestDefer(t *testing.T) {\n\tresolvers := &Stub{}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.SSE{})\n\tsrv.AddTransport(transport.MultipartMixed{})\n\n\tc := client.New(srv)\n\n\tresolvers.QueryResolver.DeferSingle = func(ctx context.Context) (*DeferModel, error) {\n\t\treturn &DeferModel{\n\t\t\tID:   \"1\",\n\t\t\tName: \"Defer test 1\",\n\t\t}, nil\n\t}\n\n\tresolvers.QueryResolver.DeferMultiple = func(ctx context.Context) ([]*DeferModel, error) {\n\t\treturn []*DeferModel{\n\t\t\t{\n\t\t\t\tID:   \"1\",\n\t\t\t\tName: \"Defer test 1\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tID:   \"2\",\n\t\t\t\tName: \"Defer test 2\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tID:   \"3\",\n\t\t\t\tName: \"Defer test 3\",\n\t\t\t},\n\t\t}, nil\n\t}\n\n\tresolvers.DeferModelResolver.Values = func(ctx context.Context, obj *DeferModel) ([]string, error) {\n\t\ttime.Sleep(time.Duration(rand.Intn(100)) * time.Millisecond)\n\t\treturn []string{\n\t\t\t\"test defer 1\",\n\t\t\t\"test defer 2\",\n\t\t\t\"test defer 3\",\n\t\t}, nil\n\t}\n\n\ttype deferModel struct {\n\t\tId     string\n\t\tName   string\n\t\tValues []string\n\t}\n\n\ttype response[T any] struct {\n\t\tData       T\n\t\tLabel      string          `json:\"label\"`\n\t\tPath       []any           `json:\"path\"`\n\t\tHasNext    bool            `json:\"hasNext\"`\n\t\tErrors     json.RawMessage `json:\"errors\"`\n\t\tExtensions map[string]any  `json:\"extensions\"`\n\t}\n\n\ttype deferredData response[struct {\n\t\tValues []string `json:\"values\"`\n\t}]\n\n\ttype incrementalDeferredResponse struct {\n\t\tIncremental []deferredData  `json:\"incremental\"`\n\t\tHasNext     bool            `json:\"hasNext\"`\n\t\tErrors      json.RawMessage `json:\"errors\"`\n\t\tExtensions  map[string]any  `json:\"extensions\"`\n\t}\n\n\tpathStringer := func(path []any) string {\n\t\tvar kb strings.Builder\n\t\tfor i, part := range path {\n\t\t\tif i != 0 {\n\t\t\t\tkb.WriteRune('.')\n\t\t\t}\n\n\t\t\tswitch pathValue := part.(type) {\n\t\t\tcase string:\n\t\t\t\tkb.WriteString(pathValue)\n\t\t\tcase float64:\n\t\t\t\tkb.WriteString(strconv.FormatFloat(pathValue, 'f', -1, 64))\n\t\t\tdefault:\n\t\t\t\tt.Fatalf(\"unexpected path type: %T\", pathValue)\n\t\t\t}\n\t\t}\n\t\treturn kb.String()\n\t}\n\n\tcases := []struct {\n\t\tname                      string\n\t\tquery                     string\n\t\texpectedInitialResponse   any\n\t\texpectedDeferredResponses []deferredData\n\t}{\n\t\t{\n\t\t\tname: \"defer single\",\n\t\t\tquery: `query testDefer {\n\tdeferSingle {\n\t\tid\n\t\tname\n\t\t... @defer {\n\t\t\tvalues\n\t\t}\n\t}\n}`,\n\t\t\texpectedInitialResponse: response[struct {\n\t\t\t\tDeferSingle deferModel\n\t\t\t}]{\n\t\t\t\tData: struct {\n\t\t\t\t\tDeferSingle deferModel\n\t\t\t\t}{\n\t\t\t\t\tDeferSingle: deferModel{\n\t\t\t\t\t\tId:     \"1\",\n\t\t\t\t\t\tName:   \"Defer test 1\",\n\t\t\t\t\t\tValues: nil,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tHasNext: true,\n\t\t\t},\n\t\t\texpectedDeferredResponses: []deferredData{\n\t\t\t\t{\n\t\t\t\t\tData: struct {\n\t\t\t\t\t\tValues []string `json:\"values\"`\n\t\t\t\t\t}{\n\t\t\t\t\t\tValues: []string{\"test defer 1\", \"test defer 2\", \"test defer 3\"},\n\t\t\t\t\t},\n\t\t\t\t\tPath: []any{\"deferSingle\"},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"defer single using inline fragment with type\",\n\t\t\tquery: `query testDefer {\n\tdeferSingle {\n\t\tid\n\t\tname\n\t\t... on DeferModel @defer {\n\t\t\tvalues\n\t\t}\n\t}\n}`,\n\t\t\texpectedInitialResponse: response[struct {\n\t\t\t\tDeferSingle deferModel\n\t\t\t}]{\n\t\t\t\tData: struct {\n\t\t\t\t\tDeferSingle deferModel\n\t\t\t\t}{\n\t\t\t\t\tDeferSingle: deferModel{\n\t\t\t\t\t\tId:     \"1\",\n\t\t\t\t\t\tName:   \"Defer test 1\",\n\t\t\t\t\t\tValues: nil,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tHasNext: true,\n\t\t\t},\n\t\t\texpectedDeferredResponses: []deferredData{\n\t\t\t\t{\n\t\t\t\t\tData: struct {\n\t\t\t\t\t\tValues []string `json:\"values\"`\n\t\t\t\t\t}{\n\t\t\t\t\t\tValues: []string{\"test defer 1\", \"test defer 2\", \"test defer 3\"},\n\t\t\t\t\t},\n\t\t\t\t\tPath: []any{\"deferSingle\"},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"defer single using spread fragment\",\n\t\t\tquery: `query testDefer {\n\tdeferSingle {\n\t\tid\n\t\tname\n\t\t... DeferFragment @defer\n\t}\n}\n\nfragment DeferFragment on DeferModel {\n\tvalues\n}\n`,\n\t\t\texpectedInitialResponse: response[struct {\n\t\t\t\tDeferSingle deferModel\n\t\t\t}]{\n\t\t\t\tData: struct {\n\t\t\t\t\tDeferSingle deferModel\n\t\t\t\t}{\n\t\t\t\t\tDeferSingle: deferModel{\n\t\t\t\t\t\tId:     \"1\",\n\t\t\t\t\t\tName:   \"Defer test 1\",\n\t\t\t\t\t\tValues: nil,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tHasNext: true,\n\t\t\t},\n\t\t\texpectedDeferredResponses: []deferredData{\n\t\t\t\t{\n\t\t\t\t\tData: struct {\n\t\t\t\t\t\tValues []string `json:\"values\"`\n\t\t\t\t\t}{\n\t\t\t\t\t\tValues: []string{\"test defer 1\", \"test defer 2\", \"test defer 3\"},\n\t\t\t\t\t},\n\t\t\t\t\tPath: []any{\"deferSingle\"},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"defer single with label\",\n\t\t\tquery: `query testDefer {\n\tdeferSingle {\n\t\tid\n\t\tname\n\t\t... @defer(label: \"test label\") {\n\t\t\tvalues\n\t\t}\n\t}\n}`,\n\t\t\texpectedInitialResponse: response[struct {\n\t\t\t\tDeferSingle deferModel\n\t\t\t}]{\n\t\t\t\tData: struct {\n\t\t\t\t\tDeferSingle deferModel\n\t\t\t\t}{\n\t\t\t\t\tDeferSingle: deferModel{\n\t\t\t\t\t\tId:     \"1\",\n\t\t\t\t\t\tName:   \"Defer test 1\",\n\t\t\t\t\t\tValues: nil,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tHasNext: true,\n\t\t\t},\n\t\t\texpectedDeferredResponses: []deferredData{\n\t\t\t\t{\n\t\t\t\t\tData: struct {\n\t\t\t\t\t\tValues []string `json:\"values\"`\n\t\t\t\t\t}{\n\t\t\t\t\t\tValues: []string{\"test defer 1\", \"test defer 2\", \"test defer 3\"},\n\t\t\t\t\t},\n\t\t\t\t\tLabel: \"test label\",\n\t\t\t\t\tPath:  []any{\"deferSingle\"},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"defer single using spread fragment with label\",\n\t\t\tquery: `query testDefer {\n\tdeferSingle {\n\t\tid\n\t\tname\n\t\t... DeferFragment @defer(label: \"test label\")\n\t}\n}\n\nfragment DeferFragment on DeferModel {\n\tvalues\n}\n`,\n\t\t\texpectedInitialResponse: response[struct {\n\t\t\t\tDeferSingle deferModel\n\t\t\t}]{\n\t\t\t\tData: struct {\n\t\t\t\t\tDeferSingle deferModel\n\t\t\t\t}{\n\t\t\t\t\tDeferSingle: deferModel{\n\t\t\t\t\t\tId:     \"1\",\n\t\t\t\t\t\tName:   \"Defer test 1\",\n\t\t\t\t\t\tValues: nil,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tHasNext: true,\n\t\t\t},\n\t\t\texpectedDeferredResponses: []deferredData{\n\t\t\t\t{\n\t\t\t\t\tData: struct {\n\t\t\t\t\t\tValues []string `json:\"values\"`\n\t\t\t\t\t}{\n\t\t\t\t\t\tValues: []string{\"test defer 1\", \"test defer 2\", \"test defer 3\"},\n\t\t\t\t\t},\n\t\t\t\t\tLabel: \"test label\",\n\t\t\t\t\tPath:  []any{\"deferSingle\"},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"defer single when if arg is true\",\n\t\t\tquery: `query testDefer {\n\tdeferSingle {\n\t\tid\n\t\tname\n\t\t... @defer(if: true, label: \"test label\") {\n\t\t\tvalues\n\t\t}\n\t}\n}`,\n\t\t\texpectedInitialResponse: response[struct {\n\t\t\t\tDeferSingle deferModel\n\t\t\t}]{\n\t\t\t\tData: struct {\n\t\t\t\t\tDeferSingle deferModel\n\t\t\t\t}{\n\t\t\t\t\tDeferSingle: deferModel{\n\t\t\t\t\t\tId:     \"1\",\n\t\t\t\t\t\tName:   \"Defer test 1\",\n\t\t\t\t\t\tValues: nil,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tHasNext: true,\n\t\t\t},\n\t\t\texpectedDeferredResponses: []deferredData{\n\t\t\t\t{\n\t\t\t\t\tData: struct {\n\t\t\t\t\t\tValues []string `json:\"values\"`\n\t\t\t\t\t}{\n\t\t\t\t\t\tValues: []string{\"test defer 1\", \"test defer 2\", \"test defer 3\"},\n\t\t\t\t\t},\n\t\t\t\t\tLabel: \"test label\",\n\t\t\t\t\tPath:  []any{\"deferSingle\"},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"defer single when if arg is false\",\n\t\t\tquery: `query testDefer {\n\tdeferSingle {\n\t\tid\n\t\tname\n\t\t... @defer(if: false) {\n\t\t\tvalues\n\t\t}\n\t}\n}`,\n\t\t\texpectedInitialResponse: response[struct {\n\t\t\t\tDeferSingle deferModel\n\t\t\t}]{\n\t\t\t\tData: struct {\n\t\t\t\t\tDeferSingle deferModel\n\t\t\t\t}{\n\t\t\t\t\tDeferSingle: deferModel{\n\t\t\t\t\t\tId:     \"1\",\n\t\t\t\t\t\tName:   \"Defer test 1\",\n\t\t\t\t\t\tValues: []string{\"test defer 1\", \"test defer 2\", \"test defer 3\"},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"defer multiple\",\n\t\t\tquery: `query testDefer {\n\tdeferMultiple {\n\t\tid\n\t\tname\n\t\t... @defer (label: \"test label\") {\n\t\t\tvalues\n\t\t}\n\t}\n}`,\n\t\t\texpectedInitialResponse: response[struct {\n\t\t\t\tDeferMultiple []deferModel\n\t\t\t}]{\n\t\t\t\tData: struct {\n\t\t\t\t\tDeferMultiple []deferModel\n\t\t\t\t}{\n\t\t\t\t\tDeferMultiple: []deferModel{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tId:     \"1\",\n\t\t\t\t\t\t\tName:   \"Defer test 1\",\n\t\t\t\t\t\t\tValues: nil,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tId:     \"2\",\n\t\t\t\t\t\t\tName:   \"Defer test 2\",\n\t\t\t\t\t\t\tValues: nil,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tId:     \"3\",\n\t\t\t\t\t\t\tName:   \"Defer test 3\",\n\t\t\t\t\t\t\tValues: nil,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tHasNext: true,\n\t\t\t},\n\t\t\texpectedDeferredResponses: []deferredData{\n\t\t\t\t{\n\t\t\t\t\tData: struct {\n\t\t\t\t\t\tValues []string `json:\"values\"`\n\t\t\t\t\t}{\n\t\t\t\t\t\tValues: []string{\"test defer 1\", \"test defer 2\", \"test defer 3\"},\n\t\t\t\t\t},\n\t\t\t\t\tLabel: \"test label\",\n\t\t\t\t\tPath:  []any{\"deferMultiple\", float64(0)},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tData: struct {\n\t\t\t\t\t\tValues []string `json:\"values\"`\n\t\t\t\t\t}{\n\t\t\t\t\t\tValues: []string{\"test defer 1\", \"test defer 2\", \"test defer 3\"},\n\t\t\t\t\t},\n\t\t\t\t\tLabel: \"test label\",\n\t\t\t\t\tPath:  []any{\"deferMultiple\", float64(1)},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tData: struct {\n\t\t\t\t\t\tValues []string `json:\"values\"`\n\t\t\t\t\t}{\n\t\t\t\t\t\tValues: []string{\"test defer 1\", \"test defer 2\", \"test defer 3\"},\n\t\t\t\t\t},\n\t\t\t\t\tLabel: \"test label\",\n\t\t\t\t\tPath:  []any{\"deferMultiple\", float64(2)},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"defer multiple when if arg is false\",\n\t\t\tquery: `query testDefer {\n\tdeferMultiple {\n\t\tid\n\t\tname\n\t\t... @defer(label: \"test label\", if: false) {\n\t\t\tvalues\n\t\t}\n\t}\n}`,\n\t\t\texpectedInitialResponse: response[struct {\n\t\t\t\tDeferMultiple []deferModel\n\t\t\t}]{\n\t\t\t\tData: struct {\n\t\t\t\t\tDeferMultiple []deferModel\n\t\t\t\t}{\n\t\t\t\t\tDeferMultiple: []deferModel{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tId:     \"1\",\n\t\t\t\t\t\t\tName:   \"Defer test 1\",\n\t\t\t\t\t\t\tValues: []string{\"test defer 1\", \"test defer 2\", \"test defer 3\"},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tId:     \"2\",\n\t\t\t\t\t\t\tName:   \"Defer test 2\",\n\t\t\t\t\t\t\tValues: []string{\"test defer 1\", \"test defer 2\", \"test defer 3\"},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tId:     \"3\",\n\t\t\t\t\t\t\tName:   \"Defer test 3\",\n\t\t\t\t\t\t\tValues: []string{\"test defer 1\", \"test defer 2\", \"test defer 3\"},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name+\"/over SSE\", func(t *testing.T) {\n\t\t\tresT := reflect.TypeOf(tc.expectedInitialResponse)\n\t\t\tresE := reflect.New(resT).Elem()\n\t\t\tresp := resE.Interface()\n\n\t\t\tread := c.SSE(context.Background(), tc.query)\n\t\t\trequire.NoError(t, read.Next(&resp))\n\t\t\tassert.Equal(t, tc.expectedInitialResponse, resp)\n\n\t\t\t// If there are no deferred responses, we can stop here.\n\t\t\tif !resE.FieldByName(\"HasNext\").Bool() && len(tc.expectedDeferredResponses) == 0 {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tdeferredResponses := make([]deferredData, 0)\n\t\t\tfor {\n\t\t\t\tvar valueResp deferredData\n\t\t\t\trequire.NoError(t, read.Next(&valueResp))\n\n\t\t\t\tif !valueResp.HasNext {\n\t\t\t\t\tdeferredResponses = append(deferredResponses, valueResp)\n\t\t\t\t\tbreak\n\t\t\t\t}\n\n\t\t\t\t// Remove HasNext from comparison: we don't know the order they will be\n\t\t\t\t// delivered in, and so this can't be known in the setup. But if HasNext\n\t\t\t\t// does not work right we will either error out or get too few\n\t\t\t\t// responses, so it's still checked.\n\t\t\t\tvalueResp.HasNext = false\n\t\t\t\tdeferredResponses = append(deferredResponses, valueResp)\n\t\t\t}\n\t\t\trequire.NoError(t, read.Close())\n\n\t\t\tslices.SortFunc(deferredResponses, func(a, b deferredData) int {\n\t\t\t\treturn cmp.Compare(pathStringer(a.Path), pathStringer(b.Path))\n\t\t\t})\n\t\t\tassert.Equal(t, tc.expectedDeferredResponses, deferredResponses)\n\t\t})\n\n\t\tt.Run(tc.name+\"/over multipart HTTP\", func(t *testing.T) {\n\t\t\tresT := reflect.TypeOf(tc.expectedInitialResponse)\n\t\t\tresE := reflect.New(resT).Elem()\n\t\t\tresp := resE.Interface()\n\n\t\t\tread := c.IncrementalHTTP(context.Background(), tc.query)\n\t\t\trequire.NoError(t, read.Next(&resp))\n\t\t\tassert.Equal(t, tc.expectedInitialResponse, resp)\n\n\t\t\t// If there are no deferred responses, we can stop here.\n\t\t\tif !reflect.ValueOf(resp).FieldByName(\"HasNext\").Bool() &&\n\t\t\t\tlen(tc.expectedDeferredResponses) == 0 {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tdeferredIncrementalData := make([]deferredData, 0)\n\t\t\tfor {\n\t\t\t\tvar valueResp incrementalDeferredResponse\n\t\t\t\trequire.NoError(t, read.Next(&valueResp))\n\t\t\t\tassert.Empty(t, valueResp.Errors)\n\t\t\t\tassert.Empty(t, valueResp.Extensions)\n\n\t\t\t\t// Extract the incremental data from the response.\n\t\t\t\t//\n\t\t\t\t// FIXME: currently the HasNext field does not describe the state of the\n\t\t\t\t// delivery as bounded by the associated path, but rather the state of\n\t\t\t\t// the operation as a whole. This makes it impossible to determine it\n\t\t\t\t// from the response, so we can not define it ahead of time.\n\t\t\t\t//\n\t\t\t\t// It is also questionable that the incremental data objects should\n\t\t\t\t// include hasNext, so for now we remove them from assertion. Once we\n\t\t\t\t// align on the spec we must update this test, as the status of the\n\t\t\t\t// path-bounded delivery should be determinative and can be asserted.\n\t\t\t\tfor _, incr := range valueResp.Incremental {\n\t\t\t\t\tincr.HasNext = false\n\t\t\t\t\tdeferredIncrementalData = append(deferredIncrementalData, incr)\n\t\t\t\t}\n\n\t\t\t\tif !valueResp.HasNext {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\trequire.NoError(t, read.Close())\n\n\t\t\tslices.SortFunc(deferredIncrementalData, func(a, b deferredData) int {\n\t\t\t\treturn cmp.Compare(pathStringer(a.Path), pathStringer(b.Path))\n\t\t\t})\n\t\t\tassert.Equal(t, tc.expectedDeferredResponses, deferredIncrementalData)\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/directive.graphql",
    "content": "directive @length(min: Int!, max: Int, message: String) on ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION | FIELD_DEFINITION\ndirective @range(min: Int = 0, max: Int) on ARGUMENT_DEFINITION\ndirective @custom on ARGUMENT_DEFINITION\ndirective @logged(id: UUID!) on FIELD\ndirective @toNull on ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION | FIELD_DEFINITION\ndirective @populate(value: String!) on ARGUMENT_DEFINITION\ndirective @directive1 on FIELD_DEFINITION\ndirective @directive2 on FIELD_DEFINITION\ndirective @directive3 on INPUT_OBJECT\ndirective @unimplemented on FIELD_DEFINITION\ndirective @order1(location: String!) repeatable on FIELD_DEFINITION | OBJECT\ndirective @order2(location: String!) on OBJECT\ndirective @noop on ARGUMENT_DEFINITION\n\nextend type Query {\n    directiveArg(arg: String! @length(min:1, max: 255, message: \"invalid length\")): String\n    directiveNullableArg(arg: Int @range(min:0), arg2: Int @range, arg3: String @toNull): String\n    directiveSingleNullableArg(\n        arg1: String @populate(value: \"test\") @noop,\n    ): String\n    directiveInputNullable(arg: InputDirectives): String\n    directiveInput(arg: InputDirectives!): String\n    directiveInputType(arg: InnerInput! @custom): String\n    directiveInputOuter(arg: OuterWrapperInput!): String\n    directiveObject: ObjectDirectives @order1(location: \"Query_field\")\n    directiveObjectWithCustomGoModel: ObjectDirectivesWithCustomGoModel\n    directiveFieldDef(ret: String!): String! @length(min: 1, message: \"not valid\")\n    directiveField: String\n    directiveDouble: String @directive1 @directive2\n    directiveUnimplemented: String @unimplemented\n}\n\nextend type Subscription {\n    directiveArg(arg: String! @length(min:1, max: 255, message: \"invalid length\")): String\n    directiveNullableArg(arg: Int @range(min:0), arg2: Int @range, arg3: String @toNull): String\n    directiveDouble: String @directive1 @directive2\n    directiveUnimplemented: String @unimplemented\n}\n\ninput OuterWrapperInput {\n    inner: InputDirectives!\n}\n\ninput InputDirectives @directive3 {\n    text: String! @length(min: 0, max: 7, message: \"not valid\")\n    nullableText: String @toNull\n    inner: InnerDirectives!\n    innerNullable: InnerDirectives\n    thirdParty: ThirdParty @length(min: 0, max: 7)\n}\n\ninput InnerDirectives {\n    message: String! @length(min: 1, message: \"not valid\")\n}\n\ntype ObjectDirectives @order1(location: \"order1_1\") @order1(location: \"order1_2\") @order2(location: \"order2_1\") {\n    text: String! @length(min: 0, max: 7, message: \"not valid\")\n    nullableText: String @toNull\n    order: [String!]!\n}\n\ntype ObjectDirectivesWithCustomGoModel {\n    nullableText: String @toNull\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/directive_test.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\n// isNil checks if the given value is nil\nfunc isNil(input any) bool {\n\tif input == nil {\n\t\treturn true\n\t}\n\t// Using reflect to check if the value is nil. This is necessary for\n\t// any types that are not nil types but have a nil value (e.g. *string).\n\tvalue := reflect.ValueOf(input)\n\treturn value.IsNil()\n}\n\ntype ckey string\n\nfunc TestDirectives(t *testing.T) {\n\tresolvers := &Stub{}\n\tok := \"Ok\"\n\tresolvers.QueryResolver.DirectiveArg = func(ctx context.Context, arg string) (i *string, e error) {\n\t\treturn &ok, nil\n\t}\n\n\tresolvers.QueryResolver.DirectiveInput = func(ctx context.Context, arg InputDirectives) (i *string, e error) {\n\t\treturn &ok, nil\n\t}\n\n\tresolvers.QueryResolver.DirectiveInputNullable = func(ctx context.Context, arg *InputDirectives) (i *string, e error) {\n\t\treturn &ok, nil\n\t}\n\n\tresolvers.QueryResolver.DirectiveNullableArg = func(ctx context.Context, arg *int, arg2 *int, arg3 *string) (*string, error) {\n\t\treturn &ok, nil\n\t}\n\n\tresolvers.QueryResolver.DirectiveSingleNullableArg = func(ctx context.Context, arg1 *string) (*string, error) {\n\t\tif arg1 != nil {\n\t\t\treturn arg1, nil\n\t\t}\n\n\t\treturn &ok, nil\n\t}\n\n\tresolvers.QueryResolver.DirectiveInputType = func(ctx context.Context, arg InnerInput) (i *string, e error) {\n\t\treturn &ok, nil\n\t}\n\n\tresolvers.QueryResolver.DirectiveObject = func(ctx context.Context) (*ObjectDirectives, error) {\n\t\treturn &ObjectDirectives{\n\t\t\tText:         ok,\n\t\t\tNullableText: &ok,\n\t\t}, nil\n\t}\n\n\tresolvers.QueryResolver.DirectiveObjectWithCustomGoModel = func(ctx context.Context) (*ObjectDirectivesWithCustomGoModel, error) {\n\t\treturn &ObjectDirectivesWithCustomGoModel{\n\t\t\tNullableText: ok,\n\t\t}, nil\n\t}\n\n\tresolvers.QueryResolver.DirectiveField = func(ctx context.Context) (*string, error) {\n\t\tif s, ok := ctx.Value(ckey(\"request_id\")).(*string); ok {\n\t\t\treturn s, nil\n\t\t}\n\n\t\treturn nil, nil\n\t}\n\n\tresolvers.QueryResolver.DirectiveDouble = func(ctx context.Context) (*string, error) {\n\t\treturn &ok, nil\n\t}\n\n\tresolvers.QueryResolver.DirectiveUnimplemented = func(ctx context.Context) (*string, error) {\n\t\treturn &ok, nil\n\t}\n\n\tokchan := func() (<-chan *string, error) { //nolint:unparam // interface purposes\n\t\tres := make(chan *string, 1)\n\t\tres <- &ok\n\t\tclose(res)\n\t\treturn res, nil\n\t}\n\n\tresolvers.SubscriptionResolver.DirectiveArg = func(ctx context.Context, arg string) (strings <-chan *string, e error) {\n\t\treturn okchan()\n\t}\n\n\tresolvers.SubscriptionResolver.DirectiveNullableArg = func(ctx context.Context, arg *int, arg2 *int, arg3 *string) (strings <-chan *string, e error) {\n\t\treturn okchan()\n\t}\n\n\tresolvers.SubscriptionResolver.DirectiveDouble = func(ctx context.Context) (strings <-chan *string, e error) {\n\t\treturn okchan()\n\t}\n\n\tresolvers.SubscriptionResolver.DirectiveUnimplemented = func(ctx context.Context) (<-chan *string, error) {\n\t\treturn okchan()\n\t}\n\tsrv := handler.New(NewExecutableSchema(Config{\n\t\tResolvers: resolvers,\n\t\tDirectives: DirectiveRoot{\n\t\t\t//nolint:revive // can't rename min, max because it's generated code\n\t\t\tLength: func(ctx context.Context, obj any, next graphql.Resolver, min int, max *int, message *string) (any, error) {\n\t\t\t\te := func(msg string) error {\n\t\t\t\t\tif message == nil {\n\t\t\t\t\t\treturn errors.New(msg)\n\t\t\t\t\t}\n\t\t\t\t\treturn errors.New(*message)\n\t\t\t\t}\n\t\t\t\tres, err := next(ctx)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\ts := res.(string)\n\t\t\t\tif len(s) < min {\n\t\t\t\t\treturn nil, e(\"too short\")\n\t\t\t\t}\n\t\t\t\tif max != nil && len(s) > *max {\n\t\t\t\t\treturn nil, e(\"too long\")\n\t\t\t\t}\n\t\t\t\treturn res, nil\n\t\t\t},\n\t\t\t//nolint:revive // can't rename min, max because it's generated code\n\t\t\tRange: func(ctx context.Context, obj any, next graphql.Resolver, min *int, max *int) (any, error) {\n\t\t\t\tres, err := next(ctx)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\tswitch res := res.(type) {\n\t\t\t\tcase int:\n\t\t\t\t\tif min != nil && res < *min {\n\t\t\t\t\t\treturn nil, errors.New(\"too small\")\n\t\t\t\t\t}\n\t\t\t\t\tif max != nil && res > *max {\n\t\t\t\t\t\treturn nil, errors.New(\"too large\")\n\t\t\t\t\t}\n\t\t\t\t\treturn next(ctx)\n\n\t\t\t\tcase int64:\n\t\t\t\t\tif min != nil && int(res) < *min {\n\t\t\t\t\t\treturn nil, errors.New(\"too small\")\n\t\t\t\t\t}\n\t\t\t\t\tif max != nil && int(res) > *max {\n\t\t\t\t\t\treturn nil, errors.New(\"too large\")\n\t\t\t\t\t}\n\t\t\t\t\treturn next(ctx)\n\n\t\t\t\tcase *int:\n\t\t\t\t\tif min != nil && *res < *min {\n\t\t\t\t\t\treturn nil, errors.New(\"too small\")\n\t\t\t\t\t}\n\t\t\t\t\tif max != nil && *res > *max {\n\t\t\t\t\t\treturn nil, errors.New(\"too large\")\n\t\t\t\t\t}\n\t\t\t\t\treturn next(ctx)\n\t\t\t\t}\n\t\t\t\treturn nil, fmt.Errorf(\"unsupported type %T\", res)\n\t\t\t},\n\t\t\tCustom: func(ctx context.Context, obj any, next graphql.Resolver) (any, error) {\n\t\t\t\treturn next(ctx)\n\t\t\t},\n\t\t\tLogged: func(ctx context.Context, obj any, next graphql.Resolver, id string) (any, error) {\n\t\t\t\treturn next(context.WithValue(ctx, ckey(\"request_id\"), &id))\n\t\t\t},\n\t\t\tToNull: func(ctx context.Context, obj any, next graphql.Resolver) (any, error) {\n\t\t\t\treturn nil, nil\n\t\t\t},\n\t\t\tPopulate: func(ctx context.Context, obj any, next graphql.Resolver, value string) (any, error) {\n\t\t\t\tres, err := next(ctx)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\tif !isNil(res) {\n\t\t\t\t\treturn res, err\n\t\t\t\t}\n\n\t\t\t\treturn &value, nil\n\t\t\t},\n\t\t\tNoop: func(ctx context.Context, obj any, next graphql.Resolver) (any, error) {\n\t\t\t\treturn next(ctx)\n\t\t\t},\n\t\t\tDirective1: func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error) {\n\t\t\t\treturn next(ctx)\n\t\t\t},\n\t\t\tDirective2: func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error) {\n\t\t\t\treturn next(ctx)\n\t\t\t},\n\t\t\tDirective3: func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error) {\n\t\t\t\treturn next(ctx)\n\t\t\t},\n\t\t\tOrder1: func(ctx context.Context, obj any, next graphql.Resolver, location string) (res any, err error) {\n\t\t\t\torder := []string{location}\n\t\t\t\tres, err = next(ctx)\n\t\t\t\tod := res.(*ObjectDirectives)\n\t\t\t\tod.Order = append(order, od.Order...)\n\t\t\t\treturn od, err\n\t\t\t},\n\t\t\tOrder2: func(ctx context.Context, obj any, next graphql.Resolver, location string) (res any, err error) {\n\t\t\t\torder := []string{location}\n\t\t\t\tres, err = next(ctx)\n\t\t\t\tod := res.(*ObjectDirectives)\n\t\t\t\tod.Order = append(order, od.Order...)\n\t\t\t\treturn od, err\n\t\t\t},\n\t\t\tUnimplemented: nil,\n\t\t},\n\t}))\n\tsrv.AddTransport(transport.Websocket{KeepAlivePingInterval: time.Second})\n\tsrv.AddTransport(transport.POST{})\n\tsrv.AroundFields(func(ctx context.Context, next graphql.Resolver) (res any, err error) {\n\t\tpath, _ := ctx.Value(ckey(\"path\")).([]int)\n\t\treturn next(context.WithValue(ctx, ckey(\"path\"), append(path, 1)))\n\t})\n\n\tsrv.AroundFields(func(ctx context.Context, next graphql.Resolver) (res any, err error) {\n\t\tpath, _ := ctx.Value(ckey(\"path\")).([]int)\n\t\treturn next(context.WithValue(ctx, ckey(\"path\"), append(path, 2)))\n\t})\n\n\tc := client.New(srv)\n\n\tt.Run(\"arg directives\", func(t *testing.T) {\n\t\tt.Run(\"when function errors on directives\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveArg *string\n\t\t\t}\n\n\t\t\terr := c.Post(`query { directiveArg(arg: \"\") }`, &resp)\n\n\t\t\trequire.EqualError(\n\t\t\t\tt,\n\t\t\t\terr,\n\t\t\t\t`[{\"message\":\"invalid length\",\"path\":[\"directiveArg\",\"arg\"]}]`,\n\t\t\t)\n\t\t\trequire.Nil(t, resp.DirectiveArg)\n\t\t})\n\t\tt.Run(\"when function errors on nullable arg directives\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveNullableArg *string\n\t\t\t}\n\n\t\t\terr := c.Post(`query { directiveNullableArg(arg: -100) }`, &resp)\n\n\t\t\trequire.EqualError(\n\t\t\t\tt,\n\t\t\t\terr,\n\t\t\t\t`[{\"message\":\"too small\",\"path\":[\"directiveNullableArg\",\"arg\"]}]`,\n\t\t\t)\n\t\t\trequire.Nil(t, resp.DirectiveNullableArg)\n\t\t})\n\t\tt.Run(\"when function success on nullable arg directives\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveNullableArg *string\n\t\t\t}\n\n\t\t\terr := c.Post(`query { directiveNullableArg }`, &resp)\n\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Equal(t, \"Ok\", *resp.DirectiveNullableArg)\n\t\t})\n\t\tt.Run(\"when function success on valid nullable arg directives\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveNullableArg *string\n\t\t\t}\n\n\t\t\terr := c.Post(`query { directiveNullableArg(arg: 1) }`, &resp)\n\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Equal(t, \"Ok\", *resp.DirectiveNullableArg)\n\t\t})\n\t\tt.Run(\"when function success\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveArg *string\n\t\t\t}\n\n\t\t\terr := c.Post(`query { directiveArg(arg: \"test\") }`, &resp)\n\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Equal(t, \"Ok\", *resp.DirectiveArg)\n\t\t})\n\n\t\tt.Run(\"directive is not called with null arguments\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveSingleNullableArg *string\n\t\t\t}\n\n\t\t\terr := c.Post(`query { directiveSingleNullableArg }`, &resp)\n\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Equal(t, \"Ok\", *resp.DirectiveSingleNullableArg)\n\t\t})\n\t})\n\tt.Run(\"field definition directives\", func(t *testing.T) {\n\t\tresolvers.QueryResolver.DirectiveFieldDef = func(ctx context.Context, ret string) (i string, e error) {\n\t\t\treturn ret, nil\n\t\t}\n\n\t\tt.Run(\"too short\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveFieldDef string\n\t\t\t}\n\n\t\t\terr := c.Post(`query { directiveFieldDef(ret: \"\") }`, &resp)\n\n\t\t\trequire.EqualError(t, err, `[{\"message\":\"not valid\",\"path\":[\"directiveFieldDef\"]}]`)\n\t\t})\n\n\t\tt.Run(\"has 2 directives\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveDouble string\n\t\t\t}\n\n\t\t\tc.MustPost(`query { directiveDouble }`, &resp)\n\n\t\t\trequire.Equal(t, \"Ok\", resp.DirectiveDouble)\n\t\t})\n\n\t\tt.Run(\"directive is not implemented\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveUnimplemented string\n\t\t\t}\n\n\t\t\terr := c.Post(`query { directiveUnimplemented }`, &resp)\n\n\t\t\trequire.EqualError(\n\t\t\t\tt,\n\t\t\t\terr,\n\t\t\t\t`[{\"message\":\"directive unimplemented is not implemented\",\"path\":[\"directiveUnimplemented\"]}]`,\n\t\t\t)\n\t\t})\n\n\t\tt.Run(\"ok\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveFieldDef string\n\t\t\t}\n\n\t\t\tc.MustPost(`query { directiveFieldDef(ret: \"aaa\") }`, &resp)\n\n\t\t\trequire.Equal(t, \"aaa\", resp.DirectiveFieldDef)\n\t\t})\n\t})\n\tt.Run(\"field directives\", func(t *testing.T) {\n\t\tt.Run(\"add field directive\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveField string\n\t\t\t}\n\n\t\t\tc.MustPost(`query { directiveField@logged(id:\"testes_id\") }`, &resp)\n\n\t\t\trequire.Equal(t, `testes_id`, resp.DirectiveField)\n\t\t})\n\t\tt.Run(\"without field directive\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveField *string\n\t\t\t}\n\n\t\t\tc.MustPost(`query { directiveField }`, &resp)\n\n\t\t\trequire.Nil(t, resp.DirectiveField)\n\t\t})\n\t})\n\tt.Run(\"input field directives\", func(t *testing.T) {\n\t\tt.Run(\"when function errors on directives\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveInputNullable *string\n\t\t\t}\n\n\t\t\terr := c.Post(\n\t\t\t\t`query { directiveInputNullable(arg: {text:\"invalid text\",inner:{message:\"123\"}}) }`,\n\t\t\t\t&resp,\n\t\t\t)\n\n\t\t\trequire.EqualError(\n\t\t\t\tt,\n\t\t\t\terr,\n\t\t\t\t`[{\"message\":\"not valid\",\"path\":[\"directiveInputNullable\",\"arg\",\"text\"]}]`,\n\t\t\t)\n\t\t\trequire.Nil(t, resp.DirectiveInputNullable)\n\t\t})\n\t\tt.Run(\"when function errors on inner directives\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveInputNullable *string\n\t\t\t}\n\n\t\t\terr := c.Post(\n\t\t\t\t`query { directiveInputNullable(arg: {text:\"2\",inner:{message:\"\"}}) }`,\n\t\t\t\t&resp,\n\t\t\t)\n\n\t\t\trequire.EqualError(\n\t\t\t\tt,\n\t\t\t\terr,\n\t\t\t\t`[{\"message\":\"not valid\",\"path\":[\"directiveInputNullable\",\"arg\",\"inner\",\"message\"]}]`,\n\t\t\t)\n\t\t\trequire.Nil(t, resp.DirectiveInputNullable)\n\t\t})\n\t\tt.Run(\"when function errors on nullable inner directives\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveInputNullable *string\n\t\t\t}\n\n\t\t\terr := c.Post(\n\t\t\t\t`query { directiveInputNullable(arg: {text:\"success\",inner:{message:\"1\"},innerNullable:{message:\"\"}}) }`,\n\t\t\t\t&resp,\n\t\t\t)\n\n\t\t\trequire.EqualError(\n\t\t\t\tt,\n\t\t\t\terr,\n\t\t\t\t`[{\"message\":\"not valid\",\"path\":[\"directiveInputNullable\",\"arg\",\"innerNullable\",\"message\"]}]`,\n\t\t\t)\n\t\t\trequire.Nil(t, resp.DirectiveInputNullable)\n\t\t})\n\t\tt.Run(\"when function success\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveInputNullable *string\n\t\t\t}\n\n\t\t\terr := c.Post(\n\t\t\t\t`query { directiveInputNullable(arg: {text:\"23\",inner:{message:\"1\"}}) }`,\n\t\t\t\t&resp,\n\t\t\t)\n\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Equal(t, \"Ok\", *resp.DirectiveInputNullable)\n\t\t})\n\t\tt.Run(\"when function inner nullable success\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveInputNullable *string\n\t\t\t}\n\n\t\t\terr := c.Post(\n\t\t\t\t`query { directiveInputNullable(arg: {text:\"23\",nullableText:\"23\",inner:{message:\"1\"},innerNullable:{message:\"success\"}}) }`,\n\t\t\t\t&resp,\n\t\t\t)\n\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Equal(t, \"Ok\", *resp.DirectiveInputNullable)\n\t\t})\n\t\tt.Run(\"when arg has directive\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveInputType *string\n\t\t\t}\n\n\t\t\terr := c.Post(`query { directiveInputType(arg: {id: 1}) }`, &resp)\n\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Equal(t, \"Ok\", *resp.DirectiveInputType)\n\t\t})\n\t})\n\tt.Run(\"object field directives\", func(t *testing.T) {\n\t\tt.Run(\"when function success\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveObject *struct {\n\t\t\t\t\tText         string\n\t\t\t\t\tNullableText *string\n\t\t\t\t\tOrder        []string\n\t\t\t\t}\n\t\t\t}\n\n\t\t\terr := c.Post(`query { directiveObject{ text nullableText order} }`, &resp)\n\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Equal(t, \"Ok\", resp.DirectiveObject.Text)\n\t\t\trequire.Nil(t, resp.DirectiveObject.NullableText)\n\t\t\trequire.Equal(t, \"Query_field\", resp.DirectiveObject.Order[0])\n\t\t\trequire.Equal(t, \"order2_1\", resp.DirectiveObject.Order[1])\n\t\t\trequire.Equal(t, \"order1_2\", resp.DirectiveObject.Order[2])\n\t\t\trequire.Equal(t, \"order1_1\", resp.DirectiveObject.Order[3])\n\t\t})\n\t\tt.Run(\"when directive returns nil & custom go field is not nilable\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tDirectiveObjectWithCustomGoModel *struct {\n\t\t\t\t\tNullableText *string\n\t\t\t\t}\n\t\t\t}\n\n\t\t\terr := c.Post(`query { directiveObjectWithCustomGoModel{ nullableText } }`, &resp)\n\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Nil(t, resp.DirectiveObjectWithCustomGoModel.NullableText)\n\t\t})\n\t})\n\n\tt.Run(\"Subscription directives\", func(t *testing.T) {\n\t\tt.Run(\"arg directives\", func(t *testing.T) {\n\t\t\tt.Run(\"when function errors on directives\", func(t *testing.T) {\n\t\t\t\tvar resp struct {\n\t\t\t\t\tDirectiveArg *string\n\t\t\t\t}\n\n\t\t\t\terr := c.WebsocketOnce(`subscription { directiveArg(arg: \"\") }`, &resp)\n\n\t\t\t\trequire.EqualError(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\t`[{\"message\":\"invalid length\",\"path\":[\"directiveArg\",\"arg\"]}]`,\n\t\t\t\t)\n\t\t\t\trequire.Nil(t, resp.DirectiveArg)\n\t\t\t})\n\t\t\tt.Run(\"when function errors on nullable arg directives\", func(t *testing.T) {\n\t\t\t\tvar resp struct {\n\t\t\t\t\tDirectiveNullableArg *string\n\t\t\t\t}\n\n\t\t\t\terr := c.WebsocketOnce(`subscription { directiveNullableArg(arg: -100) }`, &resp)\n\n\t\t\t\trequire.EqualError(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\t`[{\"message\":\"too small\",\"path\":[\"directiveNullableArg\",\"arg\"]}]`,\n\t\t\t\t)\n\t\t\t\trequire.Nil(t, resp.DirectiveNullableArg)\n\t\t\t})\n\t\t\tt.Run(\"when function success on nullable arg directives\", func(t *testing.T) {\n\t\t\t\tvar resp struct {\n\t\t\t\t\tDirectiveNullableArg *string\n\t\t\t\t}\n\n\t\t\t\terr := c.WebsocketOnce(`subscription { directiveNullableArg }`, &resp)\n\n\t\t\t\trequire.NoError(t, err)\n\t\t\t\trequire.NotNil(t, resp.DirectiveNullableArg)\n\t\t\t\trequire.Equal(t, \"Ok\", *resp.DirectiveNullableArg)\n\t\t\t})\n\t\t\tt.Run(\"when function success on valid nullable arg directives\", func(t *testing.T) {\n\t\t\t\tvar resp struct {\n\t\t\t\t\tDirectiveNullableArg *string\n\t\t\t\t}\n\n\t\t\t\terr := c.WebsocketOnce(`subscription { directiveNullableArg(arg: 1) }`, &resp)\n\n\t\t\t\trequire.NoError(t, err)\n\t\t\t\trequire.NotNil(t, resp.DirectiveNullableArg)\n\t\t\t\trequire.Equal(t, \"Ok\", *resp.DirectiveNullableArg)\n\t\t\t})\n\t\t\tt.Run(\"when function success\", func(t *testing.T) {\n\t\t\t\tvar resp struct {\n\t\t\t\t\tDirectiveArg *string\n\t\t\t\t}\n\n\t\t\t\terr := c.WebsocketOnce(`subscription { directiveArg(arg: \"test\") }`, &resp)\n\n\t\t\t\trequire.NoError(t, err)\n\t\t\t\trequire.NotNil(t, resp.DirectiveArg)\n\t\t\t\trequire.Equal(t, \"Ok\", *resp.DirectiveArg)\n\t\t\t})\n\t\t})\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/embedded.go",
    "content": "package singlefile\n\n// EmbeddedCase1 model\ntype EmbeddedCase1 struct {\n\tEmpty\n\t*ExportedEmbeddedPointerAfterInterface\n}\n\n// Empty interface\ntype Empty any\n\n// ExportedEmbeddedPointerAfterInterface model\ntype ExportedEmbeddedPointerAfterInterface struct{}\n\n// ExportedEmbeddedPointerExportedMethod method\nfunc (*ExportedEmbeddedPointerAfterInterface) ExportedEmbeddedPointerExportedMethod() string {\n\treturn \"ExportedEmbeddedPointerExportedMethodResponse\"\n}\n\n// EmbeddedCase2 model\ntype EmbeddedCase2 struct {\n\t*unexportedEmbeddedPointer\n}\n\ntype unexportedEmbeddedPointer struct{}\n\n// UnexportedEmbeddedPointerExportedMethod method\nfunc (*unexportedEmbeddedPointer) UnexportedEmbeddedPointerExportedMethod() string {\n\treturn \"UnexportedEmbeddedPointerExportedMethodResponse\"\n}\n\n// EmbeddedCase3 model\ntype EmbeddedCase3 struct {\n\tunexportedEmbeddedInterface\n}\n\ntype unexportedEmbeddedInterface interface {\n\tnestedInterface\n}\n\ntype nestedInterface interface {\n\tUnexportedEmbeddedInterfaceExportedMethod() string\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/embedded.graphql",
    "content": "extend type Query {\n    embeddedCase1: EmbeddedCase1\n    embeddedCase2: EmbeddedCase2\n    embeddedCase3: EmbeddedCase3\n}\n\ntype EmbeddedCase1 @goModel(model:\"singlefile.EmbeddedCase1\") {\n    exportedEmbeddedPointerExportedMethod: String!\n}\n\ntype EmbeddedCase2 @goModel(model:\"singlefile.EmbeddedCase2\") {\n    unexportedEmbeddedPointerExportedMethod: String!\n}\n\ntype EmbeddedCase3 @goModel(model:\"singlefile.EmbeddedCase3\") {\n    unexportedEmbeddedInterfaceExportedMethod: String!\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/embedded_test.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\ntype fakeUnexportedEmbeddedInterface struct{}\n\nfunc (*fakeUnexportedEmbeddedInterface) UnexportedEmbeddedInterfaceExportedMethod() string {\n\treturn \"UnexportedEmbeddedInterfaceExportedMethod\"\n}\n\nfunc TestEmbedded(t *testing.T) {\n\tresolver := &Stub{}\n\tresolver.QueryResolver.EmbeddedCase1 = func(ctx context.Context) (*EmbeddedCase1, error) {\n\t\treturn &EmbeddedCase1{}, nil\n\t}\n\tresolver.QueryResolver.EmbeddedCase2 = func(ctx context.Context) (*EmbeddedCase2, error) {\n\t\treturn &EmbeddedCase2{&unexportedEmbeddedPointer{}}, nil\n\t}\n\tresolver.QueryResolver.EmbeddedCase3 = func(ctx context.Context) (*EmbeddedCase3, error) {\n\t\treturn &EmbeddedCase3{&fakeUnexportedEmbeddedInterface{}}, nil\n\t}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolver}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"embedded case 1\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tEmbeddedCase1 struct {\n\t\t\t\tExportedEmbeddedPointerExportedMethod string\n\t\t\t}\n\t\t}\n\t\terr := c.Post(`query { embeddedCase1 { exportedEmbeddedPointerExportedMethod } }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(\n\t\t\tt,\n\t\t\t\"ExportedEmbeddedPointerExportedMethodResponse\",\n\t\t\tresp.EmbeddedCase1.ExportedEmbeddedPointerExportedMethod,\n\t\t)\n\t})\n\n\tt.Run(\"embedded case 2\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tEmbeddedCase2 struct {\n\t\t\t\tUnexportedEmbeddedPointerExportedMethod string\n\t\t\t}\n\t\t}\n\t\terr := c.Post(`query { embeddedCase2 { unexportedEmbeddedPointerExportedMethod } }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(\n\t\t\tt,\n\t\t\t\"UnexportedEmbeddedPointerExportedMethodResponse\",\n\t\t\tresp.EmbeddedCase2.UnexportedEmbeddedPointerExportedMethod,\n\t\t)\n\t})\n\n\tt.Run(\"embedded case 3\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tEmbeddedCase3 struct {\n\t\t\t\tUnexportedEmbeddedInterfaceExportedMethod string\n\t\t\t}\n\t\t}\n\t\terr := c.Post(\n\t\t\t`query { embeddedCase3 { unexportedEmbeddedInterfaceExportedMethod } }`,\n\t\t\t&resp,\n\t\t)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(\n\t\t\tt,\n\t\t\t\"UnexportedEmbeddedInterfaceExportedMethod\",\n\t\t\tresp.EmbeddedCase3.UnexportedEmbeddedInterfaceExportedMethod,\n\t\t)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/enum.graphql",
    "content": "enum EnumTest {\n    OK\n    NG\n}\n\ninput InputWithEnumValue {\n    enum: EnumTest!\n}\n\nextend type Query {\n    enumInInput(input: InputWithEnumValue): EnumTest!\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/enums_test.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestEnumsResolver(t *testing.T) {\n\tresolvers := &Stub{}\n\tresolvers.QueryResolver.EnumInInput = func(ctx context.Context, input *InputWithEnumValue) (EnumTest, error) {\n\t\treturn input.Enum, nil\n\t}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"input with valid enum value\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tEnumInInput EnumTest\n\t\t}\n\t\tc.MustPost(`query {\n\t\t\tenumInInput(input: {enum: OK})\n\t\t}\n\t\t`, &resp)\n\t\trequire.Equal(t, EnumTestOk, resp.EnumInInput)\n\t})\n\n\tt.Run(\"input with invalid enum value\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tEnumInInput EnumTest\n\t\t}\n\t\terr := c.Post(`query {\n\t\t\tenumInInput(input: {enum: INVALID})\n\t\t}\n\t\t`, &resp)\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t`http 422: {\"errors\":[{\"message\":\"Value \\\"INVALID\\\" does not exist in \\\"EnumTest!\\\" enum.\",\"locations\":[{\"line\":2,\"column\":30}],\"extensions\":{\"code\":\"GRAPHQL_VALIDATION_FAILED\"}}],\"data\":null}`,\n\t\t)\n\t})\n\n\tt.Run(\"input with invalid enum value via vars\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tEnumInInput EnumTest\n\t\t}\n\t\terr := c.Post(`query ($input: InputWithEnumValue) {\n\t\t\tenumInInput(input: $input)\n\t\t}\n\t\t`, &resp, client.Var(\"input\", map[string]any{\"enum\": \"INVALID\"}))\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t`http 422: {\"errors\":[{\"message\":\"INVALID is not a valid EnumTest\",\"path\":[\"variable\",\"input\",\"enum\"],\"extensions\":{\"code\":\"GRAPHQL_VALIDATION_FAILED\"}}],\"data\":null}`,\n\t\t)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/fields_order.go",
    "content": "package singlefile\n\ntype FieldsOrderInput struct {\n\tFirstField *string `json:\"firstField\"`\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/fields_order.graphql",
    "content": "type FieldsOrderPayload {\n    firstFieldValue: String\n}\n\ninput FieldsOrderInput {\n    firstField: String\n    overrideFirstField: String\n}\n\nextend type Mutation {\n    overrideValueViaInput(input: FieldsOrderInput!): FieldsOrderPayload!\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/fields_order_test.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\ntype FieldsOrderPayloadResults struct {\n\tOverrideValueViaInput struct {\n\t\tFirstFieldValue *string `json:\"firstFieldValue\"`\n\t} `json:\"overrideValueViaInput\"`\n}\n\nfunc TestFieldsOrder(t *testing.T) {\n\tresolvers := &Stub{}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\tresolvers.FieldsOrderInputResolver.OverrideFirstField = func(ctx context.Context, in *FieldsOrderInput, data *string) error {\n\t\tif data != nil {\n\t\t\tin.FirstField = data\n\t\t}\n\t\treturn nil\n\t}\n\tresolvers.MutationResolver.OverrideValueViaInput = func(ctx context.Context, in FieldsOrderInput) (ret *FieldsOrderPayload, err error) {\n\t\tret = &FieldsOrderPayload{\n\t\t\tFirstFieldValue: in.FirstField,\n\t\t}\n\t\treturn ret, err\n\t}\n\n\tt.Run(\"firstField\", func(t *testing.T) {\n\t\tvar resp FieldsOrderPayloadResults\n\n\t\terr := c.Post(`mutation {\n\t\t\toverrideValueViaInput(input: { firstField:\"newName\" }) {\n\t\t\t\tfirstFieldValue\n\t\t\t}\n\t\t}`, &resp)\n\t\trequire.NoError(t, err)\n\n\t\trequire.NotNil(t, resp.OverrideValueViaInput.FirstFieldValue)\n\t\trequire.Equal(t, \"newName\", *resp.OverrideValueViaInput.FirstFieldValue)\n\t})\n\n\tt.Run(\"firstField/override\", func(t *testing.T) {\n\t\tvar resp FieldsOrderPayloadResults\n\n\t\terr := c.Post(`mutation { overrideValueViaInput(input: {\n\t\t\t\tfirstField:\"newName\",\n\t\t\t\toverrideFirstField: \"override\"\n\t\t\t}) {\n\t\t\t\tfirstFieldValue\n\t\t\t}\n\t\t}`, &resp)\n\t\trequire.NoError(t, err)\n\n\t\trequire.NotNil(t, resp.OverrideValueViaInput.FirstFieldValue)\n\t\trequire.NotEqual(t, \"newName\", *resp.OverrideValueViaInput.FirstFieldValue)\n\t\trequire.Equal(t, \"override\", *resp.OverrideValueViaInput.FirstFieldValue)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage singlefile\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\tintrospection1 \"github.com/99designs/gqlgen/codegen/testserver/singlefile/introspection\"\n\tinvalid_packagename \"github.com/99designs/gqlgen/codegen/testserver/singlefile/invalid-packagename\"\n\t\"github.com/99designs/gqlgen/codegen/testserver/singlefile/otherpkg\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n}\n\ntype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\ntype ResolverRoot interface {\n\tBackedByInterface() BackedByInterfaceResolver\n\tDeferModel() DeferModelResolver\n\tErrors() ErrorsResolver\n\tForcedResolver() ForcedResolverResolver\n\tModelMethods() ModelMethodsResolver\n\tMutation() MutationResolver\n\tOverlappingFields() OverlappingFieldsResolver\n\tPanics() PanicsResolver\n\tPet() PetResolver\n\tPrimitive() PrimitiveResolver\n\tPrimitiveString() PrimitiveStringResolver\n\tQuery() QueryResolver\n\tSubscription() SubscriptionResolver\n\tUser() UserResolver\n\tWrappedMap() WrappedMapResolver\n\tWrappedSlice() WrappedSliceResolver\n\tFieldsOrderInput() FieldsOrderInputResolver\n}\n\ntype DirectiveRoot struct {\n\tCustom        func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error)\n\tDefer         func(ctx context.Context, obj any, next graphql.Resolver, ifArg *bool, label *string) (res any, err error)\n\tDirective1    func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error)\n\tDirective2    func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error)\n\tDirective3    func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error)\n\tLength        func(ctx context.Context, obj any, next graphql.Resolver, min int, max *int, message *string) (res any, err error)\n\tLogged        func(ctx context.Context, obj any, next graphql.Resolver, id string) (res any, err error)\n\tMakeNil       func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error)\n\tMakeTypedNil  func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error)\n\tNoop          func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error)\n\tOrder1        func(ctx context.Context, obj any, next graphql.Resolver, location string) (res any, err error)\n\tOrder2        func(ctx context.Context, obj any, next graphql.Resolver, location string) (res any, err error)\n\tPopulate      func(ctx context.Context, obj any, next graphql.Resolver, value string) (res any, err error)\n\tRange         func(ctx context.Context, obj any, next graphql.Resolver, min *int, max *int) (res any, err error)\n\tToNull        func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error)\n\tUnimplemented func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error)\n}\n\ntype ComplexityRoot struct {\n\tA struct {\n\t\tID func(childComplexity int) int\n\t}\n\n\tAIt struct {\n\t\tID func(childComplexity int) int\n\t}\n\n\tAbIt struct {\n\t\tID func(childComplexity int) int\n\t}\n\n\tAutobind struct {\n\t\tIdInt func(childComplexity int) int\n\t\tIdStr func(childComplexity int) int\n\t\tInt   func(childComplexity int) int\n\t\tInt32 func(childComplexity int) int\n\t\tInt64 func(childComplexity int) int\n\t}\n\n\tB struct {\n\t\tID func(childComplexity int) int\n\t}\n\n\tBackedByInterface struct {\n\t\tID                      func(childComplexity int) int\n\t\tThisShouldBind          func(childComplexity int) int\n\t\tThisShouldBindWithError func(childComplexity int) int\n\t}\n\n\tCat struct {\n\t\tCatBreed func(childComplexity int) int\n\t\tSize     func(childComplexity int) int\n\t\tSpecies  func(childComplexity int) int\n\t}\n\n\tCheckIssue896 struct {\n\t\tID func(childComplexity int) int\n\t}\n\n\tCircle struct {\n\t\tArea        func(childComplexity int) int\n\t\tCoordinates func(childComplexity int) int\n\t\tRadius      func(childComplexity int) int\n\t}\n\n\tConcreteNodeA struct {\n\t\tChild func(childComplexity int) int\n\t\tID    func(childComplexity int) int\n\t\tName  func(childComplexity int) int\n\t}\n\n\tConcreteNodeInterface struct {\n\t\tChild func(childComplexity int) int\n\t\tID    func(childComplexity int) int\n\t}\n\n\tContent_Post struct {\n\t\tFoo func(childComplexity int) int\n\t}\n\n\tContent_User struct {\n\t\tFoo func(childComplexity int) int\n\t}\n\n\tCoordinates struct {\n\t\tX func(childComplexity int) int\n\t\tY func(childComplexity int) int\n\t}\n\n\tDefaultParametersMirror struct {\n\t\tFalsyBoolean  func(childComplexity int) int\n\t\tTruthyBoolean func(childComplexity int) int\n\t}\n\n\tDeferModel struct {\n\t\tID     func(childComplexity int) int\n\t\tName   func(childComplexity int) int\n\t\tValues func(childComplexity int) int\n\t}\n\n\tDog struct {\n\t\tDogBreed func(childComplexity int) int\n\t\tSize     func(childComplexity int) int\n\t\tSpecies  func(childComplexity int) int\n\t}\n\n\tEmbeddedCase1 struct {\n\t\tExportedEmbeddedPointerExportedMethod func(childComplexity int) int\n\t}\n\n\tEmbeddedCase2 struct {\n\t\tUnexportedEmbeddedPointerExportedMethod func(childComplexity int) int\n\t}\n\n\tEmbeddedCase3 struct {\n\t\tUnexportedEmbeddedInterfaceExportedMethod func(childComplexity int) int\n\t}\n\n\tEmbeddedDefaultScalar struct {\n\t\tValue func(childComplexity int) int\n\t}\n\n\tEmbeddedPointer struct {\n\t\tID    func(childComplexity int) int\n\t\tTitle func(childComplexity int) int\n\t}\n\n\tError struct {\n\t\tErrorOnNonRequiredField func(childComplexity int) int\n\t\tErrorOnRequiredField    func(childComplexity int) int\n\t\tID                      func(childComplexity int) int\n\t\tNilOnRequiredField      func(childComplexity int) int\n\t}\n\n\tErrors struct {\n\t\tA func(childComplexity int) int\n\t\tB func(childComplexity int) int\n\t\tC func(childComplexity int) int\n\t\tD func(childComplexity int) int\n\t\tE func(childComplexity int) int\n\t}\n\n\tFieldsOrderPayload struct {\n\t\tFirstFieldValue func(childComplexity int) int\n\t}\n\n\tForcedResolver struct {\n\t\tField func(childComplexity int) int\n\t}\n\n\tHorse struct {\n\t\tHorseBreed func(childComplexity int) int\n\t\tSize       func(childComplexity int) int\n\t\tSpecies    func(childComplexity int) int\n\t}\n\n\tInnerObject struct {\n\t\tID func(childComplexity int) int\n\t}\n\n\tInvalidIdentifier struct {\n\t\tID func(childComplexity int) int\n\t}\n\n\tIt struct {\n\t\tID func(childComplexity int) int\n\t}\n\n\tLoopA struct {\n\t\tB func(childComplexity int) int\n\t}\n\n\tLoopB struct {\n\t\tA func(childComplexity int) int\n\t}\n\n\tMap struct {\n\t\tID func(childComplexity int) int\n\t}\n\n\tMapNested struct {\n\t\tValue func(childComplexity int) int\n\t}\n\n\tMapStringInterfaceType struct {\n\t\tA      func(childComplexity int) int\n\t\tB      func(childComplexity int) int\n\t\tC      func(childComplexity int) int\n\t\tNested func(childComplexity int) int\n\t}\n\n\tModelMethods struct {\n\t\tNoContext     func(childComplexity int) int\n\t\tResolverField func(childComplexity int) int\n\t\tWithContext   func(childComplexity int) int\n\t}\n\n\tMutation struct {\n\t\tDefaultInput          func(childComplexity int, input DefaultInput) int\n\t\tIssue4053             func(childComplexity int, input *Issue4053Input1) int\n\t\tOverrideValueViaInput func(childComplexity int, input FieldsOrderInput) int\n\t\tUpdateProduct         func(childComplexity int, id string, name *string, price *float64) int\n\t\tUpdatePtrToPtr        func(childComplexity int, input UpdatePtrToPtrOuter) int\n\t\tUpdateSomething       func(childComplexity int, input SpecialInput) int\n\t}\n\n\tObjectDirectives struct {\n\t\tNullableText func(childComplexity int) int\n\t\tOrder        func(childComplexity int) int\n\t\tText         func(childComplexity int) int\n\t}\n\n\tObjectDirectivesWithCustomGoModel struct {\n\t\tNullableText func(childComplexity int) int\n\t}\n\n\tOuterObject struct {\n\t\tInner func(childComplexity int) int\n\t}\n\n\tOverlappingFields struct {\n\t\tFoo    func(childComplexity int) int\n\t\tNewFoo func(childComplexity int) int\n\t\tOldFoo func(childComplexity int) int\n\t}\n\n\tPanics struct {\n\t\tArgUnmarshal       func(childComplexity int, u []MarshalPanic) int\n\t\tFieldFuncMarshal   func(childComplexity int, u []MarshalPanic) int\n\t\tFieldScalarMarshal func(childComplexity int) int\n\t}\n\n\tPet struct {\n\t\tFriends func(childComplexity int, limit *int) int\n\t\tID      func(childComplexity int) int\n\t}\n\n\tPrimitive struct {\n\t\tSquared func(childComplexity int) int\n\t\tValue   func(childComplexity int) int\n\t}\n\n\tPrimitiveString struct {\n\t\tDoubled func(childComplexity int) int\n\t\tLen     func(childComplexity int) int\n\t\tValue   func(childComplexity int) int\n\t}\n\n\tPtrToAnyContainer struct {\n\t\tBinding  func(childComplexity int) int\n\t\tPtrToAny func(childComplexity int) int\n\t}\n\n\tPtrToPtrInner struct {\n\t\tKey   func(childComplexity int) int\n\t\tValue func(childComplexity int) int\n\t}\n\n\tPtrToPtrOuter struct {\n\t\tInner       func(childComplexity int) int\n\t\tName        func(childComplexity int) int\n\t\tStupidInner func(childComplexity int) int\n\t}\n\n\tPtrToSliceContainer struct {\n\t\tPtrToSlice func(childComplexity int) int\n\t}\n\n\tQuery struct {\n\t\tAnimal                           func(childComplexity int) int\n\t\tAutobind                         func(childComplexity int) int\n\t\tCollision                        func(childComplexity int) int\n\t\tDefaultParameters                func(childComplexity int, falsyBoolean *bool, truthyBoolean *bool) int\n\t\tDefaultScalar                    func(childComplexity int, arg string) int\n\t\tDeferMultiple                    func(childComplexity int) int\n\t\tDeferSingle                      func(childComplexity int) int\n\t\tDeprecatedField                  func(childComplexity int) int\n\t\tDirectiveArg                     func(childComplexity int, arg string) int\n\t\tDirectiveDouble                  func(childComplexity int) int\n\t\tDirectiveField                   func(childComplexity int) int\n\t\tDirectiveFieldDef                func(childComplexity int, ret string) int\n\t\tDirectiveInput                   func(childComplexity int, arg InputDirectives) int\n\t\tDirectiveInputNullable           func(childComplexity int, arg *InputDirectives) int\n\t\tDirectiveInputOuter              func(childComplexity int, arg OuterWrapperInput) int\n\t\tDirectiveInputType               func(childComplexity int, arg InnerInput) int\n\t\tDirectiveNullableArg             func(childComplexity int, arg *int, arg2 *int, arg3 *string) int\n\t\tDirectiveObject                  func(childComplexity int) int\n\t\tDirectiveObjectWithCustomGoModel func(childComplexity int) int\n\t\tDirectiveSingleNullableArg       func(childComplexity int, arg1 *string) int\n\t\tDirectiveUnimplemented           func(childComplexity int) int\n\t\tDog                              func(childComplexity int) int\n\t\tEmbeddedCase1                    func(childComplexity int) int\n\t\tEmbeddedCase2                    func(childComplexity int) int\n\t\tEmbeddedCase3                    func(childComplexity int) int\n\t\tEnumInInput                      func(childComplexity int, input *InputWithEnumValue) int\n\t\tErrorBubble                      func(childComplexity int) int\n\t\tErrorBubbleList                  func(childComplexity int) int\n\t\tErrorList                        func(childComplexity int) int\n\t\tErrors                           func(childComplexity int) int\n\t\tFallback                         func(childComplexity int, arg FallbackToStringEncoding) int\n\t\tFieldWithDeprecatedArg           func(childComplexity int, oldArg *int, newArg *int) int\n\t\tFilterProducts                   func(childComplexity int, query *string, category *string, minPrice *int) int\n\t\tFindProducts                     func(childComplexity int, query *string, category *string, minPrice *int) int\n\t\tInfinity                         func(childComplexity int) int\n\t\tInputNullableSlice               func(childComplexity int, arg []string) int\n\t\tInputOmittable                   func(childComplexity int, arg OmittableInput) int\n\t\tInputSlice                       func(childComplexity int, arg []string) int\n\t\tInvalid                          func(childComplexity int) int\n\t\tInvalidIdentifier                func(childComplexity int) int\n\t\tIssue896a                        func(childComplexity int) int\n\t\tMapInput                         func(childComplexity int, input map[string]any) int\n\t\tMapNestedMapSlice                func(childComplexity int, input map[string]any) int\n\t\tMapNestedStringInterface         func(childComplexity int, in *NestedMapInput) int\n\t\tMapStringInterface               func(childComplexity int, in map[string]any) int\n\t\tModelMethods                     func(childComplexity int) int\n\t\tNestedInputs                     func(childComplexity int, input [][]*OuterInput) int\n\t\tNestedOutputs                    func(childComplexity int) int\n\t\tNoShape                          func(childComplexity int) int\n\t\tNoShapeTypedNil                  func(childComplexity int) int\n\t\tNode                             func(childComplexity int) int\n\t\tNotAnInterface                   func(childComplexity int) int\n\t\tNullableArg                      func(childComplexity int, arg *int) int\n\t\tOptionalUnion                    func(childComplexity int) int\n\t\tOverlapping                      func(childComplexity int) int\n\t\tPanics                           func(childComplexity int) int\n\t\tPrimitiveObject                  func(childComplexity int) int\n\t\tPrimitiveStringObject            func(childComplexity int) int\n\t\tPtrToAnyContainer                func(childComplexity int) int\n\t\tPtrToSliceContainer              func(childComplexity int) int\n\t\tRecursive                        func(childComplexity int, input *RecursiveInputSlice) int\n\t\tScalarSlice                      func(childComplexity int) int\n\t\tSearchMixed                      func(childComplexity int, query *string, category *string, minPrice *int, limit *int, offset *int, sortBy *string) int\n\t\tSearchProducts                   func(childComplexity int, query *string, category *string, minPrice *int) int\n\t\tSearchProductsNormal             func(childComplexity int, filters map[string]any) int\n\t\tSearchRequired                   func(childComplexity int, name string, age int) int\n\t\tSearchWithDefaults               func(childComplexity int, query *string, limit *int, includeArchived *bool) int\n\t\tSearchWithDirectives             func(childComplexity int, oldField *string, newField *string) int\n\t\tShapeUnion                       func(childComplexity int) int\n\t\tShapes                           func(childComplexity int) int\n\t\tSkipInclude                      func(childComplexity int) int\n\t\tSlices                           func(childComplexity int) int\n\t\tStringFromContextFunction        func(childComplexity int) int\n\t\tStringFromContextInterface       func(childComplexity int) int\n\t\tUser                             func(childComplexity int, id int) int\n\t\tVOkCaseNil                       func(childComplexity int) int\n\t\tVOkCaseValue                     func(childComplexity int) int\n\t\tValid                            func(childComplexity int) int\n\t\tValidType                        func(childComplexity int) int\n\t\tVariadicModel                    func(childComplexity int) int\n\t\tWrappedMap                       func(childComplexity int) int\n\t\tWrappedScalar                    func(childComplexity int) int\n\t\tWrappedSlice                     func(childComplexity int) int\n\t\tWrappedStruct                    func(childComplexity int) int\n\t}\n\n\tRectangle struct {\n\t\tArea        func(childComplexity int) int\n\t\tCoordinates func(childComplexity int) int\n\t\tLength      func(childComplexity int) int\n\t\tWidth       func(childComplexity int) int\n\t}\n\n\tSize struct {\n\t\tHeight func(childComplexity int) int\n\t\tWeight func(childComplexity int) int\n\t}\n\n\tSkipIncludeTestType struct {\n\t\tA func(childComplexity int) int\n\t\tB func(childComplexity int) int\n\t}\n\n\tSlices struct {\n\t\tTest1 func(childComplexity int) int\n\t\tTest2 func(childComplexity int) int\n\t\tTest3 func(childComplexity int) int\n\t\tTest4 func(childComplexity int) int\n\t}\n\n\tSubscription struct {\n\t\tDirectiveArg           func(childComplexity int, arg string) int\n\t\tDirectiveDouble        func(childComplexity int) int\n\t\tDirectiveNullableArg   func(childComplexity int, arg *int, arg2 *int, arg3 *string) int\n\t\tDirectiveUnimplemented func(childComplexity int) int\n\t\tErrorRequired          func(childComplexity int) int\n\t\tInitPayload            func(childComplexity int) int\n\t\tIssue896b              func(childComplexity int) int\n\t\tUpdated                func(childComplexity int) int\n\t}\n\n\tUser struct {\n\t\tCreated func(childComplexity int) int\n\t\tFriends func(childComplexity int) int\n\t\tID      func(childComplexity int) int\n\t\tPets    func(childComplexity int, limit *int) int\n\t\tUpdated func(childComplexity int) int\n\t}\n\n\tVOkCaseNil struct {\n\t\tValue func(childComplexity int) int\n\t}\n\n\tVOkCaseValue struct {\n\t\tValue func(childComplexity int) int\n\t}\n\n\tValidType struct {\n\t\tDifferentCase      func(childComplexity int) int\n\t\tDifferentCaseOld   func(childComplexity int) int\n\t\tValidArgs          func(childComplexity int, breakArg string, defaultArg string, funcArg string, interfaceArg string, selectArg string, caseArg string, deferArg string, goArg string, mapArg string, structArg string, chanArg string, elseArg string, gotoArg string, packageArg string, switchArg string, constArg string, fallthroughArg string, ifArg string, rangeArg string, typeArg string, continueArg string, forArg string, importArg string, returnArg string, varArg string, _ string) int\n\t\tValidInputKeywords func(childComplexity int, input *ValidInput) int\n\t}\n\n\tVariadicModel struct {\n\t\tValue func(childComplexity int, rank int) int\n\t}\n\n\tWrappedMap struct {\n\t\tGet func(childComplexity int, key string) int\n\t}\n\n\tWrappedSlice struct {\n\t\tGet func(childComplexity int, idx int) int\n\t}\n\n\tWrappedStruct struct {\n\t\tDesc func(childComplexity int) int\n\t\tName func(childComplexity int) int\n\t}\n\n\tXXIt struct {\n\t\tID func(childComplexity int) int\n\t}\n\n\tXxIt struct {\n\t\tID func(childComplexity int) int\n\t}\n\n\tAsdfIt struct {\n\t\tID func(childComplexity int) int\n\t}\n\n\tIIt struct {\n\t\tID func(childComplexity int) int\n\t}\n}\n\ntype BackedByInterfaceResolver interface {\n\tID(ctx context.Context, obj BackedByInterface) (string, error)\n}\ntype DeferModelResolver interface {\n\tValues(ctx context.Context, obj *DeferModel) ([]string, error)\n}\ntype ErrorsResolver interface {\n\tA(ctx context.Context, obj *Errors) (*Error, error)\n\tB(ctx context.Context, obj *Errors) (*Error, error)\n\tC(ctx context.Context, obj *Errors) (*Error, error)\n\tD(ctx context.Context, obj *Errors) (*Error, error)\n\tE(ctx context.Context, obj *Errors) (*Error, error)\n}\ntype ForcedResolverResolver interface {\n\tField(ctx context.Context, obj *ForcedResolver) (*Circle, error)\n}\ntype ModelMethodsResolver interface {\n\tResolverField(ctx context.Context, obj *ModelMethods) (bool, error)\n}\ntype MutationResolver interface {\n\tDefaultInput(ctx context.Context, input DefaultInput) (*DefaultParametersMirror, error)\n\tOverrideValueViaInput(ctx context.Context, input FieldsOrderInput) (*FieldsOrderPayload, error)\n\tUpdateProduct(ctx context.Context, input map[string]interface{}) (string, error)\n\tIssue4053(ctx context.Context, input *Issue4053Input1) (bool, error)\n\tUpdateSomething(ctx context.Context, input SpecialInput) (string, error)\n\tUpdatePtrToPtr(ctx context.Context, input UpdatePtrToPtrOuter) (*PtrToPtrOuter, error)\n}\ntype OverlappingFieldsResolver interface {\n\tOldFoo(ctx context.Context, obj *OverlappingFields) (int, error)\n}\ntype PanicsResolver interface {\n\tFieldScalarMarshal(ctx context.Context, obj *Panics) ([]MarshalPanic, error)\n\n\tArgUnmarshal(ctx context.Context, obj *Panics, u []MarshalPanic) (bool, error)\n}\ntype PetResolver interface {\n\tFriends(ctx context.Context, obj *Pet, limit *int) ([]*Pet, error)\n}\ntype PrimitiveResolver interface {\n\tValue(ctx context.Context, obj *Primitive) (int, error)\n}\ntype PrimitiveStringResolver interface {\n\tValue(ctx context.Context, obj *PrimitiveString) (string, error)\n\n\tLen(ctx context.Context, obj *PrimitiveString) (int, error)\n}\ntype QueryResolver interface {\n\tInvalidIdentifier(ctx context.Context) (*invalid_packagename.InvalidIdentifier, error)\n\tCollision(ctx context.Context) (*introspection1.It, error)\n\tMapInput(ctx context.Context, input map[string]any) (*bool, error)\n\tRecursive(ctx context.Context, input *RecursiveInputSlice) (*bool, error)\n\tNestedInputs(ctx context.Context, input [][]*OuterInput) (*bool, error)\n\tNestedOutputs(ctx context.Context) ([][]*OuterObject, error)\n\tModelMethods(ctx context.Context) (*ModelMethods, error)\n\tUser(ctx context.Context, id int) (*User, error)\n\tNullableArg(ctx context.Context, arg *int) (*string, error)\n\tInputSlice(ctx context.Context, arg []string) (bool, error)\n\tInputNullableSlice(ctx context.Context, arg []string) (bool, error)\n\tInputOmittable(ctx context.Context, arg OmittableInput) (string, error)\n\tShapeUnion(ctx context.Context) (ShapeUnion, error)\n\tAutobind(ctx context.Context) (*Autobind, error)\n\tDeprecatedField(ctx context.Context) (string, error)\n\tFieldWithDeprecatedArg(ctx context.Context, oldArg *int, newArg *int) (*string, error)\n\tOverlapping(ctx context.Context) (*OverlappingFields, error)\n\tDefaultParameters(ctx context.Context, falsyBoolean *bool, truthyBoolean *bool) (*DefaultParametersMirror, error)\n\tDeferSingle(ctx context.Context) (*DeferModel, error)\n\tDeferMultiple(ctx context.Context) ([]*DeferModel, error)\n\tDirectiveArg(ctx context.Context, arg string) (*string, error)\n\tDirectiveNullableArg(ctx context.Context, arg *int, arg2 *int, arg3 *string) (*string, error)\n\tDirectiveSingleNullableArg(ctx context.Context, arg1 *string) (*string, error)\n\tDirectiveInputNullable(ctx context.Context, arg *InputDirectives) (*string, error)\n\tDirectiveInput(ctx context.Context, arg InputDirectives) (*string, error)\n\tDirectiveInputType(ctx context.Context, arg InnerInput) (*string, error)\n\tDirectiveInputOuter(ctx context.Context, arg OuterWrapperInput) (*string, error)\n\tDirectiveObject(ctx context.Context) (*ObjectDirectives, error)\n\tDirectiveObjectWithCustomGoModel(ctx context.Context) (*ObjectDirectivesWithCustomGoModel, error)\n\tDirectiveFieldDef(ctx context.Context, ret string) (string, error)\n\tDirectiveField(ctx context.Context) (*string, error)\n\tDirectiveDouble(ctx context.Context) (*string, error)\n\tDirectiveUnimplemented(ctx context.Context) (*string, error)\n\tEmbeddedCase1(ctx context.Context) (*EmbeddedCase1, error)\n\tEmbeddedCase2(ctx context.Context) (*EmbeddedCase2, error)\n\tEmbeddedCase3(ctx context.Context) (*EmbeddedCase3, error)\n\tEnumInInput(ctx context.Context, input *InputWithEnumValue) (EnumTest, error)\n\tSearchProducts(ctx context.Context, filters map[string]interface{}) ([]string, error)\n\tSearchRequired(ctx context.Context, filters map[string]interface{}) ([]string, error)\n\tSearchProductsNormal(ctx context.Context, filters map[string]any) ([]string, error)\n\tSearchWithDefaults(ctx context.Context, filters map[string]interface{}) ([]string, error)\n\tSearchMixed(ctx context.Context, filters map[string]interface{}, limit *int, offset *int, sortBy *string) ([]string, error)\n\tFilterProducts(ctx context.Context, filters map[string]interface{}) ([]string, error)\n\tFindProducts(ctx context.Context, filters map[string]interface{}) ([]string, error)\n\tSearchWithDirectives(ctx context.Context, input map[string]interface{}) ([]string, error)\n\tShapes(ctx context.Context) ([]Shape, error)\n\tNoShape(ctx context.Context) (Shape, error)\n\tNode(ctx context.Context) (Node, error)\n\tNoShapeTypedNil(ctx context.Context) (Shape, error)\n\tAnimal(ctx context.Context) (Animal, error)\n\tNotAnInterface(ctx context.Context) (BackedByInterface, error)\n\tDog(ctx context.Context) (*Dog, error)\n\tIssue896a(ctx context.Context) ([]*CheckIssue896, error)\n\tMapStringInterface(ctx context.Context, in map[string]any) (map[string]any, error)\n\tMapNestedStringInterface(ctx context.Context, in *NestedMapInput) (map[string]any, error)\n\tMapNestedMapSlice(ctx context.Context, input map[string]any) (*bool, error)\n\tErrorBubble(ctx context.Context) (*Error, error)\n\tErrorBubbleList(ctx context.Context) ([]*Error, error)\n\tErrorList(ctx context.Context) ([]*Error, error)\n\tErrors(ctx context.Context) (*Errors, error)\n\tValid(ctx context.Context) (string, error)\n\tInvalid(ctx context.Context) (string, error)\n\tPanics(ctx context.Context) (*Panics, error)\n\tPrimitiveObject(ctx context.Context) ([]Primitive, error)\n\tPrimitiveStringObject(ctx context.Context) ([]PrimitiveString, error)\n\tPtrToAnyContainer(ctx context.Context) (*PtrToAnyContainer, error)\n\tPtrToSliceContainer(ctx context.Context) (*PtrToSliceContainer, error)\n\tInfinity(ctx context.Context) (float64, error)\n\tStringFromContextInterface(ctx context.Context) (*StringFromContextInterface, error)\n\tStringFromContextFunction(ctx context.Context) (string, error)\n\tDefaultScalar(ctx context.Context, arg string) (string, error)\n\tSkipInclude(ctx context.Context) (*SkipIncludeTestType, error)\n\tSlices(ctx context.Context) (*Slices, error)\n\tScalarSlice(ctx context.Context) ([]byte, error)\n\tFallback(ctx context.Context, arg FallbackToStringEncoding) (FallbackToStringEncoding, error)\n\tOptionalUnion(ctx context.Context) (TestUnion, error)\n\tVOkCaseValue(ctx context.Context) (*VOkCaseValue, error)\n\tVOkCaseNil(ctx context.Context) (*VOkCaseNil, error)\n\tValidType(ctx context.Context) (*ValidType, error)\n\tVariadicModel(ctx context.Context) (*VariadicModel, error)\n\tWrappedStruct(ctx context.Context) (*WrappedStruct, error)\n\tWrappedScalar(ctx context.Context) (otherpkg.Scalar, error)\n\tWrappedMap(ctx context.Context) (WrappedMap, error)\n\tWrappedSlice(ctx context.Context) (WrappedSlice, error)\n}\ntype SubscriptionResolver interface {\n\tUpdated(ctx context.Context) (<-chan string, error)\n\tInitPayload(ctx context.Context) (<-chan string, error)\n\tDirectiveArg(ctx context.Context, arg string) (<-chan *string, error)\n\tDirectiveNullableArg(ctx context.Context, arg *int, arg2 *int, arg3 *string) (<-chan *string, error)\n\tDirectiveDouble(ctx context.Context) (<-chan *string, error)\n\tDirectiveUnimplemented(ctx context.Context) (<-chan *string, error)\n\tIssue896b(ctx context.Context) (<-chan []*CheckIssue896, error)\n\tErrorRequired(ctx context.Context) (<-chan *Error, error)\n}\ntype UserResolver interface {\n\tFriends(ctx context.Context, obj *User) ([]*User, error)\n\n\tPets(ctx context.Context, obj *User, limit *int) ([]*Pet, error)\n}\ntype WrappedMapResolver interface {\n\tGet(ctx context.Context, obj WrappedMap, key string) (string, error)\n}\ntype WrappedSliceResolver interface {\n\tGet(ctx context.Context, obj WrappedSlice, idx int) (string, error)\n}\n\ntype FieldsOrderInputResolver interface {\n\tOverrideFirstField(ctx context.Context, obj *FieldsOrderInput, data *string) error\n}\n\ntype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.SchemaData != nil {\n\t\treturn e.SchemaData\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := newExecutionContext(nil, e, nil)\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"A.id\":\n\t\tif e.ComplexityRoot.A.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.A.ID(childComplexity), true\n\n\tcase \"AIt.id\":\n\t\tif e.ComplexityRoot.AIt.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.AIt.ID(childComplexity), true\n\n\tcase \"AbIt.id\":\n\t\tif e.ComplexityRoot.AbIt.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.AbIt.ID(childComplexity), true\n\n\tcase \"Autobind.idInt\":\n\t\tif e.ComplexityRoot.Autobind.IdInt == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Autobind.IdInt(childComplexity), true\n\tcase \"Autobind.idStr\":\n\t\tif e.ComplexityRoot.Autobind.IdStr == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Autobind.IdStr(childComplexity), true\n\tcase \"Autobind.int\":\n\t\tif e.ComplexityRoot.Autobind.Int == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Autobind.Int(childComplexity), true\n\tcase \"Autobind.int32\":\n\t\tif e.ComplexityRoot.Autobind.Int32 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Autobind.Int32(childComplexity), true\n\tcase \"Autobind.int64\":\n\t\tif e.ComplexityRoot.Autobind.Int64 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Autobind.Int64(childComplexity), true\n\n\tcase \"B.id\":\n\t\tif e.ComplexityRoot.B.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.B.ID(childComplexity), true\n\n\tcase \"BackedByInterface.id\":\n\t\tif e.ComplexityRoot.BackedByInterface.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.BackedByInterface.ID(childComplexity), true\n\tcase \"BackedByInterface.thisShouldBind\":\n\t\tif e.ComplexityRoot.BackedByInterface.ThisShouldBind == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.BackedByInterface.ThisShouldBind(childComplexity), true\n\tcase \"BackedByInterface.thisShouldBindWithError\":\n\t\tif e.ComplexityRoot.BackedByInterface.ThisShouldBindWithError == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.BackedByInterface.ThisShouldBindWithError(childComplexity), true\n\n\tcase \"Cat.catBreed\":\n\t\tif e.ComplexityRoot.Cat.CatBreed == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Cat.CatBreed(childComplexity), true\n\tcase \"Cat.size\":\n\t\tif e.ComplexityRoot.Cat.Size == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Cat.Size(childComplexity), true\n\tcase \"Cat.species\":\n\t\tif e.ComplexityRoot.Cat.Species == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Cat.Species(childComplexity), true\n\n\tcase \"CheckIssue896.id\":\n\t\tif e.ComplexityRoot.CheckIssue896.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.CheckIssue896.ID(childComplexity), true\n\n\tcase \"Circle.area\":\n\t\tif e.ComplexityRoot.Circle.Area == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Circle.Area(childComplexity), true\n\tcase \"Circle.coordinates\":\n\t\tif e.ComplexityRoot.Circle.Coordinates == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Circle.Coordinates(childComplexity), true\n\tcase \"Circle.radius\":\n\t\tif e.ComplexityRoot.Circle.Radius == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Circle.Radius(childComplexity), true\n\n\tcase \"ConcreteNodeA.child\":\n\t\tif e.ComplexityRoot.ConcreteNodeA.Child == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.ConcreteNodeA.Child(childComplexity), true\n\tcase \"ConcreteNodeA.id\":\n\t\tif e.ComplexityRoot.ConcreteNodeA.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.ConcreteNodeA.ID(childComplexity), true\n\tcase \"ConcreteNodeA.name\":\n\t\tif e.ComplexityRoot.ConcreteNodeA.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.ConcreteNodeA.Name(childComplexity), true\n\n\tcase \"ConcreteNodeInterface.child\":\n\t\tif e.ComplexityRoot.ConcreteNodeInterface.Child == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.ConcreteNodeInterface.Child(childComplexity), true\n\tcase \"ConcreteNodeInterface.id\":\n\t\tif e.ComplexityRoot.ConcreteNodeInterface.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.ConcreteNodeInterface.ID(childComplexity), true\n\n\tcase \"Content_Post.foo\":\n\t\tif e.ComplexityRoot.Content_Post.Foo == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Content_Post.Foo(childComplexity), true\n\n\tcase \"Content_User.foo\":\n\t\tif e.ComplexityRoot.Content_User.Foo == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Content_User.Foo(childComplexity), true\n\n\tcase \"Coordinates.x\":\n\t\tif e.ComplexityRoot.Coordinates.X == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Coordinates.X(childComplexity), true\n\tcase \"Coordinates.y\":\n\t\tif e.ComplexityRoot.Coordinates.Y == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Coordinates.Y(childComplexity), true\n\n\tcase \"DefaultParametersMirror.falsyBoolean\":\n\t\tif e.ComplexityRoot.DefaultParametersMirror.FalsyBoolean == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.DefaultParametersMirror.FalsyBoolean(childComplexity), true\n\tcase \"DefaultParametersMirror.truthyBoolean\":\n\t\tif e.ComplexityRoot.DefaultParametersMirror.TruthyBoolean == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.DefaultParametersMirror.TruthyBoolean(childComplexity), true\n\n\tcase \"DeferModel.id\":\n\t\tif e.ComplexityRoot.DeferModel.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.DeferModel.ID(childComplexity), true\n\tcase \"DeferModel.name\":\n\t\tif e.ComplexityRoot.DeferModel.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.DeferModel.Name(childComplexity), true\n\tcase \"DeferModel.values\":\n\t\tif e.ComplexityRoot.DeferModel.Values == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.DeferModel.Values(childComplexity), true\n\n\tcase \"Dog.dogBreed\":\n\t\tif e.ComplexityRoot.Dog.DogBreed == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Dog.DogBreed(childComplexity), true\n\tcase \"Dog.size\":\n\t\tif e.ComplexityRoot.Dog.Size == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Dog.Size(childComplexity), true\n\tcase \"Dog.species\":\n\t\tif e.ComplexityRoot.Dog.Species == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Dog.Species(childComplexity), true\n\n\tcase \"EmbeddedCase1.exportedEmbeddedPointerExportedMethod\":\n\t\tif e.ComplexityRoot.EmbeddedCase1.ExportedEmbeddedPointerExportedMethod == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.EmbeddedCase1.ExportedEmbeddedPointerExportedMethod(childComplexity), true\n\n\tcase \"EmbeddedCase2.unexportedEmbeddedPointerExportedMethod\":\n\t\tif e.ComplexityRoot.EmbeddedCase2.UnexportedEmbeddedPointerExportedMethod == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.EmbeddedCase2.UnexportedEmbeddedPointerExportedMethod(childComplexity), true\n\n\tcase \"EmbeddedCase3.unexportedEmbeddedInterfaceExportedMethod\":\n\t\tif e.ComplexityRoot.EmbeddedCase3.UnexportedEmbeddedInterfaceExportedMethod == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.EmbeddedCase3.UnexportedEmbeddedInterfaceExportedMethod(childComplexity), true\n\n\tcase \"EmbeddedDefaultScalar.value\":\n\t\tif e.ComplexityRoot.EmbeddedDefaultScalar.Value == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.EmbeddedDefaultScalar.Value(childComplexity), true\n\n\tcase \"EmbeddedPointer.ID\":\n\t\tif e.ComplexityRoot.EmbeddedPointer.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.EmbeddedPointer.ID(childComplexity), true\n\tcase \"EmbeddedPointer.Title\":\n\t\tif e.ComplexityRoot.EmbeddedPointer.Title == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.EmbeddedPointer.Title(childComplexity), true\n\n\tcase \"Error.errorOnNonRequiredField\":\n\t\tif e.ComplexityRoot.Error.ErrorOnNonRequiredField == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Error.ErrorOnNonRequiredField(childComplexity), true\n\tcase \"Error.errorOnRequiredField\":\n\t\tif e.ComplexityRoot.Error.ErrorOnRequiredField == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Error.ErrorOnRequiredField(childComplexity), true\n\tcase \"Error.id\":\n\t\tif e.ComplexityRoot.Error.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Error.ID(childComplexity), true\n\tcase \"Error.nilOnRequiredField\":\n\t\tif e.ComplexityRoot.Error.NilOnRequiredField == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Error.NilOnRequiredField(childComplexity), true\n\n\tcase \"Errors.a\":\n\t\tif e.ComplexityRoot.Errors.A == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Errors.A(childComplexity), true\n\tcase \"Errors.b\":\n\t\tif e.ComplexityRoot.Errors.B == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Errors.B(childComplexity), true\n\tcase \"Errors.c\":\n\t\tif e.ComplexityRoot.Errors.C == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Errors.C(childComplexity), true\n\tcase \"Errors.d\":\n\t\tif e.ComplexityRoot.Errors.D == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Errors.D(childComplexity), true\n\tcase \"Errors.e\":\n\t\tif e.ComplexityRoot.Errors.E == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Errors.E(childComplexity), true\n\n\tcase \"FieldsOrderPayload.firstFieldValue\":\n\t\tif e.ComplexityRoot.FieldsOrderPayload.FirstFieldValue == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.FieldsOrderPayload.FirstFieldValue(childComplexity), true\n\n\tcase \"ForcedResolver.field\":\n\t\tif e.ComplexityRoot.ForcedResolver.Field == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.ForcedResolver.Field(childComplexity), true\n\n\tcase \"Horse.horseBreed\":\n\t\tif e.ComplexityRoot.Horse.HorseBreed == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Horse.HorseBreed(childComplexity), true\n\tcase \"Horse.size\":\n\t\tif e.ComplexityRoot.Horse.Size == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Horse.Size(childComplexity), true\n\tcase \"Horse.species\":\n\t\tif e.ComplexityRoot.Horse.Species == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Horse.Species(childComplexity), true\n\n\tcase \"InnerObject.id\":\n\t\tif e.ComplexityRoot.InnerObject.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.InnerObject.ID(childComplexity), true\n\n\tcase \"InvalidIdentifier.id\":\n\t\tif e.ComplexityRoot.InvalidIdentifier.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.InvalidIdentifier.ID(childComplexity), true\n\n\tcase \"It.id\":\n\t\tif e.ComplexityRoot.It.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.It.ID(childComplexity), true\n\n\tcase \"LoopA.b\":\n\t\tif e.ComplexityRoot.LoopA.B == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.LoopA.B(childComplexity), true\n\n\tcase \"LoopB.a\":\n\t\tif e.ComplexityRoot.LoopB.A == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.LoopB.A(childComplexity), true\n\n\tcase \"Map.id\":\n\t\tif e.ComplexityRoot.Map.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Map.ID(childComplexity), true\n\n\tcase \"MapNested.value\":\n\t\tif e.ComplexityRoot.MapNested.Value == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MapNested.Value(childComplexity), true\n\n\tcase \"MapStringInterfaceType.a\":\n\t\tif e.ComplexityRoot.MapStringInterfaceType.A == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MapStringInterfaceType.A(childComplexity), true\n\tcase \"MapStringInterfaceType.b\":\n\t\tif e.ComplexityRoot.MapStringInterfaceType.B == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MapStringInterfaceType.B(childComplexity), true\n\tcase \"MapStringInterfaceType.c\":\n\t\tif e.ComplexityRoot.MapStringInterfaceType.C == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MapStringInterfaceType.C(childComplexity), true\n\tcase \"MapStringInterfaceType.nested\":\n\t\tif e.ComplexityRoot.MapStringInterfaceType.Nested == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MapStringInterfaceType.Nested(childComplexity), true\n\n\tcase \"ModelMethods.noContext\":\n\t\tif e.ComplexityRoot.ModelMethods.NoContext == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.ModelMethods.NoContext(childComplexity), true\n\tcase \"ModelMethods.resolverField\":\n\t\tif e.ComplexityRoot.ModelMethods.ResolverField == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.ModelMethods.ResolverField(childComplexity), true\n\tcase \"ModelMethods.withContext\":\n\t\tif e.ComplexityRoot.ModelMethods.WithContext == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.ModelMethods.WithContext(childComplexity), true\n\n\tcase \"Mutation.defaultInput\":\n\t\tif e.ComplexityRoot.Mutation.DefaultInput == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Mutation_defaultInput_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Mutation.DefaultInput(childComplexity, args[\"input\"].(DefaultInput)), true\n\tcase \"Mutation.issue4053\":\n\t\tif e.ComplexityRoot.Mutation.Issue4053 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Mutation_issue4053_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Mutation.Issue4053(childComplexity, args[\"input\"].(*Issue4053Input1)), true\n\tcase \"Mutation.overrideValueViaInput\":\n\t\tif e.ComplexityRoot.Mutation.OverrideValueViaInput == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Mutation_overrideValueViaInput_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Mutation.OverrideValueViaInput(childComplexity, args[\"input\"].(FieldsOrderInput)), true\n\tcase \"Mutation.updateProduct\":\n\t\tif e.ComplexityRoot.Mutation.UpdateProduct == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Mutation_updateProduct_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Mutation.UpdateProduct(childComplexity, args[\"id\"].(string), args[\"name\"].(*string), args[\"price\"].(*float64)), true\n\tcase \"Mutation.updatePtrToPtr\":\n\t\tif e.ComplexityRoot.Mutation.UpdatePtrToPtr == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Mutation_updatePtrToPtr_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Mutation.UpdatePtrToPtr(childComplexity, args[\"input\"].(UpdatePtrToPtrOuter)), true\n\tcase \"Mutation.updateSomething\":\n\t\tif e.ComplexityRoot.Mutation.UpdateSomething == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Mutation_updateSomething_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Mutation.UpdateSomething(childComplexity, args[\"input\"].(SpecialInput)), true\n\n\tcase \"ObjectDirectives.nullableText\":\n\t\tif e.ComplexityRoot.ObjectDirectives.NullableText == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.ObjectDirectives.NullableText(childComplexity), true\n\tcase \"ObjectDirectives.order\":\n\t\tif e.ComplexityRoot.ObjectDirectives.Order == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.ObjectDirectives.Order(childComplexity), true\n\tcase \"ObjectDirectives.text\":\n\t\tif e.ComplexityRoot.ObjectDirectives.Text == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.ObjectDirectives.Text(childComplexity), true\n\n\tcase \"ObjectDirectivesWithCustomGoModel.nullableText\":\n\t\tif e.ComplexityRoot.ObjectDirectivesWithCustomGoModel.NullableText == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.ObjectDirectivesWithCustomGoModel.NullableText(childComplexity), true\n\n\tcase \"OuterObject.inner\":\n\t\tif e.ComplexityRoot.OuterObject.Inner == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.OuterObject.Inner(childComplexity), true\n\n\tcase \"OverlappingFields.oneFoo\", \"OverlappingFields.twoFoo\":\n\t\tif e.ComplexityRoot.OverlappingFields.Foo == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.OverlappingFields.Foo(childComplexity), true\n\tcase \"OverlappingFields.newFoo\", \"OverlappingFields.new_foo\":\n\t\tif e.ComplexityRoot.OverlappingFields.NewFoo == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.OverlappingFields.NewFoo(childComplexity), true\n\tcase \"OverlappingFields.oldFoo\":\n\t\tif e.ComplexityRoot.OverlappingFields.OldFoo == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.OverlappingFields.OldFoo(childComplexity), true\n\n\tcase \"Panics.argUnmarshal\":\n\t\tif e.ComplexityRoot.Panics.ArgUnmarshal == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Panics_argUnmarshal_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Panics.ArgUnmarshal(childComplexity, args[\"u\"].([]MarshalPanic)), true\n\tcase \"Panics.fieldFuncMarshal\":\n\t\tif e.ComplexityRoot.Panics.FieldFuncMarshal == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Panics_fieldFuncMarshal_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Panics.FieldFuncMarshal(childComplexity, args[\"u\"].([]MarshalPanic)), true\n\tcase \"Panics.fieldScalarMarshal\":\n\t\tif e.ComplexityRoot.Panics.FieldScalarMarshal == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Panics.FieldScalarMarshal(childComplexity), true\n\n\tcase \"Pet.friends\":\n\t\tif e.ComplexityRoot.Pet.Friends == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Pet_friends_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Pet.Friends(childComplexity, args[\"limit\"].(*int)), true\n\tcase \"Pet.id\":\n\t\tif e.ComplexityRoot.Pet.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Pet.ID(childComplexity), true\n\n\tcase \"Primitive.squared\":\n\t\tif e.ComplexityRoot.Primitive.Squared == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Primitive.Squared(childComplexity), true\n\tcase \"Primitive.value\":\n\t\tif e.ComplexityRoot.Primitive.Value == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Primitive.Value(childComplexity), true\n\n\tcase \"PrimitiveString.doubled\":\n\t\tif e.ComplexityRoot.PrimitiveString.Doubled == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PrimitiveString.Doubled(childComplexity), true\n\tcase \"PrimitiveString.len\":\n\t\tif e.ComplexityRoot.PrimitiveString.Len == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PrimitiveString.Len(childComplexity), true\n\tcase \"PrimitiveString.value\":\n\t\tif e.ComplexityRoot.PrimitiveString.Value == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PrimitiveString.Value(childComplexity), true\n\n\tcase \"PtrToAnyContainer.binding\":\n\t\tif e.ComplexityRoot.PtrToAnyContainer.Binding == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PtrToAnyContainer.Binding(childComplexity), true\n\tcase \"PtrToAnyContainer.ptrToAny\":\n\t\tif e.ComplexityRoot.PtrToAnyContainer.PtrToAny == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PtrToAnyContainer.PtrToAny(childComplexity), true\n\n\tcase \"PtrToPtrInner.key\":\n\t\tif e.ComplexityRoot.PtrToPtrInner.Key == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PtrToPtrInner.Key(childComplexity), true\n\tcase \"PtrToPtrInner.value\":\n\t\tif e.ComplexityRoot.PtrToPtrInner.Value == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PtrToPtrInner.Value(childComplexity), true\n\n\tcase \"PtrToPtrOuter.inner\":\n\t\tif e.ComplexityRoot.PtrToPtrOuter.Inner == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PtrToPtrOuter.Inner(childComplexity), true\n\tcase \"PtrToPtrOuter.name\":\n\t\tif e.ComplexityRoot.PtrToPtrOuter.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PtrToPtrOuter.Name(childComplexity), true\n\tcase \"PtrToPtrOuter.stupidInner\":\n\t\tif e.ComplexityRoot.PtrToPtrOuter.StupidInner == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PtrToPtrOuter.StupidInner(childComplexity), true\n\n\tcase \"PtrToSliceContainer.ptrToSlice\":\n\t\tif e.ComplexityRoot.PtrToSliceContainer.PtrToSlice == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PtrToSliceContainer.PtrToSlice(childComplexity), true\n\n\tcase \"Query.animal\":\n\t\tif e.ComplexityRoot.Query.Animal == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Animal(childComplexity), true\n\tcase \"Query.autobind\":\n\t\tif e.ComplexityRoot.Query.Autobind == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Autobind(childComplexity), true\n\tcase \"Query.collision\":\n\t\tif e.ComplexityRoot.Query.Collision == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Collision(childComplexity), true\n\tcase \"Query.defaultParameters\":\n\t\tif e.ComplexityRoot.Query.DefaultParameters == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_defaultParameters_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DefaultParameters(childComplexity, args[\"falsyBoolean\"].(*bool), args[\"truthyBoolean\"].(*bool)), true\n\tcase \"Query.defaultScalar\":\n\t\tif e.ComplexityRoot.Query.DefaultScalar == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_defaultScalar_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DefaultScalar(childComplexity, args[\"arg\"].(string)), true\n\tcase \"Query.deferMultiple\":\n\t\tif e.ComplexityRoot.Query.DeferMultiple == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DeferMultiple(childComplexity), true\n\tcase \"Query.deferSingle\":\n\t\tif e.ComplexityRoot.Query.DeferSingle == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DeferSingle(childComplexity), true\n\tcase \"Query.deprecatedField\":\n\t\tif e.ComplexityRoot.Query.DeprecatedField == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DeprecatedField(childComplexity), true\n\tcase \"Query.directiveArg\":\n\t\tif e.ComplexityRoot.Query.DirectiveArg == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_directiveArg_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DirectiveArg(childComplexity, args[\"arg\"].(string)), true\n\tcase \"Query.directiveDouble\":\n\t\tif e.ComplexityRoot.Query.DirectiveDouble == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DirectiveDouble(childComplexity), true\n\tcase \"Query.directiveField\":\n\t\tif e.ComplexityRoot.Query.DirectiveField == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DirectiveField(childComplexity), true\n\tcase \"Query.directiveFieldDef\":\n\t\tif e.ComplexityRoot.Query.DirectiveFieldDef == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_directiveFieldDef_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DirectiveFieldDef(childComplexity, args[\"ret\"].(string)), true\n\tcase \"Query.directiveInput\":\n\t\tif e.ComplexityRoot.Query.DirectiveInput == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_directiveInput_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DirectiveInput(childComplexity, args[\"arg\"].(InputDirectives)), true\n\tcase \"Query.directiveInputNullable\":\n\t\tif e.ComplexityRoot.Query.DirectiveInputNullable == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_directiveInputNullable_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DirectiveInputNullable(childComplexity, args[\"arg\"].(*InputDirectives)), true\n\tcase \"Query.directiveInputOuter\":\n\t\tif e.ComplexityRoot.Query.DirectiveInputOuter == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_directiveInputOuter_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DirectiveInputOuter(childComplexity, args[\"arg\"].(OuterWrapperInput)), true\n\tcase \"Query.directiveInputType\":\n\t\tif e.ComplexityRoot.Query.DirectiveInputType == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_directiveInputType_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DirectiveInputType(childComplexity, args[\"arg\"].(InnerInput)), true\n\tcase \"Query.directiveNullableArg\":\n\t\tif e.ComplexityRoot.Query.DirectiveNullableArg == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_directiveNullableArg_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DirectiveNullableArg(childComplexity, args[\"arg\"].(*int), args[\"arg2\"].(*int), args[\"arg3\"].(*string)), true\n\tcase \"Query.directiveObject\":\n\t\tif e.ComplexityRoot.Query.DirectiveObject == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DirectiveObject(childComplexity), true\n\tcase \"Query.directiveObjectWithCustomGoModel\":\n\t\tif e.ComplexityRoot.Query.DirectiveObjectWithCustomGoModel == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DirectiveObjectWithCustomGoModel(childComplexity), true\n\tcase \"Query.directiveSingleNullableArg\":\n\t\tif e.ComplexityRoot.Query.DirectiveSingleNullableArg == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_directiveSingleNullableArg_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DirectiveSingleNullableArg(childComplexity, args[\"arg1\"].(*string)), true\n\tcase \"Query.directiveUnimplemented\":\n\t\tif e.ComplexityRoot.Query.DirectiveUnimplemented == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.DirectiveUnimplemented(childComplexity), true\n\tcase \"Query.dog\":\n\t\tif e.ComplexityRoot.Query.Dog == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Dog(childComplexity), true\n\tcase \"Query.embeddedCase1\":\n\t\tif e.ComplexityRoot.Query.EmbeddedCase1 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.EmbeddedCase1(childComplexity), true\n\tcase \"Query.embeddedCase2\":\n\t\tif e.ComplexityRoot.Query.EmbeddedCase2 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.EmbeddedCase2(childComplexity), true\n\tcase \"Query.embeddedCase3\":\n\t\tif e.ComplexityRoot.Query.EmbeddedCase3 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.EmbeddedCase3(childComplexity), true\n\tcase \"Query.enumInInput\":\n\t\tif e.ComplexityRoot.Query.EnumInInput == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_enumInInput_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.EnumInInput(childComplexity, args[\"input\"].(*InputWithEnumValue)), true\n\tcase \"Query.errorBubble\":\n\t\tif e.ComplexityRoot.Query.ErrorBubble == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.ErrorBubble(childComplexity), true\n\tcase \"Query.errorBubbleList\":\n\t\tif e.ComplexityRoot.Query.ErrorBubbleList == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.ErrorBubbleList(childComplexity), true\n\tcase \"Query.errorList\":\n\t\tif e.ComplexityRoot.Query.ErrorList == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.ErrorList(childComplexity), true\n\tcase \"Query.errors\":\n\t\tif e.ComplexityRoot.Query.Errors == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Errors(childComplexity), true\n\tcase \"Query.fallback\":\n\t\tif e.ComplexityRoot.Query.Fallback == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_fallback_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Fallback(childComplexity, args[\"arg\"].(FallbackToStringEncoding)), true\n\tcase \"Query.fieldWithDeprecatedArg\":\n\t\tif e.ComplexityRoot.Query.FieldWithDeprecatedArg == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_fieldWithDeprecatedArg_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.FieldWithDeprecatedArg(childComplexity, args[\"oldArg\"].(*int), args[\"newArg\"].(*int)), true\n\tcase \"Query.filterProducts\":\n\t\tif e.ComplexityRoot.Query.FilterProducts == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_filterProducts_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.FilterProducts(childComplexity, args[\"query\"].(*string), args[\"category\"].(*string), args[\"minPrice\"].(*int)), true\n\tcase \"Query.findProducts\":\n\t\tif e.ComplexityRoot.Query.FindProducts == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_findProducts_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.FindProducts(childComplexity, args[\"query\"].(*string), args[\"category\"].(*string), args[\"minPrice\"].(*int)), true\n\tcase \"Query.infinity\":\n\t\tif e.ComplexityRoot.Query.Infinity == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Infinity(childComplexity), true\n\tcase \"Query.inputNullableSlice\":\n\t\tif e.ComplexityRoot.Query.InputNullableSlice == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_inputNullableSlice_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.InputNullableSlice(childComplexity, args[\"arg\"].([]string)), true\n\tcase \"Query.inputOmittable\":\n\t\tif e.ComplexityRoot.Query.InputOmittable == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_inputOmittable_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.InputOmittable(childComplexity, args[\"arg\"].(OmittableInput)), true\n\tcase \"Query.inputSlice\":\n\t\tif e.ComplexityRoot.Query.InputSlice == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_inputSlice_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.InputSlice(childComplexity, args[\"arg\"].([]string)), true\n\n\tcase \"Query.invalid\":\n\t\tif e.ComplexityRoot.Query.Invalid == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Invalid(childComplexity), true\n\tcase \"Query.invalidIdentifier\":\n\t\tif e.ComplexityRoot.Query.InvalidIdentifier == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.InvalidIdentifier(childComplexity), true\n\tcase \"Query.issue896a\":\n\t\tif e.ComplexityRoot.Query.Issue896a == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Issue896a(childComplexity), true\n\tcase \"Query.mapInput\":\n\t\tif e.ComplexityRoot.Query.MapInput == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_mapInput_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.MapInput(childComplexity, args[\"input\"].(map[string]any)), true\n\tcase \"Query.mapNestedMapSlice\":\n\t\tif e.ComplexityRoot.Query.MapNestedMapSlice == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_mapNestedMapSlice_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.MapNestedMapSlice(childComplexity, args[\"input\"].(map[string]any)), true\n\tcase \"Query.mapNestedStringInterface\":\n\t\tif e.ComplexityRoot.Query.MapNestedStringInterface == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_mapNestedStringInterface_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.MapNestedStringInterface(childComplexity, args[\"in\"].(*NestedMapInput)), true\n\tcase \"Query.mapStringInterface\":\n\t\tif e.ComplexityRoot.Query.MapStringInterface == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_mapStringInterface_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.MapStringInterface(childComplexity, args[\"in\"].(map[string]any)), true\n\tcase \"Query.modelMethods\":\n\t\tif e.ComplexityRoot.Query.ModelMethods == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.ModelMethods(childComplexity), true\n\tcase \"Query.nestedInputs\":\n\t\tif e.ComplexityRoot.Query.NestedInputs == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_nestedInputs_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.NestedInputs(childComplexity, args[\"input\"].([][]*OuterInput)), true\n\tcase \"Query.nestedOutputs\":\n\t\tif e.ComplexityRoot.Query.NestedOutputs == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.NestedOutputs(childComplexity), true\n\tcase \"Query.noShape\":\n\t\tif e.ComplexityRoot.Query.NoShape == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.NoShape(childComplexity), true\n\tcase \"Query.noShapeTypedNil\":\n\t\tif e.ComplexityRoot.Query.NoShapeTypedNil == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.NoShapeTypedNil(childComplexity), true\n\tcase \"Query.node\":\n\t\tif e.ComplexityRoot.Query.Node == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Node(childComplexity), true\n\tcase \"Query.notAnInterface\":\n\t\tif e.ComplexityRoot.Query.NotAnInterface == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.NotAnInterface(childComplexity), true\n\tcase \"Query.nullableArg\":\n\t\tif e.ComplexityRoot.Query.NullableArg == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_nullableArg_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.NullableArg(childComplexity, args[\"arg\"].(*int)), true\n\tcase \"Query.optionalUnion\":\n\t\tif e.ComplexityRoot.Query.OptionalUnion == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.OptionalUnion(childComplexity), true\n\tcase \"Query.overlapping\":\n\t\tif e.ComplexityRoot.Query.Overlapping == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Overlapping(childComplexity), true\n\tcase \"Query.panics\":\n\t\tif e.ComplexityRoot.Query.Panics == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Panics(childComplexity), true\n\tcase \"Query.primitiveObject\":\n\t\tif e.ComplexityRoot.Query.PrimitiveObject == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.PrimitiveObject(childComplexity), true\n\tcase \"Query.primitiveStringObject\":\n\t\tif e.ComplexityRoot.Query.PrimitiveStringObject == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.PrimitiveStringObject(childComplexity), true\n\tcase \"Query.ptrToAnyContainer\":\n\t\tif e.ComplexityRoot.Query.PtrToAnyContainer == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.PtrToAnyContainer(childComplexity), true\n\tcase \"Query.ptrToSliceContainer\":\n\t\tif e.ComplexityRoot.Query.PtrToSliceContainer == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.PtrToSliceContainer(childComplexity), true\n\tcase \"Query.recursive\":\n\t\tif e.ComplexityRoot.Query.Recursive == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_recursive_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Recursive(childComplexity, args[\"input\"].(*RecursiveInputSlice)), true\n\tcase \"Query.scalarSlice\":\n\t\tif e.ComplexityRoot.Query.ScalarSlice == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.ScalarSlice(childComplexity), true\n\tcase \"Query.searchMixed\":\n\t\tif e.ComplexityRoot.Query.SearchMixed == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_searchMixed_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.SearchMixed(childComplexity, args[\"query\"].(*string), args[\"category\"].(*string), args[\"minPrice\"].(*int), args[\"limit\"].(*int), args[\"offset\"].(*int), args[\"sortBy\"].(*string)), true\n\tcase \"Query.searchProducts\":\n\t\tif e.ComplexityRoot.Query.SearchProducts == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_searchProducts_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.SearchProducts(childComplexity, args[\"query\"].(*string), args[\"category\"].(*string), args[\"minPrice\"].(*int)), true\n\tcase \"Query.searchProductsNormal\":\n\t\tif e.ComplexityRoot.Query.SearchProductsNormal == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_searchProductsNormal_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.SearchProductsNormal(childComplexity, args[\"filters\"].(map[string]any)), true\n\tcase \"Query.searchRequired\":\n\t\tif e.ComplexityRoot.Query.SearchRequired == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_searchRequired_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.SearchRequired(childComplexity, args[\"name\"].(string), args[\"age\"].(int)), true\n\tcase \"Query.searchWithDefaults\":\n\t\tif e.ComplexityRoot.Query.SearchWithDefaults == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_searchWithDefaults_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.SearchWithDefaults(childComplexity, args[\"query\"].(*string), args[\"limit\"].(*int), args[\"includeArchived\"].(*bool)), true\n\tcase \"Query.searchWithDirectives\":\n\t\tif e.ComplexityRoot.Query.SearchWithDirectives == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_searchWithDirectives_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.SearchWithDirectives(childComplexity, args[\"oldField\"].(*string), args[\"newField\"].(*string)), true\n\tcase \"Query.shapeUnion\":\n\t\tif e.ComplexityRoot.Query.ShapeUnion == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.ShapeUnion(childComplexity), true\n\tcase \"Query.shapes\":\n\t\tif e.ComplexityRoot.Query.Shapes == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Shapes(childComplexity), true\n\tcase \"Query.skipInclude\":\n\t\tif e.ComplexityRoot.Query.SkipInclude == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.SkipInclude(childComplexity), true\n\tcase \"Query.slices\":\n\t\tif e.ComplexityRoot.Query.Slices == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Slices(childComplexity), true\n\tcase \"Query.stringFromContextFunction\":\n\t\tif e.ComplexityRoot.Query.StringFromContextFunction == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.StringFromContextFunction(childComplexity), true\n\tcase \"Query.stringFromContextInterface\":\n\t\tif e.ComplexityRoot.Query.StringFromContextInterface == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.StringFromContextInterface(childComplexity), true\n\tcase \"Query.user\":\n\t\tif e.ComplexityRoot.Query.User == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_user_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.User(childComplexity, args[\"id\"].(int)), true\n\tcase \"Query.vOkCaseNil\":\n\t\tif e.ComplexityRoot.Query.VOkCaseNil == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.VOkCaseNil(childComplexity), true\n\tcase \"Query.vOkCaseValue\":\n\t\tif e.ComplexityRoot.Query.VOkCaseValue == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.VOkCaseValue(childComplexity), true\n\tcase \"Query.valid\":\n\t\tif e.ComplexityRoot.Query.Valid == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Valid(childComplexity), true\n\tcase \"Query.validType\":\n\t\tif e.ComplexityRoot.Query.ValidType == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.ValidType(childComplexity), true\n\tcase \"Query.variadicModel\":\n\t\tif e.ComplexityRoot.Query.VariadicModel == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.VariadicModel(childComplexity), true\n\tcase \"Query.wrappedMap\":\n\t\tif e.ComplexityRoot.Query.WrappedMap == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.WrappedMap(childComplexity), true\n\tcase \"Query.wrappedScalar\":\n\t\tif e.ComplexityRoot.Query.WrappedScalar == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.WrappedScalar(childComplexity), true\n\tcase \"Query.wrappedSlice\":\n\t\tif e.ComplexityRoot.Query.WrappedSlice == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.WrappedSlice(childComplexity), true\n\tcase \"Query.wrappedStruct\":\n\t\tif e.ComplexityRoot.Query.WrappedStruct == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.WrappedStruct(childComplexity), true\n\n\tcase \"Rectangle.area\":\n\t\tif e.ComplexityRoot.Rectangle.Area == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Rectangle.Area(childComplexity), true\n\tcase \"Rectangle.coordinates\":\n\t\tif e.ComplexityRoot.Rectangle.Coordinates == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Rectangle.Coordinates(childComplexity), true\n\tcase \"Rectangle.length\":\n\t\tif e.ComplexityRoot.Rectangle.Length == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Rectangle.Length(childComplexity), true\n\tcase \"Rectangle.width\":\n\t\tif e.ComplexityRoot.Rectangle.Width == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Rectangle.Width(childComplexity), true\n\n\tcase \"Size.height\":\n\t\tif e.ComplexityRoot.Size.Height == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Size.Height(childComplexity), true\n\tcase \"Size.weight\":\n\t\tif e.ComplexityRoot.Size.Weight == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Size.Weight(childComplexity), true\n\n\tcase \"SkipIncludeTestType.a\":\n\t\tif e.ComplexityRoot.SkipIncludeTestType.A == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.SkipIncludeTestType.A(childComplexity), true\n\tcase \"SkipIncludeTestType.b\":\n\t\tif e.ComplexityRoot.SkipIncludeTestType.B == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.SkipIncludeTestType.B(childComplexity), true\n\n\tcase \"Slices.test1\":\n\t\tif e.ComplexityRoot.Slices.Test1 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Slices.Test1(childComplexity), true\n\tcase \"Slices.test2\":\n\t\tif e.ComplexityRoot.Slices.Test2 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Slices.Test2(childComplexity), true\n\tcase \"Slices.test3\":\n\t\tif e.ComplexityRoot.Slices.Test3 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Slices.Test3(childComplexity), true\n\tcase \"Slices.test4\":\n\t\tif e.ComplexityRoot.Slices.Test4 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Slices.Test4(childComplexity), true\n\n\tcase \"Subscription.directiveArg\":\n\t\tif e.ComplexityRoot.Subscription.DirectiveArg == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Subscription_directiveArg_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Subscription.DirectiveArg(childComplexity, args[\"arg\"].(string)), true\n\tcase \"Subscription.directiveDouble\":\n\t\tif e.ComplexityRoot.Subscription.DirectiveDouble == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Subscription.DirectiveDouble(childComplexity), true\n\tcase \"Subscription.directiveNullableArg\":\n\t\tif e.ComplexityRoot.Subscription.DirectiveNullableArg == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Subscription_directiveNullableArg_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Subscription.DirectiveNullableArg(childComplexity, args[\"arg\"].(*int), args[\"arg2\"].(*int), args[\"arg3\"].(*string)), true\n\tcase \"Subscription.directiveUnimplemented\":\n\t\tif e.ComplexityRoot.Subscription.DirectiveUnimplemented == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Subscription.DirectiveUnimplemented(childComplexity), true\n\tcase \"Subscription.errorRequired\":\n\t\tif e.ComplexityRoot.Subscription.ErrorRequired == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Subscription.ErrorRequired(childComplexity), true\n\tcase \"Subscription.initPayload\":\n\t\tif e.ComplexityRoot.Subscription.InitPayload == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Subscription.InitPayload(childComplexity), true\n\tcase \"Subscription.issue896b\":\n\t\tif e.ComplexityRoot.Subscription.Issue896b == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Subscription.Issue896b(childComplexity), true\n\tcase \"Subscription.updated\":\n\t\tif e.ComplexityRoot.Subscription.Updated == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Subscription.Updated(childComplexity), true\n\n\tcase \"User.created\":\n\t\tif e.ComplexityRoot.User.Created == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.Created(childComplexity), true\n\tcase \"User.friends\":\n\t\tif e.ComplexityRoot.User.Friends == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.Friends(childComplexity), true\n\tcase \"User.id\":\n\t\tif e.ComplexityRoot.User.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.ID(childComplexity), true\n\tcase \"User.pets\":\n\t\tif e.ComplexityRoot.User.Pets == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_User_pets_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.Pets(childComplexity, args[\"limit\"].(*int)), true\n\tcase \"User.updated\":\n\t\tif e.ComplexityRoot.User.Updated == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.Updated(childComplexity), true\n\n\tcase \"VOkCaseNil.value\":\n\t\tif e.ComplexityRoot.VOkCaseNil.Value == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.VOkCaseNil.Value(childComplexity), true\n\n\tcase \"VOkCaseValue.value\":\n\t\tif e.ComplexityRoot.VOkCaseValue.Value == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.VOkCaseValue.Value(childComplexity), true\n\n\tcase \"ValidType.differentCase\":\n\t\tif e.ComplexityRoot.ValidType.DifferentCase == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.ValidType.DifferentCase(childComplexity), true\n\tcase \"ValidType.different_case\":\n\t\tif e.ComplexityRoot.ValidType.DifferentCaseOld == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.ValidType.DifferentCaseOld(childComplexity), true\n\tcase \"ValidType.validArgs\":\n\t\tif e.ComplexityRoot.ValidType.ValidArgs == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_ValidType_validArgs_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.ValidType.ValidArgs(childComplexity, args[\"break\"].(string), args[\"default\"].(string), args[\"func\"].(string), args[\"interface\"].(string), args[\"select\"].(string), args[\"case\"].(string), args[\"defer\"].(string), args[\"go\"].(string), args[\"map\"].(string), args[\"struct\"].(string), args[\"chan\"].(string), args[\"else\"].(string), args[\"goto\"].(string), args[\"package\"].(string), args[\"switch\"].(string), args[\"const\"].(string), args[\"fallthrough\"].(string), args[\"if\"].(string), args[\"range\"].(string), args[\"type\"].(string), args[\"continue\"].(string), args[\"for\"].(string), args[\"import\"].(string), args[\"return\"].(string), args[\"var\"].(string), args[\"_\"].(string)), true\n\tcase \"ValidType.validInputKeywords\":\n\t\tif e.ComplexityRoot.ValidType.ValidInputKeywords == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_ValidType_validInputKeywords_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.ValidType.ValidInputKeywords(childComplexity, args[\"input\"].(*ValidInput)), true\n\n\tcase \"VariadicModel.value\":\n\t\tif e.ComplexityRoot.VariadicModel.Value == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_VariadicModel_value_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.VariadicModel.Value(childComplexity, args[\"rank\"].(int)), true\n\n\tcase \"WrappedMap.get\":\n\t\tif e.ComplexityRoot.WrappedMap.Get == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_WrappedMap_get_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.WrappedMap.Get(childComplexity, args[\"key\"].(string)), true\n\n\tcase \"WrappedSlice.get\":\n\t\tif e.ComplexityRoot.WrappedSlice.Get == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_WrappedSlice_get_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.WrappedSlice.Get(childComplexity, args[\"idx\"].(int)), true\n\n\tcase \"WrappedStruct.desc\":\n\t\tif e.ComplexityRoot.WrappedStruct.Desc == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.WrappedStruct.Desc(childComplexity), true\n\tcase \"WrappedStruct.name\":\n\t\tif e.ComplexityRoot.WrappedStruct.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.WrappedStruct.Name(childComplexity), true\n\n\tcase \"XXIt.id\":\n\t\tif e.ComplexityRoot.XXIt.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.XXIt.ID(childComplexity), true\n\n\tcase \"XxIt.id\":\n\t\tif e.ComplexityRoot.XxIt.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.XxIt.ID(childComplexity), true\n\n\tcase \"asdfIt.id\":\n\t\tif e.ComplexityRoot.AsdfIt.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.AsdfIt.ID(childComplexity), true\n\n\tcase \"iIt.id\":\n\t\tif e.ComplexityRoot.IIt.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.IIt.ID(childComplexity), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap(\n\t\tec.unmarshalInputChanges,\n\t\tec.unmarshalInputDefaultInput,\n\t\tec.unmarshalInputDirectiveInput,\n\t\tec.unmarshalInputFieldsOrderInput,\n\t\tec.unmarshalInputInnerDirectives,\n\t\tec.unmarshalInputInnerInput,\n\t\tec.unmarshalInputInputDirectives,\n\t\tec.unmarshalInputInputWithEnumValue,\n\t\tec.unmarshalInputIssue4053Input1,\n\t\tec.unmarshalInputIssue4053Input2,\n\t\tec.unmarshalInputMapNestedInput,\n\t\tec.unmarshalInputMapNestedMapSliceInput,\n\t\tec.unmarshalInputMapStringInterfaceInput,\n\t\tec.unmarshalInputNestedInput,\n\t\tec.unmarshalInputNestedMapInput,\n\t\tec.unmarshalInputOmittableInput,\n\t\tec.unmarshalInputOuterInput,\n\t\tec.unmarshalInputOuterWrapperInput,\n\t\tec.unmarshalInputRecursiveInputSlice,\n\t\tec.unmarshalInputRequiredFilters,\n\t\tec.unmarshalInputSearchFilters,\n\t\tec.unmarshalInputSearchWithDefaults,\n\t\tec.unmarshalInputSpecialInput,\n\t\tec.unmarshalInputUpdateProductInput,\n\t\tec.unmarshalInputUpdatePtrToPtrInner,\n\t\tec.unmarshalInputUpdatePtrToPtrOuter,\n\t\tec.unmarshalInputValidInput,\n\t)\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\tcase ast.Mutation:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tif !first {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tfirst = false\n\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\tdata := ec._Mutation(ctx, opCtx.Operation.SelectionSet)\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\n\t\t\treturn &graphql.Response{\n\t\t\t\tData: buf.Bytes(),\n\t\t\t}\n\t\t}\n\tcase ast.Subscription:\n\t\tnext := ec._Subscription(ctx, opCtx.Operation.SelectionSet)\n\n\t\tvar buf bytes.Buffer\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tbuf.Reset()\n\t\t\tdata := next(ctx)\n\n\t\t\tif data == nil {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tdata.MarshalGQL(&buf)\n\n\t\t\treturn &graphql.Response{\n\t\t\t\tData: buf.Bytes(),\n\t\t\t}\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"inline_arguments_transformed_schema.graphql\", Input: `directive @custom on ARGUMENT_DEFINITION\ndirective @defer(if: Boolean = true, label: String) on FRAGMENT_SPREAD | INLINE_FRAGMENT\ndirective @directive1 on FIELD_DEFINITION\ndirective @directive2 on FIELD_DEFINITION\ndirective @directive3 on INPUT_OBJECT\ndirective @goField(forceResolver: Boolean, name: String, omittable: Boolean, type: String) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION\ndirective @goModel(model: String, models: [String!]) on OBJECT | INPUT_OBJECT | SCALAR | ENUM | INTERFACE | UNION\ndirective @inlineArguments on ARGUMENT_DEFINITION\ndirective @length(min: Int!, max: Int, message: String) on ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION | FIELD_DEFINITION\ndirective @logged(id: UUID!) on FIELD\ndirective @makeNil on FIELD_DEFINITION\ndirective @makeTypedNil on FIELD_DEFINITION\ndirective @noop on ARGUMENT_DEFINITION\ndirective @order1(location: String!) repeatable on FIELD_DEFINITION | OBJECT\ndirective @order2(location: String!) on OBJECT\ndirective @populate(value: String!) on ARGUMENT_DEFINITION\ndirective @range(min: Int = 0, max: Int) on ARGUMENT_DEFINITION\ndirective @toNull on ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION | FIELD_DEFINITION\ndirective @unimplemented on FIELD_DEFINITION\ntype A {\n\tid: ID!\n}\ntype AIt {\n\tid: ID!\n}\ntype AbIt {\n\tid: ID!\n}\ninterface Animal {\n\tspecies: String!\n\tsize: Size!\n}\nscalar Any\ntype Autobind {\n\tint: Int!\n\tint32: Int!\n\tint64: Int!\n\tidStr: ID!\n\tidInt: ID!\n}\ntype B {\n\tid: ID!\n}\ntype BackedByInterface {\n\tid: String!\n\tthisShouldBind: String!\n\tthisShouldBindWithError: String!\n}\nscalar Bytes\ntype Cat implements Animal {\n\tspecies: String!\n\tsize: Size!\n\tcatBreed: String!\n}\ninput Changes @goModel(model: \"map[string]interface{}\") {\n\ta: Int\n\tb: Int\n}\ntype CheckIssue896 {\n\tid: Int\n}\ntype Circle implements Shape {\n\tradius: Float\n\tarea: Float\n\tcoordinates: Coordinates\n}\ntype ConcreteNodeA implements Node {\n\tid: ID!\n\tchild: Node!\n\tname: String!\n}\n\"\"\"\n Implements the Node interface with another interface \n\"\"\"\ntype ConcreteNodeInterface implements Node {\n\tid: ID!\n\tchild: Node!\n}\nunion Content_Child = Content_User | Content_Post\ntype Content_Post {\n\tfoo: String\n}\ntype Content_User {\n\tfoo: String\n}\ntype Coordinates {\n\tx: Float!\n\ty: Float!\n}\nscalar CustomScalar @goModel(model: \"singlefile.CustomScalar\")\ninput DefaultInput {\n\tfalsyBoolean: Boolean = false\n\ttruthyBoolean: Boolean = true\n}\ntype DefaultParametersMirror {\n\tfalsyBoolean: Boolean\n\ttruthyBoolean: Boolean\n}\n\"\"\"\n This doesnt have an implementation in the typemap, so it should act like a string \n\"\"\"\nscalar DefaultScalarImplementation\ntype DeferModel {\n\tid: ID!\n\tname: String!\n\tvalues: [String!]! @goField(forceResolver: true)\n}\ninput DirectiveInput @goModel(model: \"map[string]interface{}\") {\n\toldField: String @deprecated(reason: \"Use newField instead\")\n\tnewField: String\n}\ntype Dog implements Animal {\n\tspecies: String!\n\tsize: Size!\n\tdogBreed: String!\n}\nscalar Email\ntype EmbeddedCase1 @goModel(model: \"singlefile.EmbeddedCase1\") {\n\texportedEmbeddedPointerExportedMethod: String!\n}\ntype EmbeddedCase2 @goModel(model: \"singlefile.EmbeddedCase2\") {\n\tunexportedEmbeddedPointerExportedMethod: String!\n}\ntype EmbeddedCase3 @goModel(model: \"singlefile.EmbeddedCase3\") {\n\tunexportedEmbeddedInterfaceExportedMethod: String!\n}\ntype EmbeddedDefaultScalar {\n\tvalue: DefaultScalarImplementation\n}\ntype EmbeddedPointer @goModel(model: \"singlefile.EmbeddedPointerModel\") {\n\tID: String\n\tTitle: String\n}\nenum EnumTest {\n\tOK\n\tNG\n}\ntype Error {\n\tid: ID!\n\terrorOnNonRequiredField: String\n\terrorOnRequiredField: String!\n\tnilOnRequiredField: String!\n}\ntype Errors {\n\ta: Error!\n\tb: Error!\n\tc: Error!\n\td: Error!\n\te: Error!\n}\nenum FallbackToStringEncoding {\n\tA\n\tB\n\tC\n}\ninput FieldsOrderInput {\n\tfirstField: String\n\toverrideFirstField: String\n}\ntype FieldsOrderPayload {\n\tfirstFieldValue: String\n}\ntype ForcedResolver {\n\tfield: Circle @goField(forceResolver: true)\n}\ntype Horse implements Mammalian & Animal {\n\tspecies: String!\n\tsize: Size!\n\thorseBreed: String!\n}\ninput InnerDirectives {\n\tmessage: String! @length(min: 1, message: \"not valid\")\n}\ninput InnerInput {\n\tid: Int!\n}\ntype InnerObject {\n\tid: Int!\n}\ninput InputDirectives @directive3 {\n\ttext: String! @length(min: 0, max: 7, message: \"not valid\")\n\tnullableText: String @toNull\n\tinner: InnerDirectives!\n\tinnerNullable: InnerDirectives\n\tthirdParty: ThirdParty @length(min: 0, max: 7)\n}\ninput InputWithEnumValue {\n\tenum: EnumTest!\n}\ntype InvalidIdentifier {\n\tid: Int!\n}\ninput Issue4053Input1 {\n\tinput2: Issue4053Input2\n}\ninput Issue4053Input2 {\n\thello: String\n\thelloWithDefault: String = \"world\"\n}\ntype It {\n\tid: ID!\n}\ntype LoopA {\n\tb: LoopB!\n}\ntype LoopB {\n\ta: LoopA!\n}\ninterface Mammalian implements Animal {\n\tspecies: String!\n\tsize: Size!\n}\n\"\"\"\nSince gqlgen defines default implementation for a Map scalar, this tests that the builtin is _not_\nadded to the TypeMap\n\"\"\"\ntype Map {\n\tid: ID!\n}\ntype MapNested @goModel(model: \"singlefile.MapNested\") {\n\tvalue: CustomScalar!\n}\ninput MapNestedInput @goModel(model: \"singlefile.MapNested\") {\n\tvalue: CustomScalar!\n}\ninput MapNestedMapSliceInput @goModel(model: \"map[string]interface{}\") {\n\tname: String\n\trecurse: [MapNestedMapSliceInput!]\n}\ninput MapStringInterfaceInput @goModel(model: \"map[string]interface{}\") {\n\ta: String!\n\tb: Int\n\tc: CustomScalar\n\tnested: MapNestedInput\n}\ntype MapStringInterfaceType @goModel(model: \"map[string]interface{}\") {\n\ta: String\n\tb: Int\n\tc: CustomScalar\n\tnested: MapNested\n}\nscalar MarshalPanic\ntype ModelMethods {\n\tresolverField: Boolean!\n\tnoContext: Boolean!\n\twithContext: Boolean!\n}\ntype Mutation {\n\tdefaultInput(input: DefaultInput!): DefaultParametersMirror!\n\toverrideValueViaInput(input: FieldsOrderInput!): FieldsOrderPayload!\n\tupdateProduct(id: ID!, name: String, price: Float): String!\n\tissue4053(input: Issue4053Input1): Boolean!\n\tupdateSomething(input: SpecialInput!): String!\n\tupdatePtrToPtr(input: UpdatePtrToPtrOuter!): PtrToPtrOuter!\n}\ninput NestedInput {\n\tfield: Email!\n}\ninput NestedMapInput {\n\tmap: MapStringInterfaceInput\n}\ninterface Node {\n\tid: ID!\n\tchild: Node!\n}\ntype ObjectDirectives @order1(location: \"order1_1\") @order1(location: \"order1_2\") @order2(location: \"order2_1\") {\n\ttext: String! @length(min: 0, max: 7, message: \"not valid\")\n\tnullableText: String @toNull\n\torder: [String!]!\n}\ntype ObjectDirectivesWithCustomGoModel {\n\tnullableText: String @toNull\n}\ninput OmittableInput {\n\tid: ID @goField(omittable: true)\n\tbool: Boolean @goField(omittable: true)\n\tstr: String @goField(omittable: true)\n\tint: Int @goField(omittable: true)\n\ttime: Time @goField(omittable: true)\n\tenum: Status @goField(omittable: true)\n\tscalar: ThirdParty @goField(omittable: true)\n\tobject: OuterInput @goField(omittable: true)\n}\ninput OuterInput {\n\tinner: InnerInput!\n}\ntype OuterObject {\n\tinner: InnerObject!\n}\ninput OuterWrapperInput {\n\tinner: InputDirectives!\n}\ntype OverlappingFields {\n\toneFoo: Int! @goField(name: \"foo\")\n\ttwoFoo: Int! @goField(name: \"foo\")\n\toldFoo: Int! @goField(name: \"foo\", forceResolver: true)\n\tnewFoo: Int!\n\tnew_foo: Int!\n}\ntype Panics {\n\tfieldScalarMarshal: [MarshalPanic!]!\n\tfieldFuncMarshal(u: [MarshalPanic!]!): [MarshalPanic!]!\n\targUnmarshal(u: [MarshalPanic!]!): Boolean!\n}\ntype Pet {\n\tid: Int!\n\tfriends(limit: Int): [Pet!] @goField(forceResolver: true)\n}\ntype Primitive {\n\tvalue: Int!\n\tsquared: Int!\n}\ntype PrimitiveString {\n\tvalue: String!\n\tdoubled: String!\n\tlen: Int!\n}\ntype PtrToAnyContainer {\n\tptrToAny: Any\n\tbinding: Any\n}\ntype PtrToPtrInner {\n\tkey: String!\n\tvalue: String!\n}\ntype PtrToPtrOuter {\n\tname: String!\n\tinner: PtrToPtrInner\n\tstupidInner: PtrToPtrInner\n}\ntype PtrToSliceContainer {\n\tptrToSlice: [String!]\n}\ntype Query {\n\tinvalidIdentifier: InvalidIdentifier\n\tcollision: It\n\tmapInput(input: Changes): Boolean\n\trecursive(input: RecursiveInputSlice): Boolean\n\tnestedInputs(input: [[OuterInput]] = [[{inner:{id:1}}]]): Boolean\n\tnestedOutputs: [[OuterObject]]\n\tmodelMethods: ModelMethods\n\tuser(id: Int!): User!\n\tnullableArg(arg: Int = 123): String\n\tinputSlice(arg: [String!]!): Boolean!\n\tinputNullableSlice(arg: [String!]): Boolean!\n\tinputOmittable(arg: OmittableInput!): String!\n\tshapeUnion: ShapeUnion!\n\tautobind: Autobind\n\tdeprecatedField: String! @deprecated(reason: \"test deprecated directive\")\n\tfieldWithDeprecatedArg(oldArg: Int @deprecated(reason: \"old arg\"), newArg: Int): String\n\toverlapping: OverlappingFields\n\tdefaultParameters(falsyBoolean: Boolean = false, truthyBoolean: Boolean = true): DefaultParametersMirror!\n\tdeferSingle: DeferModel\n\tdeferMultiple: [DeferModel!]\n\tdirectiveArg(arg: String! @length(min: 1, max: 255, message: \"invalid length\")): String\n\tdirectiveNullableArg(arg: Int @range(min: 0), arg2: Int @range, arg3: String @toNull): String\n\tdirectiveSingleNullableArg(arg1: String @populate(value: \"test\") @noop): String\n\tdirectiveInputNullable(arg: InputDirectives): String\n\tdirectiveInput(arg: InputDirectives!): String\n\tdirectiveInputType(arg: InnerInput! @custom): String\n\tdirectiveInputOuter(arg: OuterWrapperInput!): String\n\tdirectiveObject: ObjectDirectives @order1(location: \"Query_field\")\n\tdirectiveObjectWithCustomGoModel: ObjectDirectivesWithCustomGoModel\n\tdirectiveFieldDef(ret: String!): String! @length(min: 1, message: \"not valid\")\n\tdirectiveField: String\n\tdirectiveDouble: String @directive1 @directive2\n\tdirectiveUnimplemented: String @unimplemented\n\tembeddedCase1: EmbeddedCase1\n\tembeddedCase2: EmbeddedCase2\n\tembeddedCase3: EmbeddedCase3\n\tenumInInput(input: InputWithEnumValue): EnumTest!\n\tsearchProducts(query: String, category: String, minPrice: Int): [String!]!\n\tsearchRequired(name: String!, age: Int!): [String!]!\n\tsearchProductsNormal(filters: SearchFilters): [String!]!\n\tsearchWithDefaults(query: String = \"default search\", limit: Int = 20, includeArchived: Boolean = false): [String!]!\n\tsearchMixed(query: String, category: String, minPrice: Int, limit: Int = 10, offset: Int = 0, sortBy: String): [String!]!\n\tfilterProducts(query: String, category: String, minPrice: Int): [String!]!\n\tfindProducts(query: String, category: String, minPrice: Int): [String!]!\n\tsearchWithDirectives(oldField: String @deprecated(reason: \"Use newField instead\"), newField: String): [String!]!\n\tshapes: [Shape]\n\tnoShape: Shape @makeNil\n\tnode: Node!\n\tnoShapeTypedNil: Shape @makeTypedNil\n\tanimal: Animal @makeTypedNil\n\tnotAnInterface: BackedByInterface\n\tdog: Dog\n\tissue896a: [CheckIssue896!]\n\tmapStringInterface(in: MapStringInterfaceInput): MapStringInterfaceType\n\tmapNestedStringInterface(in: NestedMapInput): MapStringInterfaceType\n\tmapNestedMapSlice(input: MapNestedMapSliceInput): Boolean\n\terrorBubble: Error\n\terrorBubbleList: [Error!]\n\terrorList: [Error]\n\terrors: Errors\n\tvalid: String!\n\tinvalid: String!\n\tpanics: Panics\n\tprimitiveObject: [Primitive!]!\n\tprimitiveStringObject: [PrimitiveString!]!\n\tptrToAnyContainer: PtrToAnyContainer!\n\tptrToSliceContainer: PtrToSliceContainer!\n\tinfinity: Float!\n\tstringFromContextInterface: StringFromContextInterface!\n\tstringFromContextFunction: StringFromContextFunction!\n\tdefaultScalar(arg: DefaultScalarImplementation! = \"default\"): DefaultScalarImplementation!\n\tskipInclude: SkipIncludeTestType\n\tslices: Slices\n\tscalarSlice: Bytes!\n\tfallback(arg: FallbackToStringEncoding!): FallbackToStringEncoding!\n\toptionalUnion: TestUnion\n\tvOkCaseValue: VOkCaseValue\n\tvOkCaseNil: VOkCaseNil\n\tvalidType: ValidType\n\tvariadicModel: VariadicModel\n\twrappedStruct: WrappedStruct!\n\twrappedScalar: WrappedScalar!\n\twrappedMap: WrappedMap!\n\twrappedSlice: WrappedSlice!\n}\ntype Rectangle implements Shape {\n\tlength: Float\n\twidth: Float\n\tarea: Float\n\tcoordinates: Coordinates\n}\ninput RecursiveInputSlice {\n\tself: [RecursiveInputSlice!]\n}\ninput RequiredFilters @goModel(model: \"map[string]interface{}\") {\n\tname: String!\n\tage: Int!\n}\ninput SearchFilters @goModel(model: \"map[string]interface{}\") {\n\tquery: String\n\tcategory: String\n\tminPrice: Int\n}\ninput SearchWithDefaults @goModel(model: \"map[string]interface{}\") {\n\tquery: String = \"default search\"\n\tlimit: Int = 20\n\tincludeArchived: Boolean = false\n}\ninterface Shape {\n\tarea: Float\n\tcoordinates: Coordinates\n}\nunion ShapeUnion @goModel(model: \"singlefile.ShapeUnion\") = Circle | Rectangle\ntype Size {\n\theight: Int!\n\tweight: Int!\n}\ntype SkipIncludeTestType {\n\ta: String\n\tb: String\n}\ntype Slices {\n\ttest1: [String]\n\ttest2: [String!]\n\ttest3: [String]!\n\ttest4: [String!]!\n}\ninput SpecialInput {\n\tnesting: NestedInput!\n}\nenum Status {\n\tOK\n\tERROR\n}\nscalar StringFromContextFunction\nscalar StringFromContextInterface\ntype Subscription {\n\tupdated: String!\n\tinitPayload: String!\n\tdirectiveArg(arg: String! @length(min: 1, max: 255, message: \"invalid length\")): String\n\tdirectiveNullableArg(arg: Int @range(min: 0), arg2: Int @range, arg3: String @toNull): String\n\tdirectiveDouble: String @directive1 @directive2\n\tdirectiveUnimplemented: String @unimplemented\n\tissue896b: [CheckIssue896]\n\terrorRequired: Error!\n}\nunion TestUnion = A | B\nscalar ThirdParty @goModel(model: \"singlefile.ThirdParty\")\nscalar Time\nscalar UUID\ninput UpdateProductInput @goModel(model: \"map[string]interface{}\") {\n\tid: ID!\n\tname: String\n\tprice: Float\n}\ninput UpdatePtrToPtrInner {\n\tkey: String\n\tvalue: String\n}\ninput UpdatePtrToPtrOuter {\n\tname: String\n\tinner: UpdatePtrToPtrInner\n\tstupidInner: UpdatePtrToPtrInner\n}\ntype User {\n\tid: Int!\n\tfriends: [User!]! @goField(forceResolver: true)\n\tcreated: Time!\n\tupdated: Time\n\tpets(limit: Int): [Pet!] @goField(forceResolver: true)\n}\ntype VOkCaseNil @goModel(model: \"singlefile.VOkCaseNil\") {\n\tvalue: String\n}\ntype VOkCaseValue @goModel(model: \"singlefile.VOkCaseValue\") {\n\tvalue: String\n}\ninput ValidInput {\n\tbreak: String!\n\tdefault: String!\n\tfunc: String!\n\tinterface: String!\n\tselect: String!\n\tcase: String!\n\tdefer: String!\n\tgo: String!\n\tmap: String!\n\tstruct: String!\n\tchan: String!\n\telse: String!\n\tgoto: String!\n\tpackage: String!\n\tswitch: String!\n\tconst: String!\n\tfallthrough: String!\n\tif: String!\n\trange: String!\n\ttype: String!\n\tcontinue: String!\n\tfor: String!\n\timport: String!\n\treturn: String!\n\tvar: String!\n\t_: String! @goField(name: \"Underscore\")\n}\n\"\"\"\n These things are all valid, but without care generate invalid go code \n\"\"\"\ntype ValidType {\n\tdifferentCase: String!\n\tdifferent_case: String! @goField(name: \"DifferentCaseOld\")\n\tvalidInputKeywords(input: ValidInput): Boolean!\n\tvalidArgs(break: String!, default: String!, func: String!, interface: String!, select: String!, case: String!, defer: String!, go: String!, map: String!, struct: String!, chan: String!, else: String!, goto: String!, package: String!, switch: String!, const: String!, fallthrough: String!, if: String!, range: String!, type: String!, continue: String!, for: String!, import: String!, return: String!, var: String!, _: String!): Boolean!\n}\ntype VariadicModel {\n\tvalue(rank: Int!): String\n}\ntype WrappedMap {\n\tget(key: String!): String!\n}\nscalar WrappedScalar\ntype WrappedSlice {\n\tget(idx: Int!): String!\n}\ntype WrappedStruct {\n\tname: WrappedScalar!\n\tdesc: WrappedScalar\n}\ntype XXIt {\n\tid: ID!\n}\ntype XxIt {\n\tid: ID!\n}\ntype asdfIt {\n\tid: ID!\n}\ntype iIt {\n\tid: ID!\n}\n`, BuiltIn: true},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) dir_defer_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"if\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"if\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"label\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"label\"] = arg1\n\treturn args, nil\n}\n\nfunc (ec *executionContext) dir_length_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"min\", ec.unmarshalNInt2int)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"min\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"max\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"max\"] = arg1\n\targ2, err := graphql.ProcessArgField(ctx, rawArgs, \"message\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"message\"] = arg2\n\treturn args, nil\n}\n\nfunc (ec *executionContext) dir_logged_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"id\", ec.unmarshalNUUID2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"id\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) dir_order1_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"location\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"location\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) dir_order2_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"location\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"location\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) dir_populate_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"value\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"value\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) dir_range_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"min\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"min\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"max\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"max\"] = arg1\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Mutation_defaultInput_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"input\", ec.unmarshalNDefaultInput2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐDefaultInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"input\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Mutation_issue4053_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"input\", ec.unmarshalOIssue4053Input12ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐIssue4053Input1)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"input\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Mutation_overrideValueViaInput_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"input\", ec.unmarshalNFieldsOrderInput2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐFieldsOrderInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"input\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Mutation_updateProduct_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"id\", ec.unmarshalNID2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"id\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg1\n\targ2, err := graphql.ProcessArgField(ctx, rawArgs, \"price\", ec.unmarshalOFloat2ᚖfloat64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"price\"] = arg2\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Mutation_updatePtrToPtr_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"input\", ec.unmarshalNUpdatePtrToPtrOuter2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐUpdatePtrToPtrOuter)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"input\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Mutation_updateSomething_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"input\", ec.unmarshalNSpecialInput2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐSpecialInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"input\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Panics_argUnmarshal_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"u\", ec.unmarshalNMarshalPanic2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐMarshalPanicᚄ)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"u\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Panics_fieldFuncMarshal_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"u\", ec.unmarshalNMarshalPanic2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐMarshalPanicᚄ)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"u\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Pet_friends_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"limit\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"limit\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_defaultParameters_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"falsyBoolean\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"falsyBoolean\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"truthyBoolean\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"truthyBoolean\"] = arg1\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_defaultScalar_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"arg\", ec.unmarshalNDefaultScalarImplementation2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_directiveArg_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\n\targ0, err := ec.field_Query_directiveArg_argsArg(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_directiveArg_argsArg(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (string, error) {\n\tif _, ok := rawArgs[\"arg\"]; !ok {\n\t\tvar zeroVal string\n\t\treturn zeroVal, nil\n\t}\n\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"arg\"))\n\tdirective0 := func(ctx context.Context) (any, error) {\n\t\ttmp, ok := rawArgs[\"arg\"]\n\t\tif !ok {\n\t\t\tvar zeroVal string\n\t\t\treturn zeroVal, nil\n\t\t}\n\t\treturn ec.unmarshalNString2string(ctx, tmp)\n\t}\n\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\tmin, err := ec.unmarshalNInt2int(ctx, 1)\n\t\tif err != nil {\n\t\t\tvar zeroVal string\n\t\t\treturn zeroVal, err\n\t\t}\n\t\tmax, err := ec.unmarshalOInt2ᚖint(ctx, 255)\n\t\tif err != nil {\n\t\t\tvar zeroVal string\n\t\t\treturn zeroVal, err\n\t\t}\n\t\tmessage, err := ec.unmarshalOString2ᚖstring(ctx, \"invalid length\")\n\t\tif err != nil {\n\t\t\tvar zeroVal string\n\t\t\treturn zeroVal, err\n\t\t}\n\t\tif ec.Directives.Length == nil {\n\t\t\tvar zeroVal string\n\t\t\treturn zeroVal, errors.New(\"directive length is not implemented\")\n\t\t}\n\t\treturn ec.Directives.Length(ctx, rawArgs, directive0, min, max, message)\n\t}\n\n\ttmp, err := directive1(ctx)\n\tif err != nil {\n\t\tvar zeroVal string\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(string); ok {\n\t\treturn data, nil\n\t} else {\n\t\tvar zeroVal string\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from directive, should be string`, tmp))\n\t}\n}\n\nfunc (ec *executionContext) field_Query_directiveFieldDef_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"ret\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"ret\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_directiveInputNullable_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"arg\", ec.unmarshalOInputDirectives2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐInputDirectives)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_directiveInputOuter_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"arg\", ec.unmarshalNOuterWrapperInput2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐOuterWrapperInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_directiveInputType_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\n\targ0, err := ec.field_Query_directiveInputType_argsArg(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_directiveInputType_argsArg(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (InnerInput, error) {\n\tif _, ok := rawArgs[\"arg\"]; !ok {\n\t\tvar zeroVal InnerInput\n\t\treturn zeroVal, nil\n\t}\n\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"arg\"))\n\tdirective0 := func(ctx context.Context) (any, error) {\n\t\ttmp, ok := rawArgs[\"arg\"]\n\t\tif !ok {\n\t\t\tvar zeroVal InnerInput\n\t\t\treturn zeroVal, nil\n\t\t}\n\t\treturn ec.unmarshalNInnerInput2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐInnerInput(ctx, tmp)\n\t}\n\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\tif ec.Directives.Custom == nil {\n\t\t\tvar zeroVal InnerInput\n\t\t\treturn zeroVal, errors.New(\"directive custom is not implemented\")\n\t\t}\n\t\treturn ec.Directives.Custom(ctx, rawArgs, directive0)\n\t}\n\n\ttmp, err := directive1(ctx)\n\tif err != nil {\n\t\tvar zeroVal InnerInput\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(InnerInput); ok {\n\t\treturn data, nil\n\t} else {\n\t\tvar zeroVal InnerInput\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from directive, should be github.com/99designs/gqlgen/codegen/testserver/singlefile.InnerInput`, tmp))\n\t}\n}\n\nfunc (ec *executionContext) field_Query_directiveInput_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"arg\", ec.unmarshalNInputDirectives2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐInputDirectives)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_directiveNullableArg_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\n\targ0, err := ec.field_Query_directiveNullableArg_argsArg(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\n\targ1, err := ec.field_Query_directiveNullableArg_argsArg2(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg2\"] = arg1\n\n\targ2, err := ec.field_Query_directiveNullableArg_argsArg3(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg3\"] = arg2\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_directiveNullableArg_argsArg(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (*int, error) {\n\tif _, ok := rawArgs[\"arg\"]; !ok {\n\t\tvar zeroVal *int\n\t\treturn zeroVal, nil\n\t}\n\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"arg\"))\n\tdirective0 := func(ctx context.Context) (any, error) {\n\t\ttmp, ok := rawArgs[\"arg\"]\n\t\tif !ok {\n\t\t\tvar zeroVal *int\n\t\t\treturn zeroVal, nil\n\t\t}\n\t\treturn ec.unmarshalOInt2ᚖint(ctx, tmp)\n\t}\n\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\tmin, err := ec.unmarshalOInt2ᚖint(ctx, 0)\n\t\tif err != nil {\n\t\t\tvar zeroVal *int\n\t\t\treturn zeroVal, err\n\t\t}\n\t\tif ec.Directives.Range == nil {\n\t\t\tvar zeroVal *int\n\t\t\treturn zeroVal, errors.New(\"directive range is not implemented\")\n\t\t}\n\t\treturn ec.Directives.Range(ctx, rawArgs, directive0, min, nil)\n\t}\n\n\ttmp, err := directive1(ctx)\n\tif err != nil {\n\t\tvar zeroVal *int\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(*int); ok {\n\t\treturn data, nil\n\t} else if tmp == nil {\n\t\tvar zeroVal *int\n\t\treturn zeroVal, nil\n\t} else {\n\t\tvar zeroVal *int\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from directive, should be *int`, tmp))\n\t}\n}\n\nfunc (ec *executionContext) field_Query_directiveNullableArg_argsArg2(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (*int, error) {\n\tif _, ok := rawArgs[\"arg2\"]; !ok {\n\t\tvar zeroVal *int\n\t\treturn zeroVal, nil\n\t}\n\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"arg2\"))\n\tdirective0 := func(ctx context.Context) (any, error) {\n\t\ttmp, ok := rawArgs[\"arg2\"]\n\t\tif !ok {\n\t\t\tvar zeroVal *int\n\t\t\treturn zeroVal, nil\n\t\t}\n\t\treturn ec.unmarshalOInt2ᚖint(ctx, tmp)\n\t}\n\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\tmin, err := ec.unmarshalOInt2ᚖint(ctx, 0)\n\t\tif err != nil {\n\t\t\tvar zeroVal *int\n\t\t\treturn zeroVal, err\n\t\t}\n\t\tif ec.Directives.Range == nil {\n\t\t\tvar zeroVal *int\n\t\t\treturn zeroVal, errors.New(\"directive range is not implemented\")\n\t\t}\n\t\treturn ec.Directives.Range(ctx, rawArgs, directive0, min, nil)\n\t}\n\n\ttmp, err := directive1(ctx)\n\tif err != nil {\n\t\tvar zeroVal *int\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(*int); ok {\n\t\treturn data, nil\n\t} else if tmp == nil {\n\t\tvar zeroVal *int\n\t\treturn zeroVal, nil\n\t} else {\n\t\tvar zeroVal *int\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from directive, should be *int`, tmp))\n\t}\n}\n\nfunc (ec *executionContext) field_Query_directiveNullableArg_argsArg3(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (*string, error) {\n\tif _, ok := rawArgs[\"arg3\"]; !ok {\n\t\tvar zeroVal *string\n\t\treturn zeroVal, nil\n\t}\n\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"arg3\"))\n\tdirective0 := func(ctx context.Context) (any, error) {\n\t\ttmp, ok := rawArgs[\"arg3\"]\n\t\tif !ok {\n\t\t\tvar zeroVal *string\n\t\t\treturn zeroVal, nil\n\t\t}\n\t\treturn ec.unmarshalOString2ᚖstring(ctx, tmp)\n\t}\n\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\tif ec.Directives.ToNull == nil {\n\t\t\tvar zeroVal *string\n\t\t\treturn zeroVal, errors.New(\"directive toNull is not implemented\")\n\t\t}\n\t\treturn ec.Directives.ToNull(ctx, rawArgs, directive0)\n\t}\n\n\ttmp, err := directive1(ctx)\n\tif err != nil {\n\t\tvar zeroVal *string\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(*string); ok {\n\t\treturn data, nil\n\t} else if tmp == nil {\n\t\tvar zeroVal *string\n\t\treturn zeroVal, nil\n\t} else {\n\t\tvar zeroVal *string\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from directive, should be *string`, tmp))\n\t}\n}\n\nfunc (ec *executionContext) field_Query_directiveSingleNullableArg_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\n\targ0, err := ec.field_Query_directiveSingleNullableArg_argsArg1(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg1\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_directiveSingleNullableArg_argsArg1(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (*string, error) {\n\tif _, ok := rawArgs[\"arg1\"]; !ok {\n\t\tvar zeroVal *string\n\t\treturn zeroVal, nil\n\t}\n\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"arg1\"))\n\tdirective0 := func(ctx context.Context) (any, error) {\n\t\ttmp, ok := rawArgs[\"arg1\"]\n\t\tif !ok {\n\t\t\tvar zeroVal *string\n\t\t\treturn zeroVal, nil\n\t\t}\n\t\treturn ec.unmarshalOString2ᚖstring(ctx, tmp)\n\t}\n\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\tvalue, err := ec.unmarshalNString2string(ctx, \"test\")\n\t\tif err != nil {\n\t\t\tvar zeroVal *string\n\t\t\treturn zeroVal, err\n\t\t}\n\t\tif ec.Directives.Populate == nil {\n\t\t\tvar zeroVal *string\n\t\t\treturn zeroVal, errors.New(\"directive populate is not implemented\")\n\t\t}\n\t\treturn ec.Directives.Populate(ctx, rawArgs, directive0, value)\n\t}\n\tdirective2 := func(ctx context.Context) (any, error) {\n\t\tif ec.Directives.Noop == nil {\n\t\t\tvar zeroVal *string\n\t\t\treturn zeroVal, errors.New(\"directive noop is not implemented\")\n\t\t}\n\t\treturn ec.Directives.Noop(ctx, rawArgs, directive1)\n\t}\n\n\ttmp, err := directive2(ctx)\n\tif err != nil {\n\t\tvar zeroVal *string\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(*string); ok {\n\t\treturn data, nil\n\t} else if tmp == nil {\n\t\tvar zeroVal *string\n\t\treturn zeroVal, nil\n\t} else {\n\t\tvar zeroVal *string\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from directive, should be *string`, tmp))\n\t}\n}\n\nfunc (ec *executionContext) field_Query_enumInInput_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"input\", ec.unmarshalOInputWithEnumValue2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐInputWithEnumValue)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"input\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_fallback_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"arg\", ec.unmarshalNFallbackToStringEncoding2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐFallbackToStringEncoding)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_fieldWithDeprecatedArg_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"oldArg\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"oldArg\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"newArg\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"newArg\"] = arg1\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_filterProducts_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"query\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"query\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"category\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"category\"] = arg1\n\targ2, err := graphql.ProcessArgField(ctx, rawArgs, \"minPrice\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"minPrice\"] = arg2\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_findProducts_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"query\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"query\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"category\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"category\"] = arg1\n\targ2, err := graphql.ProcessArgField(ctx, rawArgs, \"minPrice\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"minPrice\"] = arg2\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_inputNullableSlice_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"arg\", ec.unmarshalOString2ᚕstringᚄ)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_inputOmittable_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"arg\", ec.unmarshalNOmittableInput2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐOmittableInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_inputSlice_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"arg\", ec.unmarshalNString2ᚕstringᚄ)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_mapInput_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"input\", ec.unmarshalOChanges2map)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"input\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_mapNestedMapSlice_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"input\", ec.unmarshalOMapNestedMapSliceInput2map)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"input\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_mapNestedStringInterface_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"in\", ec.unmarshalONestedMapInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐNestedMapInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"in\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_mapStringInterface_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"in\", ec.unmarshalOMapStringInterfaceInput2map)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"in\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_nestedInputs_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"input\", ec.unmarshalOOuterInput2ᚕᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐOuterInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"input\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_nullableArg_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"arg\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_recursive_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"input\", ec.unmarshalORecursiveInputSlice2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐRecursiveInputSlice)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"input\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_searchMixed_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"query\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"query\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"category\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"category\"] = arg1\n\targ2, err := graphql.ProcessArgField(ctx, rawArgs, \"minPrice\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"minPrice\"] = arg2\n\targ3, err := graphql.ProcessArgField(ctx, rawArgs, \"limit\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"limit\"] = arg3\n\targ4, err := graphql.ProcessArgField(ctx, rawArgs, \"offset\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"offset\"] = arg4\n\targ5, err := graphql.ProcessArgField(ctx, rawArgs, \"sortBy\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"sortBy\"] = arg5\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_searchProductsNormal_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"filters\", ec.unmarshalOSearchFilters2map)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"filters\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_searchProducts_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"query\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"query\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"category\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"category\"] = arg1\n\targ2, err := graphql.ProcessArgField(ctx, rawArgs, \"minPrice\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"minPrice\"] = arg2\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_searchRequired_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"age\", ec.unmarshalNInt2int)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"age\"] = arg1\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_searchWithDefaults_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"query\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"query\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"limit\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"limit\"] = arg1\n\targ2, err := graphql.ProcessArgField(ctx, rawArgs, \"includeArchived\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeArchived\"] = arg2\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_searchWithDirectives_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"oldField\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"oldField\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"newField\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"newField\"] = arg1\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_user_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"id\", ec.unmarshalNInt2int)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"id\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Subscription_directiveArg_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\n\targ0, err := ec.field_Subscription_directiveArg_argsArg(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Subscription_directiveArg_argsArg(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (string, error) {\n\tif _, ok := rawArgs[\"arg\"]; !ok {\n\t\tvar zeroVal string\n\t\treturn zeroVal, nil\n\t}\n\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"arg\"))\n\tdirective0 := func(ctx context.Context) (any, error) {\n\t\ttmp, ok := rawArgs[\"arg\"]\n\t\tif !ok {\n\t\t\tvar zeroVal string\n\t\t\treturn zeroVal, nil\n\t\t}\n\t\treturn ec.unmarshalNString2string(ctx, tmp)\n\t}\n\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\tmin, err := ec.unmarshalNInt2int(ctx, 1)\n\t\tif err != nil {\n\t\t\tvar zeroVal string\n\t\t\treturn zeroVal, err\n\t\t}\n\t\tmax, err := ec.unmarshalOInt2ᚖint(ctx, 255)\n\t\tif err != nil {\n\t\t\tvar zeroVal string\n\t\t\treturn zeroVal, err\n\t\t}\n\t\tmessage, err := ec.unmarshalOString2ᚖstring(ctx, \"invalid length\")\n\t\tif err != nil {\n\t\t\tvar zeroVal string\n\t\t\treturn zeroVal, err\n\t\t}\n\t\tif ec.Directives.Length == nil {\n\t\t\tvar zeroVal string\n\t\t\treturn zeroVal, errors.New(\"directive length is not implemented\")\n\t\t}\n\t\treturn ec.Directives.Length(ctx, rawArgs, directive0, min, max, message)\n\t}\n\n\ttmp, err := directive1(ctx)\n\tif err != nil {\n\t\tvar zeroVal string\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(string); ok {\n\t\treturn data, nil\n\t} else {\n\t\tvar zeroVal string\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from directive, should be string`, tmp))\n\t}\n}\n\nfunc (ec *executionContext) field_Subscription_directiveNullableArg_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\n\targ0, err := ec.field_Subscription_directiveNullableArg_argsArg(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg\"] = arg0\n\n\targ1, err := ec.field_Subscription_directiveNullableArg_argsArg2(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg2\"] = arg1\n\n\targ2, err := ec.field_Subscription_directiveNullableArg_argsArg3(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"arg3\"] = arg2\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Subscription_directiveNullableArg_argsArg(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (*int, error) {\n\tif _, ok := rawArgs[\"arg\"]; !ok {\n\t\tvar zeroVal *int\n\t\treturn zeroVal, nil\n\t}\n\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"arg\"))\n\tdirective0 := func(ctx context.Context) (any, error) {\n\t\ttmp, ok := rawArgs[\"arg\"]\n\t\tif !ok {\n\t\t\tvar zeroVal *int\n\t\t\treturn zeroVal, nil\n\t\t}\n\t\treturn ec.unmarshalOInt2ᚖint(ctx, tmp)\n\t}\n\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\tmin, err := ec.unmarshalOInt2ᚖint(ctx, 0)\n\t\tif err != nil {\n\t\t\tvar zeroVal *int\n\t\t\treturn zeroVal, err\n\t\t}\n\t\tif ec.Directives.Range == nil {\n\t\t\tvar zeroVal *int\n\t\t\treturn zeroVal, errors.New(\"directive range is not implemented\")\n\t\t}\n\t\treturn ec.Directives.Range(ctx, rawArgs, directive0, min, nil)\n\t}\n\n\ttmp, err := directive1(ctx)\n\tif err != nil {\n\t\tvar zeroVal *int\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(*int); ok {\n\t\treturn data, nil\n\t} else if tmp == nil {\n\t\tvar zeroVal *int\n\t\treturn zeroVal, nil\n\t} else {\n\t\tvar zeroVal *int\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from directive, should be *int`, tmp))\n\t}\n}\n\nfunc (ec *executionContext) field_Subscription_directiveNullableArg_argsArg2(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (*int, error) {\n\tif _, ok := rawArgs[\"arg2\"]; !ok {\n\t\tvar zeroVal *int\n\t\treturn zeroVal, nil\n\t}\n\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"arg2\"))\n\tdirective0 := func(ctx context.Context) (any, error) {\n\t\ttmp, ok := rawArgs[\"arg2\"]\n\t\tif !ok {\n\t\t\tvar zeroVal *int\n\t\t\treturn zeroVal, nil\n\t\t}\n\t\treturn ec.unmarshalOInt2ᚖint(ctx, tmp)\n\t}\n\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\tmin, err := ec.unmarshalOInt2ᚖint(ctx, 0)\n\t\tif err != nil {\n\t\t\tvar zeroVal *int\n\t\t\treturn zeroVal, err\n\t\t}\n\t\tif ec.Directives.Range == nil {\n\t\t\tvar zeroVal *int\n\t\t\treturn zeroVal, errors.New(\"directive range is not implemented\")\n\t\t}\n\t\treturn ec.Directives.Range(ctx, rawArgs, directive0, min, nil)\n\t}\n\n\ttmp, err := directive1(ctx)\n\tif err != nil {\n\t\tvar zeroVal *int\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(*int); ok {\n\t\treturn data, nil\n\t} else if tmp == nil {\n\t\tvar zeroVal *int\n\t\treturn zeroVal, nil\n\t} else {\n\t\tvar zeroVal *int\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from directive, should be *int`, tmp))\n\t}\n}\n\nfunc (ec *executionContext) field_Subscription_directiveNullableArg_argsArg3(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (*string, error) {\n\tif _, ok := rawArgs[\"arg3\"]; !ok {\n\t\tvar zeroVal *string\n\t\treturn zeroVal, nil\n\t}\n\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"arg3\"))\n\tdirective0 := func(ctx context.Context) (any, error) {\n\t\ttmp, ok := rawArgs[\"arg3\"]\n\t\tif !ok {\n\t\t\tvar zeroVal *string\n\t\t\treturn zeroVal, nil\n\t\t}\n\t\treturn ec.unmarshalOString2ᚖstring(ctx, tmp)\n\t}\n\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\tif ec.Directives.ToNull == nil {\n\t\t\tvar zeroVal *string\n\t\t\treturn zeroVal, errors.New(\"directive toNull is not implemented\")\n\t\t}\n\t\treturn ec.Directives.ToNull(ctx, rawArgs, directive0)\n\t}\n\n\ttmp, err := directive1(ctx)\n\tif err != nil {\n\t\tvar zeroVal *string\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(*string); ok {\n\t\treturn data, nil\n\t} else if tmp == nil {\n\t\tvar zeroVal *string\n\t\treturn zeroVal, nil\n\t} else {\n\t\tvar zeroVal *string\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from directive, should be *string`, tmp))\n\t}\n}\n\nfunc (ec *executionContext) field_User_pets_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"limit\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"limit\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_ValidType_validArgs_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"break\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"break\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"default\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"default\"] = arg1\n\targ2, err := graphql.ProcessArgField(ctx, rawArgs, \"func\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"func\"] = arg2\n\targ3, err := graphql.ProcessArgField(ctx, rawArgs, \"interface\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"interface\"] = arg3\n\targ4, err := graphql.ProcessArgField(ctx, rawArgs, \"select\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"select\"] = arg4\n\targ5, err := graphql.ProcessArgField(ctx, rawArgs, \"case\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"case\"] = arg5\n\targ6, err := graphql.ProcessArgField(ctx, rawArgs, \"defer\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"defer\"] = arg6\n\targ7, err := graphql.ProcessArgField(ctx, rawArgs, \"go\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"go\"] = arg7\n\targ8, err := graphql.ProcessArgField(ctx, rawArgs, \"map\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"map\"] = arg8\n\targ9, err := graphql.ProcessArgField(ctx, rawArgs, \"struct\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"struct\"] = arg9\n\targ10, err := graphql.ProcessArgField(ctx, rawArgs, \"chan\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"chan\"] = arg10\n\targ11, err := graphql.ProcessArgField(ctx, rawArgs, \"else\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"else\"] = arg11\n\targ12, err := graphql.ProcessArgField(ctx, rawArgs, \"goto\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"goto\"] = arg12\n\targ13, err := graphql.ProcessArgField(ctx, rawArgs, \"package\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"package\"] = arg13\n\targ14, err := graphql.ProcessArgField(ctx, rawArgs, \"switch\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"switch\"] = arg14\n\targ15, err := graphql.ProcessArgField(ctx, rawArgs, \"const\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"const\"] = arg15\n\targ16, err := graphql.ProcessArgField(ctx, rawArgs, \"fallthrough\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"fallthrough\"] = arg16\n\targ17, err := graphql.ProcessArgField(ctx, rawArgs, \"if\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"if\"] = arg17\n\targ18, err := graphql.ProcessArgField(ctx, rawArgs, \"range\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"range\"] = arg18\n\targ19, err := graphql.ProcessArgField(ctx, rawArgs, \"type\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"type\"] = arg19\n\targ20, err := graphql.ProcessArgField(ctx, rawArgs, \"continue\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"continue\"] = arg20\n\targ21, err := graphql.ProcessArgField(ctx, rawArgs, \"for\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"for\"] = arg21\n\targ22, err := graphql.ProcessArgField(ctx, rawArgs, \"import\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"import\"] = arg22\n\targ23, err := graphql.ProcessArgField(ctx, rawArgs, \"return\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"return\"] = arg23\n\targ24, err := graphql.ProcessArgField(ctx, rawArgs, \"var\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"var\"] = arg24\n\targ25, err := graphql.ProcessArgField(ctx, rawArgs, \"_\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"_\"] = arg25\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_ValidType_validInputKeywords_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"input\", ec.unmarshalOValidInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐValidInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"input\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_VariadicModel_value_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"rank\", ec.unmarshalNInt2int)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"rank\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_WrappedMap_get_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"key\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"key\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_WrappedSlice_get_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"idx\", ec.unmarshalNInt2int)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"idx\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\nfunc (ec *executionContext) _fieldMiddleware(ctx context.Context, obj any, next graphql.Resolver) graphql.Resolver {\n\tfc := graphql.GetFieldContext(ctx)\n\tfor _, d := range fc.Field.Directives {\n\t\tswitch d.Name {\n\t\tcase \"logged\":\n\t\t\trawArgs := d.ArgumentMap(ec.Variables)\n\t\t\targs, err := ec.dir_logged_args(ctx, rawArgs)\n\t\t\tif err != nil {\n\t\t\t\tec.Error(ctx, err)\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tn := next\n\t\t\tnext = func(ctx context.Context) (any, error) {\n\t\t\t\tif ec.Directives.Logged == nil {\n\t\t\t\t\treturn nil, errors.New(\"directive logged is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Logged(ctx, obj, n, args[\"id\"].(string))\n\t\t\t}\n\t\t}\n\t}\n\treturn next\n}\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _A_id(ctx context.Context, field graphql.CollectedField, obj *A) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_A_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_A_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"A\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _AIt_id(ctx context.Context, field graphql.CollectedField, obj *AIt) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_AIt_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_AIt_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"AIt\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _AbIt_id(ctx context.Context, field graphql.CollectedField, obj *AbIt) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_AbIt_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_AbIt_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"AbIt\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Autobind_int(ctx context.Context, field graphql.CollectedField, obj *Autobind) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Autobind_int,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Int, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Autobind_int(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Autobind\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Autobind_int32(ctx context.Context, field graphql.CollectedField, obj *Autobind) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Autobind_int32,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Int32, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInt2int32,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Autobind_int32(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Autobind\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Autobind_int64(ctx context.Context, field graphql.CollectedField, obj *Autobind) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Autobind_int64,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Int64, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInt2int64,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Autobind_int64(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Autobind\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Autobind_idStr(ctx context.Context, field graphql.CollectedField, obj *Autobind) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Autobind_idStr,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IdStr, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Autobind_idStr(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Autobind\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Autobind_idInt(ctx context.Context, field graphql.CollectedField, obj *Autobind) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Autobind_idInt,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IdInt, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNID2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Autobind_idInt(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Autobind\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _B_id(ctx context.Context, field graphql.CollectedField, obj *B) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_B_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_B_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"B\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _BackedByInterface_id(ctx context.Context, field graphql.CollectedField, obj BackedByInterface) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_BackedByInterface_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.BackedByInterface().ID(ctx, obj)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_BackedByInterface_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"BackedByInterface\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _BackedByInterface_thisShouldBind(ctx context.Context, field graphql.CollectedField, obj BackedByInterface) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_BackedByInterface_thisShouldBind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ThisShouldBind(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_BackedByInterface_thisShouldBind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"BackedByInterface\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _BackedByInterface_thisShouldBindWithError(ctx context.Context, field graphql.CollectedField, obj BackedByInterface) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_BackedByInterface_thisShouldBindWithError,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ThisShouldBindWithError()\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_BackedByInterface_thisShouldBindWithError(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"BackedByInterface\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Cat_species(ctx context.Context, field graphql.CollectedField, obj *Cat) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Cat_species,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Species, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Cat_species(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Cat\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Cat_size(ctx context.Context, field graphql.CollectedField, obj *Cat) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Cat_size,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Size, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNSize2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐSize,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Cat_size(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Cat\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"height\":\n\t\t\t\treturn ec.fieldContext_Size_height(ctx, field)\n\t\t\tcase \"weight\":\n\t\t\t\treturn ec.fieldContext_Size_weight(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Size\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Cat_catBreed(ctx context.Context, field graphql.CollectedField, obj *Cat) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Cat_catBreed,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.CatBreed, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Cat_catBreed(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Cat\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _CheckIssue896_id(ctx context.Context, field graphql.CollectedField, obj *CheckIssue896) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_CheckIssue896_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOInt2ᚖint,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_CheckIssue896_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"CheckIssue896\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Circle_radius(ctx context.Context, field graphql.CollectedField, obj *Circle) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Circle_radius,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Radius, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOFloat2float64,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Circle_radius(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Circle\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Float does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Circle_area(ctx context.Context, field graphql.CollectedField, obj *Circle) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Circle_area,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Area(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOFloat2float64,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Circle_area(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Circle\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Float does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Circle_coordinates(ctx context.Context, field graphql.CollectedField, obj *Circle) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Circle_coordinates,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Coordinates, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOCoordinates2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐCoordinates,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Circle_coordinates(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Circle\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"x\":\n\t\t\t\treturn ec.fieldContext_Coordinates_x(ctx, field)\n\t\t\tcase \"y\":\n\t\t\t\treturn ec.fieldContext_Coordinates_y(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Coordinates\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ConcreteNodeA_id(ctx context.Context, field graphql.CollectedField, obj *ConcreteNodeA) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ConcreteNodeA_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ConcreteNodeA_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ConcreteNodeA\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ConcreteNodeA_child(ctx context.Context, field graphql.CollectedField, obj *ConcreteNodeA) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ConcreteNodeA_child,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Child()\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNNode2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐNode,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ConcreteNodeA_child(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ConcreteNodeA\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"FieldContext.Child cannot be called on type INTERFACE\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ConcreteNodeA_name(ctx context.Context, field graphql.CollectedField, obj *ConcreteNodeA) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ConcreteNodeA_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ConcreteNodeA_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ConcreteNodeA\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ConcreteNodeInterface_id(ctx context.Context, field graphql.CollectedField, obj ConcreteNodeInterface) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ConcreteNodeInterface_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ConcreteNodeInterface_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ConcreteNodeInterface\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ConcreteNodeInterface_child(ctx context.Context, field graphql.CollectedField, obj ConcreteNodeInterface) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ConcreteNodeInterface_child,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Child()\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNNode2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐNode,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ConcreteNodeInterface_child(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ConcreteNodeInterface\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"FieldContext.Child cannot be called on type INTERFACE\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Content_Post_foo(ctx context.Context, field graphql.CollectedField, obj *ContentPost) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Content_Post_foo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Foo, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Content_Post_foo(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Content_Post\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Content_User_foo(ctx context.Context, field graphql.CollectedField, obj *ContentUser) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Content_User_foo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Foo, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Content_User_foo(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Content_User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Coordinates_x(ctx context.Context, field graphql.CollectedField, obj *Coordinates) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Coordinates_x,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.X, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNFloat2float64,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Coordinates_x(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Coordinates\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Float does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Coordinates_y(ctx context.Context, field graphql.CollectedField, obj *Coordinates) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Coordinates_y,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Y, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNFloat2float64,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Coordinates_y(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Coordinates\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Float does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _DefaultParametersMirror_falsyBoolean(ctx context.Context, field graphql.CollectedField, obj *DefaultParametersMirror) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_DefaultParametersMirror_falsyBoolean,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.FalsyBoolean, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOBoolean2ᚖbool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_DefaultParametersMirror_falsyBoolean(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"DefaultParametersMirror\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _DefaultParametersMirror_truthyBoolean(ctx context.Context, field graphql.CollectedField, obj *DefaultParametersMirror) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_DefaultParametersMirror_truthyBoolean,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.TruthyBoolean, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOBoolean2ᚖbool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_DefaultParametersMirror_truthyBoolean(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"DefaultParametersMirror\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _DeferModel_id(ctx context.Context, field graphql.CollectedField, obj *DeferModel) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_DeferModel_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_DeferModel_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"DeferModel\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _DeferModel_name(ctx context.Context, field graphql.CollectedField, obj *DeferModel) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_DeferModel_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_DeferModel_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"DeferModel\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _DeferModel_values(ctx context.Context, field graphql.CollectedField, obj *DeferModel) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_DeferModel_values,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.DeferModel().Values(ctx, obj)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_DeferModel_values(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"DeferModel\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Dog_species(ctx context.Context, field graphql.CollectedField, obj *Dog) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Dog_species,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Species, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Dog_species(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Dog\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Dog_size(ctx context.Context, field graphql.CollectedField, obj *Dog) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Dog_size,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Size, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNSize2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐSize,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Dog_size(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Dog\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"height\":\n\t\t\t\treturn ec.fieldContext_Size_height(ctx, field)\n\t\t\tcase \"weight\":\n\t\t\t\treturn ec.fieldContext_Size_weight(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Size\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Dog_dogBreed(ctx context.Context, field graphql.CollectedField, obj *Dog) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Dog_dogBreed,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DogBreed, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Dog_dogBreed(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Dog\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _EmbeddedCase1_exportedEmbeddedPointerExportedMethod(ctx context.Context, field graphql.CollectedField, obj *EmbeddedCase1) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_EmbeddedCase1_exportedEmbeddedPointerExportedMethod,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ExportedEmbeddedPointerExportedMethod(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_EmbeddedCase1_exportedEmbeddedPointerExportedMethod(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"EmbeddedCase1\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _EmbeddedCase2_unexportedEmbeddedPointerExportedMethod(ctx context.Context, field graphql.CollectedField, obj *EmbeddedCase2) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_EmbeddedCase2_unexportedEmbeddedPointerExportedMethod,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.UnexportedEmbeddedPointerExportedMethod(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_EmbeddedCase2_unexportedEmbeddedPointerExportedMethod(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"EmbeddedCase2\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _EmbeddedCase3_unexportedEmbeddedInterfaceExportedMethod(ctx context.Context, field graphql.CollectedField, obj *EmbeddedCase3) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_EmbeddedCase3_unexportedEmbeddedInterfaceExportedMethod,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.UnexportedEmbeddedInterfaceExportedMethod(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_EmbeddedCase3_unexportedEmbeddedInterfaceExportedMethod(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"EmbeddedCase3\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _EmbeddedDefaultScalar_value(ctx context.Context, field graphql.CollectedField, obj *EmbeddedDefaultScalar) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_EmbeddedDefaultScalar_value,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Value, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalODefaultScalarImplementation2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_EmbeddedDefaultScalar_value(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"EmbeddedDefaultScalar\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type DefaultScalarImplementation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _EmbeddedPointer_ID(ctx context.Context, field graphql.CollectedField, obj *EmbeddedPointerModel) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_EmbeddedPointer_ID,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2string,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_EmbeddedPointer_ID(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"EmbeddedPointer\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _EmbeddedPointer_Title(ctx context.Context, field graphql.CollectedField, obj *EmbeddedPointerModel) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_EmbeddedPointer_Title,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Title, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2string,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_EmbeddedPointer_Title(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"EmbeddedPointer\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Error_id(ctx context.Context, field graphql.CollectedField, obj *Error) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Error_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Error_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Error\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Error_errorOnNonRequiredField(ctx context.Context, field graphql.CollectedField, obj *Error) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Error_errorOnNonRequiredField,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ErrorOnNonRequiredField()\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2string,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Error_errorOnNonRequiredField(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Error\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Error_errorOnRequiredField(ctx context.Context, field graphql.CollectedField, obj *Error) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Error_errorOnRequiredField,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ErrorOnRequiredField()\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Error_errorOnRequiredField(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Error\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Error_nilOnRequiredField(ctx context.Context, field graphql.CollectedField, obj *Error) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Error_nilOnRequiredField,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.NilOnRequiredField(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2ᚖstring,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Error_nilOnRequiredField(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Error\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Errors_a(ctx context.Context, field graphql.CollectedField, obj *Errors) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Errors_a,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Errors().A(ctx, obj)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNError2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐError,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Errors_a(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Errors\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Error_id(ctx, field)\n\t\t\tcase \"errorOnNonRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnNonRequiredField(ctx, field)\n\t\t\tcase \"errorOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnRequiredField(ctx, field)\n\t\t\tcase \"nilOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_nilOnRequiredField(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Error\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Errors_b(ctx context.Context, field graphql.CollectedField, obj *Errors) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Errors_b,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Errors().B(ctx, obj)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNError2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐError,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Errors_b(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Errors\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Error_id(ctx, field)\n\t\t\tcase \"errorOnNonRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnNonRequiredField(ctx, field)\n\t\t\tcase \"errorOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnRequiredField(ctx, field)\n\t\t\tcase \"nilOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_nilOnRequiredField(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Error\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Errors_c(ctx context.Context, field graphql.CollectedField, obj *Errors) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Errors_c,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Errors().C(ctx, obj)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNError2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐError,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Errors_c(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Errors\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Error_id(ctx, field)\n\t\t\tcase \"errorOnNonRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnNonRequiredField(ctx, field)\n\t\t\tcase \"errorOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnRequiredField(ctx, field)\n\t\t\tcase \"nilOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_nilOnRequiredField(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Error\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Errors_d(ctx context.Context, field graphql.CollectedField, obj *Errors) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Errors_d,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Errors().D(ctx, obj)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNError2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐError,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Errors_d(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Errors\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Error_id(ctx, field)\n\t\t\tcase \"errorOnNonRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnNonRequiredField(ctx, field)\n\t\t\tcase \"errorOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnRequiredField(ctx, field)\n\t\t\tcase \"nilOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_nilOnRequiredField(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Error\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Errors_e(ctx context.Context, field graphql.CollectedField, obj *Errors) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Errors_e,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Errors().E(ctx, obj)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNError2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐError,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Errors_e(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Errors\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Error_id(ctx, field)\n\t\t\tcase \"errorOnNonRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnNonRequiredField(ctx, field)\n\t\t\tcase \"errorOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnRequiredField(ctx, field)\n\t\t\tcase \"nilOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_nilOnRequiredField(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Error\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _FieldsOrderPayload_firstFieldValue(ctx context.Context, field graphql.CollectedField, obj *FieldsOrderPayload) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_FieldsOrderPayload_firstFieldValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.FirstFieldValue, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_FieldsOrderPayload_firstFieldValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"FieldsOrderPayload\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ForcedResolver_field(ctx context.Context, field graphql.CollectedField, obj *ForcedResolver) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ForcedResolver_field,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.ForcedResolver().Field(ctx, obj)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOCircle2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐCircle,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ForcedResolver_field(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ForcedResolver\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"radius\":\n\t\t\t\treturn ec.fieldContext_Circle_radius(ctx, field)\n\t\t\tcase \"area\":\n\t\t\t\treturn ec.fieldContext_Circle_area(ctx, field)\n\t\t\tcase \"coordinates\":\n\t\t\t\treturn ec.fieldContext_Circle_coordinates(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Circle\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Horse_species(ctx context.Context, field graphql.CollectedField, obj *Horse) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Horse_species,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Species, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Horse_species(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Horse\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Horse_size(ctx context.Context, field graphql.CollectedField, obj *Horse) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Horse_size,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Size, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNSize2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐSize,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Horse_size(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Horse\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"height\":\n\t\t\t\treturn ec.fieldContext_Size_height(ctx, field)\n\t\t\tcase \"weight\":\n\t\t\t\treturn ec.fieldContext_Size_weight(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Size\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Horse_horseBreed(ctx context.Context, field graphql.CollectedField, obj *Horse) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Horse_horseBreed,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.HorseBreed, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Horse_horseBreed(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Horse\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _InnerObject_id(ctx context.Context, field graphql.CollectedField, obj *InnerObject) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_InnerObject_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_InnerObject_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"InnerObject\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _InvalidIdentifier_id(ctx context.Context, field graphql.CollectedField, obj *invalid_packagename.InvalidIdentifier) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_InvalidIdentifier_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_InvalidIdentifier_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"InvalidIdentifier\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _It_id(ctx context.Context, field graphql.CollectedField, obj *introspection1.It) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_It_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_It_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"It\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _LoopA_b(ctx context.Context, field graphql.CollectedField, obj *LoopA) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_LoopA_b,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.B, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNLoopB2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐLoopB,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_LoopA_b(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"LoopA\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"a\":\n\t\t\t\treturn ec.fieldContext_LoopB_a(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type LoopB\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _LoopB_a(ctx context.Context, field graphql.CollectedField, obj *LoopB) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_LoopB_a,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.A, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNLoopA2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐLoopA,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_LoopB_a(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"LoopB\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"b\":\n\t\t\t\treturn ec.fieldContext_LoopA_b(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type LoopA\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Map_id(ctx context.Context, field graphql.CollectedField, obj *Map) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Map_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Map_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Map\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MapNested_value(ctx context.Context, field graphql.CollectedField, obj *MapNested) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MapNested_value,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Value, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNCustomScalar2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐCustomScalar,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MapNested_value(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MapNested\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type CustomScalar does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MapStringInterfaceType_a(ctx context.Context, field graphql.CollectedField, obj map[string]any) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MapStringInterfaceType_a,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tswitch v := obj[\"a\"].(type) {\n\t\t\tcase *string:\n\t\t\t\treturn v, nil\n\t\t\tcase string:\n\t\t\t\treturn &v, nil\n\t\t\tcase nil:\n\t\t\t\treturn (*string)(nil), nil\n\t\t\tdefault:\n\t\t\t\treturn nil, fmt.Errorf(\"unexpected type %T for field %s\", v, \"a\")\n\t\t\t}\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MapStringInterfaceType_a(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MapStringInterfaceType\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MapStringInterfaceType_b(ctx context.Context, field graphql.CollectedField, obj map[string]any) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MapStringInterfaceType_b,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tswitch v := obj[\"b\"].(type) {\n\t\t\tcase *int:\n\t\t\t\treturn v, nil\n\t\t\tcase int:\n\t\t\t\treturn &v, nil\n\t\t\tcase nil:\n\t\t\t\treturn (*int)(nil), nil\n\t\t\tdefault:\n\t\t\t\treturn nil, fmt.Errorf(\"unexpected type %T for field %s\", v, \"b\")\n\t\t\t}\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOInt2ᚖint,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MapStringInterfaceType_b(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MapStringInterfaceType\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MapStringInterfaceType_c(ctx context.Context, field graphql.CollectedField, obj map[string]any) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MapStringInterfaceType_c,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tswitch v := obj[\"c\"].(type) {\n\t\t\tcase *CustomScalar:\n\t\t\t\treturn v, nil\n\t\t\tcase CustomScalar:\n\t\t\t\treturn &v, nil\n\t\t\tcase nil:\n\t\t\t\treturn (*CustomScalar)(nil), nil\n\t\t\tdefault:\n\t\t\t\treturn nil, fmt.Errorf(\"unexpected type %T for field %s\", v, \"c\")\n\t\t\t}\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOCustomScalar2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐCustomScalar,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MapStringInterfaceType_c(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MapStringInterfaceType\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type CustomScalar does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MapStringInterfaceType_nested(ctx context.Context, field graphql.CollectedField, obj map[string]any) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MapStringInterfaceType_nested,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tswitch v := obj[\"nested\"].(type) {\n\t\t\tcase *MapNested:\n\t\t\t\treturn v, nil\n\t\t\tcase MapNested:\n\t\t\t\treturn &v, nil\n\t\t\tcase nil:\n\t\t\t\treturn (*MapNested)(nil), nil\n\t\t\tdefault:\n\t\t\t\treturn nil, fmt.Errorf(\"unexpected type %T for field %s\", v, \"nested\")\n\t\t\t}\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOMapNested2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐMapNested,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MapStringInterfaceType_nested(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MapStringInterfaceType\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"value\":\n\t\t\t\treturn ec.fieldContext_MapNested_value(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type MapNested\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ModelMethods_resolverField(ctx context.Context, field graphql.CollectedField, obj *ModelMethods) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ModelMethods_resolverField,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.ModelMethods().ResolverField(ctx, obj)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ModelMethods_resolverField(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ModelMethods\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ModelMethods_noContext(ctx context.Context, field graphql.CollectedField, obj *ModelMethods) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ModelMethods_noContext,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.NoContext(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ModelMethods_noContext(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ModelMethods\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ModelMethods_withContext(ctx context.Context, field graphql.CollectedField, obj *ModelMethods) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ModelMethods_withContext,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.WithContext(ctx), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ModelMethods_withContext(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ModelMethods\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Mutation_defaultInput(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Mutation_defaultInput,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Mutation().DefaultInput(ctx, fc.Args[\"input\"].(DefaultInput))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNDefaultParametersMirror2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐDefaultParametersMirror,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Mutation_defaultInput(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Mutation\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"falsyBoolean\":\n\t\t\t\treturn ec.fieldContext_DefaultParametersMirror_falsyBoolean(ctx, field)\n\t\t\tcase \"truthyBoolean\":\n\t\t\t\treturn ec.fieldContext_DefaultParametersMirror_truthyBoolean(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type DefaultParametersMirror\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Mutation_defaultInput_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Mutation_overrideValueViaInput(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Mutation_overrideValueViaInput,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Mutation().OverrideValueViaInput(ctx, fc.Args[\"input\"].(FieldsOrderInput))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNFieldsOrderPayload2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐFieldsOrderPayload,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Mutation_overrideValueViaInput(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Mutation\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"firstFieldValue\":\n\t\t\t\treturn ec.fieldContext_FieldsOrderPayload_firstFieldValue(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type FieldsOrderPayload\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Mutation_overrideValueViaInput_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Mutation_updateProduct(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Mutation_updateProduct,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Mutation().UpdateProduct(ctx, map[string]interface{}{\n\t\t\t\t\"id\":    fc.Args[\"id\"].(string),\n\t\t\t\t\"name\":  fc.Args[\"name\"].(*string),\n\t\t\t\t\"price\": fc.Args[\"price\"].(*float64),\n\t\t\t})\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Mutation_updateProduct(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Mutation\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Mutation_updateProduct_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Mutation_issue4053(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Mutation_issue4053,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Mutation().Issue4053(ctx, fc.Args[\"input\"].(*Issue4053Input1))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Mutation_issue4053(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Mutation\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Mutation_issue4053_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Mutation_updateSomething(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Mutation_updateSomething,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Mutation().UpdateSomething(ctx, fc.Args[\"input\"].(SpecialInput))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Mutation_updateSomething(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Mutation\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Mutation_updateSomething_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Mutation_updatePtrToPtr(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Mutation_updatePtrToPtr,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Mutation().UpdatePtrToPtr(ctx, fc.Args[\"input\"].(UpdatePtrToPtrOuter))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNPtrToPtrOuter2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPtrToPtrOuter,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Mutation_updatePtrToPtr(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Mutation\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_PtrToPtrOuter_name(ctx, field)\n\t\t\tcase \"inner\":\n\t\t\t\treturn ec.fieldContext_PtrToPtrOuter_inner(ctx, field)\n\t\t\tcase \"stupidInner\":\n\t\t\t\treturn ec.fieldContext_PtrToPtrOuter_stupidInner(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type PtrToPtrOuter\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Mutation_updatePtrToPtr_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ObjectDirectives_text(ctx context.Context, field graphql.CollectedField, obj *ObjectDirectives) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ObjectDirectives_text,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Text, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tmin, err := ec.unmarshalNInt2int(ctx, 0)\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal string\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tmax, err := ec.unmarshalOInt2ᚖint(ctx, 7)\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal string\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tmessage, err := ec.unmarshalOString2ᚖstring(ctx, \"not valid\")\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal string\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tif ec.Directives.Length == nil {\n\t\t\t\t\tvar zeroVal string\n\t\t\t\t\treturn zeroVal, errors.New(\"directive length is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Length(ctx, obj, directive0, min, max, message)\n\t\t\t}\n\n\t\t\tnext = directive1\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ObjectDirectives_text(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ObjectDirectives\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ObjectDirectives_nullableText(ctx context.Context, field graphql.CollectedField, obj *ObjectDirectives) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ObjectDirectives_nullableText,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.NullableText, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tif ec.Directives.ToNull == nil {\n\t\t\t\t\tvar zeroVal *string\n\t\t\t\t\treturn zeroVal, errors.New(\"directive toNull is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.ToNull(ctx, obj, directive0)\n\t\t\t}\n\n\t\t\tnext = directive1\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ObjectDirectives_nullableText(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ObjectDirectives\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ObjectDirectives_order(ctx context.Context, field graphql.CollectedField, obj *ObjectDirectives) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ObjectDirectives_order,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Order, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ObjectDirectives_order(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ObjectDirectives\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ObjectDirectivesWithCustomGoModel_nullableText(ctx context.Context, field graphql.CollectedField, obj *ObjectDirectivesWithCustomGoModel) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ObjectDirectivesWithCustomGoModel_nullableText,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.NullableText, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tif ec.Directives.ToNull == nil {\n\t\t\t\t\tvar zeroVal string\n\t\t\t\t\treturn zeroVal, errors.New(\"directive toNull is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.ToNull(ctx, obj, directive0)\n\t\t\t}\n\n\t\t\tnext = directive1\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2string,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ObjectDirectivesWithCustomGoModel_nullableText(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ObjectDirectivesWithCustomGoModel\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _OuterObject_inner(ctx context.Context, field graphql.CollectedField, obj *OuterObject) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_OuterObject_inner,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Inner, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInnerObject2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐInnerObject,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_OuterObject_inner(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"OuterObject\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_InnerObject_id(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type InnerObject\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _OverlappingFields_oneFoo(ctx context.Context, field graphql.CollectedField, obj *OverlappingFields) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_OverlappingFields_oneFoo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Foo, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_OverlappingFields_oneFoo(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"OverlappingFields\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _OverlappingFields_twoFoo(ctx context.Context, field graphql.CollectedField, obj *OverlappingFields) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_OverlappingFields_twoFoo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Foo, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_OverlappingFields_twoFoo(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"OverlappingFields\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _OverlappingFields_oldFoo(ctx context.Context, field graphql.CollectedField, obj *OverlappingFields) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_OverlappingFields_oldFoo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.OverlappingFields().OldFoo(ctx, obj)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_OverlappingFields_oldFoo(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"OverlappingFields\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _OverlappingFields_newFoo(ctx context.Context, field graphql.CollectedField, obj *OverlappingFields) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_OverlappingFields_newFoo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.NewFoo, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_OverlappingFields_newFoo(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"OverlappingFields\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _OverlappingFields_new_foo(ctx context.Context, field graphql.CollectedField, obj *OverlappingFields) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_OverlappingFields_new_foo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.NewFoo, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_OverlappingFields_new_foo(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"OverlappingFields\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Panics_fieldScalarMarshal(ctx context.Context, field graphql.CollectedField, obj *Panics) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Panics_fieldScalarMarshal,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Panics().FieldScalarMarshal(ctx, obj)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNMarshalPanic2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐMarshalPanicᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Panics_fieldScalarMarshal(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Panics\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type MarshalPanic does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Panics_fieldFuncMarshal(ctx context.Context, field graphql.CollectedField, obj *Panics) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Panics_fieldFuncMarshal,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.FieldFuncMarshal(ctx, fc.Args[\"u\"].([]MarshalPanic)), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNMarshalPanic2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐMarshalPanicᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Panics_fieldFuncMarshal(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Panics\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type MarshalPanic does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Panics_fieldFuncMarshal_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Panics_argUnmarshal(ctx context.Context, field graphql.CollectedField, obj *Panics) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Panics_argUnmarshal,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Panics().ArgUnmarshal(ctx, obj, fc.Args[\"u\"].([]MarshalPanic))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Panics_argUnmarshal(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Panics\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Panics_argUnmarshal_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Pet_id(ctx context.Context, field graphql.CollectedField, obj *Pet) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Pet_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Pet_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Pet\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Pet_friends(ctx context.Context, field graphql.CollectedField, obj *Pet) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Pet_friends,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Pet().Friends(ctx, obj, fc.Args[\"limit\"].(*int))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOPet2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPetᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Pet_friends(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Pet\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Pet_id(ctx, field)\n\t\t\tcase \"friends\":\n\t\t\t\treturn ec.fieldContext_Pet_friends(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Pet\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Pet_friends_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Primitive_value(ctx context.Context, field graphql.CollectedField, obj *Primitive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Primitive_value,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Primitive().Value(ctx, obj)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Primitive_value(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Primitive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Primitive_squared(ctx context.Context, field graphql.CollectedField, obj *Primitive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Primitive_squared,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Squared(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Primitive_squared(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Primitive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PrimitiveString_value(ctx context.Context, field graphql.CollectedField, obj *PrimitiveString) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PrimitiveString_value,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.PrimitiveString().Value(ctx, obj)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PrimitiveString_value(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PrimitiveString\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PrimitiveString_doubled(ctx context.Context, field graphql.CollectedField, obj *PrimitiveString) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PrimitiveString_doubled,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Doubled(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PrimitiveString_doubled(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PrimitiveString\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PrimitiveString_len(ctx context.Context, field graphql.CollectedField, obj *PrimitiveString) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PrimitiveString_len,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.PrimitiveString().Len(ctx, obj)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PrimitiveString_len(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PrimitiveString\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PtrToAnyContainer_ptrToAny(ctx context.Context, field graphql.CollectedField, obj *PtrToAnyContainer) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PtrToAnyContainer_ptrToAny,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PtrToAny, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOAny2ᚖinterface,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PtrToAnyContainer_ptrToAny(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PtrToAnyContainer\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Any does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PtrToAnyContainer_binding(ctx context.Context, field graphql.CollectedField, obj *PtrToAnyContainer) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PtrToAnyContainer_binding,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Binding(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOAny2ᚖinterface,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PtrToAnyContainer_binding(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PtrToAnyContainer\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Any does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PtrToPtrInner_key(ctx context.Context, field graphql.CollectedField, obj *PtrToPtrInner) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PtrToPtrInner_key,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Key, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PtrToPtrInner_key(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PtrToPtrInner\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PtrToPtrInner_value(ctx context.Context, field graphql.CollectedField, obj *PtrToPtrInner) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PtrToPtrInner_value,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Value, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PtrToPtrInner_value(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PtrToPtrInner\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PtrToPtrOuter_name(ctx context.Context, field graphql.CollectedField, obj *PtrToPtrOuter) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PtrToPtrOuter_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PtrToPtrOuter_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PtrToPtrOuter\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PtrToPtrOuter_inner(ctx context.Context, field graphql.CollectedField, obj *PtrToPtrOuter) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PtrToPtrOuter_inner,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Inner, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOPtrToPtrInner2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPtrToPtrInner,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PtrToPtrOuter_inner(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PtrToPtrOuter\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"key\":\n\t\t\t\treturn ec.fieldContext_PtrToPtrInner_key(ctx, field)\n\t\t\tcase \"value\":\n\t\t\t\treturn ec.fieldContext_PtrToPtrInner_value(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type PtrToPtrInner\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PtrToPtrOuter_stupidInner(ctx context.Context, field graphql.CollectedField, obj *PtrToPtrOuter) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PtrToPtrOuter_stupidInner,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.StupidInner, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOPtrToPtrInner2ᚖᚖᚖᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPtrToPtrInner,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PtrToPtrOuter_stupidInner(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PtrToPtrOuter\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"key\":\n\t\t\t\treturn ec.fieldContext_PtrToPtrInner_key(ctx, field)\n\t\t\tcase \"value\":\n\t\t\t\treturn ec.fieldContext_PtrToPtrInner_value(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type PtrToPtrInner\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PtrToSliceContainer_ptrToSlice(ctx context.Context, field graphql.CollectedField, obj *PtrToSliceContainer) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PtrToSliceContainer_ptrToSlice,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PtrToSlice, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖᚕstringᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PtrToSliceContainer_ptrToSlice(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PtrToSliceContainer\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_invalidIdentifier(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_invalidIdentifier,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().InvalidIdentifier(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOInvalidIdentifier2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚋinvalidᚑpackagenameᚐInvalidIdentifier,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_invalidIdentifier(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_InvalidIdentifier_id(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type InvalidIdentifier\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_collision(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_collision,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Collision(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOIt2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚋintrospectionᚐIt,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_collision(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_It_id(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type It\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_mapInput(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_mapInput,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().MapInput(ctx, fc.Args[\"input\"].(map[string]any))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOBoolean2ᚖbool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_mapInput(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_mapInput_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_recursive(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_recursive,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().Recursive(ctx, fc.Args[\"input\"].(*RecursiveInputSlice))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOBoolean2ᚖbool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_recursive(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_recursive_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_nestedInputs(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_nestedInputs,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().NestedInputs(ctx, fc.Args[\"input\"].([][]*OuterInput))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOBoolean2ᚖbool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_nestedInputs(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_nestedInputs_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_nestedOutputs(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_nestedOutputs,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().NestedOutputs(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOOuterObject2ᚕᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐOuterObject,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_nestedOutputs(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"inner\":\n\t\t\t\treturn ec.fieldContext_OuterObject_inner(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type OuterObject\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_modelMethods(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_modelMethods,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().ModelMethods(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOModelMethods2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐModelMethods,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_modelMethods(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"resolverField\":\n\t\t\t\treturn ec.fieldContext_ModelMethods_resolverField(ctx, field)\n\t\t\tcase \"noContext\":\n\t\t\t\treturn ec.fieldContext_ModelMethods_noContext(ctx, field)\n\t\t\tcase \"withContext\":\n\t\t\t\treturn ec.fieldContext_ModelMethods_withContext(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type ModelMethods\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_user(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_user,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().User(ctx, fc.Args[\"id\"].(int))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐUser,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_user(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_User_id(ctx, field)\n\t\t\tcase \"friends\":\n\t\t\t\treturn ec.fieldContext_User_friends(ctx, field)\n\t\t\tcase \"created\":\n\t\t\t\treturn ec.fieldContext_User_created(ctx, field)\n\t\t\tcase \"updated\":\n\t\t\t\treturn ec.fieldContext_User_updated(ctx, field)\n\t\t\tcase \"pets\":\n\t\t\t\treturn ec.fieldContext_User_pets(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type User\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_user_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_nullableArg(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_nullableArg,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().NullableArg(ctx, fc.Args[\"arg\"].(*int))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_nullableArg(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_nullableArg_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_inputSlice(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_inputSlice,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().InputSlice(ctx, fc.Args[\"arg\"].([]string))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_inputSlice(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_inputSlice_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_inputNullableSlice(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_inputNullableSlice,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().InputNullableSlice(ctx, fc.Args[\"arg\"].([]string))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_inputNullableSlice(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_inputNullableSlice_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_inputOmittable(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_inputOmittable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().InputOmittable(ctx, fc.Args[\"arg\"].(OmittableInput))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_inputOmittable(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_inputOmittable_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_shapeUnion(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_shapeUnion,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().ShapeUnion(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNShapeUnion2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐShapeUnion,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_shapeUnion(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ShapeUnion does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_autobind(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_autobind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Autobind(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOAutobind2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐAutobind,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_autobind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"int\":\n\t\t\t\treturn ec.fieldContext_Autobind_int(ctx, field)\n\t\t\tcase \"int32\":\n\t\t\t\treturn ec.fieldContext_Autobind_int32(ctx, field)\n\t\t\tcase \"int64\":\n\t\t\t\treturn ec.fieldContext_Autobind_int64(ctx, field)\n\t\t\tcase \"idStr\":\n\t\t\t\treturn ec.fieldContext_Autobind_idStr(ctx, field)\n\t\t\tcase \"idInt\":\n\t\t\t\treturn ec.fieldContext_Autobind_idInt(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Autobind\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_deprecatedField(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_deprecatedField,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().DeprecatedField(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_deprecatedField(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_fieldWithDeprecatedArg(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_fieldWithDeprecatedArg,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().FieldWithDeprecatedArg(ctx, fc.Args[\"oldArg\"].(*int), fc.Args[\"newArg\"].(*int))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_fieldWithDeprecatedArg(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_fieldWithDeprecatedArg_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_overlapping(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_overlapping,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Overlapping(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOOverlappingFields2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐOverlappingFields,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_overlapping(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"oneFoo\":\n\t\t\t\treturn ec.fieldContext_OverlappingFields_oneFoo(ctx, field)\n\t\t\tcase \"twoFoo\":\n\t\t\t\treturn ec.fieldContext_OverlappingFields_twoFoo(ctx, field)\n\t\t\tcase \"oldFoo\":\n\t\t\t\treturn ec.fieldContext_OverlappingFields_oldFoo(ctx, field)\n\t\t\tcase \"newFoo\":\n\t\t\t\treturn ec.fieldContext_OverlappingFields_newFoo(ctx, field)\n\t\t\tcase \"new_foo\":\n\t\t\t\treturn ec.fieldContext_OverlappingFields_new_foo(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type OverlappingFields\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_defaultParameters(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_defaultParameters,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().DefaultParameters(ctx, fc.Args[\"falsyBoolean\"].(*bool), fc.Args[\"truthyBoolean\"].(*bool))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNDefaultParametersMirror2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐDefaultParametersMirror,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_defaultParameters(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"falsyBoolean\":\n\t\t\t\treturn ec.fieldContext_DefaultParametersMirror_falsyBoolean(ctx, field)\n\t\t\tcase \"truthyBoolean\":\n\t\t\t\treturn ec.fieldContext_DefaultParametersMirror_truthyBoolean(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type DefaultParametersMirror\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_defaultParameters_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_deferSingle(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_deferSingle,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().DeferSingle(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalODeferModel2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐDeferModel,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_deferSingle(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_DeferModel_id(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_DeferModel_name(ctx, field)\n\t\t\tcase \"values\":\n\t\t\t\treturn ec.fieldContext_DeferModel_values(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type DeferModel\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_deferMultiple(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_deferMultiple,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().DeferMultiple(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalODeferModel2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐDeferModelᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_deferMultiple(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_DeferModel_id(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_DeferModel_name(ctx, field)\n\t\t\tcase \"values\":\n\t\t\t\treturn ec.fieldContext_DeferModel_values(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type DeferModel\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_directiveArg(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_directiveArg,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().DirectiveArg(ctx, fc.Args[\"arg\"].(string))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_directiveArg(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_directiveArg_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_directiveNullableArg(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_directiveNullableArg,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().DirectiveNullableArg(ctx, fc.Args[\"arg\"].(*int), fc.Args[\"arg2\"].(*int), fc.Args[\"arg3\"].(*string))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_directiveNullableArg(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_directiveNullableArg_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_directiveSingleNullableArg(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_directiveSingleNullableArg,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().DirectiveSingleNullableArg(ctx, fc.Args[\"arg1\"].(*string))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_directiveSingleNullableArg(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_directiveSingleNullableArg_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_directiveInputNullable(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_directiveInputNullable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().DirectiveInputNullable(ctx, fc.Args[\"arg\"].(*InputDirectives))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_directiveInputNullable(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_directiveInputNullable_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_directiveInput(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_directiveInput,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().DirectiveInput(ctx, fc.Args[\"arg\"].(InputDirectives))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_directiveInput(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_directiveInput_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_directiveInputType(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_directiveInputType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().DirectiveInputType(ctx, fc.Args[\"arg\"].(InnerInput))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_directiveInputType(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_directiveInputType_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_directiveInputOuter(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_directiveInputOuter,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().DirectiveInputOuter(ctx, fc.Args[\"arg\"].(OuterWrapperInput))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_directiveInputOuter(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_directiveInputOuter_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_directiveObject(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_directiveObject,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().DirectiveObject(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tlocation, err := ec.unmarshalNString2string(ctx, \"order1_1\")\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal *ObjectDirectives\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tif ec.Directives.Order1 == nil {\n\t\t\t\t\tvar zeroVal *ObjectDirectives\n\t\t\t\t\treturn zeroVal, errors.New(\"directive order1 is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Order1(ctx, nil, directive0, location)\n\t\t\t}\n\t\t\tdirective2 := func(ctx context.Context) (any, error) {\n\t\t\t\tlocation, err := ec.unmarshalNString2string(ctx, \"order1_2\")\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal *ObjectDirectives\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tif ec.Directives.Order1 == nil {\n\t\t\t\t\tvar zeroVal *ObjectDirectives\n\t\t\t\t\treturn zeroVal, errors.New(\"directive order1 is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Order1(ctx, nil, directive1, location)\n\t\t\t}\n\t\t\tdirective3 := func(ctx context.Context) (any, error) {\n\t\t\t\tlocation, err := ec.unmarshalNString2string(ctx, \"order2_1\")\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal *ObjectDirectives\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tif ec.Directives.Order2 == nil {\n\t\t\t\t\tvar zeroVal *ObjectDirectives\n\t\t\t\t\treturn zeroVal, errors.New(\"directive order2 is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Order2(ctx, nil, directive2, location)\n\t\t\t}\n\t\t\tdirective4 := func(ctx context.Context) (any, error) {\n\t\t\t\tlocation, err := ec.unmarshalNString2string(ctx, \"Query_field\")\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal *ObjectDirectives\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tif ec.Directives.Order1 == nil {\n\t\t\t\t\tvar zeroVal *ObjectDirectives\n\t\t\t\t\treturn zeroVal, errors.New(\"directive order1 is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Order1(ctx, nil, directive3, location)\n\t\t\t}\n\n\t\t\tnext = directive4\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOObjectDirectives2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐObjectDirectives,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_directiveObject(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"text\":\n\t\t\t\treturn ec.fieldContext_ObjectDirectives_text(ctx, field)\n\t\t\tcase \"nullableText\":\n\t\t\t\treturn ec.fieldContext_ObjectDirectives_nullableText(ctx, field)\n\t\t\tcase \"order\":\n\t\t\t\treturn ec.fieldContext_ObjectDirectives_order(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type ObjectDirectives\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_directiveObjectWithCustomGoModel(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_directiveObjectWithCustomGoModel,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().DirectiveObjectWithCustomGoModel(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOObjectDirectivesWithCustomGoModel2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐObjectDirectivesWithCustomGoModel,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_directiveObjectWithCustomGoModel(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"nullableText\":\n\t\t\t\treturn ec.fieldContext_ObjectDirectivesWithCustomGoModel_nullableText(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type ObjectDirectivesWithCustomGoModel\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_directiveFieldDef(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_directiveFieldDef,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().DirectiveFieldDef(ctx, fc.Args[\"ret\"].(string))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tmin, err := ec.unmarshalNInt2int(ctx, 1)\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal string\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tmessage, err := ec.unmarshalOString2ᚖstring(ctx, \"not valid\")\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal string\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tif ec.Directives.Length == nil {\n\t\t\t\t\tvar zeroVal string\n\t\t\t\t\treturn zeroVal, errors.New(\"directive length is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Length(ctx, nil, directive0, min, nil, message)\n\t\t\t}\n\n\t\t\tnext = directive1\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_directiveFieldDef(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_directiveFieldDef_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_directiveField(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_directiveField,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().DirectiveField(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_directiveField(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_directiveDouble(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_directiveDouble,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().DirectiveDouble(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tif ec.Directives.Directive1 == nil {\n\t\t\t\t\tvar zeroVal *string\n\t\t\t\t\treturn zeroVal, errors.New(\"directive directive1 is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Directive1(ctx, nil, directive0)\n\t\t\t}\n\t\t\tdirective2 := func(ctx context.Context) (any, error) {\n\t\t\t\tif ec.Directives.Directive2 == nil {\n\t\t\t\t\tvar zeroVal *string\n\t\t\t\t\treturn zeroVal, errors.New(\"directive directive2 is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Directive2(ctx, nil, directive1)\n\t\t\t}\n\n\t\t\tnext = directive2\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_directiveDouble(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_directiveUnimplemented(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_directiveUnimplemented,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().DirectiveUnimplemented(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tif ec.Directives.Unimplemented == nil {\n\t\t\t\t\tvar zeroVal *string\n\t\t\t\t\treturn zeroVal, errors.New(\"directive unimplemented is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Unimplemented(ctx, nil, directive0)\n\t\t\t}\n\n\t\t\tnext = directive1\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_directiveUnimplemented(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_embeddedCase1(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_embeddedCase1,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().EmbeddedCase1(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOEmbeddedCase12ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐEmbeddedCase1,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_embeddedCase1(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"exportedEmbeddedPointerExportedMethod\":\n\t\t\t\treturn ec.fieldContext_EmbeddedCase1_exportedEmbeddedPointerExportedMethod(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type EmbeddedCase1\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_embeddedCase2(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_embeddedCase2,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().EmbeddedCase2(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOEmbeddedCase22ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐEmbeddedCase2,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_embeddedCase2(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"unexportedEmbeddedPointerExportedMethod\":\n\t\t\t\treturn ec.fieldContext_EmbeddedCase2_unexportedEmbeddedPointerExportedMethod(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type EmbeddedCase2\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_embeddedCase3(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_embeddedCase3,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().EmbeddedCase3(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOEmbeddedCase32ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐEmbeddedCase3,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_embeddedCase3(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"unexportedEmbeddedInterfaceExportedMethod\":\n\t\t\t\treturn ec.fieldContext_EmbeddedCase3_unexportedEmbeddedInterfaceExportedMethod(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type EmbeddedCase3\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_enumInInput(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_enumInInput,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().EnumInInput(ctx, fc.Args[\"input\"].(*InputWithEnumValue))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNEnumTest2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐEnumTest,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_enumInInput(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type EnumTest does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_enumInInput_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_searchProducts(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_searchProducts,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().SearchProducts(ctx, map[string]interface{}{\n\t\t\t\t\"query\":    fc.Args[\"query\"].(*string),\n\t\t\t\t\"category\": fc.Args[\"category\"].(*string),\n\t\t\t\t\"minPrice\": fc.Args[\"minPrice\"].(*int),\n\t\t\t})\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNString2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_searchProducts(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_searchProducts_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_searchRequired(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_searchRequired,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().SearchRequired(ctx, map[string]interface{}{\n\t\t\t\t\"name\": fc.Args[\"name\"].(string),\n\t\t\t\t\"age\":  fc.Args[\"age\"].(int),\n\t\t\t})\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNString2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_searchRequired(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_searchRequired_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_searchProductsNormal(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_searchProductsNormal,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().SearchProductsNormal(ctx, fc.Args[\"filters\"].(map[string]any))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNString2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_searchProductsNormal(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_searchProductsNormal_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_searchWithDefaults(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_searchWithDefaults,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().SearchWithDefaults(ctx, map[string]interface{}{\n\t\t\t\t\"query\":           fc.Args[\"query\"].(*string),\n\t\t\t\t\"limit\":           fc.Args[\"limit\"].(*int),\n\t\t\t\t\"includeArchived\": fc.Args[\"includeArchived\"].(*bool),\n\t\t\t})\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNString2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_searchWithDefaults(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_searchWithDefaults_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_searchMixed(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_searchMixed,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().SearchMixed(ctx, map[string]interface{}{\n\t\t\t\t\"query\":    fc.Args[\"query\"].(*string),\n\t\t\t\t\"category\": fc.Args[\"category\"].(*string),\n\t\t\t\t\"minPrice\": fc.Args[\"minPrice\"].(*int),\n\t\t\t}, fc.Args[\"limit\"].(*int), fc.Args[\"offset\"].(*int), fc.Args[\"sortBy\"].(*string))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNString2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_searchMixed(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_searchMixed_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_filterProducts(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_filterProducts,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().FilterProducts(ctx, map[string]interface{}{\n\t\t\t\t\"query\":    fc.Args[\"query\"].(*string),\n\t\t\t\t\"category\": fc.Args[\"category\"].(*string),\n\t\t\t\t\"minPrice\": fc.Args[\"minPrice\"].(*int),\n\t\t\t})\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNString2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_filterProducts(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_filterProducts_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_findProducts(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_findProducts,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().FindProducts(ctx, map[string]interface{}{\n\t\t\t\t\"query\":    fc.Args[\"query\"].(*string),\n\t\t\t\t\"category\": fc.Args[\"category\"].(*string),\n\t\t\t\t\"minPrice\": fc.Args[\"minPrice\"].(*int),\n\t\t\t})\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNString2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_findProducts(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_findProducts_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_searchWithDirectives(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_searchWithDirectives,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().SearchWithDirectives(ctx, map[string]interface{}{\n\t\t\t\t\"oldField\": fc.Args[\"oldField\"].(*string),\n\t\t\t\t\"newField\": fc.Args[\"newField\"].(*string),\n\t\t\t})\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNString2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_searchWithDirectives(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_searchWithDirectives_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_shapes(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_shapes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Shapes(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOShape2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐShape,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_shapes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"FieldContext.Child cannot be called on type INTERFACE\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_noShape(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_noShape,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().NoShape(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tif ec.Directives.MakeNil == nil {\n\t\t\t\t\tvar zeroVal Shape\n\t\t\t\t\treturn zeroVal, errors.New(\"directive makeNil is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.MakeNil(ctx, nil, directive0)\n\t\t\t}\n\n\t\t\tnext = directive1\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOShape2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐShape,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_noShape(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"FieldContext.Child cannot be called on type INTERFACE\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_node(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_node,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Node(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNNode2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐNode,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_node(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"FieldContext.Child cannot be called on type INTERFACE\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_noShapeTypedNil(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_noShapeTypedNil,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().NoShapeTypedNil(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tif ec.Directives.MakeTypedNil == nil {\n\t\t\t\t\tvar zeroVal Shape\n\t\t\t\t\treturn zeroVal, errors.New(\"directive makeTypedNil is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.MakeTypedNil(ctx, nil, directive0)\n\t\t\t}\n\n\t\t\tnext = directive1\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOShape2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐShape,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_noShapeTypedNil(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"FieldContext.Child cannot be called on type INTERFACE\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_animal(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_animal,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Animal(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tif ec.Directives.MakeTypedNil == nil {\n\t\t\t\t\tvar zeroVal Animal\n\t\t\t\t\treturn zeroVal, errors.New(\"directive makeTypedNil is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.MakeTypedNil(ctx, nil, directive0)\n\t\t\t}\n\n\t\t\tnext = directive1\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOAnimal2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐAnimal,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_animal(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"FieldContext.Child cannot be called on type INTERFACE\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_notAnInterface(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_notAnInterface,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().NotAnInterface(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOBackedByInterface2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐBackedByInterface,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_notAnInterface(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_BackedByInterface_id(ctx, field)\n\t\t\tcase \"thisShouldBind\":\n\t\t\t\treturn ec.fieldContext_BackedByInterface_thisShouldBind(ctx, field)\n\t\t\tcase \"thisShouldBindWithError\":\n\t\t\t\treturn ec.fieldContext_BackedByInterface_thisShouldBindWithError(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type BackedByInterface\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_dog(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_dog,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Dog(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalODog2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐDog,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_dog(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"species\":\n\t\t\t\treturn ec.fieldContext_Dog_species(ctx, field)\n\t\t\tcase \"size\":\n\t\t\t\treturn ec.fieldContext_Dog_size(ctx, field)\n\t\t\tcase \"dogBreed\":\n\t\t\t\treturn ec.fieldContext_Dog_dogBreed(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Dog\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_issue896a(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_issue896a,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Issue896a(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOCheckIssue8962ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐCheckIssue896ᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_issue896a(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_CheckIssue896_id(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type CheckIssue896\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_mapStringInterface(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_mapStringInterface,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().MapStringInterface(ctx, fc.Args[\"in\"].(map[string]any))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOMapStringInterfaceType2map,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_mapStringInterface(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"a\":\n\t\t\t\treturn ec.fieldContext_MapStringInterfaceType_a(ctx, field)\n\t\t\tcase \"b\":\n\t\t\t\treturn ec.fieldContext_MapStringInterfaceType_b(ctx, field)\n\t\t\tcase \"c\":\n\t\t\t\treturn ec.fieldContext_MapStringInterfaceType_c(ctx, field)\n\t\t\tcase \"nested\":\n\t\t\t\treturn ec.fieldContext_MapStringInterfaceType_nested(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type MapStringInterfaceType\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_mapStringInterface_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_mapNestedStringInterface(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_mapNestedStringInterface,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().MapNestedStringInterface(ctx, fc.Args[\"in\"].(*NestedMapInput))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOMapStringInterfaceType2map,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_mapNestedStringInterface(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"a\":\n\t\t\t\treturn ec.fieldContext_MapStringInterfaceType_a(ctx, field)\n\t\t\tcase \"b\":\n\t\t\t\treturn ec.fieldContext_MapStringInterfaceType_b(ctx, field)\n\t\t\tcase \"c\":\n\t\t\t\treturn ec.fieldContext_MapStringInterfaceType_c(ctx, field)\n\t\t\tcase \"nested\":\n\t\t\t\treturn ec.fieldContext_MapStringInterfaceType_nested(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type MapStringInterfaceType\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_mapNestedStringInterface_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_mapNestedMapSlice(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_mapNestedMapSlice,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().MapNestedMapSlice(ctx, fc.Args[\"input\"].(map[string]any))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOBoolean2ᚖbool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_mapNestedMapSlice(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_mapNestedMapSlice_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_errorBubble(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_errorBubble,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().ErrorBubble(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOError2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐError,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_errorBubble(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Error_id(ctx, field)\n\t\t\tcase \"errorOnNonRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnNonRequiredField(ctx, field)\n\t\t\tcase \"errorOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnRequiredField(ctx, field)\n\t\t\tcase \"nilOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_nilOnRequiredField(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Error\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_errorBubbleList(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_errorBubbleList,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().ErrorBubbleList(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOError2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐErrorᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_errorBubbleList(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Error_id(ctx, field)\n\t\t\tcase \"errorOnNonRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnNonRequiredField(ctx, field)\n\t\t\tcase \"errorOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnRequiredField(ctx, field)\n\t\t\tcase \"nilOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_nilOnRequiredField(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Error\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_errorList(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_errorList,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().ErrorList(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOError2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐError,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_errorList(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Error_id(ctx, field)\n\t\t\tcase \"errorOnNonRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnNonRequiredField(ctx, field)\n\t\t\tcase \"errorOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnRequiredField(ctx, field)\n\t\t\tcase \"nilOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_nilOnRequiredField(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Error\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_errors(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_errors,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Errors(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOErrors2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐErrors,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_errors(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"a\":\n\t\t\t\treturn ec.fieldContext_Errors_a(ctx, field)\n\t\t\tcase \"b\":\n\t\t\t\treturn ec.fieldContext_Errors_b(ctx, field)\n\t\t\tcase \"c\":\n\t\t\t\treturn ec.fieldContext_Errors_c(ctx, field)\n\t\t\tcase \"d\":\n\t\t\t\treturn ec.fieldContext_Errors_d(ctx, field)\n\t\t\tcase \"e\":\n\t\t\t\treturn ec.fieldContext_Errors_e(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Errors\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_valid(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_valid,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Valid(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_valid(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_invalid(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_invalid,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Invalid(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_invalid(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_panics(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_panics,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Panics(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOPanics2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPanics,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_panics(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"fieldScalarMarshal\":\n\t\t\t\treturn ec.fieldContext_Panics_fieldScalarMarshal(ctx, field)\n\t\t\tcase \"fieldFuncMarshal\":\n\t\t\t\treturn ec.fieldContext_Panics_fieldFuncMarshal(ctx, field)\n\t\t\tcase \"argUnmarshal\":\n\t\t\t\treturn ec.fieldContext_Panics_argUnmarshal(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Panics\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_primitiveObject(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_primitiveObject,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().PrimitiveObject(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNPrimitive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPrimitiveᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_primitiveObject(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"value\":\n\t\t\t\treturn ec.fieldContext_Primitive_value(ctx, field)\n\t\t\tcase \"squared\":\n\t\t\t\treturn ec.fieldContext_Primitive_squared(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Primitive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_primitiveStringObject(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_primitiveStringObject,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().PrimitiveStringObject(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNPrimitiveString2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPrimitiveStringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_primitiveStringObject(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"value\":\n\t\t\t\treturn ec.fieldContext_PrimitiveString_value(ctx, field)\n\t\t\tcase \"doubled\":\n\t\t\t\treturn ec.fieldContext_PrimitiveString_doubled(ctx, field)\n\t\t\tcase \"len\":\n\t\t\t\treturn ec.fieldContext_PrimitiveString_len(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type PrimitiveString\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_ptrToAnyContainer(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_ptrToAnyContainer,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().PtrToAnyContainer(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNPtrToAnyContainer2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPtrToAnyContainer,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_ptrToAnyContainer(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"ptrToAny\":\n\t\t\t\treturn ec.fieldContext_PtrToAnyContainer_ptrToAny(ctx, field)\n\t\t\tcase \"binding\":\n\t\t\t\treturn ec.fieldContext_PtrToAnyContainer_binding(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type PtrToAnyContainer\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_ptrToSliceContainer(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_ptrToSliceContainer,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().PtrToSliceContainer(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNPtrToSliceContainer2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPtrToSliceContainer,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_ptrToSliceContainer(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"ptrToSlice\":\n\t\t\t\treturn ec.fieldContext_PtrToSliceContainer_ptrToSlice(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type PtrToSliceContainer\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_infinity(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_infinity,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Infinity(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNFloat2float64,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_infinity(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Float does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_stringFromContextInterface(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_stringFromContextInterface,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().StringFromContextInterface(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNStringFromContextInterface2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐStringFromContextInterface,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_stringFromContextInterface(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type StringFromContextInterface does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_stringFromContextFunction(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_stringFromContextFunction,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().StringFromContextFunction(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNStringFromContextFunction2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_stringFromContextFunction(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type StringFromContextFunction does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_defaultScalar(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_defaultScalar,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().DefaultScalar(ctx, fc.Args[\"arg\"].(string))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNDefaultScalarImplementation2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_defaultScalar(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type DefaultScalarImplementation does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_defaultScalar_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_skipInclude(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_skipInclude,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().SkipInclude(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOSkipIncludeTestType2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐSkipIncludeTestType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_skipInclude(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"a\":\n\t\t\t\treturn ec.fieldContext_SkipIncludeTestType_a(ctx, field)\n\t\t\tcase \"b\":\n\t\t\t\treturn ec.fieldContext_SkipIncludeTestType_b(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type SkipIncludeTestType\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_slices(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_slices,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Slices(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOSlices2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐSlices,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_slices(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"test1\":\n\t\t\t\treturn ec.fieldContext_Slices_test1(ctx, field)\n\t\t\tcase \"test2\":\n\t\t\t\treturn ec.fieldContext_Slices_test2(ctx, field)\n\t\t\tcase \"test3\":\n\t\t\t\treturn ec.fieldContext_Slices_test3(ctx, field)\n\t\t\tcase \"test4\":\n\t\t\t\treturn ec.fieldContext_Slices_test4(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Slices\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_scalarSlice(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_scalarSlice,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().ScalarSlice(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNBytes2ᚕbyte,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_scalarSlice(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Bytes does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_fallback(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_fallback,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().Fallback(ctx, fc.Args[\"arg\"].(FallbackToStringEncoding))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNFallbackToStringEncoding2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐFallbackToStringEncoding,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_fallback(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type FallbackToStringEncoding does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_fallback_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_optionalUnion(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_optionalUnion,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().OptionalUnion(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOTestUnion2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐTestUnion,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_optionalUnion(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type TestUnion does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_vOkCaseValue(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_vOkCaseValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().VOkCaseValue(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOVOkCaseValue2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐVOkCaseValue,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_vOkCaseValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"value\":\n\t\t\t\treturn ec.fieldContext_VOkCaseValue_value(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type VOkCaseValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_vOkCaseNil(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_vOkCaseNil,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().VOkCaseNil(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOVOkCaseNil2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐVOkCaseNil,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_vOkCaseNil(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"value\":\n\t\t\t\treturn ec.fieldContext_VOkCaseNil_value(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type VOkCaseNil\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_validType(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_validType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().ValidType(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOValidType2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐValidType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_validType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"differentCase\":\n\t\t\t\treturn ec.fieldContext_ValidType_differentCase(ctx, field)\n\t\t\tcase \"different_case\":\n\t\t\t\treturn ec.fieldContext_ValidType_different_case(ctx, field)\n\t\t\tcase \"validInputKeywords\":\n\t\t\t\treturn ec.fieldContext_ValidType_validInputKeywords(ctx, field)\n\t\t\tcase \"validArgs\":\n\t\t\t\treturn ec.fieldContext_ValidType_validArgs(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type ValidType\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_variadicModel(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_variadicModel,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().VariadicModel(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOVariadicModel2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐVariadicModel,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_variadicModel(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"value\":\n\t\t\t\treturn ec.fieldContext_VariadicModel_value(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type VariadicModel\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_wrappedStruct(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_wrappedStruct,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().WrappedStruct(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNWrappedStruct2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐWrappedStruct,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_wrappedStruct(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_WrappedStruct_name(ctx, field)\n\t\t\tcase \"desc\":\n\t\t\t\treturn ec.fieldContext_WrappedStruct_desc(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type WrappedStruct\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_wrappedScalar(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_wrappedScalar,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().WrappedScalar(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNWrappedScalar2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚋotherpkgᚐScalar,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_wrappedScalar(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type WrappedScalar does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_wrappedMap(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_wrappedMap,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().WrappedMap(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNWrappedMap2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐWrappedMap,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_wrappedMap(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"get\":\n\t\t\t\treturn ec.fieldContext_WrappedMap_get(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type WrappedMap\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_wrappedSlice(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_wrappedSlice,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().WrappedSlice(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNWrappedSlice2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐWrappedSlice,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_wrappedSlice(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"get\":\n\t\t\t\treturn ec.fieldContext_WrappedSlice_get(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type WrappedSlice\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.IntrospectType(fc.Args[\"name\"].(string))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___schema,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.IntrospectSchema()\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Rectangle_length(ctx context.Context, field graphql.CollectedField, obj *Rectangle) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Rectangle_length,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Length, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOFloat2float64,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Rectangle_length(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Rectangle\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Float does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Rectangle_width(ctx context.Context, field graphql.CollectedField, obj *Rectangle) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Rectangle_width,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Width, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOFloat2float64,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Rectangle_width(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Rectangle\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Float does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Rectangle_area(ctx context.Context, field graphql.CollectedField, obj *Rectangle) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Rectangle_area,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Area(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOFloat2float64,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Rectangle_area(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Rectangle\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Float does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Rectangle_coordinates(ctx context.Context, field graphql.CollectedField, obj *Rectangle) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Rectangle_coordinates,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Coordinates, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOCoordinates2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐCoordinates,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Rectangle_coordinates(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Rectangle\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"x\":\n\t\t\t\treturn ec.fieldContext_Coordinates_x(ctx, field)\n\t\t\tcase \"y\":\n\t\t\t\treturn ec.fieldContext_Coordinates_y(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Coordinates\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Size_height(ctx context.Context, field graphql.CollectedField, obj *Size) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Size_height,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Height, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Size_height(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Size\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Size_weight(ctx context.Context, field graphql.CollectedField, obj *Size) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Size_weight,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Weight, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Size_weight(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Size\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _SkipIncludeTestType_a(ctx context.Context, field graphql.CollectedField, obj *SkipIncludeTestType) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_SkipIncludeTestType_a,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.A, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_SkipIncludeTestType_a(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"SkipIncludeTestType\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _SkipIncludeTestType_b(ctx context.Context, field graphql.CollectedField, obj *SkipIncludeTestType) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_SkipIncludeTestType_b,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.B, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_SkipIncludeTestType_b(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"SkipIncludeTestType\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Slices_test1(ctx context.Context, field graphql.CollectedField, obj *Slices) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Slices_test1,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Test1, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚕᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Slices_test1(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Slices\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Slices_test2(ctx context.Context, field graphql.CollectedField, obj *Slices) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Slices_test2,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Test2, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚕstringᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Slices_test2(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Slices\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Slices_test3(ctx context.Context, field graphql.CollectedField, obj *Slices) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Slices_test3,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Test3, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2ᚕᚖstring,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Slices_test3(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Slices\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Slices_test4(ctx context.Context, field graphql.CollectedField, obj *Slices) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Slices_test4,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Test4, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Slices_test4(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Slices\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Subscription_updated(ctx context.Context, field graphql.CollectedField) (ret func(ctx context.Context) graphql.Marshaler) {\n\treturn graphql.ResolveFieldStream(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Subscription_updated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Subscription().Updated(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Subscription_updated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Subscription\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Subscription_initPayload(ctx context.Context, field graphql.CollectedField) (ret func(ctx context.Context) graphql.Marshaler) {\n\treturn graphql.ResolveFieldStream(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Subscription_initPayload,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Subscription().InitPayload(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Subscription_initPayload(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Subscription\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Subscription_directiveArg(ctx context.Context, field graphql.CollectedField) (ret func(ctx context.Context) graphql.Marshaler) {\n\treturn graphql.ResolveFieldStream(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Subscription_directiveArg,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Subscription().DirectiveArg(ctx, fc.Args[\"arg\"].(string))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Subscription_directiveArg(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Subscription\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Subscription_directiveArg_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Subscription_directiveNullableArg(ctx context.Context, field graphql.CollectedField) (ret func(ctx context.Context) graphql.Marshaler) {\n\treturn graphql.ResolveFieldStream(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Subscription_directiveNullableArg,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Subscription().DirectiveNullableArg(ctx, fc.Args[\"arg\"].(*int), fc.Args[\"arg2\"].(*int), fc.Args[\"arg3\"].(*string))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Subscription_directiveNullableArg(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Subscription\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Subscription_directiveNullableArg_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Subscription_directiveDouble(ctx context.Context, field graphql.CollectedField) (ret func(ctx context.Context) graphql.Marshaler) {\n\treturn graphql.ResolveFieldStream(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Subscription_directiveDouble,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Subscription().DirectiveDouble(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tif ec.Directives.Directive1 == nil {\n\t\t\t\t\tvar zeroVal *string\n\t\t\t\t\treturn zeroVal, errors.New(\"directive directive1 is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Directive1(ctx, nil, directive0)\n\t\t\t}\n\t\t\tdirective2 := func(ctx context.Context) (any, error) {\n\t\t\t\tif ec.Directives.Directive2 == nil {\n\t\t\t\t\tvar zeroVal *string\n\t\t\t\t\treturn zeroVal, errors.New(\"directive directive2 is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Directive2(ctx, nil, directive1)\n\t\t\t}\n\n\t\t\tnext = directive2\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Subscription_directiveDouble(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Subscription\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Subscription_directiveUnimplemented(ctx context.Context, field graphql.CollectedField) (ret func(ctx context.Context) graphql.Marshaler) {\n\treturn graphql.ResolveFieldStream(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Subscription_directiveUnimplemented,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Subscription().DirectiveUnimplemented(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tif ec.Directives.Unimplemented == nil {\n\t\t\t\t\tvar zeroVal *string\n\t\t\t\t\treturn zeroVal, errors.New(\"directive unimplemented is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Unimplemented(ctx, nil, directive0)\n\t\t\t}\n\n\t\t\tnext = directive1\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Subscription_directiveUnimplemented(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Subscription\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Subscription_issue896b(ctx context.Context, field graphql.CollectedField) (ret func(ctx context.Context) graphql.Marshaler) {\n\treturn graphql.ResolveFieldStream(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Subscription_issue896b,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Subscription().Issue896b(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalOCheckIssue8962ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐCheckIssue896,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Subscription_issue896b(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Subscription\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_CheckIssue896_id(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type CheckIssue896\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Subscription_errorRequired(ctx context.Context, field graphql.CollectedField) (ret func(ctx context.Context) graphql.Marshaler) {\n\treturn graphql.ResolveFieldStream(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Subscription_errorRequired,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Subscription().ErrorRequired(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, nil, next)\n\t\t},\n\t\tec.marshalNError2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐError,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Subscription_errorRequired(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Subscription\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Error_id(ctx, field)\n\t\t\tcase \"errorOnNonRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnNonRequiredField(ctx, field)\n\t\t\tcase \"errorOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_errorOnRequiredField(ctx, field)\n\t\t\tcase \"nilOnRequiredField\":\n\t\t\t\treturn ec.fieldContext_Error_nilOnRequiredField(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Error\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_id(ctx context.Context, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_friends(ctx context.Context, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_friends,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.User().Friends(ctx, obj)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNUser2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐUserᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_friends(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_User_id(ctx, field)\n\t\t\tcase \"friends\":\n\t\t\t\treturn ec.fieldContext_User_friends(ctx, field)\n\t\t\tcase \"created\":\n\t\t\t\treturn ec.fieldContext_User_created(ctx, field)\n\t\t\tcase \"updated\":\n\t\t\t\treturn ec.fieldContext_User_updated(ctx, field)\n\t\t\tcase \"pets\":\n\t\t\t\treturn ec.fieldContext_User_pets(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type User\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_created(ctx context.Context, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_created,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Created, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNTime2timeᚐTime,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_created(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Time does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_updated(ctx context.Context, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_updated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Updated, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOTime2ᚖtimeᚐTime,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_updated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Time does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_pets(ctx context.Context, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_pets,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.User().Pets(ctx, obj, fc.Args[\"limit\"].(*int))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOPet2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPetᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_pets(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Pet_id(ctx, field)\n\t\t\tcase \"friends\":\n\t\t\t\treturn ec.fieldContext_Pet_friends(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Pet\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_User_pets_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _VOkCaseNil_value(ctx context.Context, field graphql.CollectedField, obj *VOkCaseNil) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_VOkCaseNil_value,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tv, ok := obj.Value()\n\t\t\tif !ok {\n\t\t\t\treturn nil, nil\n\t\t\t}\n\t\t\treturn v, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2string,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_VOkCaseNil_value(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"VOkCaseNil\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _VOkCaseValue_value(ctx context.Context, field graphql.CollectedField, obj *VOkCaseValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_VOkCaseValue_value,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tv, ok := obj.Value()\n\t\t\tif !ok {\n\t\t\t\treturn nil, nil\n\t\t\t}\n\t\t\treturn v, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2string,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_VOkCaseValue_value(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"VOkCaseValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ValidType_differentCase(ctx context.Context, field graphql.CollectedField, obj *ValidType) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ValidType_differentCase,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DifferentCase, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ValidType_differentCase(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ValidType\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ValidType_different_case(ctx context.Context, field graphql.CollectedField, obj *ValidType) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ValidType_different_case,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DifferentCaseOld, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ValidType_different_case(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ValidType\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ValidType_validInputKeywords(ctx context.Context, field graphql.CollectedField, obj *ValidType) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ValidType_validInputKeywords,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ValidInputKeywords, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ValidType_validInputKeywords(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ValidType\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_ValidType_validInputKeywords_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _ValidType_validArgs(ctx context.Context, field graphql.CollectedField, obj *ValidType) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_ValidType_validArgs,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ValidArgs, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_ValidType_validArgs(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"ValidType\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_ValidType_validArgs_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _VariadicModel_value(ctx context.Context, field graphql.CollectedField, obj *VariadicModel) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_VariadicModel_value,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Value(ctx, fc.Args[\"rank\"].(int))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2string,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_VariadicModel_value(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"VariadicModel\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_VariadicModel_value_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _WrappedMap_get(ctx context.Context, field graphql.CollectedField, obj WrappedMap) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_WrappedMap_get,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.WrappedMap().Get(ctx, obj, fc.Args[\"key\"].(string))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_WrappedMap_get(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"WrappedMap\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_WrappedMap_get_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _WrappedSlice_get(ctx context.Context, field graphql.CollectedField, obj WrappedSlice) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_WrappedSlice_get,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.WrappedSlice().Get(ctx, obj, fc.Args[\"idx\"].(int))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_WrappedSlice_get(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"WrappedSlice\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_WrappedSlice_get_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _WrappedStruct_name(ctx context.Context, field graphql.CollectedField, obj *WrappedStruct) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_WrappedStruct_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNWrappedScalar2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚋotherpkgᚐScalar,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_WrappedStruct_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"WrappedStruct\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type WrappedScalar does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _WrappedStruct_desc(ctx context.Context, field graphql.CollectedField, obj *WrappedStruct) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_WrappedStruct_desc,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Desc, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOWrappedScalar2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚋotherpkgᚐScalar,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_WrappedStruct_desc(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"WrappedStruct\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type WrappedScalar does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _XXIt_id(ctx context.Context, field graphql.CollectedField, obj *XXIt) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_XXIt_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_XXIt_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"XXIt\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _XxIt_id(ctx context.Context, field graphql.CollectedField, obj *XxIt) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_XxIt_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_XxIt_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"XxIt\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_isRepeatable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsRepeatable, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_locations,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Locations, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalN__DirectiveLocation2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_defaultValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DefaultValue, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_types,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Types(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_queryType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.QueryType(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_mutationType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.MutationType(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_subscriptionType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SubscriptionType(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_directives,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Directives(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_kind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Kind(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalN__TypeKind2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_specifiedByURL,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SpecifiedByURL(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_fields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_interfaces,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Interfaces(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_possibleTypes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PossibleTypes(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_enumValues,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_inputFields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.InputFields(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_ofType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.OfType(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_isOneOf,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsOneOf(), nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalOBoolean2bool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _asdfIt_id(ctx context.Context, field graphql.CollectedField, obj *AsdfIt) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_asdfIt_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_asdfIt_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"asdfIt\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _iIt_id(ctx context.Context, field graphql.CollectedField, obj *IIt) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_iIt_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\treturn ec._fieldMiddleware(ctx, obj, next)\n\t\t},\n\t\tec.marshalNID2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_iIt_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"iIt\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalInputChanges(ctx context.Context, obj any) (map[string]any, error) {\n\tvar it map[string]any\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"a\", \"b\"}\n\tit = make(map[string]any, len(asMap))\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"a\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"a\"))\n\t\t\tdata, err := ec.unmarshalOInt2ᚖint(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"a\"] = data\n\t\tcase \"b\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"b\"))\n\t\t\tdata, err := ec.unmarshalOInt2ᚖint(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"b\"] = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputDefaultInput(ctx context.Context, obj any) (DefaultInput, error) {\n\tvar it DefaultInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tif _, present := asMap[\"falsyBoolean\"]; !present {\n\t\tasMap[\"falsyBoolean\"] = false\n\t}\n\tif _, present := asMap[\"truthyBoolean\"]; !present {\n\t\tasMap[\"truthyBoolean\"] = true\n\t}\n\n\tfieldsInOrder := [...]string{\"falsyBoolean\", \"truthyBoolean\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"falsyBoolean\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"falsyBoolean\"))\n\t\t\tdata, err := ec.unmarshalOBoolean2ᚖbool(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.FalsyBoolean = data\n\t\tcase \"truthyBoolean\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"truthyBoolean\"))\n\t\t\tdata, err := ec.unmarshalOBoolean2ᚖbool(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.TruthyBoolean = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputDirectiveInput(ctx context.Context, obj any) (map[string]any, error) {\n\tvar it map[string]any\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"oldField\", \"newField\"}\n\tit = make(map[string]any, len(asMap))\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"oldField\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"oldField\"))\n\t\t\tdata, err := ec.unmarshalOString2ᚖstring(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"oldField\"] = data\n\t\tcase \"newField\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"newField\"))\n\t\t\tdata, err := ec.unmarshalOString2ᚖstring(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"newField\"] = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputFieldsOrderInput(ctx context.Context, obj any) (FieldsOrderInput, error) {\n\tvar it FieldsOrderInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"firstField\", \"overrideFirstField\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"firstField\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"firstField\"))\n\t\t\tdata, err := ec.unmarshalOString2ᚖstring(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.FirstField = data\n\t\tcase \"overrideFirstField\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"overrideFirstField\"))\n\t\t\tdata, err := ec.unmarshalOString2ᚖstring(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tif err = ec.Resolvers.FieldsOrderInput().OverrideFirstField(ctx, &it, data); err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputInnerDirectives(ctx context.Context, obj any) (InnerDirectives, error) {\n\tvar it InnerDirectives\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"message\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"message\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"message\"))\n\t\t\tdirective0 := func(ctx context.Context) (any, error) { return ec.unmarshalNString2string(ctx, v) }\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tmin, err := ec.unmarshalNInt2int(ctx, 1)\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal string\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tmessage, err := ec.unmarshalOString2ᚖstring(ctx, \"not valid\")\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal string\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tif ec.Directives.Length == nil {\n\t\t\t\t\tvar zeroVal string\n\t\t\t\t\treturn zeroVal, errors.New(\"directive length is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Length(ctx, obj, directive0, min, nil, message)\n\t\t\t}\n\n\t\t\ttmp, err := directive1(ctx)\n\t\t\tif err != nil {\n\t\t\t\treturn it, graphql.ErrorOnPath(ctx, err)\n\t\t\t}\n\t\t\tif data, ok := tmp.(string); ok {\n\t\t\t\tit.Message = data\n\t\t\t} else {\n\t\t\t\terr := fmt.Errorf(`unexpected type %T from directive, should be string`, tmp)\n\t\t\t\treturn it, graphql.ErrorOnPath(ctx, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputInnerInput(ctx context.Context, obj any) (InnerInput, error) {\n\tvar it InnerInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"id\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"id\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"id\"))\n\t\t\tdata, err := ec.unmarshalNInt2int(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.ID = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputInputDirectives(ctx context.Context, obj any) (InputDirectives, error) {\n\tvar it InputDirectives\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"text\", \"nullableText\", \"inner\", \"innerNullable\", \"thirdParty\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"text\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"text\"))\n\t\t\tdirective0 := func(ctx context.Context) (any, error) { return ec.unmarshalNString2string(ctx, v) }\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tmin, err := ec.unmarshalNInt2int(ctx, 0)\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal string\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tmax, err := ec.unmarshalOInt2ᚖint(ctx, 7)\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal string\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tmessage, err := ec.unmarshalOString2ᚖstring(ctx, \"not valid\")\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal string\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tif ec.Directives.Length == nil {\n\t\t\t\t\tvar zeroVal string\n\t\t\t\t\treturn zeroVal, errors.New(\"directive length is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Length(ctx, obj, directive0, min, max, message)\n\t\t\t}\n\n\t\t\ttmp, err := directive1(ctx)\n\t\t\tif err != nil {\n\t\t\t\treturn it, graphql.ErrorOnPath(ctx, err)\n\t\t\t}\n\t\t\tif data, ok := tmp.(string); ok {\n\t\t\t\tit.Text = data\n\t\t\t} else {\n\t\t\t\terr := fmt.Errorf(`unexpected type %T from directive, should be string`, tmp)\n\t\t\t\treturn it, graphql.ErrorOnPath(ctx, err)\n\t\t\t}\n\t\tcase \"nullableText\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"nullableText\"))\n\t\t\tdirective0 := func(ctx context.Context) (any, error) { return ec.unmarshalOString2ᚖstring(ctx, v) }\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tif ec.Directives.ToNull == nil {\n\t\t\t\t\tvar zeroVal *string\n\t\t\t\t\treturn zeroVal, errors.New(\"directive toNull is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.ToNull(ctx, obj, directive0)\n\t\t\t}\n\n\t\t\ttmp, err := directive1(ctx)\n\t\t\tif err != nil {\n\t\t\t\treturn it, graphql.ErrorOnPath(ctx, err)\n\t\t\t}\n\t\t\tif data, ok := tmp.(*string); ok {\n\t\t\t\tit.NullableText = data\n\t\t\t} else if tmp == nil {\n\t\t\t\tit.NullableText = nil\n\t\t\t} else {\n\t\t\t\terr := fmt.Errorf(`unexpected type %T from directive, should be *string`, tmp)\n\t\t\t\treturn it, graphql.ErrorOnPath(ctx, err)\n\t\t\t}\n\t\tcase \"inner\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"inner\"))\n\t\t\tdata, err := ec.unmarshalNInnerDirectives2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐInnerDirectives(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Inner = data\n\t\tcase \"innerNullable\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"innerNullable\"))\n\t\t\tdata, err := ec.unmarshalOInnerDirectives2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐInnerDirectives(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.InnerNullable = data\n\t\tcase \"thirdParty\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"thirdParty\"))\n\t\t\tdirective0 := func(ctx context.Context) (any, error) {\n\t\t\t\treturn ec.unmarshalOThirdParty2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐThirdParty(ctx, v)\n\t\t\t}\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tmin, err := ec.unmarshalNInt2int(ctx, 0)\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal *ThirdParty\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tmax, err := ec.unmarshalOInt2ᚖint(ctx, 7)\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal *ThirdParty\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tif ec.Directives.Length == nil {\n\t\t\t\t\tvar zeroVal *ThirdParty\n\t\t\t\t\treturn zeroVal, errors.New(\"directive length is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Length(ctx, obj, directive0, min, max, nil)\n\t\t\t}\n\n\t\t\ttmp, err := directive1(ctx)\n\t\t\tif err != nil {\n\t\t\t\treturn it, graphql.ErrorOnPath(ctx, err)\n\t\t\t}\n\t\t\tif data, ok := tmp.(*ThirdParty); ok {\n\t\t\t\tit.ThirdParty = data\n\t\t\t} else if tmp == nil {\n\t\t\t\tit.ThirdParty = nil\n\t\t\t} else {\n\t\t\t\terr := fmt.Errorf(`unexpected type %T from directive, should be *github.com/99designs/gqlgen/codegen/testserver/singlefile.ThirdParty`, tmp)\n\t\t\t\treturn it, graphql.ErrorOnPath(ctx, err)\n\t\t\t}\n\t\t}\n\t}\n\t// Execute INPUT_OBJECT level directives (e.g., @oneOf, @directive3)\n\t// These run after all fields have been unmarshaled\n\tdirective0 := func(ctx context.Context) (any, error) { return it, nil }\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\tif ec.Directives.Directive3 == nil {\n\t\t\treturn it, errors.New(\"directive directive3 is not implemented\")\n\t\t}\n\t\treturn ec.Directives.Directive3(ctx, asMap, directive0)\n\t}\n\ttmp, err := directive1(ctx)\n\tif err != nil {\n\t\treturn it, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(InputDirectives); ok {\n\t\treturn data, nil\n\t}\n\treturn it, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from INPUT_OBJECT directive, should be InputDirectives`, tmp))\n}\n\nfunc (ec *executionContext) unmarshalInputInputWithEnumValue(ctx context.Context, obj any) (InputWithEnumValue, error) {\n\tvar it InputWithEnumValue\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"enum\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"enum\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"enum\"))\n\t\t\tdata, err := ec.unmarshalNEnumTest2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐEnumTest(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Enum = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputIssue4053Input1(ctx context.Context, obj any) (Issue4053Input1, error) {\n\tvar it Issue4053Input1\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"input2\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"input2\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"input2\"))\n\t\t\tdata, err := ec.unmarshalOIssue4053Input22githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐIssue4053Input2(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Input2 = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputIssue4053Input2(ctx context.Context, obj any) (Issue4053Input2, error) {\n\tvar it Issue4053Input2\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tif _, present := asMap[\"helloWithDefault\"]; !present {\n\t\tasMap[\"helloWithDefault\"] = \"world\"\n\t}\n\n\tfieldsInOrder := [...]string{\"hello\", \"helloWithDefault\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"hello\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"hello\"))\n\t\t\tdata, err := ec.unmarshalOString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Hello = data\n\t\tcase \"helloWithDefault\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"helloWithDefault\"))\n\t\t\tdata, err := ec.unmarshalOString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.HelloWithDefault = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputMapNestedInput(ctx context.Context, obj any) (MapNested, error) {\n\tvar it MapNested\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"value\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"value\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"value\"))\n\t\t\tdata, err := ec.unmarshalNCustomScalar2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐCustomScalar(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Value = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputMapNestedMapSliceInput(ctx context.Context, obj any) (map[string]any, error) {\n\tvar it map[string]any\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"name\", \"recurse\"}\n\tit = make(map[string]any, len(asMap))\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"name\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"name\"))\n\t\t\tdata, err := ec.unmarshalOString2ᚖstring(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"name\"] = data\n\t\tcase \"recurse\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"recurse\"))\n\t\t\tdata, err := ec.unmarshalOMapNestedMapSliceInput2ᚕmapᚄ(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"recurse\"] = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputMapStringInterfaceInput(ctx context.Context, obj any) (map[string]any, error) {\n\tvar it map[string]any\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"a\", \"b\", \"c\", \"nested\"}\n\tit = make(map[string]any, len(asMap))\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"a\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"a\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"a\"] = data\n\t\tcase \"b\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"b\"))\n\t\t\tdata, err := ec.unmarshalOInt2ᚖint(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"b\"] = data\n\t\tcase \"c\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"c\"))\n\t\t\tdata, err := ec.unmarshalOCustomScalar2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐCustomScalar(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"c\"] = data\n\t\tcase \"nested\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"nested\"))\n\t\t\tdata, err := ec.unmarshalOMapNestedInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐMapNested(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"nested\"] = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputNestedInput(ctx context.Context, obj any) (NestedInput, error) {\n\tvar it NestedInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"field\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"field\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"field\"))\n\t\t\tdata, err := ec.unmarshalNEmail2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐEmail(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Field = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputNestedMapInput(ctx context.Context, obj any) (NestedMapInput, error) {\n\tvar it NestedMapInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"map\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"map\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"map\"))\n\t\t\tdata, err := ec.unmarshalOMapStringInterfaceInput2map(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Map = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputOmittableInput(ctx context.Context, obj any) (OmittableInput, error) {\n\tvar it OmittableInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"id\", \"bool\", \"str\", \"int\", \"time\", \"enum\", \"scalar\", \"object\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"id\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"id\"))\n\t\t\tdata, err := ec.unmarshalOID2ᚖstring(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.ID = graphql.OmittableOf(data)\n\t\tcase \"bool\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"bool\"))\n\t\t\tdata, err := ec.unmarshalOBoolean2ᚖbool(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Bool = graphql.OmittableOf(data)\n\t\tcase \"str\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"str\"))\n\t\t\tdata, err := ec.unmarshalOString2ᚖstring(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Str = graphql.OmittableOf(data)\n\t\tcase \"int\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"int\"))\n\t\t\tdata, err := ec.unmarshalOInt2ᚖint(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Int = graphql.OmittableOf(data)\n\t\tcase \"time\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"time\"))\n\t\t\tdata, err := ec.unmarshalOTime2ᚖtimeᚐTime(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Time = graphql.OmittableOf(data)\n\t\tcase \"enum\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"enum\"))\n\t\t\tdata, err := ec.unmarshalOStatus2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐStatus(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Enum = graphql.OmittableOf(data)\n\t\tcase \"scalar\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"scalar\"))\n\t\t\tdata, err := ec.unmarshalOThirdParty2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐThirdParty(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Scalar = graphql.OmittableOf(data)\n\t\tcase \"object\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"object\"))\n\t\t\tdata, err := ec.unmarshalOOuterInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐOuterInput(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Object = graphql.OmittableOf(data)\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputOuterInput(ctx context.Context, obj any) (OuterInput, error) {\n\tvar it OuterInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"inner\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"inner\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"inner\"))\n\t\t\tdata, err := ec.unmarshalNInnerInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐInnerInput(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Inner = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputOuterWrapperInput(ctx context.Context, obj any) (OuterWrapperInput, error) {\n\tvar it OuterWrapperInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"inner\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"inner\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"inner\"))\n\t\t\tdata, err := ec.unmarshalNInputDirectives2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐInputDirectives(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Inner = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputRecursiveInputSlice(ctx context.Context, obj any) (RecursiveInputSlice, error) {\n\tvar it RecursiveInputSlice\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"self\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"self\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"self\"))\n\t\t\tdata, err := ec.unmarshalORecursiveInputSlice2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐRecursiveInputSliceᚄ(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Self = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputRequiredFilters(ctx context.Context, obj any) (map[string]any, error) {\n\tvar it map[string]any\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"name\", \"age\"}\n\tit = make(map[string]any, len(asMap))\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"name\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"name\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"name\"] = data\n\t\tcase \"age\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"age\"))\n\t\t\tdata, err := ec.unmarshalNInt2int(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"age\"] = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputSearchFilters(ctx context.Context, obj any) (map[string]any, error) {\n\tvar it map[string]any\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"query\", \"category\", \"minPrice\"}\n\tit = make(map[string]any, len(asMap))\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"query\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"query\"))\n\t\t\tdata, err := ec.unmarshalOString2ᚖstring(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"query\"] = data\n\t\tcase \"category\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"category\"))\n\t\t\tdata, err := ec.unmarshalOString2ᚖstring(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"category\"] = data\n\t\tcase \"minPrice\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"minPrice\"))\n\t\t\tdata, err := ec.unmarshalOInt2ᚖint(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"minPrice\"] = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputSearchWithDefaults(ctx context.Context, obj any) (map[string]any, error) {\n\tvar it map[string]any\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tif _, present := asMap[\"query\"]; !present {\n\t\tasMap[\"query\"] = \"default search\"\n\t}\n\tif _, present := asMap[\"limit\"]; !present {\n\t\tasMap[\"limit\"] = 20\n\t}\n\tif _, present := asMap[\"includeArchived\"]; !present {\n\t\tasMap[\"includeArchived\"] = false\n\t}\n\n\tfieldsInOrder := [...]string{\"query\", \"limit\", \"includeArchived\"}\n\tit = make(map[string]any, len(asMap))\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"query\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"query\"))\n\t\t\tdata, err := ec.unmarshalOString2ᚖstring(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"query\"] = data\n\t\tcase \"limit\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"limit\"))\n\t\t\tdata, err := ec.unmarshalOInt2ᚖint(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"limit\"] = data\n\t\tcase \"includeArchived\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"includeArchived\"))\n\t\t\tdata, err := ec.unmarshalOBoolean2ᚖbool(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"includeArchived\"] = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputSpecialInput(ctx context.Context, obj any) (SpecialInput, error) {\n\tvar it SpecialInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"nesting\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"nesting\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"nesting\"))\n\t\t\tdata, err := ec.unmarshalNNestedInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐNestedInput(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Nesting = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputUpdateProductInput(ctx context.Context, obj any) (map[string]any, error) {\n\tvar it map[string]any\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"id\", \"name\", \"price\"}\n\tit = make(map[string]any, len(asMap))\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"id\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"id\"))\n\t\t\tdata, err := ec.unmarshalNID2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"id\"] = data\n\t\tcase \"name\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"name\"))\n\t\t\tdata, err := ec.unmarshalOString2ᚖstring(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"name\"] = data\n\t\tcase \"price\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"price\"))\n\t\t\tdata, err := ec.unmarshalOFloat2ᚖfloat64(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit[\"price\"] = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputUpdatePtrToPtrInner(ctx context.Context, obj any) (UpdatePtrToPtrInner, error) {\n\tvar it UpdatePtrToPtrInner\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"key\", \"value\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"key\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"key\"))\n\t\t\tdata, err := ec.unmarshalOString2ᚖstring(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Key = data\n\t\tcase \"value\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"value\"))\n\t\t\tdata, err := ec.unmarshalOString2ᚖstring(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Value = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputUpdatePtrToPtrOuter(ctx context.Context, obj any) (UpdatePtrToPtrOuter, error) {\n\tvar it UpdatePtrToPtrOuter\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"name\", \"inner\", \"stupidInner\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"name\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"name\"))\n\t\t\tdata, err := ec.unmarshalOString2ᚖstring(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Name = data\n\t\tcase \"inner\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"inner\"))\n\t\t\tdata, err := ec.unmarshalOUpdatePtrToPtrInner2ᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐUpdatePtrToPtrInner(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Inner = data\n\t\tcase \"stupidInner\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"stupidInner\"))\n\t\t\tdata, err := ec.unmarshalOUpdatePtrToPtrInner2ᚖᚖᚖᚖᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐUpdatePtrToPtrInner(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.StupidInner = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputValidInput(ctx context.Context, obj any) (ValidInput, error) {\n\tvar it ValidInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"break\", \"default\", \"func\", \"interface\", \"select\", \"case\", \"defer\", \"go\", \"map\", \"struct\", \"chan\", \"else\", \"goto\", \"package\", \"switch\", \"const\", \"fallthrough\", \"if\", \"range\", \"type\", \"continue\", \"for\", \"import\", \"return\", \"var\", \"_\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"break\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"break\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Break = data\n\t\tcase \"default\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"default\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Default = data\n\t\tcase \"func\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"func\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Func = data\n\t\tcase \"interface\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"interface\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Interface = data\n\t\tcase \"select\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"select\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Select = data\n\t\tcase \"case\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"case\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Case = data\n\t\tcase \"defer\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"defer\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Defer = data\n\t\tcase \"go\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"go\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Go = data\n\t\tcase \"map\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"map\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Map = data\n\t\tcase \"struct\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"struct\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Struct = data\n\t\tcase \"chan\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"chan\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Chan = data\n\t\tcase \"else\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"else\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Else = data\n\t\tcase \"goto\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"goto\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Goto = data\n\t\tcase \"package\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"package\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Package = data\n\t\tcase \"switch\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"switch\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Switch = data\n\t\tcase \"const\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"const\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Const = data\n\t\tcase \"fallthrough\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"fallthrough\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Fallthrough = data\n\t\tcase \"if\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"if\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.If = data\n\t\tcase \"range\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"range\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Range = data\n\t\tcase \"type\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"type\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Type = data\n\t\tcase \"continue\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"continue\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Continue = data\n\t\tcase \"for\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"for\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.For = data\n\t\tcase \"import\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"import\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Import = data\n\t\tcase \"return\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"return\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Return = data\n\t\tcase \"var\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"var\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Var = data\n\t\tcase \"_\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"_\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Underscore = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\nfunc (ec *executionContext) _Animal(ctx context.Context, sel ast.SelectionSet, obj Animal) graphql.Marshaler {\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\tcase Horse:\n\t\treturn ec._Horse(ctx, sel, &obj)\n\tcase *Horse:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Horse(ctx, sel, obj)\n\tcase Mammalian:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Mammalian(ctx, sel, obj)\n\tcase Dog:\n\t\treturn ec._Dog(ctx, sel, &obj)\n\tcase *Dog:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Dog(ctx, sel, obj)\n\tcase Cat:\n\t\treturn ec._Cat(ctx, sel, &obj)\n\tcase *Cat:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Cat(ctx, sel, obj)\n\tdefault:\n\t\tif typedObj, ok := obj.(graphql.Marshaler); ok {\n\t\t\treturn typedObj\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T; non-generated variants of Animal must implement graphql.Marshaler\", obj))\n\t\t}\n\t}\n}\n\nfunc (ec *executionContext) _Content_Child(ctx context.Context, sel ast.SelectionSet, obj ContentChild) graphql.Marshaler {\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\tcase ContentUser:\n\t\treturn ec._Content_User(ctx, sel, &obj)\n\tcase *ContentUser:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Content_User(ctx, sel, obj)\n\tcase ContentPost:\n\t\treturn ec._Content_Post(ctx, sel, &obj)\n\tcase *ContentPost:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Content_Post(ctx, sel, obj)\n\tdefault:\n\t\tif typedObj, ok := obj.(graphql.Marshaler); ok {\n\t\t\treturn typedObj\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T; non-generated variants of Content_Child must implement graphql.Marshaler\", obj))\n\t\t}\n\t}\n}\n\nfunc (ec *executionContext) _Mammalian(ctx context.Context, sel ast.SelectionSet, obj Mammalian) graphql.Marshaler {\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\tcase Horse:\n\t\treturn ec._Horse(ctx, sel, &obj)\n\tcase *Horse:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Horse(ctx, sel, obj)\n\tdefault:\n\t\tif typedObj, ok := obj.(graphql.Marshaler); ok {\n\t\t\treturn typedObj\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T; non-generated variants of Mammalian must implement graphql.Marshaler\", obj))\n\t\t}\n\t}\n}\n\nfunc (ec *executionContext) _Node(ctx context.Context, sel ast.SelectionSet, obj Node) graphql.Marshaler {\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\tcase ConcreteNodeInterface:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._ConcreteNodeInterface(ctx, sel, obj)\n\tcase *ConcreteNodeA:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._ConcreteNodeA(ctx, sel, obj)\n\tdefault:\n\t\tif typedObj, ok := obj.(graphql.Marshaler); ok {\n\t\t\treturn typedObj\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T; non-generated variants of Node must implement graphql.Marshaler\", obj))\n\t\t}\n\t}\n}\n\nfunc (ec *executionContext) _Shape(ctx context.Context, sel ast.SelectionSet, obj Shape) graphql.Marshaler {\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\tcase *Rectangle:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Rectangle(ctx, sel, obj)\n\tcase *Circle:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Circle(ctx, sel, obj)\n\tdefault:\n\t\tif typedObj, ok := obj.(graphql.Marshaler); ok {\n\t\t\treturn typedObj\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T; non-generated variants of Shape must implement graphql.Marshaler\", obj))\n\t\t}\n\t}\n}\n\nfunc (ec *executionContext) _ShapeUnion(ctx context.Context, sel ast.SelectionSet, obj ShapeUnion) graphql.Marshaler {\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\tcase *Rectangle:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Rectangle(ctx, sel, obj)\n\tcase *Circle:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Circle(ctx, sel, obj)\n\tdefault:\n\t\tif typedObj, ok := obj.(graphql.Marshaler); ok {\n\t\t\treturn typedObj\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T; non-generated variants of ShapeUnion must implement graphql.Marshaler\", obj))\n\t\t}\n\t}\n}\n\nfunc (ec *executionContext) _TestUnion(ctx context.Context, sel ast.SelectionSet, obj TestUnion) graphql.Marshaler {\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\tcase B:\n\t\treturn ec._B(ctx, sel, &obj)\n\tcase *B:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._B(ctx, sel, obj)\n\tcase A:\n\t\treturn ec._A(ctx, sel, &obj)\n\tcase *A:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._A(ctx, sel, obj)\n\tdefault:\n\t\tif typedObj, ok := obj.(graphql.Marshaler); ok {\n\t\t\treturn typedObj\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T; non-generated variants of TestUnion must implement graphql.Marshaler\", obj))\n\t\t}\n\t}\n}\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar aImplementors = []string{\"A\", \"TestUnion\"}\n\nfunc (ec *executionContext) _A(ctx context.Context, sel ast.SelectionSet, obj *A) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, aImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"A\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._A_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar aItImplementors = []string{\"AIt\"}\n\nfunc (ec *executionContext) _AIt(ctx context.Context, sel ast.SelectionSet, obj *AIt) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, aItImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"AIt\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._AIt_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar abItImplementors = []string{\"AbIt\"}\n\nfunc (ec *executionContext) _AbIt(ctx context.Context, sel ast.SelectionSet, obj *AbIt) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, abItImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"AbIt\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._AbIt_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar autobindImplementors = []string{\"Autobind\"}\n\nfunc (ec *executionContext) _Autobind(ctx context.Context, sel ast.SelectionSet, obj *Autobind) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, autobindImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Autobind\")\n\t\tcase \"int\":\n\t\t\tout.Values[i] = ec._Autobind_int(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"int32\":\n\t\t\tout.Values[i] = ec._Autobind_int32(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"int64\":\n\t\t\tout.Values[i] = ec._Autobind_int64(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"idStr\":\n\t\t\tout.Values[i] = ec._Autobind_idStr(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"idInt\":\n\t\t\tout.Values[i] = ec._Autobind_idInt(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar bImplementors = []string{\"B\", \"TestUnion\"}\n\nfunc (ec *executionContext) _B(ctx context.Context, sel ast.SelectionSet, obj *B) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, bImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"B\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._B_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar backedByInterfaceImplementors = []string{\"BackedByInterface\"}\n\nfunc (ec *executionContext) _BackedByInterface(ctx context.Context, sel ast.SelectionSet, obj BackedByInterface) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, backedByInterfaceImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"BackedByInterface\")\n\t\tcase \"id\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._BackedByInterface_id(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"thisShouldBind\":\n\t\t\tout.Values[i] = ec._BackedByInterface_thisShouldBind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"thisShouldBindWithError\":\n\t\t\tout.Values[i] = ec._BackedByInterface_thisShouldBindWithError(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar catImplementors = []string{\"Cat\", \"Animal\"}\n\nfunc (ec *executionContext) _Cat(ctx context.Context, sel ast.SelectionSet, obj *Cat) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, catImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Cat\")\n\t\tcase \"species\":\n\t\t\tout.Values[i] = ec._Cat_species(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"size\":\n\t\t\tout.Values[i] = ec._Cat_size(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"catBreed\":\n\t\t\tout.Values[i] = ec._Cat_catBreed(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar checkIssue896Implementors = []string{\"CheckIssue896\"}\n\nfunc (ec *executionContext) _CheckIssue896(ctx context.Context, sel ast.SelectionSet, obj *CheckIssue896) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, checkIssue896Implementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"CheckIssue896\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._CheckIssue896_id(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar circleImplementors = []string{\"Circle\", \"Shape\", \"ShapeUnion\"}\n\nfunc (ec *executionContext) _Circle(ctx context.Context, sel ast.SelectionSet, obj *Circle) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, circleImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Circle\")\n\t\tcase \"radius\":\n\t\t\tout.Values[i] = ec._Circle_radius(ctx, field, obj)\n\t\tcase \"area\":\n\t\t\tout.Values[i] = ec._Circle_area(ctx, field, obj)\n\t\tcase \"coordinates\":\n\t\t\tout.Values[i] = ec._Circle_coordinates(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar concreteNodeAImplementors = []string{\"ConcreteNodeA\", \"Node\"}\n\nfunc (ec *executionContext) _ConcreteNodeA(ctx context.Context, sel ast.SelectionSet, obj *ConcreteNodeA) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, concreteNodeAImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"ConcreteNodeA\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._ConcreteNodeA_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"child\":\n\t\t\tout.Values[i] = ec._ConcreteNodeA_child(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._ConcreteNodeA_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar concreteNodeInterfaceImplementors = []string{\"ConcreteNodeInterface\", \"Node\"}\n\nfunc (ec *executionContext) _ConcreteNodeInterface(ctx context.Context, sel ast.SelectionSet, obj ConcreteNodeInterface) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, concreteNodeInterfaceImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"ConcreteNodeInterface\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._ConcreteNodeInterface_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"child\":\n\t\t\tout.Values[i] = ec._ConcreteNodeInterface_child(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar content_PostImplementors = []string{\"Content_Post\", \"Content_Child\"}\n\nfunc (ec *executionContext) _Content_Post(ctx context.Context, sel ast.SelectionSet, obj *ContentPost) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, content_PostImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Content_Post\")\n\t\tcase \"foo\":\n\t\t\tout.Values[i] = ec._Content_Post_foo(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar content_UserImplementors = []string{\"Content_User\", \"Content_Child\"}\n\nfunc (ec *executionContext) _Content_User(ctx context.Context, sel ast.SelectionSet, obj *ContentUser) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, content_UserImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Content_User\")\n\t\tcase \"foo\":\n\t\t\tout.Values[i] = ec._Content_User_foo(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar coordinatesImplementors = []string{\"Coordinates\"}\n\nfunc (ec *executionContext) _Coordinates(ctx context.Context, sel ast.SelectionSet, obj *Coordinates) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, coordinatesImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Coordinates\")\n\t\tcase \"x\":\n\t\t\tout.Values[i] = ec._Coordinates_x(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"y\":\n\t\t\tout.Values[i] = ec._Coordinates_y(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar defaultParametersMirrorImplementors = []string{\"DefaultParametersMirror\"}\n\nfunc (ec *executionContext) _DefaultParametersMirror(ctx context.Context, sel ast.SelectionSet, obj *DefaultParametersMirror) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, defaultParametersMirrorImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"DefaultParametersMirror\")\n\t\tcase \"falsyBoolean\":\n\t\t\tout.Values[i] = ec._DefaultParametersMirror_falsyBoolean(ctx, field, obj)\n\t\tcase \"truthyBoolean\":\n\t\t\tout.Values[i] = ec._DefaultParametersMirror_truthyBoolean(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar deferModelImplementors = []string{\"DeferModel\"}\n\nfunc (ec *executionContext) _DeferModel(ctx context.Context, sel ast.SelectionSet, obj *DeferModel) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, deferModelImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"DeferModel\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._DeferModel_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._DeferModel_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"values\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._DeferModel_values(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar dogImplementors = []string{\"Dog\", \"Animal\"}\n\nfunc (ec *executionContext) _Dog(ctx context.Context, sel ast.SelectionSet, obj *Dog) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, dogImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Dog\")\n\t\tcase \"species\":\n\t\t\tout.Values[i] = ec._Dog_species(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"size\":\n\t\t\tout.Values[i] = ec._Dog_size(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"dogBreed\":\n\t\t\tout.Values[i] = ec._Dog_dogBreed(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar embeddedCase1Implementors = []string{\"EmbeddedCase1\"}\n\nfunc (ec *executionContext) _EmbeddedCase1(ctx context.Context, sel ast.SelectionSet, obj *EmbeddedCase1) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, embeddedCase1Implementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"EmbeddedCase1\")\n\t\tcase \"exportedEmbeddedPointerExportedMethod\":\n\t\t\tout.Values[i] = ec._EmbeddedCase1_exportedEmbeddedPointerExportedMethod(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar embeddedCase2Implementors = []string{\"EmbeddedCase2\"}\n\nfunc (ec *executionContext) _EmbeddedCase2(ctx context.Context, sel ast.SelectionSet, obj *EmbeddedCase2) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, embeddedCase2Implementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"EmbeddedCase2\")\n\t\tcase \"unexportedEmbeddedPointerExportedMethod\":\n\t\t\tout.Values[i] = ec._EmbeddedCase2_unexportedEmbeddedPointerExportedMethod(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar embeddedCase3Implementors = []string{\"EmbeddedCase3\"}\n\nfunc (ec *executionContext) _EmbeddedCase3(ctx context.Context, sel ast.SelectionSet, obj *EmbeddedCase3) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, embeddedCase3Implementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"EmbeddedCase3\")\n\t\tcase \"unexportedEmbeddedInterfaceExportedMethod\":\n\t\t\tout.Values[i] = ec._EmbeddedCase3_unexportedEmbeddedInterfaceExportedMethod(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar embeddedDefaultScalarImplementors = []string{\"EmbeddedDefaultScalar\"}\n\nfunc (ec *executionContext) _EmbeddedDefaultScalar(ctx context.Context, sel ast.SelectionSet, obj *EmbeddedDefaultScalar) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, embeddedDefaultScalarImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"EmbeddedDefaultScalar\")\n\t\tcase \"value\":\n\t\t\tout.Values[i] = ec._EmbeddedDefaultScalar_value(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar embeddedPointerImplementors = []string{\"EmbeddedPointer\"}\n\nfunc (ec *executionContext) _EmbeddedPointer(ctx context.Context, sel ast.SelectionSet, obj *EmbeddedPointerModel) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, embeddedPointerImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"EmbeddedPointer\")\n\t\tcase \"ID\":\n\t\t\tout.Values[i] = ec._EmbeddedPointer_ID(ctx, field, obj)\n\t\tcase \"Title\":\n\t\t\tout.Values[i] = ec._EmbeddedPointer_Title(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar errorImplementors = []string{\"Error\"}\n\nfunc (ec *executionContext) _Error(ctx context.Context, sel ast.SelectionSet, obj *Error) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, errorImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Error\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._Error_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"errorOnNonRequiredField\":\n\t\t\tout.Values[i] = ec._Error_errorOnNonRequiredField(ctx, field, obj)\n\t\tcase \"errorOnRequiredField\":\n\t\t\tout.Values[i] = ec._Error_errorOnRequiredField(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"nilOnRequiredField\":\n\t\t\tout.Values[i] = ec._Error_nilOnRequiredField(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar errorsImplementors = []string{\"Errors\"}\n\nfunc (ec *executionContext) _Errors(ctx context.Context, sel ast.SelectionSet, obj *Errors) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, errorsImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Errors\")\n\t\tcase \"a\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Errors_a(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"b\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Errors_b(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"c\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Errors_c(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"d\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Errors_d(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"e\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Errors_e(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar fieldsOrderPayloadImplementors = []string{\"FieldsOrderPayload\"}\n\nfunc (ec *executionContext) _FieldsOrderPayload(ctx context.Context, sel ast.SelectionSet, obj *FieldsOrderPayload) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, fieldsOrderPayloadImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"FieldsOrderPayload\")\n\t\tcase \"firstFieldValue\":\n\t\t\tout.Values[i] = ec._FieldsOrderPayload_firstFieldValue(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar forcedResolverImplementors = []string{\"ForcedResolver\"}\n\nfunc (ec *executionContext) _ForcedResolver(ctx context.Context, sel ast.SelectionSet, obj *ForcedResolver) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, forcedResolverImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"ForcedResolver\")\n\t\tcase \"field\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._ForcedResolver_field(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar horseImplementors = []string{\"Horse\", \"Mammalian\", \"Animal\"}\n\nfunc (ec *executionContext) _Horse(ctx context.Context, sel ast.SelectionSet, obj *Horse) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, horseImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Horse\")\n\t\tcase \"species\":\n\t\t\tout.Values[i] = ec._Horse_species(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"size\":\n\t\t\tout.Values[i] = ec._Horse_size(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"horseBreed\":\n\t\t\tout.Values[i] = ec._Horse_horseBreed(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar innerObjectImplementors = []string{\"InnerObject\"}\n\nfunc (ec *executionContext) _InnerObject(ctx context.Context, sel ast.SelectionSet, obj *InnerObject) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, innerObjectImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"InnerObject\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._InnerObject_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar invalidIdentifierImplementors = []string{\"InvalidIdentifier\"}\n\nfunc (ec *executionContext) _InvalidIdentifier(ctx context.Context, sel ast.SelectionSet, obj *invalid_packagename.InvalidIdentifier) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, invalidIdentifierImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"InvalidIdentifier\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._InvalidIdentifier_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar itImplementors = []string{\"It\"}\n\nfunc (ec *executionContext) _It(ctx context.Context, sel ast.SelectionSet, obj *introspection1.It) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, itImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"It\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._It_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar loopAImplementors = []string{\"LoopA\"}\n\nfunc (ec *executionContext) _LoopA(ctx context.Context, sel ast.SelectionSet, obj *LoopA) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, loopAImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"LoopA\")\n\t\tcase \"b\":\n\t\t\tout.Values[i] = ec._LoopA_b(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar loopBImplementors = []string{\"LoopB\"}\n\nfunc (ec *executionContext) _LoopB(ctx context.Context, sel ast.SelectionSet, obj *LoopB) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, loopBImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"LoopB\")\n\t\tcase \"a\":\n\t\t\tout.Values[i] = ec._LoopB_a(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar mapImplementors = []string{\"Map\"}\n\nfunc (ec *executionContext) _Map(ctx context.Context, sel ast.SelectionSet, obj *Map) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, mapImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Map\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._Map_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar mapNestedImplementors = []string{\"MapNested\"}\n\nfunc (ec *executionContext) _MapNested(ctx context.Context, sel ast.SelectionSet, obj *MapNested) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, mapNestedImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"MapNested\")\n\t\tcase \"value\":\n\t\t\tout.Values[i] = ec._MapNested_value(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar mapStringInterfaceTypeImplementors = []string{\"MapStringInterfaceType\"}\n\nfunc (ec *executionContext) _MapStringInterfaceType(ctx context.Context, sel ast.SelectionSet, obj map[string]any) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, mapStringInterfaceTypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"MapStringInterfaceType\")\n\t\tcase \"a\":\n\t\t\tout.Values[i] = ec._MapStringInterfaceType_a(ctx, field, obj)\n\t\tcase \"b\":\n\t\t\tout.Values[i] = ec._MapStringInterfaceType_b(ctx, field, obj)\n\t\tcase \"c\":\n\t\t\tout.Values[i] = ec._MapStringInterfaceType_c(ctx, field, obj)\n\t\tcase \"nested\":\n\t\t\tout.Values[i] = ec._MapStringInterfaceType_nested(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar modelMethodsImplementors = []string{\"ModelMethods\"}\n\nfunc (ec *executionContext) _ModelMethods(ctx context.Context, sel ast.SelectionSet, obj *ModelMethods) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, modelMethodsImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"ModelMethods\")\n\t\tcase \"resolverField\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._ModelMethods_resolverField(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"noContext\":\n\t\t\tout.Values[i] = ec._ModelMethods_noContext(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"withContext\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._ModelMethods_withContext(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar mutationImplementors = []string{\"Mutation\"}\n\nfunc (ec *executionContext) _Mutation(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, mutationImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Mutation\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Mutation\")\n\t\tcase \"defaultInput\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Mutation_defaultInput(ctx, field)\n\t\t\t})\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"overrideValueViaInput\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Mutation_overrideValueViaInput(ctx, field)\n\t\t\t})\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"updateProduct\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Mutation_updateProduct(ctx, field)\n\t\t\t})\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"issue4053\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Mutation_issue4053(ctx, field)\n\t\t\t})\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"updateSomething\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Mutation_updateSomething(ctx, field)\n\t\t\t})\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"updatePtrToPtr\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Mutation_updatePtrToPtr(ctx, field)\n\t\t\t})\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar objectDirectivesImplementors = []string{\"ObjectDirectives\"}\n\nfunc (ec *executionContext) _ObjectDirectives(ctx context.Context, sel ast.SelectionSet, obj *ObjectDirectives) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, objectDirectivesImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"ObjectDirectives\")\n\t\tcase \"text\":\n\t\t\tout.Values[i] = ec._ObjectDirectives_text(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"nullableText\":\n\t\t\tout.Values[i] = ec._ObjectDirectives_nullableText(ctx, field, obj)\n\t\tcase \"order\":\n\t\t\tout.Values[i] = ec._ObjectDirectives_order(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar objectDirectivesWithCustomGoModelImplementors = []string{\"ObjectDirectivesWithCustomGoModel\"}\n\nfunc (ec *executionContext) _ObjectDirectivesWithCustomGoModel(ctx context.Context, sel ast.SelectionSet, obj *ObjectDirectivesWithCustomGoModel) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, objectDirectivesWithCustomGoModelImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"ObjectDirectivesWithCustomGoModel\")\n\t\tcase \"nullableText\":\n\t\t\tout.Values[i] = ec._ObjectDirectivesWithCustomGoModel_nullableText(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar outerObjectImplementors = []string{\"OuterObject\"}\n\nfunc (ec *executionContext) _OuterObject(ctx context.Context, sel ast.SelectionSet, obj *OuterObject) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, outerObjectImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"OuterObject\")\n\t\tcase \"inner\":\n\t\t\tout.Values[i] = ec._OuterObject_inner(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar overlappingFieldsImplementors = []string{\"OverlappingFields\"}\n\nfunc (ec *executionContext) _OverlappingFields(ctx context.Context, sel ast.SelectionSet, obj *OverlappingFields) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, overlappingFieldsImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"OverlappingFields\")\n\t\tcase \"oneFoo\":\n\t\t\tout.Values[i] = ec._OverlappingFields_oneFoo(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"twoFoo\":\n\t\t\tout.Values[i] = ec._OverlappingFields_twoFoo(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"oldFoo\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._OverlappingFields_oldFoo(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"newFoo\":\n\t\t\tout.Values[i] = ec._OverlappingFields_newFoo(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"new_foo\":\n\t\t\tout.Values[i] = ec._OverlappingFields_new_foo(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar panicsImplementors = []string{\"Panics\"}\n\nfunc (ec *executionContext) _Panics(ctx context.Context, sel ast.SelectionSet, obj *Panics) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, panicsImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Panics\")\n\t\tcase \"fieldScalarMarshal\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Panics_fieldScalarMarshal(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"fieldFuncMarshal\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Panics_fieldFuncMarshal(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"argUnmarshal\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Panics_argUnmarshal(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar petImplementors = []string{\"Pet\"}\n\nfunc (ec *executionContext) _Pet(ctx context.Context, sel ast.SelectionSet, obj *Pet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, petImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Pet\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._Pet_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"friends\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Pet_friends(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar primitiveImplementors = []string{\"Primitive\"}\n\nfunc (ec *executionContext) _Primitive(ctx context.Context, sel ast.SelectionSet, obj *Primitive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, primitiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Primitive\")\n\t\tcase \"value\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Primitive_value(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"squared\":\n\t\t\tout.Values[i] = ec._Primitive_squared(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar primitiveStringImplementors = []string{\"PrimitiveString\"}\n\nfunc (ec *executionContext) _PrimitiveString(ctx context.Context, sel ast.SelectionSet, obj *PrimitiveString) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, primitiveStringImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"PrimitiveString\")\n\t\tcase \"value\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._PrimitiveString_value(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"doubled\":\n\t\t\tout.Values[i] = ec._PrimitiveString_doubled(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"len\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._PrimitiveString_len(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar ptrToAnyContainerImplementors = []string{\"PtrToAnyContainer\"}\n\nfunc (ec *executionContext) _PtrToAnyContainer(ctx context.Context, sel ast.SelectionSet, obj *PtrToAnyContainer) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, ptrToAnyContainerImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"PtrToAnyContainer\")\n\t\tcase \"ptrToAny\":\n\t\t\tout.Values[i] = ec._PtrToAnyContainer_ptrToAny(ctx, field, obj)\n\t\tcase \"binding\":\n\t\t\tout.Values[i] = ec._PtrToAnyContainer_binding(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar ptrToPtrInnerImplementors = []string{\"PtrToPtrInner\"}\n\nfunc (ec *executionContext) _PtrToPtrInner(ctx context.Context, sel ast.SelectionSet, obj *PtrToPtrInner) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, ptrToPtrInnerImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"PtrToPtrInner\")\n\t\tcase \"key\":\n\t\t\tout.Values[i] = ec._PtrToPtrInner_key(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"value\":\n\t\t\tout.Values[i] = ec._PtrToPtrInner_value(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar ptrToPtrOuterImplementors = []string{\"PtrToPtrOuter\"}\n\nfunc (ec *executionContext) _PtrToPtrOuter(ctx context.Context, sel ast.SelectionSet, obj *PtrToPtrOuter) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, ptrToPtrOuterImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"PtrToPtrOuter\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._PtrToPtrOuter_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"inner\":\n\t\t\tout.Values[i] = ec._PtrToPtrOuter_inner(ctx, field, obj)\n\t\tcase \"stupidInner\":\n\t\t\tout.Values[i] = ec._PtrToPtrOuter_stupidInner(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar ptrToSliceContainerImplementors = []string{\"PtrToSliceContainer\"}\n\nfunc (ec *executionContext) _PtrToSliceContainer(ctx context.Context, sel ast.SelectionSet, obj *PtrToSliceContainer) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, ptrToSliceContainerImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"PtrToSliceContainer\")\n\t\tcase \"ptrToSlice\":\n\t\t\tout.Values[i] = ec._PtrToSliceContainer_ptrToSlice(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"invalidIdentifier\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_invalidIdentifier(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"collision\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_collision(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"mapInput\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_mapInput(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"recursive\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_recursive(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"nestedInputs\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_nestedInputs(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"nestedOutputs\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_nestedOutputs(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"modelMethods\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_modelMethods(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"user\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_user(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"nullableArg\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_nullableArg(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"inputSlice\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_inputSlice(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"inputNullableSlice\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_inputNullableSlice(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"inputOmittable\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_inputOmittable(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"shapeUnion\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_shapeUnion(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"autobind\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_autobind(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"deprecatedField\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_deprecatedField(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"fieldWithDeprecatedArg\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_fieldWithDeprecatedArg(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"overlapping\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_overlapping(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"defaultParameters\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_defaultParameters(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"deferSingle\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_deferSingle(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"deferMultiple\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_deferMultiple(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"directiveArg\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_directiveArg(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"directiveNullableArg\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_directiveNullableArg(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"directiveSingleNullableArg\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_directiveSingleNullableArg(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"directiveInputNullable\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_directiveInputNullable(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"directiveInput\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_directiveInput(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"directiveInputType\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_directiveInputType(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"directiveInputOuter\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_directiveInputOuter(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"directiveObject\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_directiveObject(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"directiveObjectWithCustomGoModel\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_directiveObjectWithCustomGoModel(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"directiveFieldDef\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_directiveFieldDef(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"directiveField\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_directiveField(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"directiveDouble\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_directiveDouble(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"directiveUnimplemented\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_directiveUnimplemented(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"embeddedCase1\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_embeddedCase1(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"embeddedCase2\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_embeddedCase2(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"embeddedCase3\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_embeddedCase3(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"enumInInput\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_enumInInput(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"searchProducts\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_searchProducts(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"searchRequired\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_searchRequired(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"searchProductsNormal\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_searchProductsNormal(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"searchWithDefaults\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_searchWithDefaults(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"searchMixed\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_searchMixed(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"filterProducts\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_filterProducts(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findProducts\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_findProducts(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"searchWithDirectives\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_searchWithDirectives(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"shapes\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_shapes(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"noShape\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_noShape(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"node\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_node(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"noShapeTypedNil\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_noShapeTypedNil(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"animal\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_animal(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"notAnInterface\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_notAnInterface(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"dog\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_dog(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"issue896a\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_issue896a(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"mapStringInterface\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_mapStringInterface(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"mapNestedStringInterface\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_mapNestedStringInterface(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"mapNestedMapSlice\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_mapNestedMapSlice(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"errorBubble\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_errorBubble(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"errorBubbleList\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_errorBubbleList(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"errorList\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_errorList(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"errors\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_errors(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"valid\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_valid(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"invalid\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_invalid(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"panics\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_panics(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"primitiveObject\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_primitiveObject(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"primitiveStringObject\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_primitiveStringObject(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"ptrToAnyContainer\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_ptrToAnyContainer(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"ptrToSliceContainer\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_ptrToSliceContainer(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"infinity\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_infinity(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"stringFromContextInterface\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_stringFromContextInterface(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"stringFromContextFunction\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_stringFromContextFunction(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"defaultScalar\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_defaultScalar(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"skipInclude\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_skipInclude(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"slices\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_slices(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"scalarSlice\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_scalarSlice(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"fallback\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_fallback(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"optionalUnion\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_optionalUnion(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"vOkCaseValue\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_vOkCaseValue(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"vOkCaseNil\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_vOkCaseNil(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"validType\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_validType(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"variadicModel\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_variadicModel(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"wrappedStruct\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_wrappedStruct(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"wrappedScalar\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_wrappedScalar(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"wrappedMap\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_wrappedMap(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"wrappedSlice\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_wrappedSlice(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar rectangleImplementors = []string{\"Rectangle\", \"Shape\", \"ShapeUnion\"}\n\nfunc (ec *executionContext) _Rectangle(ctx context.Context, sel ast.SelectionSet, obj *Rectangle) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, rectangleImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Rectangle\")\n\t\tcase \"length\":\n\t\t\tout.Values[i] = ec._Rectangle_length(ctx, field, obj)\n\t\tcase \"width\":\n\t\t\tout.Values[i] = ec._Rectangle_width(ctx, field, obj)\n\t\tcase \"area\":\n\t\t\tout.Values[i] = ec._Rectangle_area(ctx, field, obj)\n\t\tcase \"coordinates\":\n\t\t\tout.Values[i] = ec._Rectangle_coordinates(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar sizeImplementors = []string{\"Size\"}\n\nfunc (ec *executionContext) _Size(ctx context.Context, sel ast.SelectionSet, obj *Size) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, sizeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Size\")\n\t\tcase \"height\":\n\t\t\tout.Values[i] = ec._Size_height(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"weight\":\n\t\t\tout.Values[i] = ec._Size_weight(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar skipIncludeTestTypeImplementors = []string{\"SkipIncludeTestType\"}\n\nfunc (ec *executionContext) _SkipIncludeTestType(ctx context.Context, sel ast.SelectionSet, obj *SkipIncludeTestType) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, skipIncludeTestTypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"SkipIncludeTestType\")\n\t\tcase \"a\":\n\t\t\tout.Values[i] = ec._SkipIncludeTestType_a(ctx, field, obj)\n\t\tcase \"b\":\n\t\t\tout.Values[i] = ec._SkipIncludeTestType_b(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar slicesImplementors = []string{\"Slices\"}\n\nfunc (ec *executionContext) _Slices(ctx context.Context, sel ast.SelectionSet, obj *Slices) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, slicesImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Slices\")\n\t\tcase \"test1\":\n\t\t\tout.Values[i] = ec._Slices_test1(ctx, field, obj)\n\t\tcase \"test2\":\n\t\t\tout.Values[i] = ec._Slices_test2(ctx, field, obj)\n\t\tcase \"test3\":\n\t\t\tout.Values[i] = ec._Slices_test3(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"test4\":\n\t\t\tout.Values[i] = ec._Slices_test4(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar subscriptionImplementors = []string{\"Subscription\"}\n\nfunc (ec *executionContext) _Subscription(ctx context.Context, sel ast.SelectionSet) func(ctx context.Context) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, subscriptionImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Subscription\",\n\t})\n\tif len(fields) != 1 {\n\t\tgraphql.AddErrorf(ctx, \"must subscribe to exactly one stream\")\n\t\treturn nil\n\t}\n\n\tswitch fields[0].Name {\n\tcase \"updated\":\n\t\treturn ec._Subscription_updated(ctx, fields[0])\n\tcase \"initPayload\":\n\t\treturn ec._Subscription_initPayload(ctx, fields[0])\n\tcase \"directiveArg\":\n\t\treturn ec._Subscription_directiveArg(ctx, fields[0])\n\tcase \"directiveNullableArg\":\n\t\treturn ec._Subscription_directiveNullableArg(ctx, fields[0])\n\tcase \"directiveDouble\":\n\t\treturn ec._Subscription_directiveDouble(ctx, fields[0])\n\tcase \"directiveUnimplemented\":\n\t\treturn ec._Subscription_directiveUnimplemented(ctx, fields[0])\n\tcase \"issue896b\":\n\t\treturn ec._Subscription_issue896b(ctx, fields[0])\n\tcase \"errorRequired\":\n\t\treturn ec._Subscription_errorRequired(ctx, fields[0])\n\tdefault:\n\t\tpanic(\"unknown field \" + strconv.Quote(fields[0].Name))\n\t}\n}\n\nvar userImplementors = []string{\"User\"}\n\nfunc (ec *executionContext) _User(ctx context.Context, sel ast.SelectionSet, obj *User) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, userImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"User\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._User_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"friends\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._User_friends(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"created\":\n\t\t\tout.Values[i] = ec._User_created(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"updated\":\n\t\t\tout.Values[i] = ec._User_updated(ctx, field, obj)\n\t\tcase \"pets\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._User_pets(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar vOkCaseNilImplementors = []string{\"VOkCaseNil\"}\n\nfunc (ec *executionContext) _VOkCaseNil(ctx context.Context, sel ast.SelectionSet, obj *VOkCaseNil) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, vOkCaseNilImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"VOkCaseNil\")\n\t\tcase \"value\":\n\t\t\tout.Values[i] = ec._VOkCaseNil_value(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar vOkCaseValueImplementors = []string{\"VOkCaseValue\"}\n\nfunc (ec *executionContext) _VOkCaseValue(ctx context.Context, sel ast.SelectionSet, obj *VOkCaseValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, vOkCaseValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"VOkCaseValue\")\n\t\tcase \"value\":\n\t\t\tout.Values[i] = ec._VOkCaseValue_value(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar validTypeImplementors = []string{\"ValidType\"}\n\nfunc (ec *executionContext) _ValidType(ctx context.Context, sel ast.SelectionSet, obj *ValidType) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, validTypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"ValidType\")\n\t\tcase \"differentCase\":\n\t\t\tout.Values[i] = ec._ValidType_differentCase(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"different_case\":\n\t\t\tout.Values[i] = ec._ValidType_different_case(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"validInputKeywords\":\n\t\t\tout.Values[i] = ec._ValidType_validInputKeywords(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"validArgs\":\n\t\t\tout.Values[i] = ec._ValidType_validArgs(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar variadicModelImplementors = []string{\"VariadicModel\"}\n\nfunc (ec *executionContext) _VariadicModel(ctx context.Context, sel ast.SelectionSet, obj *VariadicModel) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, variadicModelImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"VariadicModel\")\n\t\tcase \"value\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._VariadicModel_value(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar wrappedMapImplementors = []string{\"WrappedMap\"}\n\nfunc (ec *executionContext) _WrappedMap(ctx context.Context, sel ast.SelectionSet, obj WrappedMap) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, wrappedMapImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"WrappedMap\")\n\t\tcase \"get\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._WrappedMap_get(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar wrappedSliceImplementors = []string{\"WrappedSlice\"}\n\nfunc (ec *executionContext) _WrappedSlice(ctx context.Context, sel ast.SelectionSet, obj WrappedSlice) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, wrappedSliceImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"WrappedSlice\")\n\t\tcase \"get\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._WrappedSlice_get(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar wrappedStructImplementors = []string{\"WrappedStruct\"}\n\nfunc (ec *executionContext) _WrappedStruct(ctx context.Context, sel ast.SelectionSet, obj *WrappedStruct) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, wrappedStructImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"WrappedStruct\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._WrappedStruct_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"desc\":\n\t\t\tout.Values[i] = ec._WrappedStruct_desc(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar xXItImplementors = []string{\"XXIt\"}\n\nfunc (ec *executionContext) _XXIt(ctx context.Context, sel ast.SelectionSet, obj *XXIt) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, xXItImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"XXIt\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._XXIt_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar xxItImplementors = []string{\"XxIt\"}\n\nfunc (ec *executionContext) _XxIt(ctx context.Context, sel ast.SelectionSet, obj *XxIt) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, xxItImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"XxIt\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._XxIt_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar asdfItImplementors = []string{\"asdfIt\"}\n\nfunc (ec *executionContext) _asdfIt(ctx context.Context, sel ast.SelectionSet, obj *AsdfIt) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, asdfItImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"asdfIt\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._asdfIt_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar iItImplementors = []string{\"iIt\"}\n\nfunc (ec *executionContext) _iIt(ctx context.Context, sel ast.SelectionSet, obj *IIt) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, iItImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"iIt\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._iIt_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNBytes2ᚕbyte(ctx context.Context, v any) ([]byte, error) {\n\tres, err := UnmarshalBytes(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBytes2ᚕbyte(ctx context.Context, sel ast.SelectionSet, v []byte) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\tres := MarshalBytes(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNCheckIssue8962ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐCheckIssue896(ctx context.Context, sel ast.SelectionSet, v *CheckIssue896) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._CheckIssue896(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNCustomScalar2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐCustomScalar(ctx context.Context, v any) (CustomScalar, error) {\n\tvar res CustomScalar\n\terr := res.UnmarshalGQL(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNCustomScalar2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐCustomScalar(ctx context.Context, sel ast.SelectionSet, v CustomScalar) graphql.Marshaler {\n\treturn v\n}\n\nfunc (ec *executionContext) unmarshalNDefaultInput2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐDefaultInput(ctx context.Context, v any) (DefaultInput, error) {\n\tres, err := ec.unmarshalInputDefaultInput(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNDefaultParametersMirror2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐDefaultParametersMirror(ctx context.Context, sel ast.SelectionSet, v DefaultParametersMirror) graphql.Marshaler {\n\treturn ec._DefaultParametersMirror(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNDefaultParametersMirror2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐDefaultParametersMirror(ctx context.Context, sel ast.SelectionSet, v *DefaultParametersMirror) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._DefaultParametersMirror(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNDefaultScalarImplementation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNDefaultScalarImplementation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNDeferModel2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐDeferModel(ctx context.Context, sel ast.SelectionSet, v *DeferModel) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._DeferModel(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNEmail2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐEmail(ctx context.Context, v any) (Email, error) {\n\tvar res Email\n\terr := res.UnmarshalGQL(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNEmail2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐEmail(ctx context.Context, sel ast.SelectionSet, v Email) graphql.Marshaler {\n\treturn v\n}\n\nfunc (ec *executionContext) unmarshalNEnumTest2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐEnumTest(ctx context.Context, v any) (EnumTest, error) {\n\tvar res EnumTest\n\terr := res.UnmarshalGQL(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNEnumTest2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐEnumTest(ctx context.Context, sel ast.SelectionSet, v EnumTest) graphql.Marshaler {\n\treturn v\n}\n\nfunc (ec *executionContext) marshalNError2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐError(ctx context.Context, sel ast.SelectionSet, v Error) graphql.Marshaler {\n\treturn ec._Error(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNError2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐError(ctx context.Context, sel ast.SelectionSet, v *Error) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Error(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNFallbackToStringEncoding2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐFallbackToStringEncoding(ctx context.Context, v any) (FallbackToStringEncoding, error) {\n\ttmp, err := graphql.UnmarshalString(v)\n\tres := FallbackToStringEncoding(tmp)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNFallbackToStringEncoding2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐFallbackToStringEncoding(ctx context.Context, sel ast.SelectionSet, v FallbackToStringEncoding) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(string(v))\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNFieldsOrderInput2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐFieldsOrderInput(ctx context.Context, v any) (FieldsOrderInput, error) {\n\tres, err := ec.unmarshalInputFieldsOrderInput(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNFieldsOrderPayload2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐFieldsOrderPayload(ctx context.Context, sel ast.SelectionSet, v FieldsOrderPayload) graphql.Marshaler {\n\treturn ec._FieldsOrderPayload(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNFieldsOrderPayload2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐFieldsOrderPayload(ctx context.Context, sel ast.SelectionSet, v *FieldsOrderPayload) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._FieldsOrderPayload(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNFloat2float64(ctx context.Context, v any) (float64, error) {\n\tres, err := graphql.UnmarshalFloatContext(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNFloat2float64(ctx context.Context, sel ast.SelectionSet, v float64) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalFloatContext(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn graphql.WrapContextMarshaler(ctx, res)\n}\n\nfunc (ec *executionContext) unmarshalNID2int(ctx context.Context, v any) (int, error) {\n\tres, err := graphql.UnmarshalIntID(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNID2int(ctx context.Context, sel ast.SelectionSet, v int) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalIntID(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNID2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalID(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNID2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalID(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNInnerDirectives2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐInnerDirectives(ctx context.Context, v any) (*InnerDirectives, error) {\n\tres, err := ec.unmarshalInputInnerDirectives(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalNInnerInput2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐInnerInput(ctx context.Context, v any) (InnerInput, error) {\n\tres, err := ec.unmarshalInputInnerInput(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalNInnerInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐInnerInput(ctx context.Context, v any) (*InnerInput, error) {\n\tres, err := ec.unmarshalInputInnerInput(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNInnerObject2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐInnerObject(ctx context.Context, sel ast.SelectionSet, v *InnerObject) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._InnerObject(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNInputDirectives2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐInputDirectives(ctx context.Context, v any) (InputDirectives, error) {\n\tres, err := ec.unmarshalInputInputDirectives(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalNInputDirectives2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐInputDirectives(ctx context.Context, v any) (*InputDirectives, error) {\n\tres, err := ec.unmarshalInputInputDirectives(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalNInt2int(ctx context.Context, v any) (int, error) {\n\tres, err := graphql.UnmarshalInt(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNInt2int(ctx context.Context, sel ast.SelectionSet, v int) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalInt(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNInt2int32(ctx context.Context, v any) (int32, error) {\n\tres, err := graphql.UnmarshalInt32(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNInt2int32(ctx context.Context, sel ast.SelectionSet, v int32) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalInt32(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNInt2int64(ctx context.Context, v any) (int64, error) {\n\tres, err := graphql.UnmarshalInt64(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNInt2int64(ctx context.Context, sel ast.SelectionSet, v int64) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalInt64(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNLoopA2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐLoopA(ctx context.Context, sel ast.SelectionSet, v *LoopA) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._LoopA(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNLoopB2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐLoopB(ctx context.Context, sel ast.SelectionSet, v *LoopB) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._LoopB(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNMapNestedMapSliceInput2map(ctx context.Context, v any) (map[string]any, error) {\n\tres, err := ec.unmarshalInputMapNestedMapSliceInput(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalNMarshalPanic2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐMarshalPanic(ctx context.Context, v any) (MarshalPanic, error) {\n\tvar res MarshalPanic\n\terr := res.UnmarshalGQL(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNMarshalPanic2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐMarshalPanic(ctx context.Context, sel ast.SelectionSet, v MarshalPanic) graphql.Marshaler {\n\treturn v\n}\n\nfunc (ec *executionContext) unmarshalNMarshalPanic2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐMarshalPanicᚄ(ctx context.Context, v any) ([]MarshalPanic, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]MarshalPanic, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNMarshalPanic2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐMarshalPanic(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalNMarshalPanic2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐMarshalPanicᚄ(ctx context.Context, sel ast.SelectionSet, v []MarshalPanic) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNMarshalPanic2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐMarshalPanic(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalNNestedInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐNestedInput(ctx context.Context, v any) (*NestedInput, error) {\n\tres, err := ec.unmarshalInputNestedInput(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNNode2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐNode(ctx context.Context, sel ast.SelectionSet, v Node) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Node(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNOmittableInput2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐOmittableInput(ctx context.Context, v any) (OmittableInput, error) {\n\tres, err := ec.unmarshalInputOmittableInput(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalNOuterWrapperInput2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐOuterWrapperInput(ctx context.Context, v any) (OuterWrapperInput, error) {\n\tres, err := ec.unmarshalInputOuterWrapperInput(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNPet2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPet(ctx context.Context, sel ast.SelectionSet, v *Pet) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Pet(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNPrimitive2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPrimitive(ctx context.Context, sel ast.SelectionSet, v Primitive) graphql.Marshaler {\n\treturn ec._Primitive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNPrimitive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPrimitiveᚄ(ctx context.Context, sel ast.SelectionSet, v []Primitive) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNPrimitive2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPrimitive(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalNPrimitiveString2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPrimitiveString(ctx context.Context, sel ast.SelectionSet, v PrimitiveString) graphql.Marshaler {\n\treturn ec._PrimitiveString(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNPrimitiveString2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPrimitiveStringᚄ(ctx context.Context, sel ast.SelectionSet, v []PrimitiveString) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNPrimitiveString2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPrimitiveString(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalNPtrToAnyContainer2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPtrToAnyContainer(ctx context.Context, sel ast.SelectionSet, v PtrToAnyContainer) graphql.Marshaler {\n\treturn ec._PtrToAnyContainer(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNPtrToAnyContainer2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPtrToAnyContainer(ctx context.Context, sel ast.SelectionSet, v *PtrToAnyContainer) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._PtrToAnyContainer(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNPtrToPtrOuter2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPtrToPtrOuter(ctx context.Context, sel ast.SelectionSet, v PtrToPtrOuter) graphql.Marshaler {\n\treturn ec._PtrToPtrOuter(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNPtrToPtrOuter2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPtrToPtrOuter(ctx context.Context, sel ast.SelectionSet, v *PtrToPtrOuter) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._PtrToPtrOuter(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNPtrToSliceContainer2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPtrToSliceContainer(ctx context.Context, sel ast.SelectionSet, v PtrToSliceContainer) graphql.Marshaler {\n\treturn ec._PtrToSliceContainer(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNPtrToSliceContainer2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPtrToSliceContainer(ctx context.Context, sel ast.SelectionSet, v *PtrToSliceContainer) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._PtrToSliceContainer(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNRecursiveInputSlice2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐRecursiveInputSlice(ctx context.Context, v any) (RecursiveInputSlice, error) {\n\tres, err := ec.unmarshalInputRecursiveInputSlice(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNShapeUnion2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐShapeUnion(ctx context.Context, sel ast.SelectionSet, v ShapeUnion) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._ShapeUnion(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNSize2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐSize(ctx context.Context, sel ast.SelectionSet, v *Size) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Size(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNSpecialInput2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐSpecialInput(ctx context.Context, v any) (SpecialInput, error) {\n\tres, err := ec.unmarshalInputSpecialInput(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNString2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNString2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalNString2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNString2string(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalNString2ᚕᚖstring(ctx context.Context, v any) ([]*string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]*string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalOString2ᚖstring(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalNString2ᚕᚖstring(ctx context.Context, sel ast.SelectionSet, v []*string) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalOString2ᚖstring(ctx, sel, v[i])\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalNString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\tres := graphql.MarshalString(*v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNStringFromContextFunction2string(ctx context.Context, v any) (string, error) {\n\tres, err := UnmarshalStringFromContextFunction(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNStringFromContextFunction2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := MarshalStringFromContextFunction(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn graphql.WrapContextMarshaler(ctx, res)\n}\n\nfunc (ec *executionContext) unmarshalNStringFromContextInterface2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐStringFromContextInterface(ctx context.Context, v any) (StringFromContextInterface, error) {\n\tvar res StringFromContextInterface\n\terr := res.UnmarshalGQLContext(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNStringFromContextInterface2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐStringFromContextInterface(ctx context.Context, sel ast.SelectionSet, v StringFromContextInterface) graphql.Marshaler {\n\treturn graphql.WrapContextMarshaler(ctx, v)\n}\n\nfunc (ec *executionContext) unmarshalNStringFromContextInterface2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐStringFromContextInterface(ctx context.Context, v any) (*StringFromContextInterface, error) {\n\tvar res = new(StringFromContextInterface)\n\terr := res.UnmarshalGQLContext(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNStringFromContextInterface2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐStringFromContextInterface(ctx context.Context, sel ast.SelectionSet, v *StringFromContextInterface) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn graphql.WrapContextMarshaler(ctx, v)\n}\n\nfunc (ec *executionContext) unmarshalNTime2timeᚐTime(ctx context.Context, v any) (time.Time, error) {\n\tres, err := graphql.UnmarshalTime(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNTime2timeᚐTime(ctx context.Context, sel ast.SelectionSet, v time.Time) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalTime(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNUUID2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNUUID2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNUpdatePtrToPtrOuter2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐUpdatePtrToPtrOuter(ctx context.Context, v any) (UpdatePtrToPtrOuter, error) {\n\tres, err := ec.unmarshalInputUpdatePtrToPtrOuter(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNUser2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐUser(ctx context.Context, sel ast.SelectionSet, v User) graphql.Marshaler {\n\treturn ec._User(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNUser2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐUserᚄ(ctx context.Context, sel ast.SelectionSet, v []*User) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐUser(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalNUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐUser(ctx context.Context, sel ast.SelectionSet, v *User) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._User(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNWrappedMap2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐWrappedMap(ctx context.Context, sel ast.SelectionSet, v WrappedMap) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._WrappedMap(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNWrappedScalar2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚋotherpkgᚐScalar(ctx context.Context, v any) (otherpkg.Scalar, error) {\n\ttmp, err := graphql.UnmarshalString(v)\n\tres := otherpkg.Scalar(tmp)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNWrappedScalar2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚋotherpkgᚐScalar(ctx context.Context, sel ast.SelectionSet, v otherpkg.Scalar) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(string(v))\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNWrappedSlice2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐWrappedSlice(ctx context.Context, sel ast.SelectionSet, v WrappedSlice) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._WrappedSlice(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNWrappedStruct2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐWrappedStruct(ctx context.Context, sel ast.SelectionSet, v WrappedStruct) graphql.Marshaler {\n\treturn ec._WrappedStruct(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNWrappedStruct2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐWrappedStruct(ctx context.Context, sel ast.SelectionSet, v *WrappedStruct) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._WrappedStruct(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalOAnimal2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐAnimal(ctx context.Context, sel ast.SelectionSet, v Animal) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Animal(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOAny2interface(ctx context.Context, v any) (any, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalAny(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOAny2interface(ctx context.Context, sel ast.SelectionSet, v any) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalAny(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOAny2ᚖinterface(ctx context.Context, v any) (*any, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalOAny2interface(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOAny2ᚖinterface(ctx context.Context, sel ast.SelectionSet, v *any) graphql.Marshaler {\n\treturn ec.marshalOAny2interface(ctx, sel, *v)\n}\n\nfunc (ec *executionContext) marshalOAutobind2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐAutobind(ctx context.Context, sel ast.SelectionSet, v *Autobind) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Autobind(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOBackedByInterface2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐBackedByInterface(ctx context.Context, sel ast.SelectionSet, v BackedByInterface) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._BackedByInterface(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOChanges2map(ctx context.Context, v any) (map[string]any, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputChanges(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOCheckIssue8962ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐCheckIssue896(ctx context.Context, sel ast.SelectionSet, v []*CheckIssue896) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalOCheckIssue8962ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐCheckIssue896(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOCheckIssue8962ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐCheckIssue896ᚄ(ctx context.Context, sel ast.SelectionSet, v []*CheckIssue896) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNCheckIssue8962ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐCheckIssue896(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOCheckIssue8962ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐCheckIssue896(ctx context.Context, sel ast.SelectionSet, v *CheckIssue896) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._CheckIssue896(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOCircle2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐCircle(ctx context.Context, sel ast.SelectionSet, v *Circle) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Circle(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOCoordinates2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐCoordinates(ctx context.Context, sel ast.SelectionSet, v Coordinates) graphql.Marshaler {\n\treturn ec._Coordinates(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) unmarshalOCustomScalar2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐCustomScalar(ctx context.Context, v any) (*CustomScalar, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar res = new(CustomScalar)\n\terr := res.UnmarshalGQL(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOCustomScalar2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐCustomScalar(ctx context.Context, sel ast.SelectionSet, v *CustomScalar) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn v\n}\n\nfunc (ec *executionContext) unmarshalODefaultScalarImplementation2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalODefaultScalarImplementation2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalODeferModel2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐDeferModelᚄ(ctx context.Context, sel ast.SelectionSet, v []*DeferModel) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNDeferModel2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐDeferModel(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalODeferModel2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐDeferModel(ctx context.Context, sel ast.SelectionSet, v *DeferModel) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._DeferModel(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalODog2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐDog(ctx context.Context, sel ast.SelectionSet, v *Dog) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Dog(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOEmbeddedCase12ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐEmbeddedCase1(ctx context.Context, sel ast.SelectionSet, v *EmbeddedCase1) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._EmbeddedCase1(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOEmbeddedCase22ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐEmbeddedCase2(ctx context.Context, sel ast.SelectionSet, v *EmbeddedCase2) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._EmbeddedCase2(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOEmbeddedCase32ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐEmbeddedCase3(ctx context.Context, sel ast.SelectionSet, v *EmbeddedCase3) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._EmbeddedCase3(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOError2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐError(ctx context.Context, sel ast.SelectionSet, v []*Error) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalOError2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐError(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOError2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐErrorᚄ(ctx context.Context, sel ast.SelectionSet, v []*Error) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNError2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐError(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOError2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐError(ctx context.Context, sel ast.SelectionSet, v *Error) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Error(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOErrors2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐErrors(ctx context.Context, sel ast.SelectionSet, v *Errors) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Errors(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOFloat2float64(ctx context.Context, v any) (float64, error) {\n\tres, err := graphql.UnmarshalFloatContext(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOFloat2float64(ctx context.Context, sel ast.SelectionSet, v float64) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalFloatContext(v)\n\treturn graphql.WrapContextMarshaler(ctx, res)\n}\n\nfunc (ec *executionContext) unmarshalOFloat2ᚖfloat64(ctx context.Context, v any) (*float64, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalFloatContext(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOFloat2ᚖfloat64(ctx context.Context, sel ast.SelectionSet, v *float64) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\tres := graphql.MarshalFloatContext(*v)\n\treturn graphql.WrapContextMarshaler(ctx, res)\n}\n\nfunc (ec *executionContext) unmarshalOID2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalID(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOID2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalID(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOInnerDirectives2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐInnerDirectives(ctx context.Context, v any) (*InnerDirectives, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputInnerDirectives(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalOInputDirectives2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐInputDirectives(ctx context.Context, v any) (*InputDirectives, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputInputDirectives(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalOInputWithEnumValue2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐInputWithEnumValue(ctx context.Context, v any) (*InputWithEnumValue, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputInputWithEnumValue(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalOInt2ᚖint(ctx context.Context, v any) (*int, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalInt(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOInt2ᚖint(ctx context.Context, sel ast.SelectionSet, v *int) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalInt(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalOInvalidIdentifier2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚋinvalidᚑpackagenameᚐInvalidIdentifier(ctx context.Context, sel ast.SelectionSet, v *invalid_packagename.InvalidIdentifier) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._InvalidIdentifier(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOIssue4053Input12ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐIssue4053Input1(ctx context.Context, v any) (*Issue4053Input1, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputIssue4053Input1(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalOIssue4053Input22githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐIssue4053Input2(ctx context.Context, v any) (Issue4053Input2, error) {\n\tres, err := ec.unmarshalInputIssue4053Input2(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOIt2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚋintrospectionᚐIt(ctx context.Context, sel ast.SelectionSet, v *introspection1.It) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._It(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOMapNested2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐMapNested(ctx context.Context, sel ast.SelectionSet, v *MapNested) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._MapNested(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOMapNestedInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐMapNested(ctx context.Context, v any) (*MapNested, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputMapNestedInput(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalOMapNestedMapSliceInput2map(ctx context.Context, v any) (map[string]any, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputMapNestedMapSliceInput(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalOMapNestedMapSliceInput2ᚕmapᚄ(ctx context.Context, v any) ([]map[string]any, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]map[string]any, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNMapNestedMapSliceInput2map(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) unmarshalOMapStringInterfaceInput2map(ctx context.Context, v any) (map[string]any, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputMapStringInterfaceInput(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOMapStringInterfaceType2map(ctx context.Context, sel ast.SelectionSet, v map[string]any) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._MapStringInterfaceType(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOModelMethods2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐModelMethods(ctx context.Context, sel ast.SelectionSet, v *ModelMethods) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._ModelMethods(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalONestedMapInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐNestedMapInput(ctx context.Context, v any) (*NestedMapInput, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputNestedMapInput(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOObjectDirectives2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐObjectDirectives(ctx context.Context, sel ast.SelectionSet, v *ObjectDirectives) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._ObjectDirectives(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOObjectDirectivesWithCustomGoModel2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐObjectDirectivesWithCustomGoModel(ctx context.Context, sel ast.SelectionSet, v *ObjectDirectivesWithCustomGoModel) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._ObjectDirectivesWithCustomGoModel(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOOuterInput2ᚕᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐOuterInput(ctx context.Context, v any) ([][]*OuterInput, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([][]*OuterInput, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalOOuterInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐOuterInput(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) unmarshalOOuterInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐOuterInput(ctx context.Context, v any) ([]*OuterInput, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]*OuterInput, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalOOuterInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐOuterInput(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) unmarshalOOuterInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐOuterInput(ctx context.Context, v any) (*OuterInput, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputOuterInput(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOOuterObject2ᚕᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐOuterObject(ctx context.Context, sel ast.SelectionSet, v [][]*OuterObject) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalOOuterObject2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐOuterObject(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOOuterObject2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐOuterObject(ctx context.Context, sel ast.SelectionSet, v []*OuterObject) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalOOuterObject2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐOuterObject(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOOuterObject2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐOuterObject(ctx context.Context, sel ast.SelectionSet, v *OuterObject) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._OuterObject(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOOverlappingFields2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐOverlappingFields(ctx context.Context, sel ast.SelectionSet, v *OverlappingFields) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._OverlappingFields(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOPanics2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPanics(ctx context.Context, sel ast.SelectionSet, v *Panics) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Panics(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOPet2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPetᚄ(ctx context.Context, sel ast.SelectionSet, v []*Pet) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNPet2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPet(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOPtrToPtrInner2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPtrToPtrInner(ctx context.Context, sel ast.SelectionSet, v *PtrToPtrInner) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._PtrToPtrInner(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOPtrToPtrInner2ᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPtrToPtrInner(ctx context.Context, sel ast.SelectionSet, v **PtrToPtrInner) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.marshalOPtrToPtrInner2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPtrToPtrInner(ctx, sel, *v)\n}\n\nfunc (ec *executionContext) marshalOPtrToPtrInner2ᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPtrToPtrInner(ctx context.Context, sel ast.SelectionSet, v ***PtrToPtrInner) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.marshalOPtrToPtrInner2ᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPtrToPtrInner(ctx, sel, *v)\n}\n\nfunc (ec *executionContext) marshalOPtrToPtrInner2ᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPtrToPtrInner(ctx context.Context, sel ast.SelectionSet, v ****PtrToPtrInner) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.marshalOPtrToPtrInner2ᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPtrToPtrInner(ctx, sel, *v)\n}\n\nfunc (ec *executionContext) marshalOPtrToPtrInner2ᚖᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPtrToPtrInner(ctx context.Context, sel ast.SelectionSet, v *****PtrToPtrInner) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.marshalOPtrToPtrInner2ᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPtrToPtrInner(ctx, sel, *v)\n}\n\nfunc (ec *executionContext) marshalOPtrToPtrInner2ᚖᚖᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPtrToPtrInner(ctx context.Context, sel ast.SelectionSet, v ******PtrToPtrInner) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.marshalOPtrToPtrInner2ᚖᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPtrToPtrInner(ctx, sel, *v)\n}\n\nfunc (ec *executionContext) marshalOPtrToPtrInner2ᚖᚖᚖᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPtrToPtrInner(ctx context.Context, sel ast.SelectionSet, v *******PtrToPtrInner) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.marshalOPtrToPtrInner2ᚖᚖᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐPtrToPtrInner(ctx, sel, *v)\n}\n\nfunc (ec *executionContext) unmarshalORecursiveInputSlice2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐRecursiveInputSliceᚄ(ctx context.Context, v any) ([]RecursiveInputSlice, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]RecursiveInputSlice, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNRecursiveInputSlice2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐRecursiveInputSlice(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) unmarshalORecursiveInputSlice2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐRecursiveInputSlice(ctx context.Context, v any) (*RecursiveInputSlice, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputRecursiveInputSlice(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalOSearchFilters2map(ctx context.Context, v any) (map[string]any, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputSearchFilters(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOShape2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐShape(ctx context.Context, sel ast.SelectionSet, v Shape) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Shape(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOShape2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐShape(ctx context.Context, sel ast.SelectionSet, v []Shape) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalOShape2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐShape(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOSkipIncludeTestType2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐSkipIncludeTestType(ctx context.Context, sel ast.SelectionSet, v *SkipIncludeTestType) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._SkipIncludeTestType(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOSlices2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐSlices(ctx context.Context, sel ast.SelectionSet, v *Slices) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Slices(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOStatus2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐStatus(ctx context.Context, v any) (*Status, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar res = new(Status)\n\terr := res.UnmarshalGQL(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOStatus2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐStatus(ctx context.Context, sel ast.SelectionSet, v *Status) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn v\n}\n\nfunc (ec *executionContext) unmarshalOString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNString2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalOString2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNString2string(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚕᚖstring(ctx context.Context, v any) ([]*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]*string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalOString2ᚖstring(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalOString2ᚕᚖstring(ctx context.Context, sel ast.SelectionSet, v []*string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalOString2ᚖstring(ctx, sel, v[i])\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖᚕstringᚄ(ctx context.Context, v any) (*[]string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v *[]string) graphql.Marshaler {\n\treturn ec.marshalOString2ᚕstringᚄ(ctx, sel, *v)\n}\n\nfunc (ec *executionContext) marshalOTestUnion2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐTestUnion(ctx context.Context, sel ast.SelectionSet, v TestUnion) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._TestUnion(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOThirdParty2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐThirdParty(ctx context.Context, v any) (*ThirdParty, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := UnmarshalThirdParty(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOThirdParty2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐThirdParty(ctx context.Context, sel ast.SelectionSet, v *ThirdParty) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := MarshalThirdParty(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOTime2ᚖtimeᚐTime(ctx context.Context, v any) (*time.Time, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalTime(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOTime2ᚖtimeᚐTime(ctx context.Context, sel ast.SelectionSet, v *time.Time) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalTime(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOUpdatePtrToPtrInner2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐUpdatePtrToPtrInner(ctx context.Context, v any) (*UpdatePtrToPtrInner, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputUpdatePtrToPtrInner(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalOUpdatePtrToPtrInner2ᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐUpdatePtrToPtrInner(ctx context.Context, v any) (**UpdatePtrToPtrInner, error) {\n\tvar pres *UpdatePtrToPtrInner\n\tif v != nil {\n\t\tres, err := ec.unmarshalOUpdatePtrToPtrInner2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐUpdatePtrToPtrInner(ctx, v)\n\t\tif err != nil {\n\t\t\treturn nil, graphql.ErrorOnPath(ctx, err)\n\t\t}\n\t\tpres = res\n\t}\n\treturn &pres, nil\n}\n\nfunc (ec *executionContext) unmarshalOUpdatePtrToPtrInner2ᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐUpdatePtrToPtrInner(ctx context.Context, v any) (***UpdatePtrToPtrInner, error) {\n\tvar pres **UpdatePtrToPtrInner\n\tif v != nil {\n\t\tres, err := ec.unmarshalOUpdatePtrToPtrInner2ᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐUpdatePtrToPtrInner(ctx, v)\n\t\tif err != nil {\n\t\t\treturn nil, graphql.ErrorOnPath(ctx, err)\n\t\t}\n\t\tpres = res\n\t}\n\treturn &pres, nil\n}\n\nfunc (ec *executionContext) unmarshalOUpdatePtrToPtrInner2ᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐUpdatePtrToPtrInner(ctx context.Context, v any) (****UpdatePtrToPtrInner, error) {\n\tvar pres ***UpdatePtrToPtrInner\n\tif v != nil {\n\t\tres, err := ec.unmarshalOUpdatePtrToPtrInner2ᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐUpdatePtrToPtrInner(ctx, v)\n\t\tif err != nil {\n\t\t\treturn nil, graphql.ErrorOnPath(ctx, err)\n\t\t}\n\t\tpres = res\n\t}\n\treturn &pres, nil\n}\n\nfunc (ec *executionContext) unmarshalOUpdatePtrToPtrInner2ᚖᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐUpdatePtrToPtrInner(ctx context.Context, v any) (*****UpdatePtrToPtrInner, error) {\n\tvar pres ****UpdatePtrToPtrInner\n\tif v != nil {\n\t\tres, err := ec.unmarshalOUpdatePtrToPtrInner2ᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐUpdatePtrToPtrInner(ctx, v)\n\t\tif err != nil {\n\t\t\treturn nil, graphql.ErrorOnPath(ctx, err)\n\t\t}\n\t\tpres = res\n\t}\n\treturn &pres, nil\n}\n\nfunc (ec *executionContext) unmarshalOUpdatePtrToPtrInner2ᚖᚖᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐUpdatePtrToPtrInner(ctx context.Context, v any) (******UpdatePtrToPtrInner, error) {\n\tvar pres *****UpdatePtrToPtrInner\n\tif v != nil {\n\t\tres, err := ec.unmarshalOUpdatePtrToPtrInner2ᚖᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐUpdatePtrToPtrInner(ctx, v)\n\t\tif err != nil {\n\t\t\treturn nil, graphql.ErrorOnPath(ctx, err)\n\t\t}\n\t\tpres = res\n\t}\n\treturn &pres, nil\n}\n\nfunc (ec *executionContext) unmarshalOUpdatePtrToPtrInner2ᚖᚖᚖᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐUpdatePtrToPtrInner(ctx context.Context, v any) (*******UpdatePtrToPtrInner, error) {\n\tvar pres ******UpdatePtrToPtrInner\n\tif v != nil {\n\t\tres, err := ec.unmarshalOUpdatePtrToPtrInner2ᚖᚖᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐUpdatePtrToPtrInner(ctx, v)\n\t\tif err != nil {\n\t\t\treturn nil, graphql.ErrorOnPath(ctx, err)\n\t\t}\n\t\tpres = res\n\t}\n\treturn &pres, nil\n}\n\nfunc (ec *executionContext) unmarshalOUpdatePtrToPtrInner2ᚖᚖᚖᚖᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐUpdatePtrToPtrInner(ctx context.Context, v any) (********UpdatePtrToPtrInner, error) {\n\tvar pres *******UpdatePtrToPtrInner\n\tif v != nil {\n\t\tres, err := ec.unmarshalOUpdatePtrToPtrInner2ᚖᚖᚖᚖᚖᚖᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐUpdatePtrToPtrInner(ctx, v)\n\t\tif err != nil {\n\t\t\treturn nil, graphql.ErrorOnPath(ctx, err)\n\t\t}\n\t\tpres = res\n\t}\n\treturn &pres, nil\n}\n\nfunc (ec *executionContext) marshalOVOkCaseNil2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐVOkCaseNil(ctx context.Context, sel ast.SelectionSet, v *VOkCaseNil) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._VOkCaseNil(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOVOkCaseValue2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐVOkCaseValue(ctx context.Context, sel ast.SelectionSet, v *VOkCaseValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._VOkCaseValue(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOValidInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐValidInput(ctx context.Context, v any) (*ValidInput, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputValidInput(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOValidType2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐValidType(ctx context.Context, sel ast.SelectionSet, v *ValidType) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._ValidType(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOVariadicModel2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚐVariadicModel(ctx context.Context, sel ast.SelectionSet, v *VariadicModel) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._VariadicModel(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOWrappedScalar2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚋotherpkgᚐScalar(ctx context.Context, v any) (*otherpkg.Scalar, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\ttmp, err := graphql.UnmarshalString(v)\n\tres := otherpkg.Scalar(tmp)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOWrappedScalar2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋsinglefileᚋotherpkgᚐScalar(ctx context.Context, sel ast.SelectionSet, v *otherpkg.Scalar) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(string(*v))\n\treturn res\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/singlefile/generated_test.go",
    "content": "//go:generate rm -f resolver.go\n//go:generate go run ../../../testdata/gqlgen.go -config gqlgen.yml -stub stub.go\n\npackage singlefile\n\nimport (\n\t\"context\"\n\t\"reflect\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestForcedResolverFieldIsPointer(t *testing.T) {\n\tfield, ok := reflect.TypeFor[ForcedResolverResolver]().MethodByName(\"Field\")\n\trequire.True(t, ok)\n\trequire.Equal(t, \"*singlefile.Circle\", field.Type.Out(0).String())\n}\n\nfunc TestEnums(t *testing.T) {\n\tt.Run(\"list of enums\", func(t *testing.T) {\n\t\trequire.Equal(t, StatusOk, AllStatus[0])\n\t\trequire.Equal(t, StatusError, AllStatus[1])\n\t})\n\n\tt.Run(\"invalid enum values\", func(t *testing.T) {\n\t\trequire.Equal(t, StatusOk, AllStatus[0])\n\t\trequire.Equal(t, StatusError, AllStatus[1])\n\t})\n}\n\nfunc TestUnionFragments(t *testing.T) {\n\tresolvers := &Stub{}\n\tresolvers.QueryResolver.ShapeUnion = func(ctx context.Context) (ShapeUnion, error) {\n\t\treturn &Circle{Radius: 32}, nil\n\t}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"inline fragment on union\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tShapeUnion struct {\n\t\t\t\tRadius float64\n\t\t\t}\n\t\t}\n\t\tc.MustPost(`query {\n\t\t\tshapeUnion {\n\t\t\t\t... on Circle {\n\t\t\t\t\tradius\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t`, &resp)\n\t\trequire.NotEmpty(t, resp.ShapeUnion.Radius)\n\t})\n\n\tt.Run(\"named fragment\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tShapeUnion struct {\n\t\t\t\tRadius float64\n\t\t\t}\n\t\t}\n\t\tc.MustPost(`query {\n\t\t\tshapeUnion {\n\t\t\t\t...C\n\t\t\t}\n\t\t}\n\n\t\tfragment C on ShapeUnion {\n\t\t\t... on Circle {\n\t\t\t\tradius\n\t\t\t}\n\t\t}\n\t\t`, &resp)\n\t\trequire.NotEmpty(t, resp.ShapeUnion.Radius)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/gqlgen.yml",
    "content": "schema:\n  - \"*.graphql\"\nskip_validation: true\nexec:\n  filename: generated.go\n  package: singlefile\nmodel:\n  filename: models-gen.go\n  package: singlefile\nresolver:\n  filename: resolver.go\n  package: singlefile\n  type: Resolver\n\nautobind:\n  - \"github.com/99designs/gqlgen/codegen/testserver\"\n  - \"github.com/99designs/gqlgen/codegen/testserver/singlefile\"\n  - \"github.com/99designs/gqlgen/codegen/testserver/singlefile/introspection\"\n  - \"github.com/99designs/gqlgen/codegen/testserver/singlefile/invalid-packagename\"\n\nmodels:\n  Email:\n    model: \"github.com/99designs/gqlgen/codegen/testserver/singlefile.Email\"\n  StringFromContextFunction:\n    model: \"github.com/99designs/gqlgen/codegen/testserver/singlefile.StringFromContextFunction\"\n"
  },
  {
    "path": "codegen/testserver/singlefile/inline_arguments.graphql",
    "content": "directive @inlineArguments on ARGUMENT_DEFINITION\n\ninput SearchFilters @goModel(model: \"map[string]interface{}\") {\n  query: String\n  category: String\n  minPrice: Int\n}\n\ninput RequiredFilters @goModel(model: \"map[string]interface{}\") {\n  name: String!\n  age: Int!\n}\n\ninput UpdateProductInput @goModel(model: \"map[string]interface{}\") {\n  id: ID!\n  name: String\n  price: Float\n}\n\ninput SearchWithDefaults @goModel(model: \"map[string]interface{}\") {\n  query: String = \"default search\"\n  limit: Int = 20\n  includeArchived: Boolean = false\n}\n\ninput DirectiveInput @goModel(model: \"map[string]interface{}\") {\n  oldField: String @deprecated(reason: \"Use newField instead\")\n  newField: String\n}\n\nextend type Query {\n  searchProducts(filters: SearchFilters @inlineArguments): [String!]!\n  searchRequired(filters: RequiredFilters! @inlineArguments): [String!]!\n  searchProductsNormal(filters: SearchFilters): [String!]!\n  searchWithDefaults(filters: SearchWithDefaults @inlineArguments): [String!]!\n  searchMixed(\n    filters: SearchFilters @inlineArguments,\n    limit: Int = 10,\n    offset: Int = 0,\n    sortBy: String\n  ): [String!]!\n  filterProducts(filters: SearchFilters @inlineArguments): [String!]!\n  findProducts(filters: SearchFilters @inlineArguments): [String!]!\n  searchWithDirectives(input: DirectiveInput @inlineArguments): [String!]!\n}\n\nextend type Mutation {\n  updateProduct(input: UpdateProductInput @inlineArguments): String!\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/input_test.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"strconv\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestInput(t *testing.T) {\n\tresolvers := &Stub{}\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"when function errors on directives\", func(t *testing.T) {\n\t\tresolvers.QueryResolver.InputSlice = func(ctx context.Context, arg []string) (b bool, e error) {\n\t\t\treturn true, nil\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tDirectiveArg *string\n\t\t}\n\n\t\terr := c.Post(`query { inputSlice(arg: [\"ok\", 1, 2, \"ok\"]) }`, &resp)\n\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t`http 422: {\"errors\":[{\"message\":\"String cannot represent a non string value: 1\",\"locations\":[{\"line\":1,\"column\":32}],\"extensions\":{\"code\":\"GRAPHQL_VALIDATION_FAILED\"}},{\"message\":\"String cannot represent a non string value: 2\",\"locations\":[{\"line\":1,\"column\":35}],\"extensions\":{\"code\":\"GRAPHQL_VALIDATION_FAILED\"}}],\"data\":null}`,\n\t\t)\n\t\trequire.Nil(t, resp.DirectiveArg)\n\t})\n\n\tt.Run(\"when input slice nullable\", func(t *testing.T) {\n\t\tresolvers.QueryResolver.InputNullableSlice = func(ctx context.Context, arg []string) (b bool, e error) {\n\t\t\treturn arg == nil, nil\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tInputNullableSlice bool\n\t\t}\n\t\tvar err error\n\t\terr = c.Post(`query { inputNullableSlice(arg: null) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.True(t, resp.InputNullableSlice)\n\n\t\terr = c.Post(`query { inputNullableSlice(arg: []) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.False(t, resp.InputNullableSlice)\n\t})\n\n\tt.Run(\"coerce single value to slice\", func(t *testing.T) {\n\t\tcheck := func(ctx context.Context, arg []string) (b bool, e error) {\n\t\t\treturn len(arg) == 1 && arg[0] == \"coerced\", nil\n\t\t}\n\t\tresolvers.QueryResolver.InputSlice = check\n\t\tresolvers.QueryResolver.InputNullableSlice = check\n\n\t\tvar resp struct {\n\t\t\tCoerced bool\n\t\t}\n\t\tvar err error\n\t\terr = c.Post(`query { coerced: inputSlice(arg: \"coerced\") }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.True(t, resp.Coerced)\n\n\t\terr = c.Post(`query { coerced: inputNullableSlice(arg: \"coerced\") }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.True(t, resp.Coerced)\n\t})\n}\n\nfunc TestInputOmittable(t *testing.T) {\n\tresolvers := &Stub{}\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"id field\", func(t *testing.T) {\n\t\tresolvers.QueryResolver.InputOmittable = func(ctx context.Context, arg OmittableInput) (string, error) {\n\t\t\tvalue, isSet := arg.ID.ValueOK()\n\t\t\tif !isSet {\n\t\t\t\treturn \"<unset>\", nil\n\t\t\t}\n\n\t\t\tif value == nil {\n\t\t\t\treturn \"<nil>\", nil\n\t\t\t}\n\n\t\t\treturn *value, nil\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tInputOmittable string\n\t\t}\n\t\tvar err error\n\n\t\terr = c.Post(`query { inputOmittable(arg: {}) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"<unset>\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { id: null }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"<nil>\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { id: \"foo\" }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"foo\", resp.InputOmittable)\n\t})\n\n\tt.Run(\"bool field\", func(t *testing.T) {\n\t\tresolvers.QueryResolver.InputOmittable = func(ctx context.Context, arg OmittableInput) (string, error) {\n\t\t\tvalue, isSet := arg.Bool.ValueOK()\n\t\t\tif !isSet {\n\t\t\t\treturn \"<unset>\", nil\n\t\t\t}\n\n\t\t\tif value == nil {\n\t\t\t\treturn \"<nil>\", nil\n\t\t\t}\n\n\t\t\treturn strconv.FormatBool(*value), nil\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tInputOmittable string\n\t\t}\n\t\tvar err error\n\n\t\terr = c.Post(`query { inputOmittable(arg: {}) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"<unset>\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { bool: null }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"<nil>\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { bool: false }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"false\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { bool: true }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"true\", resp.InputOmittable)\n\t})\n\n\tt.Run(\"str field\", func(t *testing.T) {\n\t\tresolvers.QueryResolver.InputOmittable = func(ctx context.Context, arg OmittableInput) (string, error) {\n\t\t\tvalue, isSet := arg.Str.ValueOK()\n\t\t\tif !isSet {\n\t\t\t\treturn \"<unset>\", nil\n\t\t\t}\n\n\t\t\tif value == nil {\n\t\t\t\treturn \"<nil>\", nil\n\t\t\t}\n\n\t\t\treturn *value, nil\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tInputOmittable string\n\t\t}\n\t\tvar err error\n\n\t\terr = c.Post(`query { inputOmittable(arg: {}) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"<unset>\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { str: null }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"<nil>\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { str: \"bar\" }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"bar\", resp.InputOmittable)\n\t})\n\n\tt.Run(\"int field\", func(t *testing.T) {\n\t\tresolvers.QueryResolver.InputOmittable = func(ctx context.Context, arg OmittableInput) (string, error) {\n\t\t\tvalue, isSet := arg.Int.ValueOK()\n\t\t\tif !isSet {\n\t\t\t\treturn \"<unset>\", nil\n\t\t\t}\n\n\t\t\tif value == nil {\n\t\t\t\treturn \"<nil>\", nil\n\t\t\t}\n\n\t\t\treturn strconv.Itoa(*value), nil\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tInputOmittable string\n\t\t}\n\t\tvar err error\n\n\t\terr = c.Post(`query { inputOmittable(arg: {}) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"<unset>\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { int: null }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"<nil>\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { int: 42 }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"42\", resp.InputOmittable)\n\t})\n\n\tt.Run(\"time field\", func(t *testing.T) {\n\t\tresolvers.QueryResolver.InputOmittable = func(ctx context.Context, arg OmittableInput) (string, error) {\n\t\t\tvalue, isSet := arg.Time.ValueOK()\n\t\t\tif !isSet {\n\t\t\t\treturn \"<unset>\", nil\n\t\t\t}\n\n\t\t\tif value == nil {\n\t\t\t\treturn \"<nil>\", nil\n\t\t\t}\n\n\t\t\treturn value.UTC().Format(time.RFC3339), nil\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tInputOmittable string\n\t\t}\n\t\tvar err error\n\n\t\terr = c.Post(`query { inputOmittable(arg: {}) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"<unset>\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { time: null }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"<nil>\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { time: \"2011-04-05T16:01:33Z\" }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"2011-04-05T16:01:33Z\", resp.InputOmittable)\n\t})\n\n\tt.Run(\"enum field\", func(t *testing.T) {\n\t\tresolvers.QueryResolver.InputOmittable = func(ctx context.Context, arg OmittableInput) (string, error) {\n\t\t\tvalue, isSet := arg.Enum.ValueOK()\n\t\t\tif !isSet {\n\t\t\t\treturn \"<unset>\", nil\n\t\t\t}\n\n\t\t\tif value == nil {\n\t\t\t\treturn \"<nil>\", nil\n\t\t\t}\n\n\t\t\treturn value.String(), nil\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tInputOmittable string\n\t\t}\n\t\tvar err error\n\n\t\terr = c.Post(`query { inputOmittable(arg: {}) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"<unset>\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { enum: null }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"<nil>\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { enum: OK }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"OK\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { enum: ERROR }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"ERROR\", resp.InputOmittable)\n\t})\n\n\tt.Run(\"scalar field\", func(t *testing.T) {\n\t\tresolvers.QueryResolver.InputOmittable = func(ctx context.Context, arg OmittableInput) (string, error) {\n\t\t\tvalue, isSet := arg.Scalar.ValueOK()\n\t\t\tif !isSet {\n\t\t\t\treturn \"<unset>\", nil\n\t\t\t}\n\n\t\t\tif value == nil {\n\t\t\t\treturn \"<nil>\", nil\n\t\t\t}\n\n\t\t\treturn value.str, nil\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tInputOmittable string\n\t\t}\n\t\tvar err error\n\n\t\terr = c.Post(`query { inputOmittable(arg: {}) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"<unset>\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { scalar: null }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"<nil>\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { scalar: \"baz\" }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"baz\", resp.InputOmittable)\n\t})\n\n\tt.Run(\"object field\", func(t *testing.T) {\n\t\tresolvers.QueryResolver.InputOmittable = func(ctx context.Context, arg OmittableInput) (string, error) {\n\t\t\tvalue, isSet := arg.Object.ValueOK()\n\t\t\tif !isSet {\n\t\t\t\treturn \"<unset>\", nil\n\t\t\t}\n\n\t\t\tif value == nil {\n\t\t\t\treturn \"<nil>\", nil\n\t\t\t}\n\n\t\t\treturn strconv.Itoa(value.Inner.ID), nil\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tInputOmittable string\n\t\t}\n\t\tvar err error\n\n\t\terr = c.Post(`query { inputOmittable(arg: {}) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"<unset>\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { object: null }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"<nil>\", resp.InputOmittable)\n\n\t\terr = c.Post(`query { inputOmittable(arg: { object: { inner: { id: 21 } } }) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"21\", resp.InputOmittable)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/interfaces.go",
    "content": "package singlefile\n\nimport \"math\"\n\ntype Shape interface {\n\tArea() float64\n\tisShape()\n}\n\ntype ShapeUnion interface {\n\tArea() float64\n\tisShapeUnion()\n}\n\ntype Circle struct {\n\tRadius float64\n\tCoordinates\n}\n\nfunc (c *Circle) Area() float64 {\n\treturn c.Radius * math.Pi * math.Pi\n}\n\nfunc (c *Circle) isShapeUnion() {}\nfunc (c *Circle) isShape()      {}\n\ntype Rectangle struct {\n\tLength, Width float64\n\tCoordinates\n}\n\nfunc (r *Rectangle) Area() float64 {\n\treturn r.Length * r.Width\n}\nfunc (r *Rectangle) isShapeUnion() {}\nfunc (r *Rectangle) isShape()      {}\n\ntype Node interface {\n\tChild() (Node, error)\n}\n\ntype ConcreteNodeA struct {\n\tID    string\n\tName  string\n\tchild Node\n}\n\nfunc (n *ConcreteNodeA) Child() (Node, error) {\n\treturn n.child, nil\n}\n\n// Implements the Node interface with another interface\ntype ConcreteNodeInterface interface {\n\tNode\n\tID() string\n}\n\ntype ConcreteNodeInterfaceImplementor struct{}\n\nfunc (c ConcreteNodeInterfaceImplementor) ID() string {\n\treturn \"CNII\"\n}\n\nfunc (c ConcreteNodeInterfaceImplementor) Child() (Node, error) {\n\treturn &ConcreteNodeA{\n\t\tID:   \"Child\",\n\t\tName: \"child\",\n\t}, nil\n}\n\ntype BackedByInterface interface {\n\tThisShouldBind() string\n\tThisShouldBindWithError() (string, error)\n}\n\ntype BackedByInterfaceImpl struct {\n\tValue string\n\tError error\n}\n\nfunc (b *BackedByInterfaceImpl) ThisShouldBind() string {\n\treturn b.Value\n}\n\nfunc (b *BackedByInterfaceImpl) ThisShouldBindWithError() (string, error) {\n\treturn b.Value, b.Error\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/interfaces.graphql",
    "content": "extend type Query {\n    shapes: [Shape]\n    noShape: Shape @makeNil\n    node: Node!\n    noShapeTypedNil: Shape @makeTypedNil\n    animal: Animal @makeTypedNil\n    notAnInterface: BackedByInterface\n    dog: Dog\n}\n\ninterface Animal {\n    species: String!\n    size: Size!\n}\n\ntype Size {\n    height: Int!\n    weight: Int!\n}\n\ntype BackedByInterface {\n    id: String!\n    thisShouldBind: String!\n    thisShouldBindWithError: String!\n}\n\ntype Dog implements Animal {\n    species: String!\n    size: Size!\n    dogBreed: String!\n}\n\ntype Cat implements Animal {\n    species: String!\n    size: Size!\n    catBreed: String!\n}\n\ntype Coordinates {\n    x: Float!\n    y: Float!\n}\ninterface Shape {\n    area: Float\n    coordinates: Coordinates\n}\n\ntype Circle implements Shape {\n    radius: Float\n    area: Float\n    coordinates: Coordinates\n}\ntype Rectangle implements Shape {\n    length: Float\n    width: Float\n    area: Float\n    coordinates: Coordinates\n}\nunion ShapeUnion @goModel(model: \"singlefile.ShapeUnion\") = Circle | Rectangle\n\ndirective @makeNil on FIELD_DEFINITION\ndirective @makeTypedNil on FIELD_DEFINITION\n\ninterface Node {\n    id: ID!\n    child: Node!\n}\n\ntype ConcreteNodeA implements Node {\n    id: ID!\n    child: Node!\n    name: String!\n}\n\n\" Implements the Node interface with another interface \"\ntype ConcreteNodeInterface implements Node {\n    id: ID!\n    child: Node!\n}\n\ninterface Mammalian implements Animal {\n    species: String!\n    size: Size!\n}\n\n# Types with multiple interfaces are evaluated first in the case statement\ntype Horse implements Mammalian & Animal {\n    species: String!\n    size: Size!\n    horseBreed: String!\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/interfaces_test.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"reflect\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestInterfaces(t *testing.T) {\n\tt.Run(\"slices of interfaces are not pointers\", func(t *testing.T) {\n\t\tfield, ok := reflect.TypeFor[QueryResolver]().MethodByName(\"Shapes\")\n\t\trequire.True(t, ok)\n\t\trequire.Equal(t, \"[]singlefile.Shape\", field.Type.Out(0).String())\n\t})\n\n\tt.Run(\"models returning interfaces\", func(t *testing.T) {\n\t\tresolvers := &Stub{}\n\t\tresolvers.QueryResolver.Node = func(ctx context.Context) (node Node, err error) {\n\t\t\treturn &ConcreteNodeA{\n\t\t\t\tID:   \"1234\",\n\t\t\t\tName: \"asdf\",\n\t\t\t\tchild: &ConcreteNodeA{\n\t\t\t\t\tID:    \"5678\",\n\t\t\t\t\tName:  \"hjkl\",\n\t\t\t\t\tchild: nil,\n\t\t\t\t},\n\t\t\t}, nil\n\t\t}\n\n\t\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\t\tsrv.AddTransport(transport.POST{})\n\t\tc := client.New(srv)\n\n\t\tvar resp struct {\n\t\t\tNode struct {\n\t\t\t\tID    string\n\t\t\t\tChild struct {\n\t\t\t\t\tID string\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tc.MustPost(`{ node { id, child { id } } }`, &resp)\n\t\trequire.Equal(t, \"1234\", resp.Node.ID)\n\t\trequire.Equal(t, \"5678\", resp.Node.Child.ID)\n\t})\n\n\tt.Run(\"interfaces can be nil\", func(t *testing.T) {\n\t\tresolvers := &Stub{}\n\t\tresolvers.QueryResolver.NoShape = func(ctx context.Context) (shapes Shape, e error) {\n\t\t\treturn nil, nil\n\t\t}\n\n\t\tsrv := handler.New(\n\t\t\tNewExecutableSchema(Config{\n\t\t\t\tResolvers: resolvers,\n\t\t\t\tDirectives: DirectiveRoot{\n\t\t\t\t\tMakeNil: func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error) {\n\t\t\t\t\t\treturn nil, nil\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t)\n\t\tsrv.AddTransport(transport.POST{})\n\t\tc := client.New(srv)\n\n\t\tvar resp any\n\t\tc.MustPost(`{ noShape { area } }`, &resp)\n\t})\n\n\tt.Run(\"interfaces can be typed nil\", func(t *testing.T) {\n\t\tresolvers := &Stub{}\n\t\tresolvers.QueryResolver.NoShapeTypedNil = func(ctx context.Context) (shapes Shape, e error) {\n\t\t\tt.Fatal(\"should not be called\")\n\t\t\treturn shapes, e\n\t\t}\n\n\t\tsrv := handler.New(\n\t\t\tNewExecutableSchema(Config{\n\t\t\t\tResolvers: resolvers,\n\t\t\t\tDirectives: DirectiveRoot{\n\t\t\t\t\tMakeTypedNil: func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error) {\n\t\t\t\t\t\tvar circle *Circle\n\t\t\t\t\t\treturn circle, nil\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t)\n\t\tsrv.AddTransport(transport.POST{})\n\t\tc := client.New(srv)\n\n\t\tvar resp any\n\t\tc.MustPost(`{ noShapeTypedNil { area } }`, &resp)\n\t})\n\n\tt.Run(\"interfaces can be nil (test with code-generated resolver)\", func(t *testing.T) {\n\t\tresolvers := &Stub{}\n\t\tresolvers.QueryResolver.Animal = func(ctx context.Context) (animal Animal, e error) {\n\t\t\tt.Fatal(\"should not be called\")\n\t\t\treturn animal, e\n\t\t}\n\n\t\tsrv := handler.New(\n\t\t\tNewExecutableSchema(Config{\n\t\t\t\tResolvers: resolvers,\n\t\t\t\tDirectives: DirectiveRoot{\n\t\t\t\t\tMakeTypedNil: func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error) {\n\t\t\t\t\t\tvar dog *Dog // return a typed nil, not just nil\n\t\t\t\t\t\treturn dog, nil\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t)\n\t\tsrv.AddTransport(transport.POST{})\n\t\tc := client.New(srv)\n\n\t\tvar resp any\n\t\tc.MustPost(`{ animal { species } }`, &resp)\n\t})\n\n\tt.Run(\"can bind to interfaces even when the graphql is not\", func(t *testing.T) {\n\t\tresolvers := &Stub{}\n\t\tresolvers.BackedByInterfaceResolver.ID = func(ctx context.Context, obj BackedByInterface) (s string, err error) {\n\t\t\treturn \"ID:\" + obj.ThisShouldBind(), nil\n\t\t}\n\t\tresolvers.QueryResolver.NotAnInterface = func(ctx context.Context) (byInterface BackedByInterface, err error) {\n\t\t\treturn &BackedByInterfaceImpl{\n\t\t\t\tValue: \"A\",\n\t\t\t\tError: nil,\n\t\t\t}, nil\n\t\t}\n\n\t\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\t\tsrv.AddTransport(transport.POST{})\n\t\tc := client.New(srv)\n\t\tvar resp struct {\n\t\t\tNotAnInterface struct {\n\t\t\t\tID                      string\n\t\t\t\tThisShouldBind          string\n\t\t\t\tThisShouldBindWithError string\n\t\t\t}\n\t\t}\n\t\tc.MustPost(`{ notAnInterface { id, thisShouldBind, thisShouldBindWithError } }`, &resp)\n\t\trequire.Equal(t, \"ID:A\", resp.NotAnInterface.ID)\n\t\trequire.Equal(t, \"A\", resp.NotAnInterface.ThisShouldBind)\n\t\trequire.Equal(t, \"A\", resp.NotAnInterface.ThisShouldBindWithError)\n\t})\n\n\tt.Run(\"can return errors from interface funcs\", func(t *testing.T) {\n\t\tresolvers := &Stub{}\n\t\tresolvers.BackedByInterfaceResolver.ID = func(ctx context.Context, obj BackedByInterface) (s string, err error) {\n\t\t\treturn \"ID:\" + obj.ThisShouldBind(), nil\n\t\t}\n\t\tresolvers.QueryResolver.NotAnInterface = func(ctx context.Context) (byInterface BackedByInterface, err error) {\n\t\t\treturn &BackedByInterfaceImpl{\n\t\t\t\tValue: \"A\",\n\t\t\t\tError: errors.New(\"boom\"),\n\t\t\t}, nil\n\t\t}\n\n\t\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\t\tsrv.AddTransport(transport.POST{})\n\t\tc := client.New(srv)\n\n\t\tvar resp struct {\n\t\t\tNotAnInterface struct {\n\t\t\t\tID                      string\n\t\t\t\tThisShouldBind          string\n\t\t\t\tThisShouldBindWithError string\n\t\t\t}\n\t\t}\n\t\terr := c.Post(`{ notAnInterface { id, thisShouldBind, thisShouldBindWithError } }`, &resp)\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t`[{\"message\":\"boom\",\"path\":[\"notAnInterface\",\"thisShouldBindWithError\"]}]`,\n\t\t)\n\t})\n\n\tt.Run(\"interfaces can implement other interfaces\", func(t *testing.T) {\n\t\tresolvers := &Stub{}\n\t\tresolvers.QueryResolver.Node = func(ctx context.Context) (node Node, err error) {\n\t\t\treturn ConcreteNodeInterfaceImplementor{}, nil\n\t\t}\n\n\t\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\t\tsrv.AddTransport(transport.POST{})\n\t\tc := client.New(srv)\n\n\t\tvar resp struct {\n\t\t\tNode struct {\n\t\t\t\tID    string\n\t\t\t\tChild struct {\n\t\t\t\t\tID string\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tc.MustPost(`{ node { id, child { id } } }`, &resp)\n\t\trequire.Equal(t, \"CNII\", resp.Node.ID)\n\t\trequire.Equal(t, \"Child\", resp.Node.Child.ID)\n\t})\n\n\tt.Run(\"interface implementors should return merged base fields\", func(t *testing.T) {\n\t\tresolvers := &Stub{}\n\t\tresolvers.QueryResolver.Shapes = func(ctx context.Context) (shapes []Shape, err error) {\n\t\t\treturn []Shape{\n\t\t\t\t&Rectangle{\n\t\t\t\t\tCoordinates: Coordinates{\n\t\t\t\t\t\tX: -1,\n\t\t\t\t\t\tY: -1,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&Circle{\n\t\t\t\t\tCoordinates: Coordinates{\n\t\t\t\t\t\tX: 1,\n\t\t\t\t\t\tY: 1,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}, nil\n\t\t}\n\n\t\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\t\tsrv.AddTransport(transport.POST{})\n\t\tc := client.New(srv)\n\t\tvar resp struct {\n\t\t\tShapes []struct {\n\t\t\t\tCoordinates struct {\n\t\t\t\t\tX float64\n\t\t\t\t\tY float64\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tc.MustPost(`\n\t\t\t{\n\t\t\t\tshapes {\n\t\t\t\t\tcoordinates {\n\t\t\t\t\t\tx\n\t\t\t\t\t}\n\t\t\t\t\t... on Rectangle {\n\t\t\t\t\t\tcoordinates {\n\t\t\t\t\t\t\tx\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t... on Circle {\n\t\t\t\t\t\tcoordinates {\n\t\t\t\t\t\t\ty\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t`, &resp)\n\n\t\trequire.Len(t, resp.Shapes, 2)\n\t\trequire.InDelta(t, float64(-1), resp.Shapes[0].Coordinates.X, 0.02)\n\t\trequire.InDelta(t, float64(0), resp.Shapes[0].Coordinates.Y, 0.02)\n\t\trequire.InDelta(t, float64(1), resp.Shapes[1].Coordinates.X, 0.02)\n\t\trequire.InDelta(t, float64(1), resp.Shapes[1].Coordinates.Y, 0.02)\n\t})\n\n\tt.Run(\"fragment on interface must return merged fields\", func(t *testing.T) {\n\t\tresolvers := &Stub{}\n\t\tresolvers.QueryResolver.Dog = func(ctx context.Context) (dog *Dog, err error) {\n\t\t\treturn &Dog{\n\t\t\t\tSize: &Size{\n\t\t\t\t\tHeight: 100,\n\t\t\t\t\tWeight: 35,\n\t\t\t\t},\n\t\t\t}, nil\n\t\t}\n\n\t\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\t\tsrv.AddTransport(transport.POST{})\n\t\tc := client.New(srv)\n\t\tvar resp struct {\n\t\t\tDog struct {\n\t\t\t\tSize struct {\n\t\t\t\t\tHeight int\n\t\t\t\t\tWeight int\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tc.MustPost(`\n\t\t\t{\n\t\t\t\tdog {\n\t\t\t\t\tsize {\n\t\t\t\t\t\theight\n   \t\t\t\t\t}\n\t\t\t\t\t...AnimalWeight\n\t\t\t\t}\n\t\t\t}\n\t\t\tfragment AnimalWeight on Animal  {\n \t\t\t\tsize {\n\t\t\t\t\tweight\n\t\t\t\t}\n            }\n\t\t`, &resp)\n\n\t\trequire.Equal(t, 100, resp.Dog.Size.Height)\n\t\trequire.Equal(t, 35, resp.Dog.Size.Weight)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/introspection/it.go",
    "content": "package introspection\n\ntype It struct {\n\tID string\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/introspection_test.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/extension\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n)\n\nfunc TestIntrospection(t *testing.T) {\n\tt.Run(\"disabled when creating your own server\", func(t *testing.T) {\n\t\tresolvers := &Stub{}\n\n\t\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\t\tsrv.AddTransport(transport.POST{})\n\t\tc := client.New(srv)\n\n\t\tvar resp any\n\t\terr := c.Post(introspection.Query, &resp)\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t\"[{\\\"message\\\":\\\"introspection disabled\\\",\\\"path\\\":[\\\"__schema\\\"]}]\",\n\t\t)\n\t})\n\n\tt.Run(\"enabled by default\", func(t *testing.T) {\n\t\tresolvers := &Stub{}\n\n\t\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\t\tsrv.AddTransport(transport.POST{})\n\t\tsrv.Use(extension.Introspection{})\n\n\t\tc := client.New(srv)\n\n\t\tvar resp any\n\t\terr := c.Post(introspection.Query, &resp)\n\t\trequire.NoError(t, err)\n\n\t\tt.Run(\"does not return empty deprecation strings\", func(t *testing.T) {\n\t\t\tq := `{\n\t\t\t  __type(name:\"InnerObject\") {\n\t\t\t    fields {\n\t\t\t      name\n\t\t\t      deprecationReason\n\t\t\t    }\n\t\t\t  }\n\t\t\t}`\n\n\t\t\tvar resp struct {\n\t\t\t\tType struct {\n\t\t\t\t\tFields []struct {\n\t\t\t\t\t\tName              string\n\t\t\t\t\t\tDeprecationReason *string\n\t\t\t\t\t}\n\t\t\t\t} `json:\"__type\"`\n\t\t\t}\n\t\t\terr := c.Post(q, &resp)\n\t\t\trequire.NoError(t, err)\n\n\t\t\trequire.Equal(t, \"id\", resp.Type.Fields[0].Name)\n\t\t\trequire.Nil(t, resp.Type.Fields[0].DeprecationReason)\n\t\t})\n\n\t\tt.Run(\"chained interface possibleTypes\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tType struct {\n\t\t\t\t\tPossibleTypes []struct {\n\t\t\t\t\t\tName string\n\t\t\t\t\t}\n\t\t\t\t} `json:\"__type\"`\n\t\t\t}\n\n\t\t\terr := c.Post(`{ __type(name: \"Animal\") { possibleTypes { name } } }`, &resp)\n\t\t\trequire.NoError(t, err)\n\n\t\t\tnames := make([]string, len(resp.Type.PossibleTypes))\n\t\t\tfor i, pt := range resp.Type.PossibleTypes {\n\t\t\t\tnames[i] = pt.Name\n\t\t\t}\n\t\t\trequire.Contains(t, names, \"Dog\")\n\t\t\trequire.Contains(t, names, \"Cat\")\n\t\t\t// Horse implements Animal transitively via Mammalian\n\t\t\trequire.Contains(t, names, \"Horse\")\n\t\t})\n\n\t\tt.Run(\"deprecated arguments\", func(t *testing.T) {\n\t\t\tvar resp struct {\n\t\t\t\tType struct {\n\t\t\t\t\tFields []struct {\n\t\t\t\t\t\tName string\n\t\t\t\t\t\tArgs []struct {\n\t\t\t\t\t\t\tName              string\n\t\t\t\t\t\t\tDeprecationReason *string\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} `json:\"__type\"`\n\t\t\t}\n\n\t\t\terr := c.Post(\n\t\t\t\t`{ __type(name:\"Query\") { fields { name args { name deprecationReason }}}}`,\n\t\t\t\t&resp,\n\t\t\t)\n\t\t\trequire.NoError(t, err)\n\n\t\t\tvar args []struct {\n\t\t\t\tName              string\n\t\t\t\tDeprecationReason *string\n\t\t\t}\n\t\t\tfor _, f := range resp.Type.Fields {\n\t\t\t\tif f.Name == \"fieldWithDeprecatedArg\" {\n\t\t\t\t\targs = f.Args\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\n\t\t\trequire.Len(t, args, 2)\n\t\t\trequire.Equal(t, \"oldArg\", args[0].Name)\n\t\t\trequire.NotNil(t, args[0].DeprecationReason)\n\t\t\trequire.Equal(t, \"old arg\", *args[0].DeprecationReason)\n\n\t\t\trequire.Equal(t, \"newArg\", args[1].Name)\n\t\t\trequire.Nil(t, args[1].DeprecationReason)\n\t\t})\n\t})\n\n\tt.Run(\"disabled by middleware\", func(t *testing.T) {\n\t\tresolvers := &Stub{}\n\n\t\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\t\tsrv.AddTransport(transport.POST{})\n\t\tsrv.AroundOperations(\n\t\t\tfunc(ctx context.Context, next graphql.OperationHandler) graphql.ResponseHandler {\n\t\t\t\tgraphql.GetOperationContext(ctx).DisableIntrospection = true\n\t\t\t\treturn next(ctx)\n\t\t\t},\n\t\t)\n\t\tc := client.New(srv)\n\n\t\tvar resp any\n\t\terr := c.Post(introspection.Query, &resp)\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t\"[{\\\"message\\\":\\\"introspection disabled\\\",\\\"path\\\":[\\\"__schema\\\"]}]\",\n\t\t)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/invalid-packagename/invalid-identifier.go",
    "content": "package invalid_packagename\n\ntype InvalidIdentifier struct {\n\tID int\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/issue4053.go",
    "content": "package singlefile\n\ntype Issue4053Input1 struct {\n\tInput2 Issue4053Input2\n}\n\ntype Issue4053Input2 struct {\n\tHello            string\n\tHelloWithDefault string\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/issue4053.graphql",
    "content": "# This is a reproduction of https://github.com/99designs/gqlgen/issues/4053\n\nextend type Mutation {\n    issue4053(input: Issue4053Input1): Boolean!\n}\n\ninput Issue4053Input1 {\n    input2: Issue4053Input2\n}\n\n# Issue4053Input2 exists in issue4053.go\ninput Issue4053Input2 {\n    hello: String\n    helloWithDefault: String = \"world\"\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/issue4053_test.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestIssue4053(t *testing.T) {\n\tt.Run(\"sending null input2 should not panic\", func(t *testing.T) {\n\t\tresolver := &Stub{}\n\t\tresolver.MutationResolver.Issue4053 = func(ctx context.Context, input *Issue4053Input1) (bool, error) {\n\t\t\trequire.NotNil(t, input, \"input should not be nil\")\n\t\t\tassert.Zero(t, input.Input2, \"input2 should be zero value when null is passed\")\n\t\t\treturn true, nil\n\t\t}\n\n\t\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolver}))\n\t\tsrv.AddTransport(transport.POST{})\n\t\tsrv.SetRecoverFunc(nil) // disable panic recovery to allow test to fail if a panic occurs\n\t\tc := client.New(srv)\n\n\t\trequire.NotPanics(t, func() {\n\t\t\tvar resp struct {\n\t\t\t\tIssue4053 bool\n\t\t\t}\n\t\t\terr := c.Post(`mutation { issue4053(input: { input2: null }) }`, &resp)\n\t\t\tassert.NoError(t, err)\n\t\t\tassert.True(t, resp.Issue4053)\n\t\t}, \"should not panic when input2 is null\")\n\t})\n\n\tt.Run(\"not sending input1 should yield nil Issue4053Input1\", func(t *testing.T) {\n\t\tresolver := &Stub{}\n\t\tresolver.MutationResolver.Issue4053 = func(ctx context.Context, input *Issue4053Input1) (bool, error) {\n\t\t\trequire.Nil(t, input, \"input should be nil when not sent\")\n\t\t\treturn true, nil\n\t\t}\n\n\t\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolver}))\n\t\tsrv.AddTransport(transport.POST{})\n\t\tsrv.SetRecoverFunc(nil) // disable panic recovery to allow test to fail if a panic occurs\n\t\tc := client.New(srv)\n\n\t\trequire.NotPanics(t, func() {\n\t\t\tvar resp struct {\n\t\t\t\tIssue4053 bool\n\t\t\t}\n\t\t\terr := c.Post(`mutation { issue4053 }`, &resp)\n\t\t\tassert.NoError(t, err)\n\t\t\tassert.True(t, resp.Issue4053)\n\t\t}, \"should not panic when input2 is null\")\n\t})\n\n\tt.Run(\"sending empty input1 should yield zero value of Issue4053Input2\", func(t *testing.T) {\n\t\tresolver := &Stub{}\n\t\tresolver.MutationResolver.Issue4053 = func(ctx context.Context, input *Issue4053Input1) (bool, error) {\n\t\t\trequire.NotNil(t, input, \"input should not be nil\")\n\t\t\tassert.Zero(t, input.Input2, \"input2 should be zero value when empty input is passed\")\n\t\t\treturn true, nil\n\t\t}\n\n\t\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolver}))\n\t\tsrv.AddTransport(transport.POST{})\n\t\tsrv.SetRecoverFunc(nil) // disable panic recovery to allow test to fail if a panic occurs\n\t\tc := client.New(srv)\n\n\t\trequire.NotPanics(t, func() {\n\t\t\tvar resp struct {\n\t\t\t\tIssue4053 bool\n\t\t\t}\n\t\t\terr := c.Post(`mutation { issue4053(input: {}) }`, &resp)\n\t\t\tassert.NoError(t, err)\n\t\t\tassert.True(t, resp.Issue4053)\n\t\t}, \"should not panic when input2 is null\")\n\t})\n\n\tt.Run(\"sending empty input2 should yield default values\", func(t *testing.T) {\n\t\tresolver := &Stub{}\n\t\tresolver.MutationResolver.Issue4053 = func(ctx context.Context, input *Issue4053Input1) (bool, error) {\n\t\t\trequire.NotNil(t, input, \"input should not be nil\")\n\t\t\texpected := Issue4053Input2{\n\t\t\t\tHello:            \"\",\n\t\t\t\tHelloWithDefault: \"world\",\n\t\t\t}\n\t\t\tassert.Equal(t, expected, input.Input2,\n\t\t\t\t\"input2 should have default values when empty input is passed\")\n\t\t\treturn true, nil\n\t\t}\n\n\t\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolver}))\n\t\tsrv.AddTransport(transport.POST{})\n\t\tsrv.SetRecoverFunc(nil) // disable panic recovery to allow test to fail if a panic occurs\n\t\tc := client.New(srv)\n\n\t\trequire.NotPanics(t, func() {\n\t\t\tvar resp struct {\n\t\t\t\tIssue4053 bool\n\t\t\t}\n\t\t\terr := c.Post(`mutation { issue4053(input: {input2: {}}) }`, &resp)\n\t\t\tassert.NoError(t, err)\n\t\t\tassert.True(t, resp.Issue4053)\n\t\t}, \"should not panic when input2 is null\")\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/issue896.graphql",
    "content": "# This example should build stable output. If the file content starts\n# alternating nondeterministically between two outputs, then see\n# https://github.com/99designs/gqlgen/issues/896.\n\nextend schema {\n  query: Query\n  subscription: Subscription\n}\n\ntype CheckIssue896 {id: Int}\n\nextend type Query {\n  issue896a: [CheckIssue896!] # Note the \"!\" or lack thereof.\n}\n\nextend type Subscription {\n  issue896b: [CheckIssue896] # Note the \"!\" or lack thereof.\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/loops.graphql",
    "content": "type LoopA {\n    b: LoopB!\n}\n\ntype LoopB {\n    a: LoopA!\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/map_nested_map_slice_test.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestMapNestedMapSlice(t *testing.T) {\n\tresolver := &Stub{}\n\tresolver.QueryResolver.MapNestedMapSlice = func(ctx context.Context, input map[string]any) (*bool, error) {\n\t\trequire.NotNil(t, input, \"expected input\")\n\t\trequire.NotNil(t, input[\"recurse\"], \"expected recurse\")\n\t\trequire.IsType(\n\t\t\tt,\n\t\t\t[]map[string]any{},\n\t\t\tinput[\"recurse\"],\n\t\t\t\"expected recurse as [][]map[string]any\",\n\t\t)\n\t\trecurse := input[\"recurse\"].([]map[string]any)\n\t\trequire.Len(t, recurse, 1, \"expected 1 item in recurse\")\n\t\treturn nil, nil\n\t}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolver}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"recursive input\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tMapNestedMapSlice bool\n\t\t}\n\t\t// recurse is [MapNestedMapSlice!]\n\t\terr := c.Post(\n\t\t\t`query { mapNestedMapSlice(input: { recurse: [{ name: \"child\" }] }) }`,\n\t\t\t&resp,\n\t\t)\n\t\trequire.NoError(t, err)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/maps.go",
    "content": "package singlefile\n\nimport (\n\t\"io\"\n\t\"strconv\"\n)\n\ntype MapNested struct {\n\tValue CustomScalar\n}\n\ntype CustomScalar struct {\n\tvalue int64\n}\n\nfunc (s *CustomScalar) UnmarshalGQL(v any) (err error) {\n\tswitch v := v.(type) {\n\tcase string:\n\t\ts.value, err = strconv.ParseInt(v, 10, 64)\n\tcase int64:\n\t\ts.value = v\n\t}\n\treturn err\n}\n\nfunc (s CustomScalar) MarshalGQL(w io.Writer) {\n\t_, _ = w.Write([]byte(strconv.Quote(strconv.FormatInt(s.value, 10))))\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/maps.graphql",
    "content": "extend type Query {\n    mapStringInterface(in: MapStringInterfaceInput): MapStringInterfaceType\n    mapNestedStringInterface(in: NestedMapInput): MapStringInterfaceType\n}\n\ntype MapStringInterfaceType @goModel(model: \"map[string]interface{}\") {\n    a: String\n    b: Int\n    c: CustomScalar\n    nested: MapNested\n}\n\ntype MapNested @goModel(model: \"singlefile.MapNested\") {\n    value: CustomScalar!\n}\n\ninput MapStringInterfaceInput @goModel(model: \"map[string]interface{}\") {\n    a: String!\n    b: Int\n    c: CustomScalar\n    nested: MapNestedInput\n}\n\ninput MapNestedInput @goModel(model: \"singlefile.MapNested\") {\n    value: CustomScalar!\n}\n\nscalar CustomScalar @goModel(model: \"singlefile.CustomScalar\")\n\ninput NestedMapInput {\n    map: MapStringInterfaceInput\n}\n\ninput MapNestedMapSliceInput @goModel(model: \"map[string]interface{}\") {\n    name: String\n    recurse: [MapNestedMapSliceInput!]\n}\n\nextend type Query {\n    mapNestedMapSlice(input: MapNestedMapSliceInput): Boolean\n}"
  },
  {
    "path": "codegen/testserver/singlefile/maps_test.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestMaps(t *testing.T) {\n\tresolver := &Stub{}\n\tresolver.QueryResolver.MapStringInterface = func(ctx context.Context, in map[string]any) (i map[string]any, e error) {\n\t\tvalidateMapItemsType(t, in)\n\t\treturn in, nil\n\t}\n\tresolver.QueryResolver.MapNestedStringInterface = func(ctx context.Context, in *NestedMapInput) (i map[string]any, e error) {\n\t\tif in == nil {\n\t\t\treturn nil, nil\n\t\t}\n\t\tvalidateMapItemsType(t, in.Map)\n\t\treturn in.Map, nil\n\t}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolver}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\tt.Run(\"unset\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tMapStringInterface map[string]any\n\t\t}\n\t\terr := c.Post(`query { mapStringInterface { a, b, c, nested { value } } }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Nil(t, resp.MapStringInterface)\n\t})\n\n\tt.Run(\"nil\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tMapStringInterface map[string]any\n\t\t}\n\t\terr := c.Post(`query { mapStringInterface(in: null) { a, b, c, nested { value } } }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Nil(t, resp.MapStringInterface)\n\t})\n\n\tt.Run(\"values\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tMapStringInterface map[string]any\n\t\t}\n\t\terr := c.Post(\n\t\t\t`query($value: CustomScalar!) { mapStringInterface(in: { a: \"a\", b: null, c: 42, nested: { value: $value } }) { a, b, c, nested { value } } }`,\n\t\t\t&resp,\n\t\t\tclient.Var(\"value\", \"17\"),\n\t\t)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"a\", resp.MapStringInterface[\"a\"])\n\t\trequire.Nil(t, resp.MapStringInterface[\"b\"])\n\t\trequire.Equal(t, \"42\", resp.MapStringInterface[\"c\"])\n\t\trequire.NotNil(t, resp.MapStringInterface[\"nested\"])\n\t\trequire.IsType(t, map[string]any{}, resp.MapStringInterface[\"nested\"])\n\t\trequire.Equal(t, \"17\", (resp.MapStringInterface[\"nested\"].(map[string]any))[\"value\"])\n\t})\n\n\tt.Run(\"nested\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tMapNestedStringInterface map[string]any\n\t\t}\n\t\terr := c.Post(\n\t\t\t`query { mapNestedStringInterface(in: { map: { a: \"a\", c: \"42\", nested: { value: 31 } } }) { a, b, c, nested { value } } }`,\n\t\t\t&resp,\n\t\t)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"a\", resp.MapNestedStringInterface[\"a\"])\n\t\trequire.Nil(t, resp.MapNestedStringInterface[\"b\"])\n\t\trequire.Equal(t, \"42\", resp.MapNestedStringInterface[\"c\"])\n\t\trequire.NotNil(t, resp.MapNestedStringInterface[\"nested\"])\n\t\trequire.IsType(t, map[string]any{}, resp.MapNestedStringInterface[\"nested\"])\n\t\trequire.Equal(t, \"31\", (resp.MapNestedStringInterface[\"nested\"].(map[string]any))[\"value\"])\n\t})\n\n\tt.Run(\"nested nil\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tMapNestedStringInterface map[string]any\n\t\t}\n\t\terr := c.Post(\n\t\t\t`query { mapNestedStringInterface(in: { map: null }) { a, b, c, nested { value } } }`,\n\t\t\t&resp,\n\t\t)\n\t\trequire.NoError(t, err)\n\t\trequire.Nil(t, resp.MapNestedStringInterface)\n\t})\n}\n\nfunc validateMapItemsType(t *testing.T, in map[string]any) {\n\tfor k, v := range in {\n\t\tswitch k {\n\t\tcase \"a\":\n\t\t\trequire.IsType(t, \"\", v)\n\t\tcase \"b\":\n\t\t\trequire.IsType(t, new(int), v)\n\t\tcase \"c\":\n\t\t\trequire.IsType(t, new(CustomScalar), v)\n\t\tcase \"nested\":\n\t\t\trequire.IsType(t, new(MapNested), v)\n\t\tdefault:\n\t\t\trequire.Failf(t, \"unexpected key in map\", \"key %q was not expected in map\", k)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/middleware_test.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"sync\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestMiddleware(t *testing.T) {\n\tresolvers := &Stub{}\n\tresolvers.QueryResolver.ErrorBubble = func(ctx context.Context) (i *Error, e error) {\n\t\treturn &Error{ID: \"E1234\"}, nil\n\t}\n\n\tresolvers.QueryResolver.User = func(ctx context.Context, id int) (user *User, e error) {\n\t\treturn &User{ID: 1}, nil\n\t}\n\n\tresolvers.UserResolver.Friends = func(ctx context.Context, obj *User) (users []*User, e error) {\n\t\treturn []*User{{ID: 1}}, nil\n\t}\n\n\tresolvers.UserResolver.Pets = func(ctx context.Context, obj *User, limit *int) ([]*Pet, error) {\n\t\treturn []*Pet{{ID: 10}}, nil\n\t}\n\n\tresolvers.PetResolver.Friends = func(ctx context.Context, obj *Pet, limit *int) ([]*Pet, error) {\n\t\treturn []*Pet{}, nil\n\t}\n\n\tresolvers.QueryResolver.ModelMethods = func(ctx context.Context) (methods *ModelMethods, e error) {\n\t\treturn &ModelMethods{}, nil\n\t}\n\n\tvar mu sync.Mutex\n\tareMethods := map[string]bool{}\n\tareResolvers := map[string]bool{}\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tsrv.AroundFields(func(ctx context.Context, next graphql.Resolver) (res any, err error) {\n\t\tpath, _ := ctx.Value(ckey(\"path\")).([]int)\n\t\treturn next(context.WithValue(ctx, ckey(\"path\"), append(path, 1)))\n\t})\n\n\tsrv.AroundFields(func(ctx context.Context, next graphql.Resolver) (res any, err error) {\n\t\tpath, _ := ctx.Value(ckey(\"path\")).([]int)\n\t\treturn next(context.WithValue(ctx, ckey(\"path\"), append(path, 2)))\n\t})\n\n\tsrv.AroundFields(func(ctx context.Context, next graphql.Resolver) (res any, err error) {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tmu.Lock()\n\t\tareMethods[fc.Field.Name] = fc.IsMethod\n\t\tareResolvers[fc.Field.Name] = fc.IsResolver\n\t\tmu.Unlock()\n\t\treturn next(ctx)\n\t})\n\n\tsrv.AroundFields(func(ctx context.Context, next graphql.Resolver) (res any, err error) {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tif fc.Field.Name != \"user\" {\n\t\t\treturn next(ctx)\n\t\t}\n\t\topCtx := graphql.GetOperationContext(ctx)\n\t\tcollected := graphql.CollectFields(opCtx, fc.Field.Selections, []string{\"User\"})\n\t\trequire.Len(t, collected, 3)\n\t\trequire.Equal(t, \"pets\", collected[2].Name)\n\t\tchild, err := fc.Child(ctx, collected[2])\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, 2, *child.Args[\"limit\"].(*int))\n\t\tcollected = graphql.CollectFields(opCtx, child.Field.Selections, []string{\"Pet\"})\n\t\trequire.Len(t, collected, 2)\n\t\trequire.Equal(t, \"friends\", collected[1].Name)\n\t\tchild, err = child.Child(ctx, collected[1])\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, 10, *child.Args[\"limit\"].(*int))\n\t\treturn next(ctx)\n\t})\n\n\tc := client.New(srv)\n\n\tvar resp struct {\n\t\tUser struct {\n\t\t\tID      int\n\t\t\tFriends []struct {\n\t\t\t\tID int\n\t\t\t}\n\t\t\tPets []struct {\n\t\t\t\tID      int\n\t\t\t\tFriends []struct {\n\t\t\t\t\tID int\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tModelMethods struct {\n\t\t\tNoContext bool\n\t\t}\n\t}\n\n\tcalled := false\n\tresolvers.UserResolver.Friends = func(ctx context.Context, obj *User) ([]*User, error) {\n\t\tassert.Equal(t, []int{1, 2, 1, 2}, ctx.Value(ckey(\"path\")))\n\t\tcalled = true\n\t\treturn []*User{}, nil\n\t}\n\n\terr := c.Post(`query {\n\t\tuser(id: 1) {\n\t\t\tid,\n\t\t\tfriends {\n\t\t\t\tid\n\t\t\t}\n\t\t\tpets (limit: 2) {\n\t\t\t\tid\n\t\t\t\tfriends(limit: 10) {\n\t\t\t\t\tid\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tmodelMethods {\n\t\t\tnoContext\n\t\t}\n\t}`, &resp)\n\n\tassert.Equal(t, map[string]bool{\n\t\t\"user\":         true,\n\t\t\"pets\":         true,\n\t\t\"id\":           false,\n\t\t\"friends\":      true,\n\t\t\"modelMethods\": true,\n\t\t\"noContext\":    true,\n\t}, areMethods)\n\tassert.Equal(t, map[string]bool{\n\t\t\"user\":         true,\n\t\t\"pets\":         true,\n\t\t\"id\":           false,\n\t\t\"friends\":      true,\n\t\t\"modelMethods\": true,\n\t\t\"noContext\":    false,\n\t}, areResolvers)\n\n\trequire.NoError(t, err)\n\trequire.True(t, called)\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/modelmethod_test.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestModelMethods(t *testing.T) {\n\tresolver := &Stub{}\n\tresolver.QueryResolver.ModelMethods = func(ctx context.Context) (methods *ModelMethods, e error) {\n\t\treturn &ModelMethods{}, nil\n\t}\n\tresolver.ModelMethodsResolver.ResolverField = func(ctx context.Context, obj *ModelMethods) (b bool, e error) {\n\t\treturn true, nil\n\t}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolver}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\tt.Run(\"without context\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tModelMethods struct {\n\t\t\t\tNoContext bool\n\t\t\t}\n\t\t}\n\t\terr := c.Post(`query { modelMethods{ noContext } }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.True(t, resp.ModelMethods.NoContext)\n\t})\n\tt.Run(\"with context\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tModelMethods struct {\n\t\t\t\tWithContext bool\n\t\t\t}\n\t\t}\n\t\terr := c.Post(`query { modelMethods{ withContext } }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.True(t, resp.ModelMethods.WithContext)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/models-gen.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage singlefile\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\t\"time\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\ntype Animal interface {\n\tIsAnimal()\n\tGetSpecies() string\n\tGetSize() *Size\n}\n\ntype ContentChild interface {\n\tIsContentChild()\n}\n\ntype Mammalian interface {\n\tIsAnimal()\n\tIsMammalian()\n\tGetSpecies() string\n\tGetSize() *Size\n}\n\ntype TestUnion interface {\n\tIsTestUnion()\n}\n\ntype A struct {\n\tID string `json:\"id\"`\n}\n\nfunc (A) IsTestUnion() {}\n\ntype AIt struct {\n\tID string `json:\"id\"`\n}\n\ntype AbIt struct {\n\tID string `json:\"id\"`\n}\n\ntype B struct {\n\tID string `json:\"id\"`\n}\n\nfunc (B) IsTestUnion() {}\n\ntype Cat struct {\n\tSpecies  string `json:\"species\"`\n\tSize     *Size  `json:\"size\"`\n\tCatBreed string `json:\"catBreed\"`\n}\n\nfunc (Cat) IsAnimal()               {}\nfunc (this Cat) GetSpecies() string { return this.Species }\nfunc (this Cat) GetSize() *Size     { return this.Size }\n\ntype CheckIssue896 struct {\n\tID *int `json:\"id,omitempty\"`\n}\n\ntype ContentPost struct {\n\tFoo *string `json:\"foo,omitempty\"`\n}\n\nfunc (ContentPost) IsContentChild() {}\n\ntype ContentUser struct {\n\tFoo *string `json:\"foo,omitempty\"`\n}\n\nfunc (ContentUser) IsContentChild() {}\n\ntype Coordinates struct {\n\tX float64 `json:\"x\"`\n\tY float64 `json:\"y\"`\n}\n\ntype DefaultInput struct {\n\tFalsyBoolean  *bool `json:\"falsyBoolean,omitempty\"`\n\tTruthyBoolean *bool `json:\"truthyBoolean,omitempty\"`\n}\n\ntype DefaultParametersMirror struct {\n\tFalsyBoolean  *bool `json:\"falsyBoolean,omitempty\"`\n\tTruthyBoolean *bool `json:\"truthyBoolean,omitempty\"`\n}\n\ntype DeferModel struct {\n\tID     string   `json:\"id\"`\n\tName   string   `json:\"name\"`\n\tValues []string `json:\"values\"`\n}\n\ntype Dog struct {\n\tSpecies  string `json:\"species\"`\n\tSize     *Size  `json:\"size\"`\n\tDogBreed string `json:\"dogBreed\"`\n}\n\nfunc (Dog) IsAnimal()               {}\nfunc (this Dog) GetSpecies() string { return this.Species }\nfunc (this Dog) GetSize() *Size     { return this.Size }\n\ntype EmbeddedDefaultScalar struct {\n\tValue *string `json:\"value,omitempty\"`\n}\n\ntype FieldsOrderPayload struct {\n\tFirstFieldValue *string `json:\"firstFieldValue,omitempty\"`\n}\n\ntype Horse struct {\n\tSpecies    string `json:\"species\"`\n\tSize       *Size  `json:\"size\"`\n\tHorseBreed string `json:\"horseBreed\"`\n}\n\nfunc (Horse) IsMammalian()            {}\nfunc (this Horse) GetSpecies() string { return this.Species }\nfunc (this Horse) GetSize() *Size     { return this.Size }\n\nfunc (Horse) IsAnimal() {}\n\ntype InnerDirectives struct {\n\tMessage string `json:\"message\"`\n}\n\ntype InnerInput struct {\n\tID int `json:\"id\"`\n}\n\ntype InnerObject struct {\n\tID int `json:\"id\"`\n}\n\ntype InputDirectives struct {\n\tText          string           `json:\"text\"`\n\tNullableText  *string          `json:\"nullableText,omitempty\"`\n\tInner         *InnerDirectives `json:\"inner\"`\n\tInnerNullable *InnerDirectives `json:\"innerNullable,omitempty\"`\n\tThirdParty    *ThirdParty      `json:\"thirdParty,omitempty\"`\n}\n\ntype InputWithEnumValue struct {\n\tEnum EnumTest `json:\"enum\"`\n}\n\ntype LoopA struct {\n\tB *LoopB `json:\"b\"`\n}\n\ntype LoopB struct {\n\tA *LoopA `json:\"a\"`\n}\n\n// Since gqlgen defines default implementation for a Map scalar, this tests that the builtin is _not_\n// added to the TypeMap\ntype Map struct {\n\tID string `json:\"id\"`\n}\n\ntype Mutation struct {\n}\n\ntype NestedInput struct {\n\tField Email `json:\"field\"`\n}\n\ntype NestedMapInput struct {\n\tMap map[string]any `json:\"map,omitempty\"`\n}\n\ntype ObjectDirectives struct {\n\tText         string   `json:\"text\"`\n\tNullableText *string  `json:\"nullableText,omitempty\"`\n\tOrder        []string `json:\"order\"`\n}\n\ntype OmittableInput struct {\n\tID     graphql.Omittable[*string]     `json:\"id,omitempty\"`\n\tBool   graphql.Omittable[*bool]       `json:\"bool,omitempty\"`\n\tStr    graphql.Omittable[*string]     `json:\"str,omitempty\"`\n\tInt    graphql.Omittable[*int]        `json:\"int,omitempty\"`\n\tTime   graphql.Omittable[*time.Time]  `json:\"time,omitempty\"`\n\tEnum   graphql.Omittable[*Status]     `json:\"enum,omitempty\"`\n\tScalar graphql.Omittable[*ThirdParty] `json:\"scalar,omitempty\"`\n\tObject graphql.Omittable[*OuterInput] `json:\"object,omitempty\"`\n}\n\ntype OuterInput struct {\n\tInner *InnerInput `json:\"inner\"`\n}\n\ntype OuterObject struct {\n\tInner *InnerObject `json:\"inner\"`\n}\n\ntype OuterWrapperInput struct {\n\tInner *InputDirectives `json:\"inner\"`\n}\n\ntype Pet struct {\n\tID      int    `json:\"id\"`\n\tFriends []*Pet `json:\"friends,omitempty\"`\n}\n\ntype Query struct {\n}\n\ntype Size struct {\n\tHeight int `json:\"height\"`\n\tWeight int `json:\"weight\"`\n}\n\ntype SkipIncludeTestType struct {\n\tA *string `json:\"a,omitempty\"`\n\tB *string `json:\"b,omitempty\"`\n}\n\ntype Slices struct {\n\tTest1 []*string `json:\"test1,omitempty\"`\n\tTest2 []string  `json:\"test2,omitempty\"`\n\tTest3 []*string `json:\"test3\"`\n\tTest4 []string  `json:\"test4\"`\n}\n\ntype SpecialInput struct {\n\tNesting *NestedInput `json:\"nesting\"`\n}\n\ntype Subscription struct {\n}\n\ntype User struct {\n\tID      int        `json:\"id\"`\n\tFriends []*User    `json:\"friends\"`\n\tCreated time.Time  `json:\"created\"`\n\tUpdated *time.Time `json:\"updated,omitempty\"`\n\tPets    []*Pet     `json:\"pets,omitempty\"`\n}\n\ntype ValidInput struct {\n\tBreak       string `json:\"break\"`\n\tDefault     string `json:\"default\"`\n\tFunc        string `json:\"func\"`\n\tInterface   string `json:\"interface\"`\n\tSelect      string `json:\"select\"`\n\tCase        string `json:\"case\"`\n\tDefer       string `json:\"defer\"`\n\tGo          string `json:\"go\"`\n\tMap         string `json:\"map\"`\n\tStruct      string `json:\"struct\"`\n\tChan        string `json:\"chan\"`\n\tElse        string `json:\"else\"`\n\tGoto        string `json:\"goto\"`\n\tPackage     string `json:\"package\"`\n\tSwitch      string `json:\"switch\"`\n\tConst       string `json:\"const\"`\n\tFallthrough string `json:\"fallthrough\"`\n\tIf          string `json:\"if\"`\n\tRange       string `json:\"range\"`\n\tType        string `json:\"type\"`\n\tContinue    string `json:\"continue\"`\n\tFor         string `json:\"for\"`\n\tImport      string `json:\"import\"`\n\tReturn      string `json:\"return\"`\n\tVar         string `json:\"var\"`\n\tUnderscore  string `json:\"_\"`\n}\n\n// These things are all valid, but without care generate invalid go code\ntype ValidType struct {\n\tDifferentCase      string `json:\"differentCase\"`\n\tDifferentCaseOld   string `json:\"different_case\"`\n\tValidInputKeywords bool   `json:\"validInputKeywords\"`\n\tValidArgs          bool   `json:\"validArgs\"`\n}\n\ntype XXIt struct {\n\tID string `json:\"id\"`\n}\n\ntype XxIt struct {\n\tID string `json:\"id\"`\n}\n\ntype AsdfIt struct {\n\tID string `json:\"id\"`\n}\n\ntype IIt struct {\n\tID string `json:\"id\"`\n}\n\ntype EnumTest string\n\nconst (\n\tEnumTestOk EnumTest = \"OK\"\n\tEnumTestNg EnumTest = \"NG\"\n)\n\nvar AllEnumTest = []EnumTest{\n\tEnumTestOk,\n\tEnumTestNg,\n}\n\nfunc (e EnumTest) IsValid() bool {\n\tswitch e {\n\tcase EnumTestOk, EnumTestNg:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e EnumTest) String() string {\n\treturn string(e)\n}\n\nfunc (e *EnumTest) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = EnumTest(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid EnumTest\", str)\n\t}\n\treturn nil\n}\n\nfunc (e EnumTest) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *EnumTest) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e EnumTest) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n\ntype Status string\n\nconst (\n\tStatusOk    Status = \"OK\"\n\tStatusError Status = \"ERROR\"\n)\n\nvar AllStatus = []Status{\n\tStatusOk,\n\tStatusError,\n}\n\nfunc (e Status) IsValid() bool {\n\tswitch e {\n\tcase StatusOk, StatusError:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e Status) String() string {\n\treturn string(e)\n}\n\nfunc (e *Status) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = Status(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid Status\", str)\n\t}\n\treturn nil\n}\n\nfunc (e Status) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *Status) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e Status) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/models.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"io\"\n)\n\ntype ForcedResolver struct {\n\tField Circle\n}\n\ntype ModelMethods struct{}\n\nfunc (m ModelMethods) NoContext() bool {\n\treturn true\n}\n\nfunc (m ModelMethods) WithContext(_ context.Context) bool {\n\treturn true\n}\n\ntype Errors struct{}\n\ntype Error struct {\n\tID string\n}\n\nfunc (Error) ErrorOnRequiredField() (string, error) {\n\treturn \"\", errors.New(\"boom\")\n}\n\nfunc (Error) ErrorOnNonRequiredField() (string, error) {\n\treturn \"\", errors.New(\"boom\")\n}\n\nfunc (Error) NilOnRequiredField() *string {\n\treturn nil\n}\n\ntype EmbeddedPointerModel struct {\n\t*EmbeddedPointer\n\tID string\n}\n\ntype EmbeddedPointer struct {\n\tTitle string\n}\n\ntype MarshalPanic string\n\nfunc (m *MarshalPanic) UnmarshalGQL(v any) error {\n\tpanic(\"BOOM\")\n}\n\nfunc (m MarshalPanic) MarshalGQL(w io.Writer) {\n\tpanic(\"BOOM\")\n}\n\ntype Panics struct{}\n\nfunc (p *Panics) FieldFuncMarshal(ctx context.Context, u []MarshalPanic) []MarshalPanic {\n\treturn []MarshalPanic{MarshalPanic(\"aa\"), MarshalPanic(\"bb\")}\n}\n\ntype Autobind struct {\n\tInt   int\n\tInt32 int32\n\tInt64 int64\n\n\tIdStr string\n\tIdInt int\n}\n\ntype OverlappingFields struct {\n\tFoo    int\n\tNewFoo int\n}\n\ntype ObjectDirectivesWithCustomGoModel struct {\n\tNullableText string // not *string, but schema is `String @toNull` type.\n}\n\ntype FallbackToStringEncoding string\n\nconst (\n\tFallbackToStringEncodingA FallbackToStringEncoding = \"A\"\n\tFallbackToStringEncodingB FallbackToStringEncoding = \"B\"\n\tFallbackToStringEncodingC FallbackToStringEncoding = \"C\"\n)\n\ntype Primitive int\n\nfunc (p Primitive) Squared() int {\n\treturn int(p) * int(p)\n}\n\ntype PrimitiveString string\n\nfunc (s PrimitiveString) Doubled() string {\n\treturn string(s) + string(s)\n}\n\ntype Bytes []byte\n"
  },
  {
    "path": "codegen/testserver/singlefile/mutation_with_custom_scalar.go",
    "content": "package singlefile\n\nimport (\n\t\"encoding/json\"\n\t\"errors\"\n\t\"io\"\n\t\"regexp\"\n)\n\nvar re = regexp.MustCompile(\n\t\"^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$\",\n)\n\ntype Email string\n\nfunc (value *Email) UnmarshalGQL(v any) error {\n\tinput, ok := v.(string)\n\tif !ok {\n\t\treturn errors.New(\"email expects a string value\")\n\t}\n\tif !re.MatchString(input) {\n\t\treturn errors.New(\"invalid email format\")\n\t}\n\t*value = Email(input)\n\treturn nil\n}\n\nfunc (value Email) MarshalGQL(w io.Writer) {\n\toutput, _ := json.Marshal(string(value))\n\tw.Write(output)\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/mutation_with_custom_scalar.graphql",
    "content": "extend type Mutation {\n    updateSomething(input: SpecialInput!): String!\n}\n\nscalar Email\n\ninput SpecialInput {\n    nesting: NestedInput!\n}\n\ninput NestedInput {\n    field: Email!\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/mutation_with_custom_scalar_test.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestErrorInsideMutationArgument(t *testing.T) {\n\tresolvers := &Stub{}\n\tresolvers.MutationResolver.UpdateSomething = func(_ context.Context, input SpecialInput) (s string, err error) {\n\t\treturn \"Hello world\", nil\n\t}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"mutation with correct input doesn't return error\", func(t *testing.T) {\n\t\tvar resp map[string]any\n\t\tinput := map[string]any{\n\t\t\t\"nesting\": map[string]any{\n\t\t\t\t\"field\": \"email@example.com\",\n\t\t\t},\n\t\t}\n\t\terr := c.Post(\n\t\t\t`mutation TestMutation($input: SpecialInput!) { updateSomething(input: $input) }`,\n\t\t\t&resp,\n\t\t\tclient.Var(\"input\", input),\n\t\t)\n\t\trequire.Equal(t, \"Hello world\", resp[\"updateSomething\"])\n\t\trequire.NoError(t, err)\n\t})\n\n\tt.Run(\"mutation with incorrect input returns full path\", func(t *testing.T) {\n\t\tvar resp map[string]any\n\t\tinput := map[string]any{\n\t\t\t\"nesting\": map[string]any{\n\t\t\t\t\"field\": \"not-an-email\",\n\t\t\t},\n\t\t}\n\t\terr := c.Post(\n\t\t\t`mutation TestMutation($input: SpecialInput!) { updateSomething(input: $input) }`,\n\t\t\t&resp,\n\t\t\tclient.Var(\"input\", input),\n\t\t)\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t`[{\"message\":\"invalid email format\",\"path\":[\"updateSomething\",\"input\",\"nesting\",\"field\"]}]`,\n\t\t)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/nulls.graphql",
    "content": "extend type Query {\n    errorBubble: Error\n    errorBubbleList: [Error!]\n    errorList: [Error]\n    errors: Errors\n    valid: String!\n    invalid: String!\n}\n\nextend type Subscription {\n    errorRequired: Error!\n}\n\ntype Errors {\n    a: Error!\n    b: Error!\n    c: Error!\n    d: Error!\n    e: Error!\n}\n\ntype Error {\n    id: ID!\n    errorOnNonRequiredField: String\n    errorOnRequiredField: String!\n    nilOnRequiredField: String!\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/nulls_test.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestNullBubbling(t *testing.T) {\n\tresolvers := &Stub{}\n\tresolvers.QueryResolver.Valid = func(ctx context.Context) (s string, e error) {\n\t\treturn \"Ok\", nil\n\t}\n\tresolvers.QueryResolver.Invalid = func(ctx context.Context) (s string, e error) {\n\t\treturn \"Ok\", errors.New(\"ERROR\")\n\t}\n\tresolvers.QueryResolver.Errors = func(ctx context.Context) (errors *Errors, e error) {\n\t\treturn &Errors{}, nil\n\t}\n\tresolvers.QueryResolver.ErrorBubble = func(ctx context.Context) (i *Error, e error) {\n\t\treturn &Error{ID: \"E1234\"}, nil\n\t}\n\tresolvers.QueryResolver.ErrorBubbleList = func(ctx context.Context) (i []*Error, e error) {\n\t\treturn []*Error{{ID: \"1\"}, nil, nil}, nil\n\t}\n\tresolvers.QueryResolver.ErrorList = func(ctx context.Context) (i []*Error, e error) {\n\t\treturn []*Error{nil}, nil\n\t}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"when function errors on non required field\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tValid       string\n\t\t\tErrorBubble *struct {\n\t\t\t\tId                      string\n\t\t\t\tErrorOnNonRequiredField *string\n\t\t\t}\n\t\t}\n\t\terr := c.Post(`query { valid, errorBubble { id, errorOnNonRequiredField } }`, &resp)\n\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t`[{\"message\":\"boom\",\"path\":[\"errorBubble\",\"errorOnNonRequiredField\"]}]`,\n\t\t)\n\t\trequire.Equal(t, \"E1234\", resp.ErrorBubble.Id)\n\t\trequire.Nil(t, resp.ErrorBubble.ErrorOnNonRequiredField)\n\t\trequire.Equal(t, \"Ok\", resp.Valid)\n\t})\n\n\tt.Run(\"when function errors\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tValid       string\n\t\t\tErrorBubble *struct {\n\t\t\t\tNilOnRequiredField string\n\t\t\t}\n\t\t}\n\t\terr := c.Post(`query { valid, errorBubble { id, errorOnRequiredField } }`, &resp)\n\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t`[{\"message\":\"boom\",\"path\":[\"errorBubble\",\"errorOnRequiredField\"]}]`,\n\t\t)\n\t\trequire.Nil(t, resp.ErrorBubble)\n\t\trequire.Equal(t, \"Ok\", resp.Valid)\n\t})\n\n\tt.Run(\"when user returns null on required field\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tValid       string\n\t\t\tErrorBubble *struct {\n\t\t\t\tNilOnRequiredField string\n\t\t\t}\n\t\t}\n\t\terr := c.Post(`query { valid, errorBubble { id, nilOnRequiredField } }`, &resp)\n\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t`[{\"message\":\"the requested element is null which the schema does not allow\",\"path\":[\"errorBubble\",\"nilOnRequiredField\"]}]`,\n\t\t)\n\t\trequire.Nil(t, resp.ErrorBubble)\n\t\trequire.Equal(t, \"Ok\", resp.Valid)\n\t})\n\n\tt.Run(\"when list element is null\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tValid     string\n\t\t\tErrorList []*struct{}\n\t\t}\n\t\terr := c.Post(`query { valid, errorList { id } }`, &resp)\n\n\t\trequire.NoError(t, err)\n\t\trequire.Len(t, resp.ErrorList, 1)\n\t\trequire.Nil(t, resp.ErrorList[0])\n\t\trequire.Equal(t, \"Ok\", resp.Valid)\n\t})\n\n\tt.Run(\"when non-null list element is null\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tValid           string\n\t\t\tErrorBubbleList []*struct{}\n\t\t}\n\t\terr := c.Post(`query { valid, errorBubbleList { id } }`, &resp)\n\n\t\trequire.Contains(\n\t\t\tt,\n\t\t\terr.Error(),\n\t\t\t`{\"message\":\"the requested element is null which the schema does not allow\",\"path\":[\"errorBubbleList\",2]}`,\n\t\t)\n\t\trequire.Contains(\n\t\t\tt,\n\t\t\terr.Error(),\n\t\t\t`{\"message\":\"the requested element is null which the schema does not allow\",\"path\":[\"errorBubbleList\",1]}`,\n\t\t)\n\t\trequire.Nil(t, resp.ErrorBubbleList)\n\t\trequire.Equal(t, \"Ok\", resp.Valid)\n\t})\n\n\tt.Run(\"null args\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tNullableArg *string\n\t\t}\n\t\tresolvers.QueryResolver.NullableArg = func(ctx context.Context, arg *int) (i *string, e error) {\n\t\t\tv := \"Ok\"\n\t\t\treturn &v, nil\n\t\t}\n\n\t\terr := c.Post(`query { nullableArg(arg: null) }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"Ok\", *resp.NullableArg)\n\t})\n\n\tt.Run(\"concurrent null detection\", func(t *testing.T) {\n\t\tvar resp any\n\t\tresolvers.ErrorsResolver.A = func(ctx context.Context, obj *Errors) (i *Error, e error) { return nil, nil }\n\t\tresolvers.ErrorsResolver.B = func(ctx context.Context, obj *Errors) (i *Error, e error) { return nil, nil }\n\t\tresolvers.ErrorsResolver.C = func(ctx context.Context, obj *Errors) (i *Error, e error) { return nil, nil }\n\t\tresolvers.ErrorsResolver.D = func(ctx context.Context, obj *Errors) (i *Error, e error) { return nil, nil }\n\t\tresolvers.ErrorsResolver.E = func(ctx context.Context, obj *Errors) (i *Error, e error) { return nil, nil }\n\n\t\terr := c.Post(`{ errors {\n\t\t\ta { id },\n\t\t\tb { id },\n\t\t\tc { id },\n\t\t\td { id },\n\t\t\te { id },\n\t\t} }`, &resp)\n\n\t\trequire.Error(t, err)\n\t\trequire.Contains(\n\t\t\tt,\n\t\t\terr.Error(),\n\t\t\t\"the requested element is null which the schema does not allow\",\n\t\t)\n\t})\n\n\tt.Run(\"when non-nullable field returns content while error occurred\", func(t *testing.T) {\n\t\tvar resp any\n\t\terr := c.Post(`query { invalid }`, &resp)\n\t\trequire.Nil(t, resp)\n\t\trequire.Error(t, err)\n\t\trequire.Contains(t, err.Error(), `{\"message\":\"ERROR\",\"path\":[\"invalid\"]}`)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/otherpkg/model.go",
    "content": "package otherpkg\n\ntype (\n\tScalar string\n\tMap    map[string]string\n\tSlice  []string\n)\n\ntype Struct struct {\n\tName Scalar\n\tDesc *Scalar\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/panics.graphql",
    "content": "extend type Query {\n    panics: Panics\n}\n\ntype Panics {\n    fieldScalarMarshal: [MarshalPanic!]!\n    fieldFuncMarshal(u: [MarshalPanic!]!): [MarshalPanic!]!\n    argUnmarshal(u: [MarshalPanic!]!): Boolean!\n\n}\n\nscalar MarshalPanic\n"
  },
  {
    "path": "codegen/testserver/singlefile/panics_test.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestPanics(t *testing.T) {\n\tresolvers := &Stub{}\n\tresolvers.QueryResolver.Panics = func(ctx context.Context) (panics *Panics, e error) {\n\t\treturn &Panics{}, nil\n\t}\n\tresolvers.PanicsResolver.ArgUnmarshal = func(ctx context.Context, obj *Panics, u []MarshalPanic) (b bool, e error) {\n\t\treturn true, nil\n\t}\n\tresolvers.PanicsResolver.FieldScalarMarshal = func(ctx context.Context, obj *Panics) (marshalPanic []MarshalPanic, e error) {\n\t\treturn []MarshalPanic{MarshalPanic(\"aa\"), MarshalPanic(\"bb\")}, nil\n\t}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tsrv.SetRecoverFunc(func(ctx context.Context, err any) (userMessage error) {\n\t\treturn fmt.Errorf(\"panic: %v\", err)\n\t})\n\n\tsrv.SetErrorPresenter(func(ctx context.Context, err error) *gqlerror.Error {\n\t\treturn &gqlerror.Error{\n\t\t\tMessage: \"presented: \" + err.Error(),\n\t\t\tPath:    graphql.GetPath(ctx),\n\t\t}\n\t})\n\n\tc := client.New(srv)\n\n\tt.Run(\"panics in marshallers will not kill server\", func(t *testing.T) {\n\t\tvar resp any\n\t\terr := c.Post(`query { panics { fieldScalarMarshal } }`, &resp)\n\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t\"http 422: {\\\"errors\\\":[{\\\"message\\\":\\\"presented: panic: BOOM\\\"}],\\\"data\\\":null}\",\n\t\t)\n\t})\n\n\tt.Run(\"panics in unmarshalers will not kill server\", func(t *testing.T) {\n\t\tvar resp any\n\t\terr := c.Post(`query { panics { argUnmarshal(u: [\"aa\", \"bb\"]) } }`, &resp)\n\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t\"[{\\\"message\\\":\\\"presented: input: panics.argUnmarshal panic: BOOM\\\",\\\"path\\\":[\\\"panics\\\",\\\"argUnmarshal\\\"]}]\",\n\t\t)\n\t})\n\n\tt.Run(\"panics in funcs unmarshal return errors\", func(t *testing.T) {\n\t\tvar resp any\n\t\terr := c.Post(`query { panics { fieldFuncMarshal(u: [\"aa\", \"bb\"]) } }`, &resp)\n\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t\"[{\\\"message\\\":\\\"presented: input: panics.fieldFuncMarshal panic: BOOM\\\",\\\"path\\\":[\\\"panics\\\",\\\"fieldFuncMarshal\\\"]}]\",\n\t\t)\n\t})\n\n\tt.Run(\"panics in funcs marshal return errors\", func(t *testing.T) {\n\t\tvar resp any\n\t\terr := c.Post(`query { panics { fieldFuncMarshal(u: []) } }`, &resp)\n\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t\"http 422: {\\\"errors\\\":[{\\\"message\\\":\\\"presented: panic: BOOM\\\"}],\\\"data\\\":null}\",\n\t\t)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/primitive_objects.graphql",
    "content": "extend type Query {\n    primitiveObject: [Primitive!]!\n    primitiveStringObject: [PrimitiveString!]!\n}\n\ntype Primitive {\n    value: Int!\n    squared: Int!\n}\n\ntype PrimitiveString {\n    value: String!\n    doubled: String!\n    len: Int!\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/primitive_objects_test.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestPrimitiveObjects(t *testing.T) {\n\tresolvers := &Stub{}\n\tresolvers.QueryResolver.PrimitiveObject = func(ctx context.Context) (out []Primitive, e error) {\n\t\treturn []Primitive{2, 4}, nil\n\t}\n\n\tresolvers.PrimitiveResolver.Value = func(ctx context.Context, obj *Primitive) (i int, e error) {\n\t\treturn int(*obj), nil\n\t}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"can fetch value\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tPrimitiveObject []struct {\n\t\t\t\tValue   int\n\t\t\t\tSquared int\n\t\t\t}\n\t\t}\n\t\tc.MustPost(`query { primitiveObject { value, squared } }`, &resp)\n\n\t\tassert.Equal(t, 2, resp.PrimitiveObject[0].Value)\n\t\tassert.Equal(t, 4, resp.PrimitiveObject[0].Squared)\n\t\tassert.Equal(t, 4, resp.PrimitiveObject[1].Value)\n\t\tassert.Equal(t, 16, resp.PrimitiveObject[1].Squared)\n\t})\n}\n\nfunc TestPrimitiveStringObjects(t *testing.T) {\n\tresolvers := &Stub{}\n\tresolvers.QueryResolver.PrimitiveStringObject = func(ctx context.Context) (out []PrimitiveString, e error) {\n\t\treturn []PrimitiveString{\"hello\", \"world\"}, nil\n\t}\n\n\tresolvers.PrimitiveStringResolver.Value = func(ctx context.Context, obj *PrimitiveString) (i string, e error) {\n\t\treturn string(*obj), nil\n\t}\n\n\tresolvers.PrimitiveStringResolver.Len = func(ctx context.Context, obj *PrimitiveString) (i int, e error) {\n\t\treturn len(string(*obj)), nil\n\t}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"can fetch value\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tPrimitiveStringObject []struct {\n\t\t\t\tValue   string\n\t\t\t\tDoubled string\n\t\t\t\tLen     int\n\t\t\t}\n\t\t}\n\t\tc.MustPost(`query { primitiveStringObject { value, doubled, len } }`, &resp)\n\n\t\tassert.Equal(t, \"hello\", resp.PrimitiveStringObject[0].Value)\n\t\tassert.Equal(t, \"hellohello\", resp.PrimitiveStringObject[0].Doubled)\n\t\tassert.Equal(t, 5, resp.PrimitiveStringObject[0].Len)\n\t\tassert.Equal(t, \"world\", resp.PrimitiveStringObject[1].Value)\n\t\tassert.Equal(t, \"worldworld\", resp.PrimitiveStringObject[1].Doubled)\n\t\tassert.Equal(t, 5, resp.PrimitiveStringObject[1].Len)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/ptr_to_any.go",
    "content": "package singlefile\n\ntype PtrToAnyContainer struct {\n\tPtrToAny *any\n}\n\nfunc (c *PtrToAnyContainer) Binding() *any {\n\treturn c.PtrToAny\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/ptr_to_any.graphql",
    "content": "scalar Any\n\ntype PtrToAnyContainer {\n    ptrToAny: Any\n    binding: Any\n}\n\nextend type Query {\n    ptrToAnyContainer: PtrToAnyContainer!\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/ptr_to_any_test.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestPtrToAny(t *testing.T) {\n\tresolvers := &Stub{}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tvar a any = `{\"some\":\"thing\"}`\n\tresolvers.QueryResolver.PtrToAnyContainer = func(ctx context.Context) (wrappedStruct *PtrToAnyContainer, e error) {\n\t\tptrToAnyContainer := PtrToAnyContainer{\n\t\t\tPtrToAny: &a,\n\t\t}\n\t\treturn &ptrToAnyContainer, nil\n\t}\n\n\tt.Run(\"binding to pointer to any\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tPtrToAnyContainer struct {\n\t\t\t\tBinding *any\n\t\t\t}\n\t\t}\n\n\t\terr := c.Post(`query { ptrToAnyContainer { binding }}`, &resp)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Equal(t, &a, resp.PtrToAnyContainer.Binding)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/ptr_to_ptr_input.go",
    "content": "package singlefile\n\ntype PtrToPtrOuter struct {\n\tName        string\n\tInner       *PtrToPtrInner\n\tStupidInner *******PtrToPtrInner\n}\n\ntype PtrToPtrInner struct {\n\tKey   string\n\tValue string\n}\n\ntype UpdatePtrToPtrOuter struct {\n\tName        *string\n\tInner       **UpdatePtrToPtrInner\n\tStupidInner ********UpdatePtrToPtrInner\n}\n\ntype UpdatePtrToPtrInner struct {\n\tKey   *string\n\tValue *string\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/ptr_to_ptr_input.graphql",
    "content": "type PtrToPtrOuter {\n    name: String!\n    inner: PtrToPtrInner\n    stupidInner: PtrToPtrInner\n}\n\ntype PtrToPtrInner {\n    key: String!\n    value: String!\n}\n\ninput UpdatePtrToPtrOuter {\n    name: String\n    inner: UpdatePtrToPtrInner\n    stupidInner: UpdatePtrToPtrInner\n}\n\ninput UpdatePtrToPtrInner {\n    key: String\n    value: String\n}\n\nextend type Mutation {\n    updatePtrToPtr(input: UpdatePtrToPtrOuter!): PtrToPtrOuter!\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/ptr_to_ptr_input_test.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\ntype UpdatePtrToPtrResults struct {\n\tUpdatedPtrToPtr PtrToPtrOuter `json:\"updatePtrToPtr\"`\n}\n\nfunc TestPtrToPtr(t *testing.T) {\n\tresolvers := &Stub{}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tresolvers.MutationResolver.UpdatePtrToPtr = func(ctx context.Context, in UpdatePtrToPtrOuter) (ret *PtrToPtrOuter, err error) {\n\t\tret = &PtrToPtrOuter{\n\t\t\tName: \"oldName\",\n\t\t\tInner: &PtrToPtrInner{\n\t\t\t\tKey:   \"oldKey\",\n\t\t\t\tValue: \"oldValue\",\n\t\t\t},\n\t\t\tStupidInner: nest7(&PtrToPtrInner{\n\t\t\t\tKey:   \"oldStupidKey\",\n\t\t\t\tValue: \"oldStupidValue\",\n\t\t\t}),\n\t\t}\n\n\t\tif in.Name != nil {\n\t\t\tret.Name = *in.Name\n\t\t}\n\n\t\tif in.Inner != nil {\n\t\t\tinner := *in.Inner\n\t\t\tif inner == nil {\n\t\t\t\tret.Inner = nil\n\t\t\t} else {\n\t\t\t\tif in.Inner == nil {\n\t\t\t\t\tret.Inner = &PtrToPtrInner{}\n\t\t\t\t}\n\t\t\t\tif inner.Key != nil {\n\t\t\t\t\tret.Inner.Key = *inner.Key\n\t\t\t\t}\n\t\t\t\tif inner.Value != nil {\n\t\t\t\t\tret.Inner.Value = *inner.Value\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif in.StupidInner != nil {\n\t\t\tsi := *in.StupidInner\n\t\t\tif si == nil {\n\t\t\t\tret.StupidInner = nil\n\t\t\t} else {\n\t\t\t\tdeepIn := ******si\n\t\t\t\tdeepOut := ******ret.StupidInner\n\t\t\t\tif deepIn.Key != nil {\n\t\t\t\t\tdeepOut.Key = *deepIn.Key\n\t\t\t\t}\n\t\t\t\tif deepIn.Value != nil {\n\t\t\t\t\tdeepOut.Value = *deepIn.Value\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn ret, err\n\t}\n\n\tt.Run(\"pointer to pointer input missing\", func(t *testing.T) {\n\t\tvar resp UpdatePtrToPtrResults\n\n\t\terr := c.Post(\n\t\t\t`mutation { updatePtrToPtr(input: { name: \"newName\" }) { name, inner { key, value }, stupidInner { key, value }}}`,\n\t\t\t&resp,\n\t\t)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Equal(t, \"newName\", resp.UpdatedPtrToPtr.Name)\n\t\trequire.NotNil(t, resp.UpdatedPtrToPtr.Inner)\n\t\trequire.Equal(t, \"oldKey\", resp.UpdatedPtrToPtr.Inner.Key)\n\t\trequire.Equal(t, \"oldValue\", resp.UpdatedPtrToPtr.Inner.Value)\n\t\trequire.NotNil(t, resp.UpdatedPtrToPtr.StupidInner)\n\t\trequire.NotNil(t, ******resp.UpdatedPtrToPtr.StupidInner)\n\t\trequire.Equal(t, \"oldStupidKey\", (******resp.UpdatedPtrToPtr.StupidInner).Key)\n\t\trequire.Equal(t, \"oldStupidValue\", (******resp.UpdatedPtrToPtr.StupidInner).Value)\n\t})\n\n\tt.Run(\"pointer to pointer input non-null\", func(t *testing.T) {\n\t\tvar resp UpdatePtrToPtrResults\n\n\t\terr := c.Post(`mutation {\n\t\t\tupdatePtrToPtr(input: {\n\t\t\t\tinner: {\n\t\t\t\t\tkey: \"newKey\"\n\t\t\t\t\tvalue: \"newValue\"\n\t\t\t\t}\n\t\t\t})\n\t\t\t{ name, inner { key, value }, stupidInner { key, value }}\n\t\t}`, &resp)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Equal(t, \"oldName\", resp.UpdatedPtrToPtr.Name)\n\t\trequire.NotNil(t, resp.UpdatedPtrToPtr.Inner)\n\t\trequire.Equal(t, \"newKey\", resp.UpdatedPtrToPtr.Inner.Key)\n\t\trequire.Equal(t, \"newValue\", resp.UpdatedPtrToPtr.Inner.Value)\n\t\trequire.NotNil(t, resp.UpdatedPtrToPtr.StupidInner)\n\t\trequire.NotNil(t, ******resp.UpdatedPtrToPtr.StupidInner)\n\t\trequire.Equal(t, \"oldStupidKey\", (******resp.UpdatedPtrToPtr.StupidInner).Key)\n\t\trequire.Equal(t, \"oldStupidValue\", (******resp.UpdatedPtrToPtr.StupidInner).Value)\n\t})\n\n\tt.Run(\"pointer to pointer input null\", func(t *testing.T) {\n\t\tvar resp UpdatePtrToPtrResults\n\n\t\terr := c.Post(\n\t\t\t`mutation { updatePtrToPtr(input: { inner: null }) { name, inner { key, value }, stupidInner { key, value }}}`,\n\t\t\t&resp,\n\t\t)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Equal(t, \"oldName\", resp.UpdatedPtrToPtr.Name)\n\t\trequire.Nil(t, resp.UpdatedPtrToPtr.Inner)\n\t\trequire.NotNil(t, resp.UpdatedPtrToPtr.StupidInner)\n\t\trequire.NotNil(t, ******resp.UpdatedPtrToPtr.StupidInner)\n\t\trequire.Equal(t, \"oldStupidKey\", (******resp.UpdatedPtrToPtr.StupidInner).Key)\n\t\trequire.Equal(t, \"oldStupidValue\", (******resp.UpdatedPtrToPtr.StupidInner).Value)\n\t})\n\n\tt.Run(\"many pointers input non-null\", func(t *testing.T) {\n\t\tvar resp UpdatePtrToPtrResults\n\n\t\terr := c.Post(`mutation {\n\t\t\tupdatePtrToPtr(input: {\n\t\t\t\tstupidInner: {\n\t\t\t\t\tkey: \"newKey\"\n\t\t\t\t\tvalue: \"newValue\"\n\t\t\t\t}\n\t\t\t})\n\t\t\t{ name, inner { key, value }, stupidInner { key, value }}\n\t\t}`, &resp)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Equal(t, \"oldName\", resp.UpdatedPtrToPtr.Name)\n\t\trequire.NotNil(t, resp.UpdatedPtrToPtr.Inner)\n\t\trequire.Equal(t, \"oldKey\", resp.UpdatedPtrToPtr.Inner.Key)\n\t\trequire.Equal(t, \"oldValue\", resp.UpdatedPtrToPtr.Inner.Value)\n\t\trequire.NotNil(t, resp.UpdatedPtrToPtr.StupidInner)\n\t\trequire.NotNil(t, ******resp.UpdatedPtrToPtr.StupidInner)\n\t\trequire.Equal(t, \"newKey\", (******resp.UpdatedPtrToPtr.StupidInner).Key)\n\t\trequire.Equal(t, \"newValue\", (******resp.UpdatedPtrToPtr.StupidInner).Value)\n\t})\n\n\tt.Run(\"many pointers input null\", func(t *testing.T) {\n\t\tvar resp UpdatePtrToPtrResults\n\n\t\terr := c.Post(\n\t\t\t`mutation { updatePtrToPtr(input: { stupidInner: null }) { name, inner { key, value }, stupidInner { key, value }}}`,\n\t\t\t&resp,\n\t\t)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Equal(t, \"oldName\", resp.UpdatedPtrToPtr.Name)\n\t\trequire.NotNil(t, resp.UpdatedPtrToPtr.Inner)\n\t\trequire.Equal(t, \"oldKey\", resp.UpdatedPtrToPtr.Inner.Key)\n\t\trequire.Equal(t, \"oldValue\", resp.UpdatedPtrToPtr.Inner.Value)\n\t\trequire.Nil(t, resp.UpdatedPtrToPtr.StupidInner)\n\t})\n}\n\nfunc nest7(in *PtrToPtrInner) *******PtrToPtrInner {\n\tsi2 := &in\n\tsi3 := &si2\n\tsi4 := &si3\n\tsi5 := &si4\n\tsi6 := &si5\n\tsi7 := &si6\n\n\treturn si7\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/ptr_to_slice.go",
    "content": "package singlefile\n\ntype PtrToSliceContainer struct {\n\tPtrToSlice *[]string\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/ptr_to_slice.graphql",
    "content": "type PtrToSliceContainer {\n    ptrToSlice: [String!]\n}\n\nextend type Query {\n    ptrToSliceContainer: PtrToSliceContainer!\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/ptr_to_slice_test.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestPtrToSlice(t *testing.T) {\n\tresolvers := &Stub{}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tresolvers.QueryResolver.PtrToSliceContainer = func(ctx context.Context) (wrappedStruct *PtrToSliceContainer, e error) {\n\t\tptrToSliceContainer := PtrToSliceContainer{\n\t\t\tPtrToSlice: &[]string{\"hello\"},\n\t\t}\n\t\treturn &ptrToSliceContainer, nil\n\t}\n\n\tt.Run(\"pointer to slice\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tPtrToSliceContainer struct {\n\t\t\t\tPtrToSlice []string\n\t\t\t}\n\t\t}\n\n\t\terr := c.Post(`query { ptrToSliceContainer {  ptrToSlice }}`, &resp)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Equal(t, []string{\"hello\"}, resp.PtrToSliceContainer.PtrToSlice)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/recursive.go",
    "content": "package singlefile\n\ntype RecursiveInputSlice struct {\n\tSelf []RecursiveInputSlice\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/resolver.go",
    "content": "package singlefile\n\n// THIS CODE WILL BE UPDATED WITH SCHEMA CHANGES. PREVIOUS IMPLEMENTATION FOR SCHEMA CHANGES WILL BE KEPT IN THE COMMENT SECTION. IMPLEMENTATION FOR UNCHANGED SCHEMA WILL BE KEPT.\n\nimport (\n\t\"context\"\n\n\tintrospection1 \"github.com/99designs/gqlgen/codegen/testserver/singlefile/introspection\"\n\tinvalid_packagename \"github.com/99designs/gqlgen/codegen/testserver/singlefile/invalid-packagename\"\n\t\"github.com/99designs/gqlgen/codegen/testserver/singlefile/otherpkg\"\n)\n\ntype Resolver struct{}\n\n// ID is the resolver for the id field.\nfunc (r *backedByInterfaceResolver) ID(ctx context.Context, obj BackedByInterface) (string, error) {\n\tpanic(\"not implemented\")\n}\n\n// Values is the resolver for the values field.\nfunc (r *deferModelResolver) Values(ctx context.Context, obj *DeferModel) ([]string, error) {\n\tpanic(\"not implemented\")\n}\n\n// A is the resolver for the a field.\nfunc (r *errorsResolver) A(ctx context.Context, obj *Errors) (*Error, error) {\n\tpanic(\"not implemented\")\n}\n\n// B is the resolver for the b field.\nfunc (r *errorsResolver) B(ctx context.Context, obj *Errors) (*Error, error) {\n\tpanic(\"not implemented\")\n}\n\n// C is the resolver for the c field.\nfunc (r *errorsResolver) C(ctx context.Context, obj *Errors) (*Error, error) {\n\tpanic(\"not implemented\")\n}\n\n// D is the resolver for the d field.\nfunc (r *errorsResolver) D(ctx context.Context, obj *Errors) (*Error, error) {\n\tpanic(\"not implemented\")\n}\n\n// E is the resolver for the e field.\nfunc (r *errorsResolver) E(ctx context.Context, obj *Errors) (*Error, error) {\n\tpanic(\"not implemented\")\n}\n\n// Field is the resolver for the field field.\nfunc (r *forcedResolverResolver) Field(ctx context.Context, obj *ForcedResolver) (*Circle, error) {\n\tpanic(\"not implemented\")\n}\n\n// ResolverField is the resolver for the resolverField field.\nfunc (r *modelMethodsResolver) ResolverField(ctx context.Context, obj *ModelMethods) (bool, error) {\n\tpanic(\"not implemented\")\n}\n\n// DefaultInput is the resolver for the defaultInput field.\nfunc (r *mutationResolver) DefaultInput(ctx context.Context, input DefaultInput) (*DefaultParametersMirror, error) {\n\tpanic(\"not implemented\")\n}\n\n// OverrideValueViaInput is the resolver for the overrideValueViaInput field.\nfunc (r *mutationResolver) OverrideValueViaInput(ctx context.Context, input FieldsOrderInput) (*FieldsOrderPayload, error) {\n\tpanic(\"not implemented\")\n}\n\n// UpdateProduct is the resolver for the updateProduct field.\nfunc (r *mutationResolver) UpdateProduct(ctx context.Context, input map[string]interface{}) (string, error) {\n\tpanic(\"not implemented\")\n}\n\n// Issue4053 is the resolver for the issue4053 field.\nfunc (r *mutationResolver) Issue4053(ctx context.Context, input *Issue4053Input1) (bool, error) {\n\tpanic(\"not implemented\")\n}\n\n// UpdateSomething is the resolver for the updateSomething field.\nfunc (r *mutationResolver) UpdateSomething(ctx context.Context, input SpecialInput) (string, error) {\n\tpanic(\"not implemented\")\n}\n\n// UpdatePtrToPtr is the resolver for the updatePtrToPtr field.\nfunc (r *mutationResolver) UpdatePtrToPtr(ctx context.Context, input UpdatePtrToPtrOuter) (*PtrToPtrOuter, error) {\n\tpanic(\"not implemented\")\n}\n\n// OldFoo is the resolver for the oldFoo field.\nfunc (r *overlappingFieldsResolver) OldFoo(ctx context.Context, obj *OverlappingFields) (int, error) {\n\tpanic(\"not implemented\")\n}\n\n// FieldScalarMarshal is the resolver for the fieldScalarMarshal field.\nfunc (r *panicsResolver) FieldScalarMarshal(ctx context.Context, obj *Panics) ([]MarshalPanic, error) {\n\tpanic(\"not implemented\")\n}\n\n// ArgUnmarshal is the resolver for the argUnmarshal field.\nfunc (r *panicsResolver) ArgUnmarshal(ctx context.Context, obj *Panics, u []MarshalPanic) (bool, error) {\n\tpanic(\"not implemented\")\n}\n\n// Friends is the resolver for the friends field.\nfunc (r *petResolver) Friends(ctx context.Context, obj *Pet, limit *int) ([]*Pet, error) {\n\tpanic(\"not implemented\")\n}\n\n// Value is the resolver for the value field.\nfunc (r *primitiveResolver) Value(ctx context.Context, obj *Primitive) (int, error) {\n\tpanic(\"not implemented\")\n}\n\n// Value is the resolver for the value field.\nfunc (r *primitiveStringResolver) Value(ctx context.Context, obj *PrimitiveString) (string, error) {\n\tpanic(\"not implemented\")\n}\n\n// Len is the resolver for the len field.\nfunc (r *primitiveStringResolver) Len(ctx context.Context, obj *PrimitiveString) (int, error) {\n\tpanic(\"not implemented\")\n}\n\n// InvalidIdentifier is the resolver for the invalidIdentifier field.\nfunc (r *queryResolver) InvalidIdentifier(ctx context.Context) (*invalid_packagename.InvalidIdentifier, error) {\n\tpanic(\"not implemented\")\n}\n\n// Collision is the resolver for the collision field.\nfunc (r *queryResolver) Collision(ctx context.Context) (*introspection1.It, error) {\n\tpanic(\"not implemented\")\n}\n\n// MapInput is the resolver for the mapInput field.\nfunc (r *queryResolver) MapInput(ctx context.Context, input map[string]any) (*bool, error) {\n\tpanic(\"not implemented\")\n}\n\n// Recursive is the resolver for the recursive field.\nfunc (r *queryResolver) Recursive(ctx context.Context, input *RecursiveInputSlice) (*bool, error) {\n\tpanic(\"not implemented\")\n}\n\n// NestedInputs is the resolver for the nestedInputs field.\nfunc (r *queryResolver) NestedInputs(ctx context.Context, input [][]*OuterInput) (*bool, error) {\n\tpanic(\"not implemented\")\n}\n\n// NestedOutputs is the resolver for the nestedOutputs field.\nfunc (r *queryResolver) NestedOutputs(ctx context.Context) ([][]*OuterObject, error) {\n\tpanic(\"not implemented\")\n}\n\n// ModelMethods is the resolver for the modelMethods field.\nfunc (r *queryResolver) ModelMethods(ctx context.Context) (*ModelMethods, error) {\n\tpanic(\"not implemented\")\n}\n\n// User is the resolver for the user field.\nfunc (r *queryResolver) User(ctx context.Context, id int) (*User, error) {\n\tpanic(\"not implemented\")\n}\n\n// NullableArg is the resolver for the nullableArg field.\nfunc (r *queryResolver) NullableArg(ctx context.Context, arg *int) (*string, error) {\n\tpanic(\"not implemented\")\n}\n\n// InputSlice is the resolver for the inputSlice field.\nfunc (r *queryResolver) InputSlice(ctx context.Context, arg []string) (bool, error) {\n\tpanic(\"not implemented\")\n}\n\n// InputNullableSlice is the resolver for the inputNullableSlice field.\nfunc (r *queryResolver) InputNullableSlice(ctx context.Context, arg []string) (bool, error) {\n\tpanic(\"not implemented\")\n}\n\n// InputOmittable is the resolver for the inputOmittable field.\nfunc (r *queryResolver) InputOmittable(ctx context.Context, arg OmittableInput) (string, error) {\n\tpanic(\"not implemented\")\n}\n\n// ShapeUnion is the resolver for the shapeUnion field.\nfunc (r *queryResolver) ShapeUnion(ctx context.Context) (ShapeUnion, error) {\n\tpanic(\"not implemented\")\n}\n\n// Autobind is the resolver for the autobind field.\nfunc (r *queryResolver) Autobind(ctx context.Context) (*Autobind, error) {\n\tpanic(\"not implemented\")\n}\n\n// DeprecatedField is the resolver for the deprecatedField field.\nfunc (r *queryResolver) DeprecatedField(ctx context.Context) (string, error) {\n\tpanic(\"not implemented\")\n}\n\n// FieldWithDeprecatedArg is the resolver for the fieldWithDeprecatedArg field.\nfunc (r *queryResolver) FieldWithDeprecatedArg(ctx context.Context, oldArg *int, newArg *int) (*string, error) {\n\tpanic(\"not implemented\")\n}\n\n// Overlapping is the resolver for the overlapping field.\nfunc (r *queryResolver) Overlapping(ctx context.Context) (*OverlappingFields, error) {\n\tpanic(\"not implemented\")\n}\n\n// DefaultParameters is the resolver for the defaultParameters field.\nfunc (r *queryResolver) DefaultParameters(ctx context.Context, falsyBoolean *bool, truthyBoolean *bool) (*DefaultParametersMirror, error) {\n\tpanic(\"not implemented\")\n}\n\n// DeferSingle is the resolver for the deferSingle field.\nfunc (r *queryResolver) DeferSingle(ctx context.Context) (*DeferModel, error) {\n\tpanic(\"not implemented\")\n}\n\n// DeferMultiple is the resolver for the deferMultiple field.\nfunc (r *queryResolver) DeferMultiple(ctx context.Context) ([]*DeferModel, error) {\n\tpanic(\"not implemented\")\n}\n\n// DirectiveArg is the resolver for the directiveArg field.\nfunc (r *queryResolver) DirectiveArg(ctx context.Context, arg string) (*string, error) {\n\tpanic(\"not implemented\")\n}\n\n// DirectiveNullableArg is the resolver for the directiveNullableArg field.\nfunc (r *queryResolver) DirectiveNullableArg(ctx context.Context, arg *int, arg2 *int, arg3 *string) (*string, error) {\n\tpanic(\"not implemented\")\n}\n\n// DirectiveSingleNullableArg is the resolver for the directiveSingleNullableArg field.\nfunc (r *queryResolver) DirectiveSingleNullableArg(ctx context.Context, arg1 *string) (*string, error) {\n\tpanic(\"not implemented\")\n}\n\n// DirectiveInputNullable is the resolver for the directiveInputNullable field.\nfunc (r *queryResolver) DirectiveInputNullable(ctx context.Context, arg *InputDirectives) (*string, error) {\n\tpanic(\"not implemented\")\n}\n\n// DirectiveInput is the resolver for the directiveInput field.\nfunc (r *queryResolver) DirectiveInput(ctx context.Context, arg InputDirectives) (*string, error) {\n\tpanic(\"not implemented\")\n}\n\n// DirectiveInputType is the resolver for the directiveInputType field.\nfunc (r *queryResolver) DirectiveInputType(ctx context.Context, arg InnerInput) (*string, error) {\n\tpanic(\"not implemented\")\n}\n\n// DirectiveInputOuter is the resolver for the directiveInputOuter field.\nfunc (r *queryResolver) DirectiveInputOuter(ctx context.Context, arg OuterWrapperInput) (*string, error) {\n\tpanic(\"not implemented\")\n}\n\n// DirectiveObject is the resolver for the directiveObject field.\nfunc (r *queryResolver) DirectiveObject(ctx context.Context) (*ObjectDirectives, error) {\n\tpanic(\"not implemented\")\n}\n\n// DirectiveObjectWithCustomGoModel is the resolver for the directiveObjectWithCustomGoModel field.\nfunc (r *queryResolver) DirectiveObjectWithCustomGoModel(ctx context.Context) (*ObjectDirectivesWithCustomGoModel, error) {\n\tpanic(\"not implemented\")\n}\n\n// DirectiveFieldDef is the resolver for the directiveFieldDef field.\nfunc (r *queryResolver) DirectiveFieldDef(ctx context.Context, ret string) (string, error) {\n\tpanic(\"not implemented\")\n}\n\n// DirectiveField is the resolver for the directiveField field.\nfunc (r *queryResolver) DirectiveField(ctx context.Context) (*string, error) {\n\tpanic(\"not implemented\")\n}\n\n// DirectiveDouble is the resolver for the directiveDouble field.\nfunc (r *queryResolver) DirectiveDouble(ctx context.Context) (*string, error) {\n\tpanic(\"not implemented\")\n}\n\n// DirectiveUnimplemented is the resolver for the directiveUnimplemented field.\nfunc (r *queryResolver) DirectiveUnimplemented(ctx context.Context) (*string, error) {\n\tpanic(\"not implemented\")\n}\n\n// EmbeddedCase1 is the resolver for the embeddedCase1 field.\nfunc (r *queryResolver) EmbeddedCase1(ctx context.Context) (*EmbeddedCase1, error) {\n\tpanic(\"not implemented\")\n}\n\n// EmbeddedCase2 is the resolver for the embeddedCase2 field.\nfunc (r *queryResolver) EmbeddedCase2(ctx context.Context) (*EmbeddedCase2, error) {\n\tpanic(\"not implemented\")\n}\n\n// EmbeddedCase3 is the resolver for the embeddedCase3 field.\nfunc (r *queryResolver) EmbeddedCase3(ctx context.Context) (*EmbeddedCase3, error) {\n\tpanic(\"not implemented\")\n}\n\n// EnumInInput is the resolver for the enumInInput field.\nfunc (r *queryResolver) EnumInInput(ctx context.Context, input *InputWithEnumValue) (EnumTest, error) {\n\tpanic(\"not implemented\")\n}\n\n// SearchProducts is the resolver for the searchProducts field.\nfunc (r *queryResolver) SearchProducts(ctx context.Context, filters map[string]interface{}) ([]string, error) {\n\tpanic(\"not implemented\")\n}\n\n// SearchRequired is the resolver for the searchRequired field.\nfunc (r *queryResolver) SearchRequired(ctx context.Context, filters map[string]interface{}) ([]string, error) {\n\tpanic(\"not implemented\")\n}\n\n// SearchProductsNormal is the resolver for the searchProductsNormal field.\nfunc (r *queryResolver) SearchProductsNormal(ctx context.Context, filters map[string]any) ([]string, error) {\n\tpanic(\"not implemented\")\n}\n\n// SearchWithDefaults is the resolver for the searchWithDefaults field.\nfunc (r *queryResolver) SearchWithDefaults(ctx context.Context, filters map[string]interface{}) ([]string, error) {\n\tpanic(\"not implemented\")\n}\n\n// SearchMixed is the resolver for the searchMixed field.\nfunc (r *queryResolver) SearchMixed(ctx context.Context, filters map[string]interface{}, limit *int, offset *int, sortBy *string) ([]string, error) {\n\tpanic(\"not implemented\")\n}\n\n// FilterProducts is the resolver for the filterProducts field.\nfunc (r *queryResolver) FilterProducts(ctx context.Context, filters map[string]interface{}) ([]string, error) {\n\tpanic(\"not implemented\")\n}\n\n// FindProducts is the resolver for the findProducts field.\nfunc (r *queryResolver) FindProducts(ctx context.Context, filters map[string]interface{}) ([]string, error) {\n\tpanic(\"not implemented\")\n}\n\n// SearchWithDirectives is the resolver for the searchWithDirectives field.\nfunc (r *queryResolver) SearchWithDirectives(ctx context.Context, input map[string]interface{}) ([]string, error) {\n\tpanic(\"not implemented\")\n}\n\n// Shapes is the resolver for the shapes field.\nfunc (r *queryResolver) Shapes(ctx context.Context) ([]Shape, error) {\n\tpanic(\"not implemented\")\n}\n\n// NoShape is the resolver for the noShape field.\nfunc (r *queryResolver) NoShape(ctx context.Context) (Shape, error) {\n\tpanic(\"not implemented\")\n}\n\n// Node is the resolver for the node field.\nfunc (r *queryResolver) Node(ctx context.Context) (Node, error) {\n\tpanic(\"not implemented\")\n}\n\n// NoShapeTypedNil is the resolver for the noShapeTypedNil field.\nfunc (r *queryResolver) NoShapeTypedNil(ctx context.Context) (Shape, error) {\n\tpanic(\"not implemented\")\n}\n\n// Animal is the resolver for the animal field.\nfunc (r *queryResolver) Animal(ctx context.Context) (Animal, error) {\n\tpanic(\"not implemented\")\n}\n\n// NotAnInterface is the resolver for the notAnInterface field.\nfunc (r *queryResolver) NotAnInterface(ctx context.Context) (BackedByInterface, error) {\n\tpanic(\"not implemented\")\n}\n\n// Dog is the resolver for the dog field.\nfunc (r *queryResolver) Dog(ctx context.Context) (*Dog, error) {\n\tpanic(\"not implemented\")\n}\n\n// Issue896a is the resolver for the issue896a field.\nfunc (r *queryResolver) Issue896a(ctx context.Context) ([]*CheckIssue896, error) {\n\tpanic(\"not implemented\")\n}\n\n// MapStringInterface is the resolver for the mapStringInterface field.\nfunc (r *queryResolver) MapStringInterface(ctx context.Context, in map[string]any) (map[string]any, error) {\n\tpanic(\"not implemented\")\n}\n\n// MapNestedStringInterface is the resolver for the mapNestedStringInterface field.\nfunc (r *queryResolver) MapNestedStringInterface(ctx context.Context, in *NestedMapInput) (map[string]any, error) {\n\tpanic(\"not implemented\")\n}\n\n// MapNestedMapSlice is the resolver for the mapNestedMapSlice field.\nfunc (r *queryResolver) MapNestedMapSlice(ctx context.Context, input map[string]any) (*bool, error) {\n\tpanic(\"not implemented\")\n}\n\n// ErrorBubble is the resolver for the errorBubble field.\nfunc (r *queryResolver) ErrorBubble(ctx context.Context) (*Error, error) {\n\tpanic(\"not implemented\")\n}\n\n// ErrorBubbleList is the resolver for the errorBubbleList field.\nfunc (r *queryResolver) ErrorBubbleList(ctx context.Context) ([]*Error, error) {\n\tpanic(\"not implemented\")\n}\n\n// ErrorList is the resolver for the errorList field.\nfunc (r *queryResolver) ErrorList(ctx context.Context) ([]*Error, error) {\n\tpanic(\"not implemented\")\n}\n\n// Errors is the resolver for the errors field.\nfunc (r *queryResolver) Errors(ctx context.Context) (*Errors, error) {\n\tpanic(\"not implemented\")\n}\n\n// Valid is the resolver for the valid field.\nfunc (r *queryResolver) Valid(ctx context.Context) (string, error) {\n\tpanic(\"not implemented\")\n}\n\n// Invalid is the resolver for the invalid field.\nfunc (r *queryResolver) Invalid(ctx context.Context) (string, error) {\n\tpanic(\"not implemented\")\n}\n\n// Panics is the resolver for the panics field.\nfunc (r *queryResolver) Panics(ctx context.Context) (*Panics, error) {\n\tpanic(\"not implemented\")\n}\n\n// PrimitiveObject is the resolver for the primitiveObject field.\nfunc (r *queryResolver) PrimitiveObject(ctx context.Context) ([]Primitive, error) {\n\tpanic(\"not implemented\")\n}\n\n// PrimitiveStringObject is the resolver for the primitiveStringObject field.\nfunc (r *queryResolver) PrimitiveStringObject(ctx context.Context) ([]PrimitiveString, error) {\n\tpanic(\"not implemented\")\n}\n\n// PtrToAnyContainer is the resolver for the ptrToAnyContainer field.\nfunc (r *queryResolver) PtrToAnyContainer(ctx context.Context) (*PtrToAnyContainer, error) {\n\tpanic(\"not implemented\")\n}\n\n// PtrToSliceContainer is the resolver for the ptrToSliceContainer field.\nfunc (r *queryResolver) PtrToSliceContainer(ctx context.Context) (*PtrToSliceContainer, error) {\n\tpanic(\"not implemented\")\n}\n\n// Infinity is the resolver for the infinity field.\nfunc (r *queryResolver) Infinity(ctx context.Context) (float64, error) {\n\tpanic(\"not implemented\")\n}\n\n// StringFromContextInterface is the resolver for the stringFromContextInterface field.\nfunc (r *queryResolver) StringFromContextInterface(ctx context.Context) (*StringFromContextInterface, error) {\n\tpanic(\"not implemented\")\n}\n\n// StringFromContextFunction is the resolver for the stringFromContextFunction field.\nfunc (r *queryResolver) StringFromContextFunction(ctx context.Context) (string, error) {\n\tpanic(\"not implemented\")\n}\n\n// DefaultScalar is the resolver for the defaultScalar field.\nfunc (r *queryResolver) DefaultScalar(ctx context.Context, arg string) (string, error) {\n\tpanic(\"not implemented\")\n}\n\n// SkipInclude is the resolver for the skipInclude field.\nfunc (r *queryResolver) SkipInclude(ctx context.Context) (*SkipIncludeTestType, error) {\n\tpanic(\"not implemented\")\n}\n\n// Slices is the resolver for the slices field.\nfunc (r *queryResolver) Slices(ctx context.Context) (*Slices, error) {\n\tpanic(\"not implemented\")\n}\n\n// ScalarSlice is the resolver for the scalarSlice field.\nfunc (r *queryResolver) ScalarSlice(ctx context.Context) ([]byte, error) {\n\tpanic(\"not implemented\")\n}\n\n// Fallback is the resolver for the fallback field.\nfunc (r *queryResolver) Fallback(ctx context.Context, arg FallbackToStringEncoding) (FallbackToStringEncoding, error) {\n\tpanic(\"not implemented\")\n}\n\n// OptionalUnion is the resolver for the optionalUnion field.\nfunc (r *queryResolver) OptionalUnion(ctx context.Context) (TestUnion, error) {\n\tpanic(\"not implemented\")\n}\n\n// VOkCaseValue is the resolver for the vOkCaseValue field.\nfunc (r *queryResolver) VOkCaseValue(ctx context.Context) (*VOkCaseValue, error) {\n\tpanic(\"not implemented\")\n}\n\n// VOkCaseNil is the resolver for the vOkCaseNil field.\nfunc (r *queryResolver) VOkCaseNil(ctx context.Context) (*VOkCaseNil, error) {\n\tpanic(\"not implemented\")\n}\n\n// ValidType is the resolver for the validType field.\nfunc (r *queryResolver) ValidType(ctx context.Context) (*ValidType, error) {\n\tpanic(\"not implemented\")\n}\n\n// VariadicModel is the resolver for the variadicModel field.\nfunc (r *queryResolver) VariadicModel(ctx context.Context) (*VariadicModel, error) {\n\tpanic(\"not implemented\")\n}\n\n// WrappedStruct is the resolver for the wrappedStruct field.\nfunc (r *queryResolver) WrappedStruct(ctx context.Context) (*WrappedStruct, error) {\n\tpanic(\"not implemented\")\n}\n\n// WrappedScalar is the resolver for the wrappedScalar field.\nfunc (r *queryResolver) WrappedScalar(ctx context.Context) (otherpkg.Scalar, error) {\n\tpanic(\"not implemented\")\n}\n\n// WrappedMap is the resolver for the wrappedMap field.\nfunc (r *queryResolver) WrappedMap(ctx context.Context) (WrappedMap, error) {\n\tpanic(\"not implemented\")\n}\n\n// WrappedSlice is the resolver for the wrappedSlice field.\nfunc (r *queryResolver) WrappedSlice(ctx context.Context) (WrappedSlice, error) {\n\tpanic(\"not implemented\")\n}\n\n// Updated is the resolver for the updated field.\nfunc (r *subscriptionResolver) Updated(ctx context.Context) (<-chan string, error) {\n\tpanic(\"not implemented\")\n}\n\n// InitPayload is the resolver for the initPayload field.\nfunc (r *subscriptionResolver) InitPayload(ctx context.Context) (<-chan string, error) {\n\tpanic(\"not implemented\")\n}\n\n// DirectiveArg is the resolver for the directiveArg field.\nfunc (r *subscriptionResolver) DirectiveArg(ctx context.Context, arg string) (<-chan *string, error) {\n\tpanic(\"not implemented\")\n}\n\n// DirectiveNullableArg is the resolver for the directiveNullableArg field.\nfunc (r *subscriptionResolver) DirectiveNullableArg(ctx context.Context, arg *int, arg2 *int, arg3 *string) (<-chan *string, error) {\n\tpanic(\"not implemented\")\n}\n\n// DirectiveDouble is the resolver for the directiveDouble field.\nfunc (r *subscriptionResolver) DirectiveDouble(ctx context.Context) (<-chan *string, error) {\n\tpanic(\"not implemented\")\n}\n\n// DirectiveUnimplemented is the resolver for the directiveUnimplemented field.\nfunc (r *subscriptionResolver) DirectiveUnimplemented(ctx context.Context) (<-chan *string, error) {\n\tpanic(\"not implemented\")\n}\n\n// Issue896b is the resolver for the issue896b field.\nfunc (r *subscriptionResolver) Issue896b(ctx context.Context) (<-chan []*CheckIssue896, error) {\n\tpanic(\"not implemented\")\n}\n\n// ErrorRequired is the resolver for the errorRequired field.\nfunc (r *subscriptionResolver) ErrorRequired(ctx context.Context) (<-chan *Error, error) {\n\tpanic(\"not implemented\")\n}\n\n// Friends is the resolver for the friends field.\nfunc (r *userResolver) Friends(ctx context.Context, obj *User) ([]*User, error) {\n\tpanic(\"not implemented\")\n}\n\n// Pets is the resolver for the pets field.\nfunc (r *userResolver) Pets(ctx context.Context, obj *User, limit *int) ([]*Pet, error) {\n\tpanic(\"not implemented\")\n}\n\n// Get is the resolver for the get field.\nfunc (r *wrappedMapResolver) Get(ctx context.Context, obj WrappedMap, key string) (string, error) {\n\tpanic(\"not implemented\")\n}\n\n// Get is the resolver for the get field.\nfunc (r *wrappedSliceResolver) Get(ctx context.Context, obj WrappedSlice, idx int) (string, error) {\n\tpanic(\"not implemented\")\n}\n\n// BackedByInterface returns BackedByInterfaceResolver implementation.\nfunc (r *Resolver) BackedByInterface() BackedByInterfaceResolver {\n\treturn &backedByInterfaceResolver{r}\n}\n\n// DeferModel returns DeferModelResolver implementation.\nfunc (r *Resolver) DeferModel() DeferModelResolver { return &deferModelResolver{r} }\n\n// Errors returns ErrorsResolver implementation.\nfunc (r *Resolver) Errors() ErrorsResolver { return &errorsResolver{r} }\n\n// ForcedResolver returns ForcedResolverResolver implementation.\nfunc (r *Resolver) ForcedResolver() ForcedResolverResolver { return &forcedResolverResolver{r} }\n\n// ModelMethods returns ModelMethodsResolver implementation.\nfunc (r *Resolver) ModelMethods() ModelMethodsResolver { return &modelMethodsResolver{r} }\n\n// Mutation returns MutationResolver implementation.\nfunc (r *Resolver) Mutation() MutationResolver { return &mutationResolver{r} }\n\n// OverlappingFields returns OverlappingFieldsResolver implementation.\nfunc (r *Resolver) OverlappingFields() OverlappingFieldsResolver {\n\treturn &overlappingFieldsResolver{r}\n}\n\n// Panics returns PanicsResolver implementation.\nfunc (r *Resolver) Panics() PanicsResolver { return &panicsResolver{r} }\n\n// Pet returns PetResolver implementation.\nfunc (r *Resolver) Pet() PetResolver { return &petResolver{r} }\n\n// Primitive returns PrimitiveResolver implementation.\nfunc (r *Resolver) Primitive() PrimitiveResolver { return &primitiveResolver{r} }\n\n// PrimitiveString returns PrimitiveStringResolver implementation.\nfunc (r *Resolver) PrimitiveString() PrimitiveStringResolver { return &primitiveStringResolver{r} }\n\n// Query returns QueryResolver implementation.\nfunc (r *Resolver) Query() QueryResolver { return &queryResolver{r} }\n\n// Subscription returns SubscriptionResolver implementation.\nfunc (r *Resolver) Subscription() SubscriptionResolver { return &subscriptionResolver{r} }\n\n// User returns UserResolver implementation.\nfunc (r *Resolver) User() UserResolver { return &userResolver{r} }\n\n// WrappedMap returns WrappedMapResolver implementation.\nfunc (r *Resolver) WrappedMap() WrappedMapResolver { return &wrappedMapResolver{r} }\n\n// WrappedSlice returns WrappedSliceResolver implementation.\nfunc (r *Resolver) WrappedSlice() WrappedSliceResolver { return &wrappedSliceResolver{r} }\n\ntype backedByInterfaceResolver struct{ *Resolver }\ntype deferModelResolver struct{ *Resolver }\ntype errorsResolver struct{ *Resolver }\ntype forcedResolverResolver struct{ *Resolver }\ntype modelMethodsResolver struct{ *Resolver }\ntype mutationResolver struct{ *Resolver }\ntype overlappingFieldsResolver struct{ *Resolver }\ntype panicsResolver struct{ *Resolver }\ntype petResolver struct{ *Resolver }\ntype primitiveResolver struct{ *Resolver }\ntype primitiveStringResolver struct{ *Resolver }\ntype queryResolver struct{ *Resolver }\ntype subscriptionResolver struct{ *Resolver }\ntype userResolver struct{ *Resolver }\ntype wrappedMapResolver struct{ *Resolver }\ntype wrappedSliceResolver struct{ *Resolver }\n"
  },
  {
    "path": "codegen/testserver/singlefile/response_extension_test.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestResponseExtension(t *testing.T) {\n\tresolvers := &Stub{}\n\tresolvers.QueryResolver.Valid = func(ctx context.Context) (s string, e error) {\n\t\treturn \"Ok\", nil\n\t}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tsrv.AroundResponses(func(ctx context.Context, next graphql.ResponseHandler) *graphql.Response {\n\t\tgraphql.RegisterExtension(ctx, \"example\", \"value\")\n\n\t\treturn next(ctx)\n\t})\n\n\tc := client.New(srv)\n\n\traw, _ := c.RawPost(`query { valid }`)\n\trequire.Equal(t, \"value\", raw.Extensions[\"example\"])\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/scalar_context.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"io\"\n\t\"strconv\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\ntype StringFromContextInterface struct {\n\tOperationName string\n}\n\nvar (\n\t_ graphql.ContextMarshaler   = StringFromContextInterface{}\n\t_ graphql.ContextUnmarshaler = (*StringFromContextInterface)(nil)\n)\n\nfunc (StringFromContextInterface) MarshalGQLContext(ctx context.Context, w io.Writer) error {\n\tio.WriteString(w, strconv.Quote(graphql.GetFieldContext(ctx).Field.Name))\n\treturn nil\n}\n\nfunc (i *StringFromContextInterface) UnmarshalGQLContext(ctx context.Context, v any) error {\n\ti.OperationName = graphql.GetFieldContext(ctx).Field.Name\n\treturn nil\n}\n\nfunc MarshalStringFromContextFunction(v string) graphql.ContextMarshaler {\n\treturn graphql.ContextWriterFunc(func(ctx context.Context, w io.Writer) error {\n\t\tio.WriteString(w, strconv.Quote(graphql.GetFieldContext(ctx).Field.Name))\n\t\treturn nil\n\t})\n}\n\nfunc UnmarshalStringFromContextFunction(ctx context.Context, v any) (string, error) {\n\treturn graphql.GetFieldContext(ctx).Field.Name, nil\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/scalar_context.graphql",
    "content": "extend type Query {\n    infinity: Float!\n    stringFromContextInterface: StringFromContextInterface!\n    stringFromContextFunction: StringFromContextFunction!\n}\n\nscalar StringFromContextInterface\nscalar StringFromContextFunction\n"
  },
  {
    "path": "codegen/testserver/singlefile/scalar_context_test.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"math\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestFloatInfAndNaN(t *testing.T) {\n\tresolvers := &Stub{}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tresolvers.QueryResolver.Infinity = func(ctx context.Context) (float64, error) {\n\t\treturn math.Inf(-1), nil\n\t}\n\n\tt.Run(\"errors on marshaller with context\", func(t *testing.T) {\n\t\terr := c.Post(`query { infinity }`, nil)\n\t\trequire.Error(t, err)\n\t})\n}\n\nfunc TestContextPassedToMarshal(t *testing.T) {\n\tresolvers := &Stub{}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tresolvers.QueryResolver.StringFromContextInterface = func(ctx context.Context) (*StringFromContextInterface, error) {\n\t\treturn &StringFromContextInterface{}, nil\n\t}\n\tresolvers.QueryResolver.StringFromContextFunction = func(ctx context.Context) (string, error) {\n\t\treturn \"\", nil\n\t}\n\n\tvar res struct {\n\t\tStringFromContextInterface string\n\t\tStringFromContextFunction  string\n\t}\n\terr := c.Post(`query my_name {\n\t\tstringFromContextInterface\n\t\tstringFromContextFunction\n\t}`, &res)\n\trequire.NoError(t, err)\n\trequire.Equal(t, \"stringFromContextInterface\", res.StringFromContextInterface)\n\trequire.Equal(t, \"stringFromContextFunction\", res.StringFromContextFunction)\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/scalar_default.graphql",
    "content": "extend type Query {\n    defaultScalar(arg: DefaultScalarImplementation! = \"default\"): DefaultScalarImplementation!\n}\n\n\"\"\" This doesnt have an implementation in the typemap, so it should act like a string \"\"\"\nscalar DefaultScalarImplementation\n\ntype EmbeddedDefaultScalar {\n    value: DefaultScalarImplementation\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/scalar_default_test.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestDefaultScalarImplementation(t *testing.T) {\n\tresolvers := &Stub{}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tresolvers.QueryResolver.DefaultScalar = func(ctx context.Context, arg string) (i string, e error) {\n\t\treturn arg, nil\n\t}\n\n\tt.Run(\"with arg value\", func(t *testing.T) {\n\t\tvar resp struct{ DefaultScalar string }\n\t\tc.MustPost(`query { defaultScalar(arg: \"fff\") }`, &resp)\n\t\trequire.Equal(t, \"fff\", resp.DefaultScalar)\n\t})\n\n\tt.Run(\"with default value\", func(t *testing.T) {\n\t\tvar resp struct{ DefaultScalar string }\n\t\tc.MustPost(`query { defaultScalar  }`, &resp)\n\t\trequire.Equal(t, \"default\", resp.DefaultScalar)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/schema.graphql",
    "content": "directive @goModel(\n    model: String\n    models: [String!]\n) on OBJECT | INPUT_OBJECT | SCALAR | ENUM | INTERFACE | UNION\ndirective @goField(\n    forceResolver: Boolean\n    name: String\n    omittable: Boolean\n    type: String\n) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION\ndirective @defer(\n    if: Boolean = true\n    label: String\n) on FRAGMENT_SPREAD | INLINE_FRAGMENT\n\ntype Query {\n    invalidIdentifier: InvalidIdentifier\n    collision: It\n    mapInput(input: Changes): Boolean\n    recursive(input: RecursiveInputSlice): Boolean\n    nestedInputs(input: [[OuterInput]] = [[{ inner: { id: 1 } }]]): Boolean\n    nestedOutputs: [[OuterObject]]\n    modelMethods: ModelMethods\n    user(id: Int!): User!\n    nullableArg(arg: Int = 123): String\n    inputSlice(arg: [String!]!): Boolean!\n    inputNullableSlice(arg: [String!]): Boolean!\n    inputOmittable(arg: OmittableInput!): String!\n    shapeUnion: ShapeUnion!\n    autobind: Autobind\n    deprecatedField: String! @deprecated(reason: \"test deprecated directive\")\n    fieldWithDeprecatedArg(oldArg: Int @deprecated(reason: \"old arg\"), newArg: Int): String\n}\n\ntype Subscription {\n    updated: String!\n    initPayload: String!\n}\n\ntype Pet {\n    id: Int!\n    friends(limit: Int): [Pet!] @goField(forceResolver: true)\n}\n\ntype User {\n    id: Int!\n    friends: [User!]! @goField(forceResolver: true)\n    created: Time!\n    updated: Time\n    pets(limit: Int): [Pet!] @goField(forceResolver: true)\n}\n\ntype Autobind {\n    int: Int!\n    int32: Int!\n    int64: Int!\n\n    idStr: ID!\n    idInt: ID!\n}\n\ntype ModelMethods {\n    resolverField: Boolean!\n    noContext: Boolean!\n    withContext: Boolean!\n}\n\ntype InvalidIdentifier {\n    id: Int!\n}\n\ntype It {\n    id: ID!\n}\n\ninput Changes @goModel(model: \"map[string]interface{}\") {\n    a: Int\n    b: Int\n}\n\ninput RecursiveInputSlice {\n    self: [RecursiveInputSlice!]\n}\n\ninput InnerInput {\n    id: Int!\n}\n\ninput OuterInput {\n    inner: InnerInput!\n}\n\ninput OmittableInput {\n    id: ID @goField(omittable: true)\n    bool: Boolean @goField(omittable: true)\n    str: String @goField(omittable: true)\n    int: Int @goField(omittable: true)\n    time: Time @goField(omittable: true)\n    enum: Status @goField(omittable: true)\n    scalar: ThirdParty @goField(omittable: true)\n    object: OuterInput @goField(omittable: true)\n}\n\nscalar ThirdParty @goModel(model: \"singlefile.ThirdParty\")\n\ntype OuterObject {\n    inner: InnerObject!\n}\n\ntype InnerObject {\n    id: Int!\n}\n\ntype ForcedResolver {\n    field: Circle @goField(forceResolver: true)\n}\n\ntype EmbeddedPointer @goModel(model: \"singlefile.EmbeddedPointerModel\") {\n    ID: String\n    Title: String\n}\n\nscalar UUID\n\nenum Status {\n    OK\n    ERROR\n}\n\nscalar Time\n"
  },
  {
    "path": "codegen/testserver/singlefile/skip-include.graphql",
    "content": "extend type Query {\n    skipInclude: SkipIncludeTestType\n}\n\ntype SkipIncludeTestType {\n    a: String\n    b: String\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/skip_include_test.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestSkipInclude(t *testing.T) {\n\tresolvers := &Stub{}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\ta := func() *string { a := \"a\"; return &a }()\n\tb := func() *string { b := \"b\"; return &b }()\n\tresolvers.QueryResolver.SkipInclude = func(ctx context.Context) (*SkipIncludeTestType, error) {\n\t\treturn &SkipIncludeTestType{A: a, B: b}, nil\n\t}\n\n\t// Taken verbatim from the test cases found at the reference graphql-js implementation at:\n\t// https://github.com/graphql/graphql-js/blob/2120ff3f08a0e379e41a33f3c1a8c6127e0e574c/src/execution/__tests__/directives-test.ts\n\t// last updated on 2022-03-28 as of 2025-05-19.\n\n\tt.Run(\"works without directives\", func(t *testing.T) {\n\t\tvar r struct{ SkipInclude *SkipIncludeTestType }\n\t\tc.MustPost(`query { skipInclude { a, b } }`, &r)\n\t\tassert.Equal(t, &SkipIncludeTestType{a, b}, r.SkipInclude)\n\t})\n\tt.Run(\"works on scalars\", func(t *testing.T) {\n\t\tt.Run(\"if true includes scalar\", func(t *testing.T) {\n\t\t\tvar r struct{ SkipInclude *SkipIncludeTestType }\n\t\t\tc.MustPost(`{ skipInclude { a, b @include(if: true) } }`, &r)\n\t\t\tassert.Equal(t, &SkipIncludeTestType{a, b}, r.SkipInclude)\n\t\t})\n\t\tt.Run(\"if false omits on scalar\", func(t *testing.T) {\n\t\t\tvar r struct{ SkipInclude *SkipIncludeTestType }\n\t\t\tc.MustPost(`{ skipInclude{ a, b @include(if: false) } }`, &r)\n\t\t\tassert.Equal(t, &SkipIncludeTestType{A: a}, r.SkipInclude)\n\t\t})\n\t\tt.Run(\"unless false includes scalar\", func(t *testing.T) {\n\t\t\tvar r struct{ SkipInclude *SkipIncludeTestType }\n\t\t\tc.MustPost(`{ skipInclude{ a, b @skip(if: false) } }`, &r)\n\t\t\tassert.Equal(t, &SkipIncludeTestType{a, b}, r.SkipInclude)\n\t\t})\n\t\tt.Run(\"unless true omits scalar\", func(t *testing.T) {\n\t\t\tvar r struct{ SkipInclude *SkipIncludeTestType }\n\t\t\tc.MustPost(`{ skipInclude{ a, b @skip(if: true) } }`, &r)\n\t\t\tassert.Equal(t, &SkipIncludeTestType{A: a}, r.SkipInclude)\n\t\t})\n\t})\n\tt.Run(\"works on fragment spreads\", func(t *testing.T) {\n\t\tt.Run(\"if false omits fragment spread\", func(t *testing.T) {\n\t\t\tvar r struct{ SkipInclude *SkipIncludeTestType }\n\t\t\tc.MustPost(\n\t\t\t\t`query { skipInclude { a ...Frag @include(if: false) } } fragment Frag on SkipIncludeTestType { b }`,\n\t\t\t\t&r,\n\t\t\t)\n\t\t\tassert.Equal(t, &SkipIncludeTestType{A: a}, r.SkipInclude)\n\t\t})\n\n\t\tt.Run(\"if true includes fragment spread\", func(t *testing.T) {\n\t\t\tvar r struct{ SkipInclude *SkipIncludeTestType }\n\t\t\tc.MustPost(\n\t\t\t\t`query { skipInclude { a ...Frag @include(if: true) } } fragment Frag on SkipIncludeTestType { b }`,\n\t\t\t\t&r,\n\t\t\t)\n\t\t\tassert.Equal(t, &SkipIncludeTestType{a, b}, r.SkipInclude)\n\t\t})\n\n\t\tt.Run(\"unless false includes fragment spread\", func(t *testing.T) {\n\t\t\tvar r struct{ SkipInclude *SkipIncludeTestType }\n\t\t\tc.MustPost(\n\t\t\t\t`query { skipInclude { a ...Frag @skip(if: false) } } fragment Frag on SkipIncludeTestType { b }`,\n\t\t\t\t&r,\n\t\t\t)\n\t\t\tassert.Equal(t, &SkipIncludeTestType{a, b}, r.SkipInclude)\n\t\t})\n\n\t\tt.Run(\"unless true omits fragment spread\", func(t *testing.T) {\n\t\t\tvar r struct{ SkipInclude *SkipIncludeTestType }\n\t\t\tc.MustPost(\n\t\t\t\t`query { skipInclude { a ...Frag @skip(if: true) } } fragment Frag on SkipIncludeTestType { b }`,\n\t\t\t\t&r,\n\t\t\t)\n\t\t\tassert.Equal(t, &SkipIncludeTestType{A: a}, r.SkipInclude)\n\t\t})\n\t})\n\tt.Run(\"works on inline fragment\", func(t *testing.T) {\n\t\tt.Run(\"if false omits inline fragment\", func(t *testing.T) {\n\t\t\tvar r struct{ SkipInclude *SkipIncludeTestType }\n\t\t\tc.MustPost(\n\t\t\t\t`query { skipInclude { a ... on SkipIncludeTestType @include(if: false) { b } } }`,\n\t\t\t\t&r,\n\t\t\t)\n\t\t\tassert.Equal(t, &SkipIncludeTestType{A: a}, r.SkipInclude)\n\t\t})\n\n\t\tt.Run(\"if true includes inline fragment\", func(t *testing.T) {\n\t\t\tvar r struct{ SkipInclude *SkipIncludeTestType }\n\t\t\tc.MustPost(\n\t\t\t\t`query { skipInclude { a ... on SkipIncludeTestType @include(if: true) { b } } }`,\n\t\t\t\t&r,\n\t\t\t)\n\t\t\tassert.Equal(t, &SkipIncludeTestType{a, b}, r.SkipInclude)\n\t\t})\n\n\t\tt.Run(\"unless false includes inline fragment\", func(t *testing.T) {\n\t\t\tvar r struct{ SkipInclude *SkipIncludeTestType }\n\t\t\tc.MustPost(\n\t\t\t\t`query { skipInclude { a ... on SkipIncludeTestType @skip(if: false) { b } } }`,\n\t\t\t\t&r,\n\t\t\t)\n\t\t\tassert.Equal(t, &SkipIncludeTestType{a, b}, r.SkipInclude)\n\t\t})\n\n\t\tt.Run(\"unless true includes inline fragment\", func(t *testing.T) {\n\t\t\tvar r struct{ SkipInclude *SkipIncludeTestType }\n\t\t\tc.MustPost(\n\t\t\t\t`query { skipInclude { a ... on SkipIncludeTestType @skip(if: true) { b } } }`,\n\t\t\t\t&r,\n\t\t\t)\n\t\t\tassert.Equal(t, &SkipIncludeTestType{A: a}, r.SkipInclude)\n\t\t})\n\t})\n\tt.Run(\"works on anonymous inline fragment\", func(t *testing.T) {\n\t\tt.Run(\"if false omits anonymous inline fragment\", func(t *testing.T) {\n\t\t\tvar r struct{ SkipInclude *SkipIncludeTestType }\n\t\t\tc.MustPost(`query { skipInclude { a ... @include(if: false) { b } } }`, &r)\n\t\t\tassert.Equal(t, &SkipIncludeTestType{A: a}, r.SkipInclude)\n\t\t})\n\n\t\tt.Run(\"if true includes anonymous inline fragment\", func(t *testing.T) {\n\t\t\tvar r struct{ SkipInclude *SkipIncludeTestType }\n\t\t\tc.MustPost(`query { skipInclude { a ... @include(if: true) { b } } }`, &r)\n\t\t\tassert.Equal(t, &SkipIncludeTestType{a, b}, r.SkipInclude)\n\t\t})\n\n\t\tt.Run(\"unless false includes anonymous inline fragment\", func(t *testing.T) {\n\t\t\tvar r struct{ SkipInclude *SkipIncludeTestType }\n\t\t\tc.MustPost(`query Q { skipInclude { a ... @skip(if: false) { b } } }`, &r)\n\t\t\tassert.Equal(t, &SkipIncludeTestType{a, b}, r.SkipInclude)\n\t\t})\n\n\t\tt.Run(\"unless true includes anonymous inline fragment\", func(t *testing.T) {\n\t\t\tvar r struct{ SkipInclude *SkipIncludeTestType }\n\t\t\tc.MustPost(`query { skipInclude { a ... @skip(if: true) { b } } }`, &r)\n\t\t\tassert.Equal(t, &SkipIncludeTestType{A: a}, r.SkipInclude)\n\t\t})\n\t})\n\tt.Run(\"works with skip and include directives\", func(t *testing.T) {\n\t\tt.Run(\"include and no skip\", func(t *testing.T) {\n\t\t\tvar r struct{ SkipInclude *SkipIncludeTestType }\n\t\t\tc.MustPost(`{ skipInclude{ a b @include(if: true) @skip(if: false) } }`, &r)\n\t\t\tassert.Equal(t, &SkipIncludeTestType{a, b}, r.SkipInclude)\n\t\t})\n\n\t\tt.Run(\"include and skip\", func(t *testing.T) {\n\t\t\tvar r struct{ SkipInclude *SkipIncludeTestType }\n\t\t\tc.MustPost(`{ skipInclude{ a b @include(if: true) @skip(if: true) } }`, &r)\n\t\t\tassert.Equal(t, &SkipIncludeTestType{A: a}, r.SkipInclude)\n\t\t})\n\n\t\tt.Run(\"no include or skip\", func(t *testing.T) {\n\t\t\tvar r struct{ SkipInclude *SkipIncludeTestType }\n\t\t\tc.MustPost(`{ skipInclude{ a b @include(if: false) @skip(if: false) } }`, &r)\n\t\t\tassert.Equal(t, &SkipIncludeTestType{A: a}, r.SkipInclude)\n\t\t})\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/slices.graphql",
    "content": "extend type Query {\n    slices: Slices\n    scalarSlice: Bytes!\n}\n\ntype Slices {\n    test1: [String]\n    test2: [String!]\n    test3: [String]!\n    test4: [String!]!\n}\n\nscalar Bytes\n"
  },
  {
    "path": "codegen/testserver/singlefile/slices_test.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestSlices(t *testing.T) {\n\tresolvers := &Stub{}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"nulls vs empty slices\", func(t *testing.T) {\n\t\tresolvers.QueryResolver.Slices = func(ctx context.Context) (slices *Slices, e error) {\n\t\t\treturn &Slices{}, nil\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tSlices Slices\n\t\t}\n\t\tc.MustPost(`query { slices { test1, test2, test3, test4 }}`, &resp)\n\t\trequire.Nil(t, resp.Slices.Test1)\n\t\trequire.Nil(t, resp.Slices.Test2)\n\t\trequire.NotNil(t, resp.Slices.Test3)\n\t\trequire.NotNil(t, resp.Slices.Test4)\n\t})\n\n\tt.Run(\"custom scalars to slices work\", func(t *testing.T) {\n\t\tresolvers.QueryResolver.ScalarSlice = func(ctx context.Context) ([]byte, error) {\n\t\t\treturn []byte(\"testing\"), nil\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tScalarSlice string\n\t\t}\n\t\tc.MustPost(`query { scalarSlice }`, &resp)\n\t\trequire.Equal(t, \"testing\", resp.ScalarSlice)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/stub.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage singlefile\n\nimport (\n\t\"context\"\n\n\tintrospection1 \"github.com/99designs/gqlgen/codegen/testserver/singlefile/introspection\"\n\tinvalid_packagename \"github.com/99designs/gqlgen/codegen/testserver/singlefile/invalid-packagename\"\n\t\"github.com/99designs/gqlgen/codegen/testserver/singlefile/otherpkg\"\n)\n\ntype Stub struct {\n\tBackedByInterfaceResolver struct {\n\t\tID func(ctx context.Context, obj BackedByInterface) (string, error)\n\t}\n\tDeferModelResolver struct {\n\t\tValues func(ctx context.Context, obj *DeferModel) ([]string, error)\n\t}\n\tErrorsResolver struct {\n\t\tA func(ctx context.Context, obj *Errors) (*Error, error)\n\t\tB func(ctx context.Context, obj *Errors) (*Error, error)\n\t\tC func(ctx context.Context, obj *Errors) (*Error, error)\n\t\tD func(ctx context.Context, obj *Errors) (*Error, error)\n\t\tE func(ctx context.Context, obj *Errors) (*Error, error)\n\t}\n\tForcedResolverResolver struct {\n\t\tField func(ctx context.Context, obj *ForcedResolver) (*Circle, error)\n\t}\n\tModelMethodsResolver struct {\n\t\tResolverField func(ctx context.Context, obj *ModelMethods) (bool, error)\n\t}\n\tMutationResolver struct {\n\t\tDefaultInput          func(ctx context.Context, input DefaultInput) (*DefaultParametersMirror, error)\n\t\tOverrideValueViaInput func(ctx context.Context, input FieldsOrderInput) (*FieldsOrderPayload, error)\n\t\tUpdateProduct         func(ctx context.Context, input map[string]interface{}) (string, error)\n\t\tIssue4053             func(ctx context.Context, input *Issue4053Input1) (bool, error)\n\t\tUpdateSomething       func(ctx context.Context, input SpecialInput) (string, error)\n\t\tUpdatePtrToPtr        func(ctx context.Context, input UpdatePtrToPtrOuter) (*PtrToPtrOuter, error)\n\t}\n\tOverlappingFieldsResolver struct {\n\t\tOldFoo func(ctx context.Context, obj *OverlappingFields) (int, error)\n\t}\n\tPanicsResolver struct {\n\t\tFieldScalarMarshal func(ctx context.Context, obj *Panics) ([]MarshalPanic, error)\n\t\tArgUnmarshal       func(ctx context.Context, obj *Panics, u []MarshalPanic) (bool, error)\n\t}\n\tPetResolver struct {\n\t\tFriends func(ctx context.Context, obj *Pet, limit *int) ([]*Pet, error)\n\t}\n\tPrimitiveResolver struct {\n\t\tValue func(ctx context.Context, obj *Primitive) (int, error)\n\t}\n\tPrimitiveStringResolver struct {\n\t\tValue func(ctx context.Context, obj *PrimitiveString) (string, error)\n\t\tLen   func(ctx context.Context, obj *PrimitiveString) (int, error)\n\t}\n\tQueryResolver struct {\n\t\tInvalidIdentifier                func(ctx context.Context) (*invalid_packagename.InvalidIdentifier, error)\n\t\tCollision                        func(ctx context.Context) (*introspection1.It, error)\n\t\tMapInput                         func(ctx context.Context, input map[string]any) (*bool, error)\n\t\tRecursive                        func(ctx context.Context, input *RecursiveInputSlice) (*bool, error)\n\t\tNestedInputs                     func(ctx context.Context, input [][]*OuterInput) (*bool, error)\n\t\tNestedOutputs                    func(ctx context.Context) ([][]*OuterObject, error)\n\t\tModelMethods                     func(ctx context.Context) (*ModelMethods, error)\n\t\tUser                             func(ctx context.Context, id int) (*User, error)\n\t\tNullableArg                      func(ctx context.Context, arg *int) (*string, error)\n\t\tInputSlice                       func(ctx context.Context, arg []string) (bool, error)\n\t\tInputNullableSlice               func(ctx context.Context, arg []string) (bool, error)\n\t\tInputOmittable                   func(ctx context.Context, arg OmittableInput) (string, error)\n\t\tShapeUnion                       func(ctx context.Context) (ShapeUnion, error)\n\t\tAutobind                         func(ctx context.Context) (*Autobind, error)\n\t\tDeprecatedField                  func(ctx context.Context) (string, error)\n\t\tFieldWithDeprecatedArg           func(ctx context.Context, oldArg *int, newArg *int) (*string, error)\n\t\tOverlapping                      func(ctx context.Context) (*OverlappingFields, error)\n\t\tDefaultParameters                func(ctx context.Context, falsyBoolean *bool, truthyBoolean *bool) (*DefaultParametersMirror, error)\n\t\tDeferSingle                      func(ctx context.Context) (*DeferModel, error)\n\t\tDeferMultiple                    func(ctx context.Context) ([]*DeferModel, error)\n\t\tDirectiveArg                     func(ctx context.Context, arg string) (*string, error)\n\t\tDirectiveNullableArg             func(ctx context.Context, arg *int, arg2 *int, arg3 *string) (*string, error)\n\t\tDirectiveSingleNullableArg       func(ctx context.Context, arg1 *string) (*string, error)\n\t\tDirectiveInputNullable           func(ctx context.Context, arg *InputDirectives) (*string, error)\n\t\tDirectiveInput                   func(ctx context.Context, arg InputDirectives) (*string, error)\n\t\tDirectiveInputType               func(ctx context.Context, arg InnerInput) (*string, error)\n\t\tDirectiveInputOuter              func(ctx context.Context, arg OuterWrapperInput) (*string, error)\n\t\tDirectiveObject                  func(ctx context.Context) (*ObjectDirectives, error)\n\t\tDirectiveObjectWithCustomGoModel func(ctx context.Context) (*ObjectDirectivesWithCustomGoModel, error)\n\t\tDirectiveFieldDef                func(ctx context.Context, ret string) (string, error)\n\t\tDirectiveField                   func(ctx context.Context) (*string, error)\n\t\tDirectiveDouble                  func(ctx context.Context) (*string, error)\n\t\tDirectiveUnimplemented           func(ctx context.Context) (*string, error)\n\t\tEmbeddedCase1                    func(ctx context.Context) (*EmbeddedCase1, error)\n\t\tEmbeddedCase2                    func(ctx context.Context) (*EmbeddedCase2, error)\n\t\tEmbeddedCase3                    func(ctx context.Context) (*EmbeddedCase3, error)\n\t\tEnumInInput                      func(ctx context.Context, input *InputWithEnumValue) (EnumTest, error)\n\t\tSearchProducts                   func(ctx context.Context, filters map[string]interface{}) ([]string, error)\n\t\tSearchRequired                   func(ctx context.Context, filters map[string]interface{}) ([]string, error)\n\t\tSearchProductsNormal             func(ctx context.Context, filters map[string]any) ([]string, error)\n\t\tSearchWithDefaults               func(ctx context.Context, filters map[string]interface{}) ([]string, error)\n\t\tSearchMixed                      func(ctx context.Context, filters map[string]interface{}, limit *int, offset *int, sortBy *string) ([]string, error)\n\t\tFilterProducts                   func(ctx context.Context, filters map[string]interface{}) ([]string, error)\n\t\tFindProducts                     func(ctx context.Context, filters map[string]interface{}) ([]string, error)\n\t\tSearchWithDirectives             func(ctx context.Context, input map[string]interface{}) ([]string, error)\n\t\tShapes                           func(ctx context.Context) ([]Shape, error)\n\t\tNoShape                          func(ctx context.Context) (Shape, error)\n\t\tNode                             func(ctx context.Context) (Node, error)\n\t\tNoShapeTypedNil                  func(ctx context.Context) (Shape, error)\n\t\tAnimal                           func(ctx context.Context) (Animal, error)\n\t\tNotAnInterface                   func(ctx context.Context) (BackedByInterface, error)\n\t\tDog                              func(ctx context.Context) (*Dog, error)\n\t\tIssue896a                        func(ctx context.Context) ([]*CheckIssue896, error)\n\t\tMapStringInterface               func(ctx context.Context, in map[string]any) (map[string]any, error)\n\t\tMapNestedStringInterface         func(ctx context.Context, in *NestedMapInput) (map[string]any, error)\n\t\tMapNestedMapSlice                func(ctx context.Context, input map[string]any) (*bool, error)\n\t\tErrorBubble                      func(ctx context.Context) (*Error, error)\n\t\tErrorBubbleList                  func(ctx context.Context) ([]*Error, error)\n\t\tErrorList                        func(ctx context.Context) ([]*Error, error)\n\t\tErrors                           func(ctx context.Context) (*Errors, error)\n\t\tValid                            func(ctx context.Context) (string, error)\n\t\tInvalid                          func(ctx context.Context) (string, error)\n\t\tPanics                           func(ctx context.Context) (*Panics, error)\n\t\tPrimitiveObject                  func(ctx context.Context) ([]Primitive, error)\n\t\tPrimitiveStringObject            func(ctx context.Context) ([]PrimitiveString, error)\n\t\tPtrToAnyContainer                func(ctx context.Context) (*PtrToAnyContainer, error)\n\t\tPtrToSliceContainer              func(ctx context.Context) (*PtrToSliceContainer, error)\n\t\tInfinity                         func(ctx context.Context) (float64, error)\n\t\tStringFromContextInterface       func(ctx context.Context) (*StringFromContextInterface, error)\n\t\tStringFromContextFunction        func(ctx context.Context) (string, error)\n\t\tDefaultScalar                    func(ctx context.Context, arg string) (string, error)\n\t\tSkipInclude                      func(ctx context.Context) (*SkipIncludeTestType, error)\n\t\tSlices                           func(ctx context.Context) (*Slices, error)\n\t\tScalarSlice                      func(ctx context.Context) ([]byte, error)\n\t\tFallback                         func(ctx context.Context, arg FallbackToStringEncoding) (FallbackToStringEncoding, error)\n\t\tOptionalUnion                    func(ctx context.Context) (TestUnion, error)\n\t\tVOkCaseValue                     func(ctx context.Context) (*VOkCaseValue, error)\n\t\tVOkCaseNil                       func(ctx context.Context) (*VOkCaseNil, error)\n\t\tValidType                        func(ctx context.Context) (*ValidType, error)\n\t\tVariadicModel                    func(ctx context.Context) (*VariadicModel, error)\n\t\tWrappedStruct                    func(ctx context.Context) (*WrappedStruct, error)\n\t\tWrappedScalar                    func(ctx context.Context) (otherpkg.Scalar, error)\n\t\tWrappedMap                       func(ctx context.Context) (WrappedMap, error)\n\t\tWrappedSlice                     func(ctx context.Context) (WrappedSlice, error)\n\t}\n\tSubscriptionResolver struct {\n\t\tUpdated                func(ctx context.Context) (<-chan string, error)\n\t\tInitPayload            func(ctx context.Context) (<-chan string, error)\n\t\tDirectiveArg           func(ctx context.Context, arg string) (<-chan *string, error)\n\t\tDirectiveNullableArg   func(ctx context.Context, arg *int, arg2 *int, arg3 *string) (<-chan *string, error)\n\t\tDirectiveDouble        func(ctx context.Context) (<-chan *string, error)\n\t\tDirectiveUnimplemented func(ctx context.Context) (<-chan *string, error)\n\t\tIssue896b              func(ctx context.Context) (<-chan []*CheckIssue896, error)\n\t\tErrorRequired          func(ctx context.Context) (<-chan *Error, error)\n\t}\n\tUserResolver struct {\n\t\tFriends func(ctx context.Context, obj *User) ([]*User, error)\n\t\tPets    func(ctx context.Context, obj *User, limit *int) ([]*Pet, error)\n\t}\n\tWrappedMapResolver struct {\n\t\tGet func(ctx context.Context, obj WrappedMap, key string) (string, error)\n\t}\n\tWrappedSliceResolver struct {\n\t\tGet func(ctx context.Context, obj WrappedSlice, idx int) (string, error)\n\t}\n\n\tFieldsOrderInputResolver struct {\n\t\tOverrideFirstField func(ctx context.Context, obj *FieldsOrderInput, data *string) error\n\t}\n}\n\nfunc (r *Stub) BackedByInterface() BackedByInterfaceResolver {\n\treturn &stubBackedByInterface{r}\n}\nfunc (r *Stub) DeferModel() DeferModelResolver {\n\treturn &stubDeferModel{r}\n}\nfunc (r *Stub) Errors() ErrorsResolver {\n\treturn &stubErrors{r}\n}\nfunc (r *Stub) ForcedResolver() ForcedResolverResolver {\n\treturn &stubForcedResolver{r}\n}\nfunc (r *Stub) ModelMethods() ModelMethodsResolver {\n\treturn &stubModelMethods{r}\n}\nfunc (r *Stub) Mutation() MutationResolver {\n\treturn &stubMutation{r}\n}\nfunc (r *Stub) OverlappingFields() OverlappingFieldsResolver {\n\treturn &stubOverlappingFields{r}\n}\nfunc (r *Stub) Panics() PanicsResolver {\n\treturn &stubPanics{r}\n}\nfunc (r *Stub) Pet() PetResolver {\n\treturn &stubPet{r}\n}\nfunc (r *Stub) Primitive() PrimitiveResolver {\n\treturn &stubPrimitive{r}\n}\nfunc (r *Stub) PrimitiveString() PrimitiveStringResolver {\n\treturn &stubPrimitiveString{r}\n}\nfunc (r *Stub) Query() QueryResolver {\n\treturn &stubQuery{r}\n}\nfunc (r *Stub) Subscription() SubscriptionResolver {\n\treturn &stubSubscription{r}\n}\nfunc (r *Stub) User() UserResolver {\n\treturn &stubUser{r}\n}\nfunc (r *Stub) WrappedMap() WrappedMapResolver {\n\treturn &stubWrappedMap{r}\n}\nfunc (r *Stub) WrappedSlice() WrappedSliceResolver {\n\treturn &stubWrappedSlice{r}\n}\n\nfunc (r *Stub) FieldsOrderInput() FieldsOrderInputResolver {\n\treturn &stubFieldsOrderInput{r}\n}\n\ntype stubBackedByInterface struct{ *Stub }\n\nfunc (r *stubBackedByInterface) ID(ctx context.Context, obj BackedByInterface) (string, error) {\n\treturn r.BackedByInterfaceResolver.ID(ctx, obj)\n}\n\ntype stubDeferModel struct{ *Stub }\n\nfunc (r *stubDeferModel) Values(ctx context.Context, obj *DeferModel) ([]string, error) {\n\treturn r.DeferModelResolver.Values(ctx, obj)\n}\n\ntype stubErrors struct{ *Stub }\n\nfunc (r *stubErrors) A(ctx context.Context, obj *Errors) (*Error, error) {\n\treturn r.ErrorsResolver.A(ctx, obj)\n}\nfunc (r *stubErrors) B(ctx context.Context, obj *Errors) (*Error, error) {\n\treturn r.ErrorsResolver.B(ctx, obj)\n}\nfunc (r *stubErrors) C(ctx context.Context, obj *Errors) (*Error, error) {\n\treturn r.ErrorsResolver.C(ctx, obj)\n}\nfunc (r *stubErrors) D(ctx context.Context, obj *Errors) (*Error, error) {\n\treturn r.ErrorsResolver.D(ctx, obj)\n}\nfunc (r *stubErrors) E(ctx context.Context, obj *Errors) (*Error, error) {\n\treturn r.ErrorsResolver.E(ctx, obj)\n}\n\ntype stubForcedResolver struct{ *Stub }\n\nfunc (r *stubForcedResolver) Field(ctx context.Context, obj *ForcedResolver) (*Circle, error) {\n\treturn r.ForcedResolverResolver.Field(ctx, obj)\n}\n\ntype stubModelMethods struct{ *Stub }\n\nfunc (r *stubModelMethods) ResolverField(ctx context.Context, obj *ModelMethods) (bool, error) {\n\treturn r.ModelMethodsResolver.ResolverField(ctx, obj)\n}\n\ntype stubMutation struct{ *Stub }\n\nfunc (r *stubMutation) DefaultInput(ctx context.Context, input DefaultInput) (*DefaultParametersMirror, error) {\n\treturn r.MutationResolver.DefaultInput(ctx, input)\n}\nfunc (r *stubMutation) OverrideValueViaInput(ctx context.Context, input FieldsOrderInput) (*FieldsOrderPayload, error) {\n\treturn r.MutationResolver.OverrideValueViaInput(ctx, input)\n}\nfunc (r *stubMutation) UpdateProduct(ctx context.Context, input map[string]interface{}) (string, error) {\n\treturn r.MutationResolver.UpdateProduct(ctx, input)\n}\nfunc (r *stubMutation) Issue4053(ctx context.Context, input *Issue4053Input1) (bool, error) {\n\treturn r.MutationResolver.Issue4053(ctx, input)\n}\nfunc (r *stubMutation) UpdateSomething(ctx context.Context, input SpecialInput) (string, error) {\n\treturn r.MutationResolver.UpdateSomething(ctx, input)\n}\nfunc (r *stubMutation) UpdatePtrToPtr(ctx context.Context, input UpdatePtrToPtrOuter) (*PtrToPtrOuter, error) {\n\treturn r.MutationResolver.UpdatePtrToPtr(ctx, input)\n}\n\ntype stubOverlappingFields struct{ *Stub }\n\nfunc (r *stubOverlappingFields) OldFoo(ctx context.Context, obj *OverlappingFields) (int, error) {\n\treturn r.OverlappingFieldsResolver.OldFoo(ctx, obj)\n}\n\ntype stubPanics struct{ *Stub }\n\nfunc (r *stubPanics) FieldScalarMarshal(ctx context.Context, obj *Panics) ([]MarshalPanic, error) {\n\treturn r.PanicsResolver.FieldScalarMarshal(ctx, obj)\n}\nfunc (r *stubPanics) ArgUnmarshal(ctx context.Context, obj *Panics, u []MarshalPanic) (bool, error) {\n\treturn r.PanicsResolver.ArgUnmarshal(ctx, obj, u)\n}\n\ntype stubPet struct{ *Stub }\n\nfunc (r *stubPet) Friends(ctx context.Context, obj *Pet, limit *int) ([]*Pet, error) {\n\treturn r.PetResolver.Friends(ctx, obj, limit)\n}\n\ntype stubPrimitive struct{ *Stub }\n\nfunc (r *stubPrimitive) Value(ctx context.Context, obj *Primitive) (int, error) {\n\treturn r.PrimitiveResolver.Value(ctx, obj)\n}\n\ntype stubPrimitiveString struct{ *Stub }\n\nfunc (r *stubPrimitiveString) Value(ctx context.Context, obj *PrimitiveString) (string, error) {\n\treturn r.PrimitiveStringResolver.Value(ctx, obj)\n}\nfunc (r *stubPrimitiveString) Len(ctx context.Context, obj *PrimitiveString) (int, error) {\n\treturn r.PrimitiveStringResolver.Len(ctx, obj)\n}\n\ntype stubQuery struct{ *Stub }\n\nfunc (r *stubQuery) InvalidIdentifier(ctx context.Context) (*invalid_packagename.InvalidIdentifier, error) {\n\treturn r.QueryResolver.InvalidIdentifier(ctx)\n}\nfunc (r *stubQuery) Collision(ctx context.Context) (*introspection1.It, error) {\n\treturn r.QueryResolver.Collision(ctx)\n}\nfunc (r *stubQuery) MapInput(ctx context.Context, input map[string]any) (*bool, error) {\n\treturn r.QueryResolver.MapInput(ctx, input)\n}\nfunc (r *stubQuery) Recursive(ctx context.Context, input *RecursiveInputSlice) (*bool, error) {\n\treturn r.QueryResolver.Recursive(ctx, input)\n}\nfunc (r *stubQuery) NestedInputs(ctx context.Context, input [][]*OuterInput) (*bool, error) {\n\treturn r.QueryResolver.NestedInputs(ctx, input)\n}\nfunc (r *stubQuery) NestedOutputs(ctx context.Context) ([][]*OuterObject, error) {\n\treturn r.QueryResolver.NestedOutputs(ctx)\n}\nfunc (r *stubQuery) ModelMethods(ctx context.Context) (*ModelMethods, error) {\n\treturn r.QueryResolver.ModelMethods(ctx)\n}\nfunc (r *stubQuery) User(ctx context.Context, id int) (*User, error) {\n\treturn r.QueryResolver.User(ctx, id)\n}\nfunc (r *stubQuery) NullableArg(ctx context.Context, arg *int) (*string, error) {\n\treturn r.QueryResolver.NullableArg(ctx, arg)\n}\nfunc (r *stubQuery) InputSlice(ctx context.Context, arg []string) (bool, error) {\n\treturn r.QueryResolver.InputSlice(ctx, arg)\n}\nfunc (r *stubQuery) InputNullableSlice(ctx context.Context, arg []string) (bool, error) {\n\treturn r.QueryResolver.InputNullableSlice(ctx, arg)\n}\nfunc (r *stubQuery) InputOmittable(ctx context.Context, arg OmittableInput) (string, error) {\n\treturn r.QueryResolver.InputOmittable(ctx, arg)\n}\nfunc (r *stubQuery) ShapeUnion(ctx context.Context) (ShapeUnion, error) {\n\treturn r.QueryResolver.ShapeUnion(ctx)\n}\nfunc (r *stubQuery) Autobind(ctx context.Context) (*Autobind, error) {\n\treturn r.QueryResolver.Autobind(ctx)\n}\nfunc (r *stubQuery) DeprecatedField(ctx context.Context) (string, error) {\n\treturn r.QueryResolver.DeprecatedField(ctx)\n}\nfunc (r *stubQuery) FieldWithDeprecatedArg(ctx context.Context, oldArg *int, newArg *int) (*string, error) {\n\treturn r.QueryResolver.FieldWithDeprecatedArg(ctx, oldArg, newArg)\n}\nfunc (r *stubQuery) Overlapping(ctx context.Context) (*OverlappingFields, error) {\n\treturn r.QueryResolver.Overlapping(ctx)\n}\nfunc (r *stubQuery) DefaultParameters(ctx context.Context, falsyBoolean *bool, truthyBoolean *bool) (*DefaultParametersMirror, error) {\n\treturn r.QueryResolver.DefaultParameters(ctx, falsyBoolean, truthyBoolean)\n}\nfunc (r *stubQuery) DeferSingle(ctx context.Context) (*DeferModel, error) {\n\treturn r.QueryResolver.DeferSingle(ctx)\n}\nfunc (r *stubQuery) DeferMultiple(ctx context.Context) ([]*DeferModel, error) {\n\treturn r.QueryResolver.DeferMultiple(ctx)\n}\nfunc (r *stubQuery) DirectiveArg(ctx context.Context, arg string) (*string, error) {\n\treturn r.QueryResolver.DirectiveArg(ctx, arg)\n}\nfunc (r *stubQuery) DirectiveNullableArg(ctx context.Context, arg *int, arg2 *int, arg3 *string) (*string, error) {\n\treturn r.QueryResolver.DirectiveNullableArg(ctx, arg, arg2, arg3)\n}\nfunc (r *stubQuery) DirectiveSingleNullableArg(ctx context.Context, arg1 *string) (*string, error) {\n\treturn r.QueryResolver.DirectiveSingleNullableArg(ctx, arg1)\n}\nfunc (r *stubQuery) DirectiveInputNullable(ctx context.Context, arg *InputDirectives) (*string, error) {\n\treturn r.QueryResolver.DirectiveInputNullable(ctx, arg)\n}\nfunc (r *stubQuery) DirectiveInput(ctx context.Context, arg InputDirectives) (*string, error) {\n\treturn r.QueryResolver.DirectiveInput(ctx, arg)\n}\nfunc (r *stubQuery) DirectiveInputType(ctx context.Context, arg InnerInput) (*string, error) {\n\treturn r.QueryResolver.DirectiveInputType(ctx, arg)\n}\nfunc (r *stubQuery) DirectiveInputOuter(ctx context.Context, arg OuterWrapperInput) (*string, error) {\n\treturn r.QueryResolver.DirectiveInputOuter(ctx, arg)\n}\nfunc (r *stubQuery) DirectiveObject(ctx context.Context) (*ObjectDirectives, error) {\n\treturn r.QueryResolver.DirectiveObject(ctx)\n}\nfunc (r *stubQuery) DirectiveObjectWithCustomGoModel(ctx context.Context) (*ObjectDirectivesWithCustomGoModel, error) {\n\treturn r.QueryResolver.DirectiveObjectWithCustomGoModel(ctx)\n}\nfunc (r *stubQuery) DirectiveFieldDef(ctx context.Context, ret string) (string, error) {\n\treturn r.QueryResolver.DirectiveFieldDef(ctx, ret)\n}\nfunc (r *stubQuery) DirectiveField(ctx context.Context) (*string, error) {\n\treturn r.QueryResolver.DirectiveField(ctx)\n}\nfunc (r *stubQuery) DirectiveDouble(ctx context.Context) (*string, error) {\n\treturn r.QueryResolver.DirectiveDouble(ctx)\n}\nfunc (r *stubQuery) DirectiveUnimplemented(ctx context.Context) (*string, error) {\n\treturn r.QueryResolver.DirectiveUnimplemented(ctx)\n}\nfunc (r *stubQuery) EmbeddedCase1(ctx context.Context) (*EmbeddedCase1, error) {\n\treturn r.QueryResolver.EmbeddedCase1(ctx)\n}\nfunc (r *stubQuery) EmbeddedCase2(ctx context.Context) (*EmbeddedCase2, error) {\n\treturn r.QueryResolver.EmbeddedCase2(ctx)\n}\nfunc (r *stubQuery) EmbeddedCase3(ctx context.Context) (*EmbeddedCase3, error) {\n\treturn r.QueryResolver.EmbeddedCase3(ctx)\n}\nfunc (r *stubQuery) EnumInInput(ctx context.Context, input *InputWithEnumValue) (EnumTest, error) {\n\treturn r.QueryResolver.EnumInInput(ctx, input)\n}\nfunc (r *stubQuery) SearchProducts(ctx context.Context, filters map[string]interface{}) ([]string, error) {\n\treturn r.QueryResolver.SearchProducts(ctx, filters)\n}\nfunc (r *stubQuery) SearchRequired(ctx context.Context, filters map[string]interface{}) ([]string, error) {\n\treturn r.QueryResolver.SearchRequired(ctx, filters)\n}\nfunc (r *stubQuery) SearchProductsNormal(ctx context.Context, filters map[string]any) ([]string, error) {\n\treturn r.QueryResolver.SearchProductsNormal(ctx, filters)\n}\nfunc (r *stubQuery) SearchWithDefaults(ctx context.Context, filters map[string]interface{}) ([]string, error) {\n\treturn r.QueryResolver.SearchWithDefaults(ctx, filters)\n}\nfunc (r *stubQuery) SearchMixed(ctx context.Context, filters map[string]interface{}, limit *int, offset *int, sortBy *string) ([]string, error) {\n\treturn r.QueryResolver.SearchMixed(ctx, filters, limit, offset, sortBy)\n}\nfunc (r *stubQuery) FilterProducts(ctx context.Context, filters map[string]interface{}) ([]string, error) {\n\treturn r.QueryResolver.FilterProducts(ctx, filters)\n}\nfunc (r *stubQuery) FindProducts(ctx context.Context, filters map[string]interface{}) ([]string, error) {\n\treturn r.QueryResolver.FindProducts(ctx, filters)\n}\nfunc (r *stubQuery) SearchWithDirectives(ctx context.Context, input map[string]interface{}) ([]string, error) {\n\treturn r.QueryResolver.SearchWithDirectives(ctx, input)\n}\nfunc (r *stubQuery) Shapes(ctx context.Context) ([]Shape, error) {\n\treturn r.QueryResolver.Shapes(ctx)\n}\nfunc (r *stubQuery) NoShape(ctx context.Context) (Shape, error) {\n\treturn r.QueryResolver.NoShape(ctx)\n}\nfunc (r *stubQuery) Node(ctx context.Context) (Node, error) {\n\treturn r.QueryResolver.Node(ctx)\n}\nfunc (r *stubQuery) NoShapeTypedNil(ctx context.Context) (Shape, error) {\n\treturn r.QueryResolver.NoShapeTypedNil(ctx)\n}\nfunc (r *stubQuery) Animal(ctx context.Context) (Animal, error) {\n\treturn r.QueryResolver.Animal(ctx)\n}\nfunc (r *stubQuery) NotAnInterface(ctx context.Context) (BackedByInterface, error) {\n\treturn r.QueryResolver.NotAnInterface(ctx)\n}\nfunc (r *stubQuery) Dog(ctx context.Context) (*Dog, error) {\n\treturn r.QueryResolver.Dog(ctx)\n}\nfunc (r *stubQuery) Issue896a(ctx context.Context) ([]*CheckIssue896, error) {\n\treturn r.QueryResolver.Issue896a(ctx)\n}\nfunc (r *stubQuery) MapStringInterface(ctx context.Context, in map[string]any) (map[string]any, error) {\n\treturn r.QueryResolver.MapStringInterface(ctx, in)\n}\nfunc (r *stubQuery) MapNestedStringInterface(ctx context.Context, in *NestedMapInput) (map[string]any, error) {\n\treturn r.QueryResolver.MapNestedStringInterface(ctx, in)\n}\nfunc (r *stubQuery) MapNestedMapSlice(ctx context.Context, input map[string]any) (*bool, error) {\n\treturn r.QueryResolver.MapNestedMapSlice(ctx, input)\n}\nfunc (r *stubQuery) ErrorBubble(ctx context.Context) (*Error, error) {\n\treturn r.QueryResolver.ErrorBubble(ctx)\n}\nfunc (r *stubQuery) ErrorBubbleList(ctx context.Context) ([]*Error, error) {\n\treturn r.QueryResolver.ErrorBubbleList(ctx)\n}\nfunc (r *stubQuery) ErrorList(ctx context.Context) ([]*Error, error) {\n\treturn r.QueryResolver.ErrorList(ctx)\n}\nfunc (r *stubQuery) Errors(ctx context.Context) (*Errors, error) {\n\treturn r.QueryResolver.Errors(ctx)\n}\nfunc (r *stubQuery) Valid(ctx context.Context) (string, error) {\n\treturn r.QueryResolver.Valid(ctx)\n}\nfunc (r *stubQuery) Invalid(ctx context.Context) (string, error) {\n\treturn r.QueryResolver.Invalid(ctx)\n}\nfunc (r *stubQuery) Panics(ctx context.Context) (*Panics, error) {\n\treturn r.QueryResolver.Panics(ctx)\n}\nfunc (r *stubQuery) PrimitiveObject(ctx context.Context) ([]Primitive, error) {\n\treturn r.QueryResolver.PrimitiveObject(ctx)\n}\nfunc (r *stubQuery) PrimitiveStringObject(ctx context.Context) ([]PrimitiveString, error) {\n\treturn r.QueryResolver.PrimitiveStringObject(ctx)\n}\nfunc (r *stubQuery) PtrToAnyContainer(ctx context.Context) (*PtrToAnyContainer, error) {\n\treturn r.QueryResolver.PtrToAnyContainer(ctx)\n}\nfunc (r *stubQuery) PtrToSliceContainer(ctx context.Context) (*PtrToSliceContainer, error) {\n\treturn r.QueryResolver.PtrToSliceContainer(ctx)\n}\nfunc (r *stubQuery) Infinity(ctx context.Context) (float64, error) {\n\treturn r.QueryResolver.Infinity(ctx)\n}\nfunc (r *stubQuery) StringFromContextInterface(ctx context.Context) (*StringFromContextInterface, error) {\n\treturn r.QueryResolver.StringFromContextInterface(ctx)\n}\nfunc (r *stubQuery) StringFromContextFunction(ctx context.Context) (string, error) {\n\treturn r.QueryResolver.StringFromContextFunction(ctx)\n}\nfunc (r *stubQuery) DefaultScalar(ctx context.Context, arg string) (string, error) {\n\treturn r.QueryResolver.DefaultScalar(ctx, arg)\n}\nfunc (r *stubQuery) SkipInclude(ctx context.Context) (*SkipIncludeTestType, error) {\n\treturn r.QueryResolver.SkipInclude(ctx)\n}\nfunc (r *stubQuery) Slices(ctx context.Context) (*Slices, error) {\n\treturn r.QueryResolver.Slices(ctx)\n}\nfunc (r *stubQuery) ScalarSlice(ctx context.Context) ([]byte, error) {\n\treturn r.QueryResolver.ScalarSlice(ctx)\n}\nfunc (r *stubQuery) Fallback(ctx context.Context, arg FallbackToStringEncoding) (FallbackToStringEncoding, error) {\n\treturn r.QueryResolver.Fallback(ctx, arg)\n}\nfunc (r *stubQuery) OptionalUnion(ctx context.Context) (TestUnion, error) {\n\treturn r.QueryResolver.OptionalUnion(ctx)\n}\nfunc (r *stubQuery) VOkCaseValue(ctx context.Context) (*VOkCaseValue, error) {\n\treturn r.QueryResolver.VOkCaseValue(ctx)\n}\nfunc (r *stubQuery) VOkCaseNil(ctx context.Context) (*VOkCaseNil, error) {\n\treturn r.QueryResolver.VOkCaseNil(ctx)\n}\nfunc (r *stubQuery) ValidType(ctx context.Context) (*ValidType, error) {\n\treturn r.QueryResolver.ValidType(ctx)\n}\nfunc (r *stubQuery) VariadicModel(ctx context.Context) (*VariadicModel, error) {\n\treturn r.QueryResolver.VariadicModel(ctx)\n}\nfunc (r *stubQuery) WrappedStruct(ctx context.Context) (*WrappedStruct, error) {\n\treturn r.QueryResolver.WrappedStruct(ctx)\n}\nfunc (r *stubQuery) WrappedScalar(ctx context.Context) (otherpkg.Scalar, error) {\n\treturn r.QueryResolver.WrappedScalar(ctx)\n}\nfunc (r *stubQuery) WrappedMap(ctx context.Context) (WrappedMap, error) {\n\treturn r.QueryResolver.WrappedMap(ctx)\n}\nfunc (r *stubQuery) WrappedSlice(ctx context.Context) (WrappedSlice, error) {\n\treturn r.QueryResolver.WrappedSlice(ctx)\n}\n\ntype stubSubscription struct{ *Stub }\n\nfunc (r *stubSubscription) Updated(ctx context.Context) (<-chan string, error) {\n\treturn r.SubscriptionResolver.Updated(ctx)\n}\nfunc (r *stubSubscription) InitPayload(ctx context.Context) (<-chan string, error) {\n\treturn r.SubscriptionResolver.InitPayload(ctx)\n}\nfunc (r *stubSubscription) DirectiveArg(ctx context.Context, arg string) (<-chan *string, error) {\n\treturn r.SubscriptionResolver.DirectiveArg(ctx, arg)\n}\nfunc (r *stubSubscription) DirectiveNullableArg(ctx context.Context, arg *int, arg2 *int, arg3 *string) (<-chan *string, error) {\n\treturn r.SubscriptionResolver.DirectiveNullableArg(ctx, arg, arg2, arg3)\n}\nfunc (r *stubSubscription) DirectiveDouble(ctx context.Context) (<-chan *string, error) {\n\treturn r.SubscriptionResolver.DirectiveDouble(ctx)\n}\nfunc (r *stubSubscription) DirectiveUnimplemented(ctx context.Context) (<-chan *string, error) {\n\treturn r.SubscriptionResolver.DirectiveUnimplemented(ctx)\n}\nfunc (r *stubSubscription) Issue896b(ctx context.Context) (<-chan []*CheckIssue896, error) {\n\treturn r.SubscriptionResolver.Issue896b(ctx)\n}\nfunc (r *stubSubscription) ErrorRequired(ctx context.Context) (<-chan *Error, error) {\n\treturn r.SubscriptionResolver.ErrorRequired(ctx)\n}\n\ntype stubUser struct{ *Stub }\n\nfunc (r *stubUser) Friends(ctx context.Context, obj *User) ([]*User, error) {\n\treturn r.UserResolver.Friends(ctx, obj)\n}\nfunc (r *stubUser) Pets(ctx context.Context, obj *User, limit *int) ([]*Pet, error) {\n\treturn r.UserResolver.Pets(ctx, obj, limit)\n}\n\ntype stubWrappedMap struct{ *Stub }\n\nfunc (r *stubWrappedMap) Get(ctx context.Context, obj WrappedMap, key string) (string, error) {\n\treturn r.WrappedMapResolver.Get(ctx, obj, key)\n}\n\ntype stubWrappedSlice struct{ *Stub }\n\nfunc (r *stubWrappedSlice) Get(ctx context.Context, obj WrappedSlice, idx int) (string, error) {\n\treturn r.WrappedSliceResolver.Get(ctx, obj, idx)\n}\n\ntype stubFieldsOrderInput struct{ *Stub }\n\nfunc (r *stubFieldsOrderInput) OverrideFirstField(ctx context.Context, obj *FieldsOrderInput, data *string) error {\n\treturn r.FieldsOrderInputResolver.OverrideFirstField(ctx, obj, data)\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/subscription_test.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"runtime\"\n\t\"sort\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestSubscriptions(t *testing.T) {\n\ttick := make(chan string, 1)\n\n\tresolvers := &Stub{}\n\n\tresolvers.SubscriptionResolver.InitPayload = func(ctx context.Context) (strings <-chan string, e error) {\n\t\tpayload := transport.GetInitPayload(ctx)\n\t\tchannel := make(chan string, len(payload)+1)\n\n\t\tgo func() {\n\t\t\t<-ctx.Done()\n\t\t\tclose(channel)\n\t\t}()\n\n\t\t// Test the helper function separately\n\t\tauth := payload.Authorization()\n\t\tif auth != \"\" {\n\t\t\tchannel <- \"AUTH:\" + auth\n\t\t} else {\n\t\t\tchannel <- \"AUTH:NONE\"\n\t\t}\n\n\t\t// Send them over the channel in alphabetic order\n\t\tkeys := make([]string, 0, len(payload))\n\t\tfor key := range payload {\n\t\t\tkeys = append(keys, key)\n\t\t}\n\t\tsort.Strings(keys)\n\t\tfor _, key := range keys {\n\t\t\tchannel <- fmt.Sprintf(\"%s = %#+v\", key, payload[key])\n\t\t}\n\n\t\treturn channel, nil\n\t}\n\n\terrorTick := make(chan *Error, 1)\n\tresolvers.SubscriptionResolver.ErrorRequired = func(ctx context.Context) (<-chan *Error, error) {\n\t\tres := make(chan *Error, 1)\n\n\t\tgo func() {\n\t\t\tfor {\n\t\t\t\tselect {\n\t\t\t\tcase t := <-errorTick:\n\t\t\t\t\tres <- t\n\t\t\t\tcase <-ctx.Done():\n\t\t\t\t\tclose(res)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}()\n\t\treturn res, nil\n\t}\n\n\tresolvers.SubscriptionResolver.Updated = func(ctx context.Context) (<-chan string, error) {\n\t\tres := make(chan string, 1)\n\n\t\tgo func() {\n\t\t\tfor {\n\t\t\t\tselect {\n\t\t\t\tcase t := <-tick:\n\t\t\t\t\tres <- t\n\t\t\t\tcase <-ctx.Done():\n\t\t\t\t\tclose(res)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}()\n\t\treturn res, nil\n\t}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.Websocket{KeepAlivePingInterval: time.Second})\n\tsrv.AroundFields(func(ctx context.Context, next graphql.Resolver) (res any, err error) {\n\t\tpath, _ := ctx.Value(ckey(\"path\")).([]int)\n\t\treturn next(context.WithValue(ctx, ckey(\"path\"), append(path, 1)))\n\t})\n\n\tsrv.AroundFields(func(ctx context.Context, next graphql.Resolver) (res any, err error) {\n\t\tpath, _ := ctx.Value(ckey(\"path\")).([]int)\n\t\treturn next(context.WithValue(ctx, ckey(\"path\"), append(path, 2)))\n\t})\n\n\tc := client.New(srv)\n\n\tt.Run(\"wont leak goroutines\", func(t *testing.T) {\n\t\truntime.GC() // ensure no go-routines left from preceding tests\n\t\tinitialGoroutineCount := runtime.NumGoroutine()\n\n\t\tsub := c.Websocket(`subscription { updated }`)\n\n\t\ttick <- \"message\"\n\n\t\tvar msg struct {\n\t\t\tresp struct {\n\t\t\t\tUpdated string\n\t\t\t}\n\t\t}\n\n\t\terr := sub.Next(&msg.resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"message\", msg.resp.Updated)\n\t\tsub.Close()\n\n\t\t// need a little bit of time for goroutines to settle\n\t\tstart := time.Now()\n\t\tfor time.Since(start).Seconds() < 2 && initialGoroutineCount != runtime.NumGoroutine() {\n\t\t\ttime.Sleep(5 * time.Millisecond)\n\t\t}\n\n\t\trequire.Equal(t, initialGoroutineCount, runtime.NumGoroutine())\n\t})\n\n\tt.Run(\"will parse init payload\", func(t *testing.T) {\n\t\truntime.GC() // ensure no go-routines left from preceding tests\n\t\tinitialGoroutineCount := runtime.NumGoroutine()\n\n\t\tsub := c.WebsocketWithPayload(`subscription { initPayload }`, map[string]any{\n\t\t\t\"Authorization\": \"Bearer of the curse\",\n\t\t\t\"number\":        32,\n\t\t\t\"strings\":       []string{\"hello\", \"world\"},\n\t\t})\n\n\t\tvar msg struct {\n\t\t\tresp struct {\n\t\t\t\tInitPayload string\n\t\t\t}\n\t\t}\n\n\t\terr := sub.Next(&msg.resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"AUTH:Bearer of the curse\", msg.resp.InitPayload)\n\t\terr = sub.Next(&msg.resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"Authorization = \\\"Bearer of the curse\\\"\", msg.resp.InitPayload)\n\t\terr = sub.Next(&msg.resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"number = 32\", msg.resp.InitPayload)\n\t\terr = sub.Next(&msg.resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"strings = []interface {}{\\\"hello\\\", \\\"world\\\"}\", msg.resp.InitPayload)\n\t\tsub.Close()\n\n\t\t// need a little bit of time for goroutines to settle\n\t\tstart := time.Now()\n\t\tfor time.Since(start).Seconds() < 2 && initialGoroutineCount != runtime.NumGoroutine() {\n\t\t\ttime.Sleep(5 * time.Millisecond)\n\t\t}\n\n\t\trequire.Equal(t, initialGoroutineCount, runtime.NumGoroutine())\n\t})\n\n\tt.Run(\"websocket gets errors\", func(t *testing.T) {\n\t\truntime.GC() // ensure no go-routines left from preceding tests\n\t\tinitialGoroutineCount := runtime.NumGoroutine()\n\n\t\tsub := c.Websocket(`subscription { errorRequired { id } }`)\n\n\t\terrorTick <- &Error{ID: \"ID1234\"}\n\n\t\tvar msg struct {\n\t\t\tresp struct {\n\t\t\t\tErrorRequired *struct {\n\t\t\t\t\tId string\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\terr := sub.Next(&msg.resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"ID1234\", msg.resp.ErrorRequired.Id)\n\n\t\terrorTick <- nil\n\t\terr = sub.Next(&msg.resp)\n\t\trequire.Error(t, err)\n\n\t\tsub.Close()\n\n\t\t// need a little bit of time for goroutines to settle\n\t\tstart := time.Now()\n\t\tfor time.Since(start).Seconds() < 2 && initialGoroutineCount != runtime.NumGoroutine() {\n\t\t\ttime.Sleep(5 * time.Millisecond)\n\t\t}\n\n\t\trequire.Equal(t, initialGoroutineCount, runtime.NumGoroutine())\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/thirdparty.go",
    "content": "package singlefile\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\ntype ThirdParty struct {\n\tstr string\n}\n\nfunc MarshalThirdParty(tp ThirdParty) graphql.Marshaler {\n\treturn graphql.WriterFunc(func(w io.Writer) {\n\t\t_, err := io.WriteString(w, strconv.Quote(tp.str))\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t})\n}\n\nfunc UnmarshalThirdParty(input any) (ThirdParty, error) {\n\tswitch input := input.(type) {\n\tcase string:\n\t\treturn ThirdParty{str: input}, nil\n\tdefault:\n\t\treturn ThirdParty{}, fmt.Errorf(\"unknown type for input: %s\", input)\n\t}\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/time_test.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestTime(t *testing.T) {\n\tresolvers := &Stub{}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tresolvers.QueryResolver.User = func(ctx context.Context, id int) (user *User, e error) {\n\t\treturn &User{}, nil\n\t}\n\n\tt.Run(\"zero value in nullable field\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tUser struct {\n\t\t\t\tUpdated *string\n\t\t\t}\n\t\t}\n\n\t\terr := c.Post(`query { user(id: 1) { updated } }`, &resp)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Nil(t, resp.User.Updated)\n\t})\n\n\tt.Run(\"zero value in non nullable field\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tUser struct {\n\t\t\t\tCreated *string\n\t\t\t}\n\t\t}\n\n\t\terr := c.Post(`query { user(id: 1) { created } }`, &resp)\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t`[{\"message\":\"the requested element is null which the schema does not allow\",\"path\":[\"user\",\"created\"]}]`,\n\t\t)\n\t})\n\n\tt.Run(\"with values\", func(t *testing.T) {\n\t\tresolvers.QueryResolver.User = func(ctx context.Context, id int) (user *User, e error) {\n\t\t\tupdated := time.Date(2010, 1, 1, 0, 0, 20, 1, time.UTC)\n\t\t\treturn &User{\n\t\t\t\tCreated: time.Date(2010, 1, 1, 0, 0, 10, 1, time.UTC),\n\t\t\t\tUpdated: &updated,\n\t\t\t}, nil\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tUser struct {\n\t\t\t\tCreated string\n\t\t\t\tUpdated string\n\t\t\t}\n\t\t}\n\n\t\terr := c.Post(`query { user(id: 1) { created, updated } }`, &resp)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Equal(t, \"2010-01-01T00:00:10.000000001Z\", resp.User.Created)\n\t\trequire.Equal(t, \"2010-01-01T00:00:20.000000001Z\", resp.User.Updated)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/typefallback.graphql",
    "content": "extend type Query {\n    fallback(arg: FallbackToStringEncoding!): FallbackToStringEncoding!\n}\n\nenum FallbackToStringEncoding {\n    A\n    B\n    C\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/typefallback_test.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestTypeFallback(t *testing.T) {\n\tresolvers := &Stub{}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tresolvers.QueryResolver.Fallback = func(ctx context.Context, arg FallbackToStringEncoding) (FallbackToStringEncoding, error) {\n\t\treturn arg, nil\n\t}\n\n\tt.Run(\"fallback to string passthrough\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tFallback string\n\t\t}\n\t\tc.MustPost(`query { fallback(arg: A) }`, &resp)\n\t\trequire.Equal(t, \"A\", resp.Fallback)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/useptr.graphql",
    "content": "type A {\n    id: ID!\n}\n\ntype B {\n    id: ID!\n}\n\nunion TestUnion = A | B\n\nextend type Query {\n    optionalUnion: TestUnion\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/useptr_test.go",
    "content": "package singlefile\n\nimport (\n\t\"reflect\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestUserPtr(t *testing.T) {\n\ts := &Stub{}\n\tr := reflect.TypeOf(s.QueryResolver.OptionalUnion)\n\trequire.Equal(t, reflect.Interface, r.Out(0).Kind())\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/v-ok.go",
    "content": "package singlefile\n\n// VOkCaseValue model\ntype VOkCaseValue struct{}\n\nfunc (v VOkCaseValue) Value() (string, bool) {\n\treturn \"hi\", true\n}\n\n// VOkCaseNil model\ntype VOkCaseNil struct{}\n\nfunc (v VOkCaseNil) Value() (string, bool) {\n\treturn \"\", false\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/v-ok.graphql",
    "content": "extend type Query {\n    vOkCaseValue: VOkCaseValue\n    vOkCaseNil: VOkCaseNil\n}\n\ntype VOkCaseValue @goModel(model:\"singlefile.VOkCaseValue\") {\n  value: String\n}\n\ntype VOkCaseNil @goModel(model:\"singlefile.VOkCaseNil\") {\n  value: String\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/v-ok_test.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestOk(t *testing.T) {\n\tresolver := &Stub{}\n\tresolver.QueryResolver.VOkCaseValue = func(ctx context.Context) (*VOkCaseValue, error) {\n\t\treturn &VOkCaseValue{}, nil\n\t}\n\tresolver.QueryResolver.VOkCaseNil = func(ctx context.Context) (*VOkCaseNil, error) {\n\t\treturn &VOkCaseNil{}, nil\n\t}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolver}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"v ok case value\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tVOkCaseValue struct {\n\t\t\t\tValue string\n\t\t\t}\n\t\t}\n\t\terr := c.Post(`query { vOkCaseValue { value } }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"hi\", resp.VOkCaseValue.Value)\n\t})\n\n\tt.Run(\"v ok case nil\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tVOkCaseNil struct {\n\t\t\t\tValue *string\n\t\t\t}\n\t\t}\n\t\terr := c.Post(`query { vOkCaseNil { value } }`, &resp)\n\t\trequire.NoError(t, err)\n\t\trequire.Nil(t, resp.VOkCaseNil.Value)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/validtypes.graphql",
    "content": "extend type Query {\n    validType: ValidType\n}\n\n\"\"\" These things are all valid, but without care generate invalid go code \"\"\"\ntype ValidType {\n    differentCase: String!\n    different_case: String! @goField(name:\"DifferentCaseOld\")\n    validInputKeywords(input: ValidInput): Boolean!\n    validArgs(\n        break:       String!,\n        default:     String!,\n        func:        String!,\n        interface:   String!,\n        select:      String!,\n        case:        String!,\n        defer:       String!,\n        go:          String!,\n        map:         String!,\n        struct:      String!,\n        chan:        String!,\n        else:        String!,\n        goto:        String!,\n        package:     String!,\n        switch:      String!,\n        const:       String!,\n        fallthrough: String!,\n        if:          String!,\n        range:       String!,\n        type:        String!,\n        continue:    String!,\n        for:         String!,\n        import:      String!,\n        return:      String!,\n        var:         String!,\n        _:           String!,\n    ): Boolean!\n}\n\ninput ValidInput {\n    break:       String!\n    default:     String!\n    func:        String!\n    interface:   String!\n    select:      String!\n    case:        String!\n    defer:       String!\n    go:          String!\n    map:         String!\n    struct:      String!\n    chan:        String!\n    else:        String!\n    goto:        String!\n    package:     String!\n    switch:      String!\n    const:       String!\n    fallthrough: String!\n    if:          String!\n    range:       String!\n    type:        String!\n    continue:    String!\n    for:         String!\n    import:      String!\n    return:      String!\n    var:         String!\n    _:           String! @goField(name: \"Underscore\")\n}\n\n# see https://github.com/99designs/gqlgen/issues/694\ntype Content_User {\n  foo: String\n}\n\ntype Content_Post {\n  foo: String\n}\n\nunion Content_Child = Content_User | Content_Post\n"
  },
  {
    "path": "codegen/testserver/singlefile/validtypes_test.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestValidType(t *testing.T) {\n\tresolvers := &Stub{}\n\tresolvers.QueryResolver.ValidType = func(ctx context.Context) (validType *ValidType, e error) {\n\t\treturn &ValidType{\n\t\t\tDifferentCase:    \"new\",\n\t\t\tDifferentCaseOld: \"old\",\n\t\t}, nil\n\t}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"fields with differing cases can be distinguished\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tValidType struct {\n\t\t\t\tNew string `json:\"differentCase\"`\n\t\t\t\tOld string `json:\"different_case\"`\n\t\t\t}\n\t\t}\n\t\terr := c.Post(`query { validType { differentCase, different_case } }`, &resp)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Equal(t, \"new\", resp.ValidType.New)\n\t\trequire.Equal(t, \"old\", resp.ValidType.Old)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/variadic.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"strconv\"\n)\n\ntype VariadicModel struct{}\n\ntype VariadicModelOption func(*VariadicModel)\n\nfunc (v VariadicModel) Value(\n\tctx context.Context,\n\trank int,\n\topts ...VariadicModelOption,\n) (string, error) {\n\treturn strconv.Itoa(rank), nil\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/variadic.graphql",
    "content": "extend type Query {\n    variadicModel: VariadicModel\n}\n\ntype VariadicModel {\n    value(rank: Int!): String\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/variadic_test.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestVariadic(t *testing.T) {\n\tresolver := &Stub{}\n\tresolver.QueryResolver.VariadicModel = func(ctx context.Context) (*VariadicModel, error) {\n\t\treturn &VariadicModel{}, nil\n\t}\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolver}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tvar resp struct {\n\t\tVariadicModel struct {\n\t\t\tValue string\n\t\t}\n\t}\n\terr := c.Post(`query { variadicModel { value(rank: 1) } }`, &resp)\n\trequire.NoError(t, err)\n\trequire.Equal(t, \"1\", resp.VariadicModel.Value)\n\n\terr = c.Post(`query { variadicModel { value(rank: 2) } }`, &resp)\n\trequire.NoError(t, err)\n\trequire.Equal(t, \"2\", resp.VariadicModel.Value)\n}\n"
  },
  {
    "path": "codegen/testserver/singlefile/weird_type_cases.graphql",
    "content": "# regression test for https://github.com/99designs/gqlgen/issues/583\n\ntype asdfIt { id: ID! }\ntype iIt { id: ID! }\ntype AIt { id: ID! }\ntype XXIt { id: ID! }\ntype AbIt { id: ID! }\ntype XxIt { id: ID! }\n"
  },
  {
    "path": "codegen/testserver/singlefile/wrapped_type.go",
    "content": "package singlefile\n\nimport \"github.com/99designs/gqlgen/codegen/testserver/singlefile/otherpkg\"\n\ntype (\n\tWrappedScalar = otherpkg.Scalar\n\tWrappedStruct otherpkg.Struct\n\tWrappedMap    otherpkg.Map\n\tWrappedSlice  otherpkg.Slice\n)\n"
  },
  {
    "path": "codegen/testserver/singlefile/wrapped_type.graphql",
    "content": "# regression test for https://github.com/99designs/gqlgen/issues/721\n\nextend type Query {\n    wrappedStruct: WrappedStruct!\n    wrappedScalar: WrappedScalar!\n    wrappedMap: WrappedMap!\n    wrappedSlice: WrappedSlice!\n}\n\ntype WrappedStruct { name: WrappedScalar!, desc: WrappedScalar }\nscalar WrappedScalar\ntype WrappedMap { get(key: String!): String! }\ntype WrappedSlice { get(idx: Int!): String! }\n"
  },
  {
    "path": "codegen/testserver/singlefile/wrapped_type_test.go",
    "content": "package singlefile\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/codegen/testserver/singlefile/otherpkg\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestWrappedTypes(t *testing.T) {\n\tresolvers := &Stub{}\n\n\tsrv := handler.New(NewExecutableSchema(Config{Resolvers: resolvers}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tresolvers.QueryResolver.WrappedScalar = func(ctx context.Context) (scalar WrappedScalar, e error) {\n\t\treturn \"hello\", nil\n\t}\n\n\tresolvers.QueryResolver.WrappedStruct = func(ctx context.Context) (wrappedStruct *WrappedStruct, e error) {\n\t\twrapped := WrappedStruct(otherpkg.Struct{\n\t\t\tName: \"hello\",\n\t\t})\n\t\treturn &wrapped, nil\n\t}\n\n\tresolvers.QueryResolver.WrappedMap = func(ctx context.Context) (wrappedMap WrappedMap, e error) {\n\t\twrapped := WrappedMap(map[string]string{\n\t\t\t\"name\": \"hello\",\n\t\t})\n\t\treturn wrapped, nil\n\t}\n\n\tresolvers.QueryResolver.WrappedSlice = func(ctx context.Context) (slice WrappedSlice, err error) {\n\t\twrapped := WrappedSlice([]string{\"hello\"})\n\t\treturn wrapped, nil\n\t}\n\n\tresolvers.WrappedMapResolver.Get = func(ctx context.Context, obj WrappedMap, key string) (s string, err error) {\n\t\treturn obj[key], nil\n\t}\n\n\tresolvers.WrappedSliceResolver.Get = func(ctx context.Context, obj WrappedSlice, idx int) (s string, err error) {\n\t\treturn obj[idx], nil\n\t}\n\n\tt.Run(\"wrapped struct\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tWrappedStruct struct {\n\t\t\t\tName string\n\t\t\t}\n\t\t}\n\n\t\terr := c.Post(`query { wrappedStruct { name } }`, &resp)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Equal(t, \"hello\", resp.WrappedStruct.Name)\n\t})\n\n\tt.Run(\"wrapped scalar\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tWrappedScalar string\n\t\t}\n\n\t\terr := c.Post(`query { wrappedScalar }`, &resp)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Equal(t, \"hello\", resp.WrappedScalar)\n\t})\n\n\tt.Run(\"wrapped map\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tWrappedMap struct {\n\t\t\t\tName string\n\t\t\t}\n\t\t}\n\n\t\terr := c.Post(`query { wrappedMap { name: get(key: \"name\") } }`, &resp)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Equal(t, \"hello\", resp.WrappedMap.Name)\n\t})\n\n\tt.Run(\"wrapped slice\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tWrappedSlice struct {\n\t\t\t\tFirst string\n\t\t\t}\n\t\t}\n\n\t\terr := c.Post(`query { wrappedSlice { first: get(idx: 0) } }`, &resp)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Equal(t, \"hello\", resp.WrappedSlice.First)\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/usefunctionsyntaxforexecutioncontext/directive.go",
    "content": "package usefunctionsyntaxforexecutioncontext\n\nimport (\n\t\"context\"\n\t\"log\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\n// LogDirective implementation\nfunc LogDirective(\n\tctx context.Context,\n\tobj any,\n\tnext graphql.Resolver,\n\tmessage *string,\n) (res any, err error) {\n\tlog.Printf(\"Log Directive: %s\", *message)\n\n\t// Proceed with the next resolver in the chain\n\treturn next(ctx)\n}\n"
  },
  {
    "path": "codegen/testserver/usefunctionsyntaxforexecutioncontext/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage usefunctionsyntaxforexecutioncontext\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"embed\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n}\n\ntype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\ntype ResolverRoot interface {\n\tMutation() MutationResolver\n\tQuery() QueryResolver\n\tSubscription() SubscriptionResolver\n}\n\ntype DirectiveRoot struct {\n\tLog func(ctx context.Context, obj any, next graphql.Resolver, message *string) (res any, err error)\n}\n\ntype ComplexityRoot struct {\n\tAdmin struct {\n\t\tCreatedAt   func(childComplexity int) int\n\t\tID          func(childComplexity int) int\n\t\tName        func(childComplexity int) int\n\t\tPermissions func(childComplexity int) int\n\t}\n\n\tMutation struct {\n\t\tCreateUser func(childComplexity int, input CreateUserInput) int\n\t\tDeleteUser func(childComplexity int, id string) int\n\t}\n\n\tMutationResponse struct {\n\t\tMessage func(childComplexity int) int\n\t\tSuccess func(childComplexity int) int\n\t}\n\n\tQuery struct {\n\t\tGetEntity func(childComplexity int, id string) int\n\t\tGetUser   func(childComplexity int, id string) int\n\t\tListUsers func(childComplexity int, filter *UserFilter) int\n\t}\n\n\tSubscription struct {\n\t\tUserCreated func(childComplexity int) int\n\t}\n\n\tUser struct {\n\t\tAge       func(childComplexity int) int\n\t\tCreatedAt func(childComplexity int) int\n\t\tEmail     func(childComplexity int) int\n\t\tID        func(childComplexity int) int\n\t\tName      func(childComplexity int) int\n\t\tRole      func(childComplexity int) int\n\t}\n}\n\ntype MutationResolver interface {\n\tCreateUser(ctx context.Context, input CreateUserInput) (*User, error)\n\tDeleteUser(ctx context.Context, id string) (*MutationResponse, error)\n}\ntype QueryResolver interface {\n\tGetUser(ctx context.Context, id string) (*User, error)\n\tListUsers(ctx context.Context, filter *UserFilter) ([]*User, error)\n\tGetEntity(ctx context.Context, id string) (Entity, error)\n}\ntype SubscriptionResolver interface {\n\tUserCreated(ctx context.Context) (<-chan *User, error)\n}\n\ntype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.SchemaData != nil {\n\t\treturn e.SchemaData\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := newExecutionContext(nil, e, nil)\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"Admin.createdAt\":\n\t\tif e.ComplexityRoot.Admin.CreatedAt == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Admin.CreatedAt(childComplexity), true\n\tcase \"Admin.id\":\n\t\tif e.ComplexityRoot.Admin.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Admin.ID(childComplexity), true\n\tcase \"Admin.name\":\n\t\tif e.ComplexityRoot.Admin.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Admin.Name(childComplexity), true\n\tcase \"Admin.permissions\":\n\t\tif e.ComplexityRoot.Admin.Permissions == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Admin.Permissions(childComplexity), true\n\n\tcase \"Mutation.createUser\":\n\t\tif e.ComplexityRoot.Mutation.CreateUser == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := field_Mutation_createUser_args(ctx, &ec, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Mutation.CreateUser(childComplexity, args[\"input\"].(CreateUserInput)), true\n\tcase \"Mutation.deleteUser\":\n\t\tif e.ComplexityRoot.Mutation.DeleteUser == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := field_Mutation_deleteUser_args(ctx, &ec, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Mutation.DeleteUser(childComplexity, args[\"id\"].(string)), true\n\n\tcase \"MutationResponse.message\":\n\t\tif e.ComplexityRoot.MutationResponse.Message == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MutationResponse.Message(childComplexity), true\n\tcase \"MutationResponse.success\":\n\t\tif e.ComplexityRoot.MutationResponse.Success == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MutationResponse.Success(childComplexity), true\n\n\tcase \"Query.getEntity\":\n\t\tif e.ComplexityRoot.Query.GetEntity == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := field_Query_getEntity_args(ctx, &ec, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.GetEntity(childComplexity, args[\"id\"].(string)), true\n\tcase \"Query.getUser\":\n\t\tif e.ComplexityRoot.Query.GetUser == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := field_Query_getUser_args(ctx, &ec, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.GetUser(childComplexity, args[\"id\"].(string)), true\n\n\tcase \"Query.listUsers\":\n\t\tif e.ComplexityRoot.Query.ListUsers == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := field_Query_listUsers_args(ctx, &ec, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.ListUsers(childComplexity, args[\"filter\"].(*UserFilter)), true\n\n\tcase \"Subscription.userCreated\":\n\t\tif e.ComplexityRoot.Subscription.UserCreated == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Subscription.UserCreated(childComplexity), true\n\n\tcase \"User.age\":\n\t\tif e.ComplexityRoot.User.Age == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.Age(childComplexity), true\n\tcase \"User.createdAt\":\n\t\tif e.ComplexityRoot.User.CreatedAt == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.CreatedAt(childComplexity), true\n\tcase \"User.email\":\n\t\tif e.ComplexityRoot.User.Email == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.Email(childComplexity), true\n\tcase \"User.id\":\n\t\tif e.ComplexityRoot.User.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.ID(childComplexity), true\n\tcase \"User.name\":\n\t\tif e.ComplexityRoot.User.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.Name(childComplexity), true\n\tcase \"User.role\":\n\t\tif e.ComplexityRoot.User.Role == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.Role(childComplexity), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap(\n\t\tunmarshalInputCreateUserInput,\n\t\tunmarshalInputUserFilter,\n\t)\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = _Query(ctx, &ec, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\tcase ast.Mutation:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tif !first {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tfirst = false\n\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\tdata := _Mutation(ctx, &ec, opCtx.Operation.SelectionSet)\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\n\t\t\treturn &graphql.Response{\n\t\t\t\tData: buf.Bytes(),\n\t\t\t}\n\t\t}\n\tcase ast.Subscription:\n\t\tnext := _Subscription(ctx, &ec, opCtx.Operation.SelectionSet)\n\n\t\tvar buf bytes.Buffer\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tbuf.Reset()\n\t\t\tdata := next(ctx)\n\n\t\t\tif data == nil {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tdata.MarshalGQL(&buf)\n\n\t\t\treturn &graphql.Response{\n\t\t\t\tData: buf.Bytes(),\n\t\t\t}\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\n//go:embed \"test.graphql\"\nvar sourcesFS embed.FS\n\nfunc sourceData(filename string) string {\n\tdata, err := sourcesFS.ReadFile(filename)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"codegen problem: %s not available\", filename))\n\t}\n\treturn string(data)\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"test.graphql\", Input: sourceData(\"test.graphql\"), BuiltIn: false},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc dir_log_args(ctx context.Context, ec *executionContext, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"message\", unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"message\"] = arg0\n\treturn args, nil\n}\n\nfunc field_Mutation_createUser_args(ctx context.Context, ec *executionContext, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"input\", unmarshalNCreateUserInput2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐCreateUserInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"input\"] = arg0\n\treturn args, nil\n}\n\nfunc field_Mutation_deleteUser_args(ctx context.Context, ec *executionContext, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"id\", unmarshalNID2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"id\"] = arg0\n\treturn args, nil\n}\n\nfunc field_Query___type_args(ctx context.Context, ec *executionContext, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"name\", unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc field_Query_getEntity_args(ctx context.Context, ec *executionContext, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"id\", unmarshalNID2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"id\"] = arg0\n\treturn args, nil\n}\n\nfunc field_Query_getUser_args(ctx context.Context, ec *executionContext, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"id\", unmarshalNID2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"id\"] = arg0\n\treturn args, nil\n}\n\nfunc field_Query_listUsers_args(ctx context.Context, ec *executionContext, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"filter\", unmarshalOUserFilter2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐUserFilter)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"filter\"] = arg0\n\treturn args, nil\n}\n\nfunc field___Directive_args_args(ctx context.Context, ec *executionContext, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"includeDeprecated\", unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc field___Field_args_args(ctx context.Context, ec *executionContext, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"includeDeprecated\", unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc field___Type_enumValues_args(ctx context.Context, ec *executionContext, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"includeDeprecated\", unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc field___Type_fields_args(ctx context.Context, ec *executionContext, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"includeDeprecated\", unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc _Admin_id(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *Admin) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_Admin_id(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalNID2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_Admin_id(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Admin\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _Admin_name(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *Admin) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_Admin_name(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalNString2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_Admin_name(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Admin\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _Admin_permissions(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *Admin) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_Admin_permissions(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Permissions, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v []string) graphql.Marshaler {\n\t\t\treturn marshalNString2ᚕstringᚄ(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_Admin_permissions(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Admin\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _Admin_createdAt(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *Admin) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_Admin_createdAt(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.CreatedAt, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler {\n\t\t\treturn marshalODate2ᚖstring(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext_Admin_createdAt(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Admin\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Date does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _Mutation_createUser(ctx context.Context, ec *executionContext, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_Mutation_createUser(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Mutation().CreateUser(ctx, fc.Args[\"input\"].(CreateUserInput))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tmessage, err := unmarshalOString2ᚖstring(ctx, ec, \"Creating a user\")\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal *User\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tif ec.Directives.Log == nil {\n\t\t\t\t\tvar zeroVal *User\n\t\t\t\t\treturn zeroVal, errors.New(\"directive log is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Log(ctx, nil, directive0, message)\n\t\t\t}\n\n\t\t\tnext = directive1\n\t\t\treturn next\n\t\t},\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *User) graphql.Marshaler {\n\t\t\treturn marshalNUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐUser(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_Mutation_createUser(ctx context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Mutation\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn fieldContext_User_id(ctx, ec, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext_User_name(ctx, ec, field)\n\t\t\tcase \"email\":\n\t\t\t\treturn fieldContext_User_email(ctx, ec, field)\n\t\t\tcase \"age\":\n\t\t\t\treturn fieldContext_User_age(ctx, ec, field)\n\t\t\tcase \"role\":\n\t\t\t\treturn fieldContext_User_role(ctx, ec, field)\n\t\t\tcase \"createdAt\":\n\t\t\t\treturn fieldContext_User_createdAt(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type User\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = field_Mutation_createUser_args(ctx, ec, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc _Mutation_deleteUser(ctx context.Context, ec *executionContext, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_Mutation_deleteUser(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Mutation().DeleteUser(ctx, fc.Args[\"id\"].(string))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tmessage, err := unmarshalOString2ᚖstring(ctx, ec, \"Deleting a user\")\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal *MutationResponse\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tif ec.Directives.Log == nil {\n\t\t\t\t\tvar zeroVal *MutationResponse\n\t\t\t\t\treturn zeroVal, errors.New(\"directive log is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Log(ctx, nil, directive0, message)\n\t\t\t}\n\n\t\t\tnext = directive1\n\t\t\treturn next\n\t\t},\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *MutationResponse) graphql.Marshaler {\n\t\t\treturn marshalNMutationResponse2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐMutationResponse(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_Mutation_deleteUser(ctx context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Mutation\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"success\":\n\t\t\t\treturn fieldContext_MutationResponse_success(ctx, ec, field)\n\t\t\tcase \"message\":\n\t\t\t\treturn fieldContext_MutationResponse_message(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type MutationResponse\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = field_Mutation_deleteUser_args(ctx, ec, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc _MutationResponse_success(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *MutationResponse) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_MutationResponse_success(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Success, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v bool) graphql.Marshaler {\n\t\t\treturn marshalNBoolean2bool(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_MutationResponse_success(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MutationResponse\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _MutationResponse_message(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *MutationResponse) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_MutationResponse_message(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Message, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler {\n\t\t\treturn marshalOString2ᚖstring(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext_MutationResponse_message(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MutationResponse\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _Query_getUser(ctx context.Context, ec *executionContext, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_Query_getUser(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().GetUser(ctx, fc.Args[\"id\"].(string))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tmessage, err := unmarshalOString2ᚖstring(ctx, ec, \"Fetching a user\")\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal *User\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tif ec.Directives.Log == nil {\n\t\t\t\t\tvar zeroVal *User\n\t\t\t\t\treturn zeroVal, errors.New(\"directive log is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Log(ctx, nil, directive0, message)\n\t\t\t}\n\n\t\t\tnext = directive1\n\t\t\treturn next\n\t\t},\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *User) graphql.Marshaler {\n\t\t\treturn marshalOUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐUser(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext_Query_getUser(ctx context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn fieldContext_User_id(ctx, ec, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext_User_name(ctx, ec, field)\n\t\t\tcase \"email\":\n\t\t\t\treturn fieldContext_User_email(ctx, ec, field)\n\t\t\tcase \"age\":\n\t\t\t\treturn fieldContext_User_age(ctx, ec, field)\n\t\t\tcase \"role\":\n\t\t\t\treturn fieldContext_User_role(ctx, ec, field)\n\t\t\tcase \"createdAt\":\n\t\t\t\treturn fieldContext_User_createdAt(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type User\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = field_Query_getUser_args(ctx, ec, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc _Query_listUsers(ctx context.Context, ec *executionContext, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_Query_listUsers(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().ListUsers(ctx, fc.Args[\"filter\"].(*UserFilter))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tmessage, err := unmarshalOString2ᚖstring(ctx, ec, \"Listing users\")\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal []*User\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tif ec.Directives.Log == nil {\n\t\t\t\t\tvar zeroVal []*User\n\t\t\t\t\treturn zeroVal, errors.New(\"directive log is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Log(ctx, nil, directive0, message)\n\t\t\t}\n\n\t\t\tnext = directive1\n\t\t\treturn next\n\t\t},\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v []*User) graphql.Marshaler {\n\t\t\treturn marshalNUser2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐUserᚄ(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_Query_listUsers(ctx context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn fieldContext_User_id(ctx, ec, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext_User_name(ctx, ec, field)\n\t\t\tcase \"email\":\n\t\t\t\treturn fieldContext_User_email(ctx, ec, field)\n\t\t\tcase \"age\":\n\t\t\t\treturn fieldContext_User_age(ctx, ec, field)\n\t\t\tcase \"role\":\n\t\t\t\treturn fieldContext_User_role(ctx, ec, field)\n\t\t\tcase \"createdAt\":\n\t\t\t\treturn fieldContext_User_createdAt(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type User\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = field_Query_listUsers_args(ctx, ec, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc _Query_getEntity(ctx context.Context, ec *executionContext, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_Query_getEntity(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().GetEntity(ctx, fc.Args[\"id\"].(string))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tmessage, err := unmarshalOString2ᚖstring(ctx, ec, \"Fetching an entity\")\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal Entity\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tif ec.Directives.Log == nil {\n\t\t\t\t\tvar zeroVal Entity\n\t\t\t\t\treturn zeroVal, errors.New(\"directive log is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Log(ctx, nil, directive0, message)\n\t\t\t}\n\n\t\t\tnext = directive1\n\t\t\treturn next\n\t\t},\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v Entity) graphql.Marshaler {\n\t\t\treturn marshalOEntity2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐEntity(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext_Query_getEntity(ctx context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"FieldContext.Child cannot be called on type INTERFACE\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = field_Query_getEntity_args(ctx, ec, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc _Query___type(ctx context.Context, ec *executionContext, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_Query___type(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.IntrospectType(fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\t\t\treturn marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext_Query___type(ctx context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn fieldContext___Type_kind(ctx, ec, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext___Type_name(ctx, ec, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn fieldContext___Type_description(ctx, ec, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn fieldContext___Type_specifiedByURL(ctx, ec, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn fieldContext___Type_fields(ctx, ec, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn fieldContext___Type_interfaces(ctx, ec, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn fieldContext___Type_possibleTypes(ctx, ec, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn fieldContext___Type_enumValues(ctx, ec, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn fieldContext___Type_inputFields(ctx, ec, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn fieldContext___Type_ofType(ctx, ec, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn fieldContext___Type_isOneOf(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = field_Query___type_args(ctx, ec, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc _Query___schema(ctx context.Context, ec *executionContext, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_Query___schema(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.IntrospectSchema()\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\t\t\treturn marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext_Query___schema(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn fieldContext___Schema_description(ctx, ec, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn fieldContext___Schema_types(ctx, ec, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn fieldContext___Schema_queryType(ctx, ec, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn fieldContext___Schema_mutationType(ctx, ec, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn fieldContext___Schema_subscriptionType(ctx, ec, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn fieldContext___Schema_directives(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _Subscription_userCreated(ctx context.Context, ec *executionContext, field graphql.CollectedField) (ret func(ctx context.Context) graphql.Marshaler) {\n\treturn graphql.ResolveFieldStream(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_Subscription_userCreated(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Subscription().UserCreated(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tmessage, err := unmarshalOString2ᚖstring(ctx, ec, \"User created subscription\")\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal *User\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tif ec.Directives.Log == nil {\n\t\t\t\t\tvar zeroVal *User\n\t\t\t\t\treturn zeroVal, errors.New(\"directive log is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Log(ctx, nil, directive0, message)\n\t\t\t}\n\n\t\t\tnext = directive1\n\t\t\treturn next\n\t\t},\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *User) graphql.Marshaler {\n\t\t\treturn marshalNUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐUser(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_Subscription_userCreated(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Subscription\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn fieldContext_User_id(ctx, ec, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext_User_name(ctx, ec, field)\n\t\t\tcase \"email\":\n\t\t\t\treturn fieldContext_User_email(ctx, ec, field)\n\t\t\tcase \"age\":\n\t\t\t\treturn fieldContext_User_age(ctx, ec, field)\n\t\t\tcase \"role\":\n\t\t\t\treturn fieldContext_User_role(ctx, ec, field)\n\t\t\tcase \"createdAt\":\n\t\t\t\treturn fieldContext_User_createdAt(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type User\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _User_id(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_User_id(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalNID2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_User_id(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _User_name(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_User_name(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalNString2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_User_name(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _User_email(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_User_email(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Email, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalNString2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_User_email(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _User_age(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_User_age(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Age, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *int) graphql.Marshaler {\n\t\t\treturn marshalOInt2ᚖint(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext_User_age(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _User_role(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_User_role(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Role, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v RoleModel) graphql.Marshaler {\n\t\t\treturn marshalNRole2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐRoleModel(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_User_role(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Role does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _User_createdAt(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_User_createdAt(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.CreatedAt, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler {\n\t\t\treturn marshalODate2ᚖstring(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext_User_createdAt(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Date does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Directive_name(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Directive_name(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalNString2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext___Directive_name(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Directive_description(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Directive_description(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler {\n\t\t\treturn marshalOString2ᚖstring(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___Directive_description(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Directive_isRepeatable(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Directive_isRepeatable(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsRepeatable, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v bool) graphql.Marshaler {\n\t\t\treturn marshalNBoolean2bool(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext___Directive_isRepeatable(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Directive_locations(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Directive_locations(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Locations, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v []string) graphql.Marshaler {\n\t\t\treturn marshalN__DirectiveLocation2ᚕstringᚄ(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext___Directive_locations(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Directive_args(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Directive_args(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\t\t\treturn marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext___Directive_args(ctx context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext___InputValue_name(ctx, ec, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn fieldContext___InputValue_description(ctx, ec, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn fieldContext___InputValue_type(ctx, ec, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn fieldContext___InputValue_defaultValue(ctx, ec, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn fieldContext___InputValue_isDeprecated(ctx, ec, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn fieldContext___InputValue_deprecationReason(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = field___Directive_args_args(ctx, ec, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc ___EnumValue_name(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___EnumValue_name(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalNString2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext___EnumValue_name(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___EnumValue_description(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___EnumValue_description(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler {\n\t\t\treturn marshalOString2ᚖstring(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___EnumValue_description(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___EnumValue_isDeprecated(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___EnumValue_isDeprecated(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v bool) graphql.Marshaler {\n\t\t\treturn marshalNBoolean2bool(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext___EnumValue_isDeprecated(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___EnumValue_deprecationReason(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___EnumValue_deprecationReason(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler {\n\t\t\treturn marshalOString2ᚖstring(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___EnumValue_deprecationReason(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Field_name(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Field_name(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalNString2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext___Field_name(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Field_description(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Field_description(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler {\n\t\t\treturn marshalOString2ᚖstring(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___Field_description(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Field_args(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Field_args(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\t\t\treturn marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext___Field_args(ctx context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext___InputValue_name(ctx, ec, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn fieldContext___InputValue_description(ctx, ec, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn fieldContext___InputValue_type(ctx, ec, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn fieldContext___InputValue_defaultValue(ctx, ec, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn fieldContext___InputValue_isDeprecated(ctx, ec, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn fieldContext___InputValue_deprecationReason(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = field___Field_args_args(ctx, ec, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc ___Field_type(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Field_type(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\t\t\treturn marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext___Field_type(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn fieldContext___Type_kind(ctx, ec, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext___Type_name(ctx, ec, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn fieldContext___Type_description(ctx, ec, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn fieldContext___Type_specifiedByURL(ctx, ec, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn fieldContext___Type_fields(ctx, ec, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn fieldContext___Type_interfaces(ctx, ec, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn fieldContext___Type_possibleTypes(ctx, ec, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn fieldContext___Type_enumValues(ctx, ec, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn fieldContext___Type_inputFields(ctx, ec, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn fieldContext___Type_ofType(ctx, ec, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn fieldContext___Type_isOneOf(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Field_isDeprecated(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Field_isDeprecated(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v bool) graphql.Marshaler {\n\t\t\treturn marshalNBoolean2bool(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext___Field_isDeprecated(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Field_deprecationReason(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Field_deprecationReason(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler {\n\t\t\treturn marshalOString2ᚖstring(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___Field_deprecationReason(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___InputValue_name(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___InputValue_name(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalNString2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext___InputValue_name(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___InputValue_description(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___InputValue_description(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler {\n\t\t\treturn marshalOString2ᚖstring(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___InputValue_description(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___InputValue_type(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___InputValue_type(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\t\t\treturn marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext___InputValue_type(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn fieldContext___Type_kind(ctx, ec, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext___Type_name(ctx, ec, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn fieldContext___Type_description(ctx, ec, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn fieldContext___Type_specifiedByURL(ctx, ec, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn fieldContext___Type_fields(ctx, ec, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn fieldContext___Type_interfaces(ctx, ec, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn fieldContext___Type_possibleTypes(ctx, ec, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn fieldContext___Type_enumValues(ctx, ec, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn fieldContext___Type_inputFields(ctx, ec, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn fieldContext___Type_ofType(ctx, ec, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn fieldContext___Type_isOneOf(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___InputValue_defaultValue(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___InputValue_defaultValue(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DefaultValue, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler {\n\t\t\treturn marshalOString2ᚖstring(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___InputValue_defaultValue(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___InputValue_isDeprecated(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___InputValue_isDeprecated(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v bool) graphql.Marshaler {\n\t\t\treturn marshalNBoolean2bool(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext___InputValue_isDeprecated(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___InputValue_deprecationReason(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___InputValue_deprecationReason(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler {\n\t\t\treturn marshalOString2ᚖstring(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___InputValue_deprecationReason(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Schema_description(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Schema_description(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler {\n\t\t\treturn marshalOString2ᚖstring(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___Schema_description(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Schema_types(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Schema_types(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Types(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\t\t\treturn marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext___Schema_types(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn fieldContext___Type_kind(ctx, ec, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext___Type_name(ctx, ec, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn fieldContext___Type_description(ctx, ec, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn fieldContext___Type_specifiedByURL(ctx, ec, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn fieldContext___Type_fields(ctx, ec, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn fieldContext___Type_interfaces(ctx, ec, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn fieldContext___Type_possibleTypes(ctx, ec, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn fieldContext___Type_enumValues(ctx, ec, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn fieldContext___Type_inputFields(ctx, ec, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn fieldContext___Type_ofType(ctx, ec, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn fieldContext___Type_isOneOf(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Schema_queryType(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Schema_queryType(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.QueryType(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\t\t\treturn marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext___Schema_queryType(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn fieldContext___Type_kind(ctx, ec, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext___Type_name(ctx, ec, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn fieldContext___Type_description(ctx, ec, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn fieldContext___Type_specifiedByURL(ctx, ec, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn fieldContext___Type_fields(ctx, ec, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn fieldContext___Type_interfaces(ctx, ec, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn fieldContext___Type_possibleTypes(ctx, ec, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn fieldContext___Type_enumValues(ctx, ec, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn fieldContext___Type_inputFields(ctx, ec, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn fieldContext___Type_ofType(ctx, ec, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn fieldContext___Type_isOneOf(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Schema_mutationType(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Schema_mutationType(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.MutationType(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\t\t\treturn marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___Schema_mutationType(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn fieldContext___Type_kind(ctx, ec, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext___Type_name(ctx, ec, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn fieldContext___Type_description(ctx, ec, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn fieldContext___Type_specifiedByURL(ctx, ec, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn fieldContext___Type_fields(ctx, ec, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn fieldContext___Type_interfaces(ctx, ec, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn fieldContext___Type_possibleTypes(ctx, ec, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn fieldContext___Type_enumValues(ctx, ec, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn fieldContext___Type_inputFields(ctx, ec, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn fieldContext___Type_ofType(ctx, ec, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn fieldContext___Type_isOneOf(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Schema_subscriptionType(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Schema_subscriptionType(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SubscriptionType(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\t\t\treturn marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___Schema_subscriptionType(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn fieldContext___Type_kind(ctx, ec, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext___Type_name(ctx, ec, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn fieldContext___Type_description(ctx, ec, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn fieldContext___Type_specifiedByURL(ctx, ec, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn fieldContext___Type_fields(ctx, ec, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn fieldContext___Type_interfaces(ctx, ec, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn fieldContext___Type_possibleTypes(ctx, ec, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn fieldContext___Type_enumValues(ctx, ec, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn fieldContext___Type_inputFields(ctx, ec, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn fieldContext___Type_ofType(ctx, ec, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn fieldContext___Type_isOneOf(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Schema_directives(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Schema_directives(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Directives(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\t\t\treturn marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext___Schema_directives(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext___Directive_name(ctx, ec, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn fieldContext___Directive_description(ctx, ec, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn fieldContext___Directive_isRepeatable(ctx, ec, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn fieldContext___Directive_locations(ctx, ec, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn fieldContext___Directive_args(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Type_kind(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Type_kind(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Kind(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalN__TypeKind2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext___Type_kind(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Type_name(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Type_name(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler {\n\t\t\treturn marshalOString2ᚖstring(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___Type_name(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Type_description(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Type_description(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler {\n\t\t\treturn marshalOString2ᚖstring(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___Type_description(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Type_specifiedByURL(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Type_specifiedByURL(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SpecifiedByURL(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler {\n\t\t\treturn marshalOString2ᚖstring(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___Type_specifiedByURL(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Type_fields(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Type_fields(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\t\t\treturn marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___Type_fields(ctx context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext___Field_name(ctx, ec, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn fieldContext___Field_description(ctx, ec, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn fieldContext___Field_args(ctx, ec, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn fieldContext___Field_type(ctx, ec, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn fieldContext___Field_isDeprecated(ctx, ec, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn fieldContext___Field_deprecationReason(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = field___Type_fields_args(ctx, ec, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc ___Type_interfaces(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Type_interfaces(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Interfaces(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\t\t\treturn marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___Type_interfaces(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn fieldContext___Type_kind(ctx, ec, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext___Type_name(ctx, ec, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn fieldContext___Type_description(ctx, ec, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn fieldContext___Type_specifiedByURL(ctx, ec, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn fieldContext___Type_fields(ctx, ec, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn fieldContext___Type_interfaces(ctx, ec, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn fieldContext___Type_possibleTypes(ctx, ec, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn fieldContext___Type_enumValues(ctx, ec, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn fieldContext___Type_inputFields(ctx, ec, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn fieldContext___Type_ofType(ctx, ec, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn fieldContext___Type_isOneOf(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Type_possibleTypes(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Type_possibleTypes(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PossibleTypes(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\t\t\treturn marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___Type_possibleTypes(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn fieldContext___Type_kind(ctx, ec, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext___Type_name(ctx, ec, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn fieldContext___Type_description(ctx, ec, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn fieldContext___Type_specifiedByURL(ctx, ec, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn fieldContext___Type_fields(ctx, ec, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn fieldContext___Type_interfaces(ctx, ec, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn fieldContext___Type_possibleTypes(ctx, ec, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn fieldContext___Type_enumValues(ctx, ec, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn fieldContext___Type_inputFields(ctx, ec, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn fieldContext___Type_ofType(ctx, ec, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn fieldContext___Type_isOneOf(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Type_enumValues(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Type_enumValues(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\t\t\treturn marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___Type_enumValues(ctx context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext___EnumValue_name(ctx, ec, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn fieldContext___EnumValue_description(ctx, ec, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn fieldContext___EnumValue_isDeprecated(ctx, ec, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn fieldContext___EnumValue_deprecationReason(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = field___Type_enumValues_args(ctx, ec, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc ___Type_inputFields(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Type_inputFields(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.InputFields(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\t\t\treturn marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___Type_inputFields(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext___InputValue_name(ctx, ec, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn fieldContext___InputValue_description(ctx, ec, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn fieldContext___InputValue_type(ctx, ec, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn fieldContext___InputValue_defaultValue(ctx, ec, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn fieldContext___InputValue_isDeprecated(ctx, ec, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn fieldContext___InputValue_deprecationReason(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Type_ofType(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Type_ofType(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.OfType(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\t\t\treturn marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___Type_ofType(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn fieldContext___Type_kind(ctx, ec, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext___Type_name(ctx, ec, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn fieldContext___Type_description(ctx, ec, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn fieldContext___Type_specifiedByURL(ctx, ec, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn fieldContext___Type_fields(ctx, ec, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn fieldContext___Type_interfaces(ctx, ec, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn fieldContext___Type_possibleTypes(ctx, ec, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn fieldContext___Type_enumValues(ctx, ec, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn fieldContext___Type_inputFields(ctx, ec, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn fieldContext___Type_ofType(ctx, ec, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn fieldContext___Type_isOneOf(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Type_isOneOf(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Type_isOneOf(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsOneOf(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v bool) graphql.Marshaler {\n\t\t\treturn marshalOBoolean2bool(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___Type_isOneOf(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\nfunc unmarshalInputCreateUserInput(ctx context.Context, ec *executionContext, obj any) (CreateUserInput, error) {\n\tvar it CreateUserInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tif _, present := asMap[\"role\"]; !present {\n\t\tasMap[\"role\"] = \"USER\"\n\t}\n\n\tfieldsInOrder := [...]string{\"name\", \"email\", \"age\", \"role\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"name\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"name\"))\n\t\t\tdata, err := unmarshalNString2string(ctx, ec, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Name = data\n\t\tcase \"email\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"email\"))\n\t\t\tdata, err := unmarshalNString2string(ctx, ec, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Email = data\n\t\tcase \"age\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"age\"))\n\t\t\tdata, err := unmarshalOInt2ᚖint(ctx, ec, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Age = data\n\t\tcase \"role\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"role\"))\n\t\t\tdata, err := unmarshalORole2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐRoleModel(ctx, ec, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Role = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc unmarshalInputUserFilter(ctx context.Context, ec *executionContext, obj any) (UserFilter, error) {\n\tvar it UserFilter\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tif _, present := asMap[\"isActive\"]; !present {\n\t\tasMap[\"isActive\"] = true\n\t}\n\n\tfieldsInOrder := [...]string{\"name\", \"email\", \"age\", \"roles\", \"isActive\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"name\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"name\"))\n\t\t\tdata, err := unmarshalOString2ᚖstring(ctx, ec, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Name = data\n\t\tcase \"email\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"email\"))\n\t\t\tdata, err := unmarshalOString2ᚖstring(ctx, ec, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Email = data\n\t\tcase \"age\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"age\"))\n\t\t\tdata, err := unmarshalOInt2ᚖint(ctx, ec, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Age = data\n\t\tcase \"roles\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"roles\"))\n\t\t\tdata, err := unmarshalORole2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐRoleModelᚄ(ctx, ec, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Roles = data\n\t\tcase \"isActive\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"isActive\"))\n\t\t\tdata, err := unmarshalOBoolean2ᚖbool(ctx, ec, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.IsActive = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\nfunc _Entity(ctx context.Context, ec *executionContext, sel ast.SelectionSet, obj Entity) graphql.Marshaler {\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\tcase User:\n\t\treturn _User(ctx, ec, sel, &obj)\n\tcase *User:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn _User(ctx, ec, sel, obj)\n\tcase Admin:\n\t\treturn _Admin(ctx, ec, sel, &obj)\n\tcase *Admin:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn _Admin(ctx, ec, sel, obj)\n\tdefault:\n\t\tif typedObj, ok := obj.(graphql.Marshaler); ok {\n\t\t\treturn typedObj\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T; non-generated variants of Entity must implement graphql.Marshaler\", obj))\n\t\t}\n\t}\n}\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar adminImplementors = []string{\"Admin\", \"Entity\"}\n\nfunc _Admin(ctx context.Context, ec *executionContext, sel ast.SelectionSet, obj *Admin) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, adminImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Admin\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = _Admin_id(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = _Admin_name(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"permissions\":\n\t\t\tout.Values[i] = _Admin_permissions(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"createdAt\":\n\t\t\tout.Values[i] = _Admin_createdAt(ctx, ec, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar mutationImplementors = []string{\"Mutation\"}\n\nfunc _Mutation(ctx context.Context, ec *executionContext, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, mutationImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Mutation\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Mutation\")\n\t\tcase \"createUser\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn _Mutation_createUser(ctx, ec, field)\n\t\t\t})\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deleteUser\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn _Mutation_deleteUser(ctx, ec, field)\n\t\t\t})\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar mutationResponseImplementors = []string{\"MutationResponse\"}\n\nfunc _MutationResponse(ctx context.Context, ec *executionContext, sel ast.SelectionSet, obj *MutationResponse) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, mutationResponseImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"MutationResponse\")\n\t\tcase \"success\":\n\t\t\tout.Values[i] = _MutationResponse_success(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"message\":\n\t\t\tout.Values[i] = _MutationResponse_message(ctx, ec, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc _Query(ctx context.Context, ec *executionContext, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"getUser\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = _Query_getUser(ctx, ec, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"listUsers\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = _Query_listUsers(ctx, ec, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"getEntity\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = _Query_getEntity(ctx, ec, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn _Query___type(ctx, ec, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn _Query___schema(ctx, ec, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar subscriptionImplementors = []string{\"Subscription\"}\n\nfunc _Subscription(ctx context.Context, ec *executionContext, sel ast.SelectionSet) func(ctx context.Context) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, subscriptionImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Subscription\",\n\t})\n\tif len(fields) != 1 {\n\t\tgraphql.AddErrorf(ctx, \"must subscribe to exactly one stream\")\n\t\treturn nil\n\t}\n\n\tswitch fields[0].Name {\n\tcase \"userCreated\":\n\t\treturn _Subscription_userCreated(ctx, ec, fields[0])\n\tdefault:\n\t\tpanic(\"unknown field \" + strconv.Quote(fields[0].Name))\n\t}\n}\n\nvar userImplementors = []string{\"User\", \"Entity\"}\n\nfunc _User(ctx context.Context, ec *executionContext, sel ast.SelectionSet, obj *User) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, userImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"User\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = _User_id(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = _User_name(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"email\":\n\t\t\tout.Values[i] = _User_email(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"age\":\n\t\t\tout.Values[i] = _User_age(ctx, ec, field, obj)\n\t\tcase \"role\":\n\t\t\tout.Values[i] = _User_role(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"createdAt\":\n\t\t\tout.Values[i] = _User_createdAt(ctx, ec, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc ___Directive(ctx context.Context, ec *executionContext, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ___Directive_name(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ___Directive_description(ctx, ec, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ___Directive_isRepeatable(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ___Directive_locations(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ___Directive_args(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc ___EnumValue(ctx context.Context, ec *executionContext, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ___EnumValue_name(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ___EnumValue_description(ctx, ec, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ___EnumValue_isDeprecated(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ___EnumValue_deprecationReason(ctx, ec, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc ___Field(ctx context.Context, ec *executionContext, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ___Field_name(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ___Field_description(ctx, ec, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ___Field_args(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ___Field_type(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ___Field_isDeprecated(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ___Field_deprecationReason(ctx, ec, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc ___InputValue(ctx context.Context, ec *executionContext, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ___InputValue_name(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ___InputValue_description(ctx, ec, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ___InputValue_type(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ___InputValue_defaultValue(ctx, ec, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ___InputValue_isDeprecated(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ___InputValue_deprecationReason(ctx, ec, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc ___Schema(ctx context.Context, ec *executionContext, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ___Schema_description(ctx, ec, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ___Schema_types(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ___Schema_queryType(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ___Schema_mutationType(ctx, ec, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ___Schema_subscriptionType(ctx, ec, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ___Schema_directives(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc ___Type(ctx context.Context, ec *executionContext, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ___Type_kind(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ___Type_name(ctx, ec, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ___Type_description(ctx, ec, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ___Type_specifiedByURL(ctx, ec, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ___Type_fields(ctx, ec, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ___Type_interfaces(ctx, ec, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ___Type_possibleTypes(ctx, ec, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ___Type_enumValues(ctx, ec, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ___Type_inputFields(ctx, ec, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ___Type_ofType(ctx, ec, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ___Type_isOneOf(ctx, ec, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc unmarshalNBoolean2bool(ctx context.Context, ec *executionContext, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc marshalNBoolean2bool(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc unmarshalNCreateUserInput2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐCreateUserInput(ctx context.Context, ec *executionContext, v any) (CreateUserInput, error) {\n\tres, err := unmarshalInputCreateUserInput(ctx, ec, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc unmarshalNID2string(ctx context.Context, ec *executionContext, v any) (string, error) {\n\tres, err := graphql.UnmarshalID(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc marshalNID2string(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalID(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc marshalNMutationResponse2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐMutationResponse(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v MutationResponse) graphql.Marshaler {\n\treturn _MutationResponse(ctx, ec, sel, &v)\n}\n\nfunc marshalNMutationResponse2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐMutationResponse(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v *MutationResponse) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn _MutationResponse(ctx, ec, sel, v)\n}\n\nfunc unmarshalNRole2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐRoleModel(ctx context.Context, ec *executionContext, v any) (RoleModel, error) {\n\ttmp, err := graphql.UnmarshalString(v)\n\tres := unmarshalNRole2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐRoleModelF[tmp]\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc marshalNRole2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐRoleModel(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v RoleModel) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(marshalNRole2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐRoleModelF[v])\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nvar (\n\tunmarshalNRole2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐRoleModelF = map[string]RoleModel{\n\t\t\"ADMIN\": RoleModelAdmin,\n\t\t\"USER\":  RoleModelUser,\n\t\t\"GUEST\": RoleModelGuest,\n\t}\n\tmarshalNRole2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐRoleModelF = map[RoleModel]string{\n\t\tRoleModelAdmin: \"ADMIN\",\n\t\tRoleModelUser:  \"USER\",\n\t\tRoleModelGuest: \"GUEST\",\n\t}\n)\n\nfunc unmarshalNString2string(ctx context.Context, ec *executionContext, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc marshalNString2string(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc unmarshalNString2ᚕstringᚄ(ctx context.Context, ec *executionContext, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = unmarshalNString2string(ctx, ec, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc marshalNString2ᚕstringᚄ(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = marshalNString2string(ctx, ec, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc marshalNUser2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐUser(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v User) graphql.Marshaler {\n\treturn _User(ctx, ec, sel, &v)\n}\n\nfunc marshalNUser2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐUserᚄ(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v []*User) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn marshalNUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐUser(ctx, ec, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc marshalNUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐUser(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v *User) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn _User(ctx, ec, sel, v)\n}\n\nfunc marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ___Directive(ctx, ec, sel, &v)\n}\n\nfunc marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, ec, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc unmarshalN__DirectiveLocation2string(ctx context.Context, ec *executionContext, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc marshalN__DirectiveLocation2string(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, ec *executionContext, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = unmarshalN__DirectiveLocation2string(ctx, ec, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn marshalN__DirectiveLocation2string(ctx, ec, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ___EnumValue(ctx, ec, sel, &v)\n}\n\nfunc marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ___Field(ctx, ec, sel, &v)\n}\n\nfunc marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ___InputValue(ctx, ec, sel, &v)\n}\n\nfunc marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, ec, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ___Type(ctx, ec, sel, &v)\n}\n\nfunc marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, ec, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ___Type(ctx, ec, sel, v)\n}\n\nfunc unmarshalN__TypeKind2string(ctx context.Context, ec *executionContext, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc marshalN__TypeKind2string(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc unmarshalOBoolean2bool(ctx context.Context, ec *executionContext, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc marshalOBoolean2bool(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc unmarshalOBoolean2ᚖbool(ctx context.Context, ec *executionContext, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc marshalOBoolean2ᚖbool(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc unmarshalODate2ᚖstring(ctx context.Context, ec *executionContext, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc marshalODate2ᚖstring(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc marshalOEntity2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐEntity(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v Entity) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn _Entity(ctx, ec, sel, v)\n}\n\nfunc unmarshalOInt2ᚖint(ctx context.Context, ec *executionContext, v any) (*int, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalInt(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc marshalOInt2ᚖint(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v *int) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalInt(*v)\n\treturn res\n}\n\nfunc unmarshalORole2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐRoleModelᚄ(ctx context.Context, ec *executionContext, v any) ([]RoleModel, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]RoleModel, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = unmarshalNRole2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐRoleModel(ctx, ec, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc marshalORole2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐRoleModelᚄ(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v []RoleModel) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn marshalNRole2githubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐRoleModel(ctx, ec, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc unmarshalORole2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐRoleModel(ctx context.Context, ec *executionContext, v any) (*RoleModel, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\ttmp, err := graphql.UnmarshalString(v)\n\tres := unmarshalORole2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐRoleModelF[tmp]\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc marshalORole2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐRoleModel(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v *RoleModel) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(marshalORole2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐRoleModelF[*v])\n\treturn res\n}\n\nvar (\n\tunmarshalORole2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐRoleModelF = map[string]RoleModel{\n\t\t\"ADMIN\": RoleModelAdmin,\n\t\t\"USER\":  RoleModelUser,\n\t\t\"GUEST\": RoleModelGuest,\n\t}\n\tmarshalORole2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐRoleModelF = map[RoleModel]string{\n\t\tRoleModelAdmin: \"ADMIN\",\n\t\tRoleModelUser:  \"USER\",\n\t\tRoleModelGuest: \"GUEST\",\n\t}\n)\n\nfunc unmarshalOString2ᚕstringᚄ(ctx context.Context, ec *executionContext, v any) ([]string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = unmarshalNString2string(ctx, ec, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc marshalOString2ᚕstringᚄ(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = marshalNString2string(ctx, ec, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc unmarshalOString2ᚖstring(ctx context.Context, ec *executionContext, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc marshalOString2ᚖstring(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc marshalOUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐUser(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v *User) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn _User(ctx, ec, sel, v)\n}\n\nfunc unmarshalOUserFilter2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋcodegenᚋtestserverᚋusefunctionsyntaxforexecutioncontextᚐUserFilter(ctx context.Context, ec *executionContext, v any) (*UserFilter, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := unmarshalInputUserFilter(ctx, ec, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, ec, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, ec, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, ec, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ___Schema(ctx, ec, sel, v)\n}\n\nfunc marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, ec, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ___Type(ctx, ec, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "codegen/testserver/usefunctionsyntaxforexecutioncontext/generated_test.go",
    "content": "//go:generate rm -f resolver.go\n//go:generate go run ../../../testdata/gqlgen.go -config gqlgen.yml -stub stub.go\n\npackage usefunctionsyntaxforexecutioncontext\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestQuery(t *testing.T) {\n\tresolvers := &Stub{}\n\tsrv := handler.New(NewExecutableSchema(Config{\n\t\tResolvers: resolvers,\n\t\tDirectives: DirectiveRoot{\n\t\t\tLog: LogDirective,\n\t\t},\n\t}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\ttestAge := new(int)\n\tcreatedAt := \"2021-01-01\"\n\tresolvers.QueryResolver.GetUser = func(ctx context.Context, id string) (*User, error) {\n\t\treturn &User{\n\t\t\tID:        id,\n\t\t\tName:      \"test\",\n\t\t\tEmail:     \"testEmail\",\n\t\t\tAge:       testAge,\n\t\t\tRole:      RoleModelAdmin,\n\t\t\tCreatedAt: &createdAt,\n\t\t}, nil\n\t}\n\n\tresolvers.QueryResolver.ListUsers = func(ctx context.Context, filter *UserFilter) ([]*User, error) {\n\t\treturn []*User{\n\t\t\t{\n\t\t\t\tID:        \"1\",\n\t\t\t\tName:      \"test1\",\n\t\t\t\tEmail:     \"testEmail\",\n\t\t\t\tAge:       testAge,\n\t\t\t\tRole:      RoleModelAdmin,\n\t\t\t\tCreatedAt: &createdAt,\n\t\t\t},\n\t\t\t{\n\t\t\t\tID:        \"2\",\n\t\t\t\tName:      \"test2\",\n\t\t\t\tEmail:     \"testEmail\",\n\t\t\t\tAge:       testAge,\n\t\t\t\tRole:      RoleModelAdmin,\n\t\t\t\tCreatedAt: &createdAt,\n\t\t\t},\n\t\t}, nil\n\t}\n\n\texpectedJsonResp := `\n\t{\n\t\t\"getUser\": {\n\t\t\t\"id\": \"1\",\n\t\t\t\"name\": \"test\",\n\t\t\t\"email\": \"testEmail\",\n\t\t\t\"age\": 0,\n\t\t\t\"role\": \"ADMIN\",\n\t\t\t\"createdAt\": \"2021-01-01\"\n\t\t},\n\t\t\"listUsers\": [\n\t\t\t{\n\t\t\t\"id\": \"1\",\n\t\t\t\"name\": \"test1\",\n\t\t\t\"email\": \"testEmail\",\n\t\t\t\"age\": 0,\n\t\t\t\"role\": \"ADMIN\",\n\t\t\t\"createdAt\": \"2021-01-01\"\n\t\t\t},\n\t\t\t{\n\t\t\t\"id\": \"2\",\n\t\t\t\"name\": \"test2\",\n\t\t\t\"email\": \"testEmail\",\n\t\t\t\"age\": 0,\n\t\t\t\"role\": \"ADMIN\",\n\t\t\t\"createdAt\": \"2021-01-01\"\n\t\t\t}\n\t\t]\n\t}\n\t`\n\n\tt.Run(\"test query\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tGetUser struct {\n\t\t\t\tID        string `json:\"id\"`\n\t\t\t\tName      string `json:\"name\"`\n\t\t\t\tEmail     string `json:\"email\"`\n\t\t\t\tAge       *int   `json:\"age\"`\n\t\t\t\tRole      string `json:\"role\"`\n\t\t\t\tCreatedAt string `json:\"createdAt\"`\n\t\t\t} `json:\"getUser\"`\n\n\t\t\tListUsers []struct {\n\t\t\t\tID        string `json:\"id\"`\n\t\t\t\tName      string `json:\"name\"`\n\t\t\t\tEmail     string `json:\"email\"`\n\t\t\t\tAge       *int   `json:\"age\"`\n\t\t\t\tRole      string `json:\"role\"`\n\t\t\t\tCreatedAt string `json:\"createdAt\"`\n\t\t\t} `json:\"listUsers\"`\n\t\t}\n\t\tc.MustPost(`query TestQuery {\n\t\t\t# Fetch a user by ID\n\t\t\tgetUser(id: \"1\") {\n\t\t\t\tid\n\t\t\t\tname\n\t\t\t\temail\n\t\t\t\tage\n\t\t\t\trole\n\t\t\t\tcreatedAt\n\t\t\t}\n\n\t\t\t# List users with a filter\n\t\t\tlistUsers(filter: { isActive: true, roles: [ADMIN, USER] }) {\n\t\t\t\tid\n\t\t\t\tname\n\t\t\t\temail\n\t\t\t\tage\n\t\t\t\trole\n\t\t\t\tcreatedAt\n\t\t\t}\n\t\t\t}\n\t\t`, &resp)\n\t\tjsonResp, err := json.Marshal(resp)\n\t\trequire.NoError(t, err)\n\t\trequire.JSONEq(t, expectedJsonResp, string(jsonResp))\n\t})\n}\n\nfunc TestMutation(t *testing.T) {\n\tresolvers := &Stub{}\n\tsrv := handler.New(NewExecutableSchema(Config{\n\t\tResolvers: resolvers,\n\t\tDirectives: DirectiveRoot{\n\t\t\tLog: LogDirective,\n\t\t},\n\t}))\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tcreatedAt := \"2021-01-01\"\n\tresolvers.MutationResolver.CreateUser = func(ctx context.Context, input CreateUserInput) (*User, error) {\n\t\treturn &User{\n\t\t\tID:        \"1\",\n\t\t\tName:      input.Name,\n\t\t\tEmail:     input.Email,\n\t\t\tAge:       input.Age,\n\t\t\tRole:      *input.Role,\n\t\t\tCreatedAt: &createdAt,\n\t\t}, nil\n\t}\n\n\tmessage := \"User deleted successfully\"\n\tresolvers.MutationResolver.DeleteUser = func(ctx context.Context, id string) (*MutationResponse, error) {\n\t\treturn &MutationResponse{\n\t\t\tSuccess: true,\n\t\t\tMessage: &message,\n\t\t}, nil\n\t}\n\n\texpectedJsonResp := `\n\t{\n\t\t\"createUser\": {\n\t\t\t\"id\": \"1\",\n\t\t\t\"name\": \"test\",\n\t\t\t\"email\": \"testEmail\",\n\t\t\t\"age\": 0,\n\t\t\t\"role\": \"ADMIN\",\n\t\t\t\"createdAt\": \"2021-01-01\"\n\t\t},\n\t\t\"deleteUser\": {\n\t\t\t\"success\": true,\n\t\t\t\"message\": \"User deleted successfully\"\n\t\t}\n\t}\n\t`\n\n\tt.Run(\"test mutation\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tCreateUser struct {\n\t\t\t\tID        string `json:\"id\"`\n\t\t\t\tName      string `json:\"name\"`\n\t\t\t\tEmail     string `json:\"email\"`\n\t\t\t\tAge       *int   `json:\"age\"`\n\t\t\t\tRole      string `json:\"role\"`\n\t\t\t\tCreatedAt string `json:\"createdAt\"`\n\t\t\t} `json:\"createUser\"`\n\n\t\t\tDeleteUser struct {\n\t\t\t\tSuccess bool   `json:\"success\"`\n\t\t\t\tMessage string `json:\"message\"`\n\t\t\t} `json:\"deleteUser\"`\n\t\t}\n\n\t\tc.MustPost(`mutation TestMutation {\n\t\t\tcreateUser(input: { name: \"test\", email: \"testEmail\", age: 0, role: ADMIN }) {\n\t\t\t\tid\n\t\t\t\tname\n\t\t\t\temail\n\t\t\t\tage\n\t\t\t\trole\n\t\t\t\tcreatedAt\n\t\t\t}\n\t\t\tdeleteUser(id: \"1\") {\n\t\t\t\tsuccess\n\t\t\t\tmessage\n\t\t\t}\n\t\t}`, &resp)\n\n\t\tjsonResp, err := json.Marshal(resp)\n\t\trequire.NoError(t, err)\n\t\trequire.JSONEq(t, expectedJsonResp, string(jsonResp))\n\t})\n}\n\nfunc TestSubscription(t *testing.T) {\n\tresolvers := &Stub{}\n\tsrv := handler.New(NewExecutableSchema(Config{\n\t\tResolvers: resolvers,\n\t\tDirectives: DirectiveRoot{\n\t\t\tLog: LogDirective,\n\t\t},\n\t}))\n\tsrv.AddTransport(transport.Websocket{\n\t\tKeepAlivePingInterval: time.Second,\n\t})\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tcreatedAt := \"2021-01-01\"\n\tresolvers.SubscriptionResolver.UserCreated = func(ctx context.Context) (<-chan *User, error) {\n\t\tch := make(chan *User, 1)\n\t\tgo func() {\n\t\t\tdefer close(ch)\n\t\t\tch <- &User{\n\t\t\t\tID:        \"1\",\n\t\t\t\tName:      \"testUser\",\n\t\t\t\tEmail:     \"testEmail\",\n\t\t\t\tAge:       nil,\n\t\t\t\tRole:      \"ADMIN\",\n\t\t\t\tCreatedAt: &createdAt,\n\t\t\t}\n\t\t}()\n\t\treturn ch, nil\n\t}\n\n\tt.Run(\"test subscription\", func(t *testing.T) {\n\t\tvar resp struct {\n\t\t\tUserCreated struct {\n\t\t\t\tID        string `json:\"id\"`\n\t\t\t\tName      string `json:\"name\"`\n\t\t\t\tEmail     string `json:\"email\"`\n\t\t\t\tAge       *int   `json:\"age\"`\n\t\t\t\tRole      string `json:\"role\"`\n\t\t\t\tCreatedAt string `json:\"createdAt\"`\n\t\t\t} `json:\"userCreated\"`\n\t\t}\n\n\t\texpectedJsonResp := `\n\t\t{\n\t\t\t\"userCreated\": {\n\t\t\t\t\"id\": \"1\",\n\t\t\t\t\"name\": \"testUser\",\n\t\t\t\t\"email\": \"testEmail\",\n\t\t\t\t\"age\": null,\n\t\t\t\t\"role\": \"ADMIN\",\n\t\t\t\t\"createdAt\": \"2021-01-01\"\n\t\t\t}\n\t\t}\n\t\t`\n\n\t\tsub := c.Websocket(`subscription TestSubscription {\n\t\t\tuserCreated {\n\t\t\t\tid\n\t\t\t\tname\n\t\t\t\temail\n\t\t\t\tage\n\t\t\t\trole\n\t\t\t\tcreatedAt\n\t\t\t}\n\t\t}`)\n\n\t\tdefer sub.Close()\n\n\t\terr := sub.Next(&resp)\n\t\trequire.NoError(t, err)\n\n\t\tjsonResp, err := json.Marshal(resp)\n\t\trequire.NoError(t, err)\n\t\trequire.JSONEq(t, expectedJsonResp, string(jsonResp))\n\t})\n}\n"
  },
  {
    "path": "codegen/testserver/usefunctionsyntaxforexecutioncontext/gqlgen.yml",
    "content": "schema:\n  - \"*.graphql\"\nskip_validation: true\nuse_function_syntax_for_execution_context: true\nexec:\n  filename: generated.go\n  package: usefunctionsyntaxforexecutioncontext\nmodel:\n  filename: models-gen.go\n  package: usefunctionsyntaxforexecutioncontext\nresolver:\n  filename: resolver.go\n  package: usefunctionsyntaxforexecutioncontext\n  type: Resolver\n\nautobind:\n  - \"github.com/99designs/gqlgen/codegen/testserver\"\n  - \"github.com/99designs/gqlgen/codegen/testserver/usefunctionsyntaxforexecutioncontext\"\n\nmodels:\n  Email:\n    model: \"github.com/99designs/gqlgen/codegen/testserver/singlefile.Email\"\n  StringFromContextFunction:\n    model: \"github.com/99designs/gqlgen/codegen/testserver/singlefile.StringFromContextFunction\"\n"
  },
  {
    "path": "codegen/testserver/usefunctionsyntaxforexecutioncontext/models-gen.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage usefunctionsyntaxforexecutioncontext\n\ntype Entity interface {\n\tIsEntity()\n\tGetID() string\n\tGetCreatedAt() *string\n}\n\ntype Admin struct {\n\tID          string   `json:\"id\"`\n\tName        string   `json:\"name\"`\n\tPermissions []string `json:\"permissions\"`\n\tCreatedAt   *string  `json:\"createdAt,omitempty\"`\n}\n\nfunc (Admin) IsEntity()                  {}\nfunc (this Admin) GetID() string         { return this.ID }\nfunc (this Admin) GetCreatedAt() *string { return this.CreatedAt }\n\ntype CreateUserInput struct {\n\tName  string     `json:\"name\"`\n\tEmail string     `json:\"email\"`\n\tAge   *int       `json:\"age,omitempty\"`\n\tRole  *RoleModel `json:\"role,omitempty\"`\n}\n\ntype Mutation struct {\n}\n\ntype MutationResponse struct {\n\tSuccess bool    `json:\"success\"`\n\tMessage *string `json:\"message,omitempty\"`\n}\n\ntype Query struct {\n}\n\ntype Subscription struct {\n}\n\ntype User struct {\n\tID        string    `json:\"id\"`\n\tName      string    `json:\"name\"`\n\tEmail     string    `json:\"email\"`\n\tAge       *int      `json:\"age,omitempty\"`\n\tRole      RoleModel `json:\"role\"`\n\tCreatedAt *string   `json:\"createdAt,omitempty\"`\n}\n\nfunc (User) IsEntity()                  {}\nfunc (this User) GetID() string         { return this.ID }\nfunc (this User) GetCreatedAt() *string { return this.CreatedAt }\n\ntype UserFilter struct {\n\tName     *string     `json:\"name,omitempty\"`\n\tEmail    *string     `json:\"email,omitempty\"`\n\tAge      *int        `json:\"age,omitempty\"`\n\tRoles    []RoleModel `json:\"roles,omitempty\"`\n\tIsActive *bool       `json:\"isActive,omitempty\"`\n}\n"
  },
  {
    "path": "codegen/testserver/usefunctionsyntaxforexecutioncontext/models.go",
    "content": "package usefunctionsyntaxforexecutioncontext\n\ntype RoleModel string\n\nvar (\n\tRoleModelAdmin RoleModel = \"ADMIN\"\n\tRoleModelUser  RoleModel = \"USER\"\n\tRoleModelGuest RoleModel = \"GUEST\"\n)\n"
  },
  {
    "path": "codegen/testserver/usefunctionsyntaxforexecutioncontext/resolver.go",
    "content": "package usefunctionsyntaxforexecutioncontext\n\n// THIS CODE WILL BE UPDATED WITH SCHEMA CHANGES. PREVIOUS IMPLEMENTATION FOR SCHEMA CHANGES WILL BE KEPT IN THE COMMENT SECTION. IMPLEMENTATION FOR UNCHANGED SCHEMA WILL BE KEPT.\n\nimport (\n\t\"context\"\n)\n\ntype Resolver struct{}\n\n// CreateUser is the resolver for the createUser field.\nfunc (r *mutationResolver) CreateUser(ctx context.Context, input CreateUserInput) (*User, error) {\n\tpanic(\"not implemented\")\n}\n\n// DeleteUser is the resolver for the deleteUser field.\nfunc (r *mutationResolver) DeleteUser(ctx context.Context, id string) (*MutationResponse, error) {\n\tpanic(\"not implemented\")\n}\n\n// GetUser is the resolver for the getUser field.\nfunc (r *queryResolver) GetUser(ctx context.Context, id string) (*User, error) {\n\tpanic(\"not implemented\")\n}\n\n// ListUsers is the resolver for the listUsers field.\nfunc (r *queryResolver) ListUsers(ctx context.Context, filter *UserFilter) ([]*User, error) {\n\tpanic(\"not implemented\")\n}\n\n// GetEntity is the resolver for the getEntity field.\nfunc (r *queryResolver) GetEntity(ctx context.Context, id string) (Entity, error) {\n\tpanic(\"not implemented\")\n}\n\n// UserCreated is the resolver for the userCreated field.\nfunc (r *subscriptionResolver) UserCreated(ctx context.Context) (<-chan *User, error) {\n\tpanic(\"not implemented\")\n}\n\n// Mutation returns MutationResolver implementation.\nfunc (r *Resolver) Mutation() MutationResolver { return &mutationResolver{r} }\n\n// Query returns QueryResolver implementation.\nfunc (r *Resolver) Query() QueryResolver { return &queryResolver{r} }\n\n// Subscription returns SubscriptionResolver implementation.\nfunc (r *Resolver) Subscription() SubscriptionResolver { return &subscriptionResolver{r} }\n\ntype mutationResolver struct{ *Resolver }\ntype queryResolver struct{ *Resolver }\ntype subscriptionResolver struct{ *Resolver }\n"
  },
  {
    "path": "codegen/testserver/usefunctionsyntaxforexecutioncontext/stub.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage usefunctionsyntaxforexecutioncontext\n\nimport (\n\t\"context\"\n)\n\ntype Stub struct {\n\tMutationResolver struct {\n\t\tCreateUser func(ctx context.Context, input CreateUserInput) (*User, error)\n\t\tDeleteUser func(ctx context.Context, id string) (*MutationResponse, error)\n\t}\n\tQueryResolver struct {\n\t\tGetUser   func(ctx context.Context, id string) (*User, error)\n\t\tListUsers func(ctx context.Context, filter *UserFilter) ([]*User, error)\n\t\tGetEntity func(ctx context.Context, id string) (Entity, error)\n\t}\n\tSubscriptionResolver struct {\n\t\tUserCreated func(ctx context.Context) (<-chan *User, error)\n\t}\n}\n\nfunc (r *Stub) Mutation() MutationResolver {\n\treturn &stubMutation{r}\n}\nfunc (r *Stub) Query() QueryResolver {\n\treturn &stubQuery{r}\n}\nfunc (r *Stub) Subscription() SubscriptionResolver {\n\treturn &stubSubscription{r}\n}\n\ntype stubMutation struct{ *Stub }\n\nfunc (r *stubMutation) CreateUser(ctx context.Context, input CreateUserInput) (*User, error) {\n\treturn r.MutationResolver.CreateUser(ctx, input)\n}\nfunc (r *stubMutation) DeleteUser(ctx context.Context, id string) (*MutationResponse, error) {\n\treturn r.MutationResolver.DeleteUser(ctx, id)\n}\n\ntype stubQuery struct{ *Stub }\n\nfunc (r *stubQuery) GetUser(ctx context.Context, id string) (*User, error) {\n\treturn r.QueryResolver.GetUser(ctx, id)\n}\nfunc (r *stubQuery) ListUsers(ctx context.Context, filter *UserFilter) ([]*User, error) {\n\treturn r.QueryResolver.ListUsers(ctx, filter)\n}\nfunc (r *stubQuery) GetEntity(ctx context.Context, id string) (Entity, error) {\n\treturn r.QueryResolver.GetEntity(ctx, id)\n}\n\ntype stubSubscription struct{ *Stub }\n\nfunc (r *stubSubscription) UserCreated(ctx context.Context) (<-chan *User, error) {\n\treturn r.SubscriptionResolver.UserCreated(ctx)\n}\n"
  },
  {
    "path": "codegen/testserver/usefunctionsyntaxforexecutioncontext/test.graphql",
    "content": "# Custom directive to log field access (limited to fields, not input fields)\ndirective @log(message: String) on FIELD_DEFINITION\ndirective @goModel(\n    model: String\n    models: [String!]\n) on OBJECT | INPUT_OBJECT | SCALAR | ENUM | INTERFACE | UNION\ndirective @goEnum(value: String) on ENUM_VALUE\n\n# Custom scalar for Date\nscalar Date\n\n# Enum for user roles\nenum Role @goModel(model: \"github.com/99designs/gqlgen/codegen/testserver/usefunctionsyntaxforexecutioncontext.RoleModel\") {\n  ADMIN @goEnum(value: \"github.com/99designs/gqlgen/codegen/testserver/usefunctionsyntaxforexecutioncontext.RoleModelAdmin\")\n  USER @goEnum(value: \"github.com/99designs/gqlgen/codegen/testserver/usefunctionsyntaxforexecutioncontext.RoleModelUser\")\n  GUEST @goEnum(value: \"github.com/99designs/gqlgen/codegen/testserver/usefunctionsyntaxforexecutioncontext.RoleModelGuest\")\n}\n\n# Interface representing an Entity with common fields\ninterface Entity {\n  id: ID!\n  createdAt: Date\n}\n\n# Input type for creating a user\ninput CreateUserInput {\n  name: String!\n  email: String!\n  age: Int\n  role: Role = USER\n}\n\n# Input type with parameters for filtering users\ninput UserFilter {\n  name: String\n  email: String\n  age: Int\n  roles: [Role!]\n  isActive: Boolean = true\n}\n\n# Type representing a user, implementing the Entity interface\ntype User implements Entity {\n  id: ID!\n  name: String!\n  email: String!\n  age: Int\n  role: Role!\n  createdAt: Date\n}\n\n# Type representing an admin, implementing the Entity interface\ntype Admin implements Entity {\n  id: ID!\n  name: String!\n  permissions: [String!]!\n  createdAt: Date\n}\n\n# Type for mutation result\ntype MutationResponse {\n  success: Boolean!\n  message: String\n}\n\n# Root Query type\ntype Query {\n  # Fetch a user by ID\n  getUser(id: ID!): User @log(message: \"Fetching a user\")\n\n  # List all users with optional filters\n  listUsers(filter: UserFilter): [User!]! @log(message: \"Listing users\")\n\n  # Fetch an entity by ID (could be User or Admin)\n  getEntity(id: ID!): Entity @log(message: \"Fetching an entity\")\n}\n\n# Root Mutation type\ntype Mutation {\n  # Create a new user\n  createUser(input: CreateUserInput!): User! @log(message: \"Creating a user\")\n\n  # Delete a user by ID\n  deleteUser(id: ID!): MutationResponse! @log(message: \"Deleting a user\")\n}\n\n# Root Subscription type\ntype Subscription {\n  # Subscription to notify when a user is created\n  userCreated: User! @log(message: \"User created subscription\")\n}\n"
  },
  {
    "path": "codegen/type.go",
    "content": "package codegen\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/99designs/gqlgen/codegen/config\"\n)\n\nfunc (b *builder) buildTypes() map[string]*config.TypeReference {\n\tret := map[string]*config.TypeReference{}\n\tfor _, ref := range b.Binder.References {\n\t\tprocessType(ret, ref)\n\t}\n\treturn ret\n}\n\nfunc processType(ret map[string]*config.TypeReference, ref *config.TypeReference) {\n\tkey := ref.UniquenessKey()\n\tif existing, found := ret[key]; found {\n\t\t// Simplistic check of content which is obviously different.\n\t\texistingGQL := fmt.Sprintf(\"%v\", existing.GQL)\n\t\tnewGQL := fmt.Sprintf(\"%v\", ref.GQL)\n\t\tif existingGQL != newGQL {\n\t\t\tpanic(\n\t\t\t\tfmt.Sprintf(\n\t\t\t\t\t\"non-unique key \\\"%s\\\", trying to replace %s with %s\",\n\t\t\t\t\tkey,\n\t\t\t\t\texistingGQL,\n\t\t\t\t\tnewGQL,\n\t\t\t\t),\n\t\t\t)\n\t\t}\n\t}\n\tret[key] = ref\n\n\tif ref.IsSlice() || ref.IsPtrToSlice() || ref.IsPtrToPtr() || ref.IsPtrToIntf() {\n\t\tprocessType(ret, ref.Elem())\n\t}\n}\n"
  },
  {
    "path": "codegen/type.gotpl",
    "content": "{{ $useFunctionSyntaxForExecutionContext := .Config.UseFunctionSyntaxForExecutionContext }}\n{{- range $type := .ReferencedTypes }}\n\t{{ with $type.UnmarshalFunc }}\n\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\tfunc {{ . }}(ctx context.Context, ec *executionContext, v any) ({{ $type.GO | ref }}, error) {\n\t\t{{- else -}}\n\t\tfunc (ec *executionContext) {{ . }}(ctx context.Context, v any) ({{ $type.GO | ref }}, error) {\n\t\t{{- end -}}\n\t\t\t{{- if and $type.IsNilable (not $type.GQL.NonNull) (not $type.IsPtrToPtr) }}\n\t\t\t\tif v == nil { return nil, nil }\n\t\t\t{{- end }}\n\t\t\t{{- if or $type.IsPtrToSlice $type.IsPtrToIntf }}\n\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\tres, err := {{ $type.Elem.UnmarshalFunc }}(ctx, ec, v)\n\t\t\t\t{{- else -}}\n\t\t\t\tres, err := ec.{{ $type.Elem.UnmarshalFunc }}(ctx, v)\n\t\t\t\t{{- end }}\n\t\t\t\treturn &res, graphql.ErrorOnPath(ctx, err)\n\t\t\t{{- else if $type.IsSlice }}\n\t\t\t\tvar vSlice []any\n\t\t\t\tvSlice = graphql.CoerceList(v)\n\t\t\t\tvar err error\n\t\t\t\tres := make([]{{$type.GO.Elem | ref}}, len(vSlice))\n\t\t\t\tfor i := range vSlice {\n\t\t\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\tres[i], err = {{ $type.Elem.UnmarshalFunc }}(ctx, ec, vSlice[i])\n\t\t\t\t\t{{- else -}}\n\t\t\t\t\tres[i], err = ec.{{ $type.Elem.UnmarshalFunc }}(ctx, vSlice[i])\n\t\t\t\t\t{{- end }}\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn res, nil\n\t\t\t{{- else if and $type.IsPtrToPtr (not $type.Unmarshaler) (not $type.IsMarshaler) }}\n\t\t\t\tvar pres {{ $type.Elem.GO | ref }}\n\t\t\t\tif v != nil {\n\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\tres, err := {{ $type.Elem.UnmarshalFunc }}(ctx, ec, v)\n\t\t\t\t\t{{- else -}}\n\t\t\t\t\tres, err := ec.{{ $type.Elem.UnmarshalFunc }}(ctx, v)\n\t\t\t\t\t{{- end }}\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn nil, graphql.ErrorOnPath(ctx, err)\n\t\t\t\t\t}\n\t\t\t\t\tpres = res\n\t\t\t\t}\n\t\t\t\treturn &pres, nil\n\t\t\t{{- else }}\n\t\t\t\t{{- if $type.Unmarshaler }}\n\t\t\t\t\t{{- if $type.HasEnumValues }}\n\t\t\t\t\t\ttmp, err := {{ $type.Unmarshaler | call }}(v)\n\t\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\t\tres := {{ $type.UnmarshalFuncFunctionSyntax }}[tmp]\n\t\t\t\t\t\t{{- else -}}\n\t\t\t\t\t\tres := {{ $type.UnmarshalFunc }}[tmp]\n\t\t\t\t\t\t{{- end -}}\n\t\t\t\t\t{{- else if $type.CastType }}\n\t\t\t\t\t\t{{- if $type.IsContext }}\n\t\t\t\t\t\t\ttmp, err := {{ $type.Unmarshaler | call }}(ctx, v)\n\t\t\t\t\t\t{{- else }}\n\t\t\t\t\t\t\ttmp, err := {{ $type.Unmarshaler | call }}(v)\n\t\t\t\t\t\t{{- end }}\n\t\t\t\t\t\t{{- if and $type.IsNilable $type.Elem }}\n\t\t\t\t\t\t\tres := {{ $type.Elem.GO | ref }}(tmp)\n\t\t\t\t\t\t{{- else}}\n\t\t\t\t\t\t\tres := {{ $type.GO | ref }}(tmp)\n\t\t\t\t\t\t{{- end }}\n\t\t\t\t\t{{- else}}\n\t\t\t\t\t\t{{- if $type.IsContext }}\n\t\t\t\t\t\t\tres, err := {{ $type.Unmarshaler | call }}(ctx, v)\n\t\t\t\t\t\t{{- else }}\n\t\t\t\t\t\t\tres, err := {{ $type.Unmarshaler | call }}(v)\n\t\t\t\t\t\t{{- end }}\n\t\t\t\t\t{{- end }}\n\t\t\t\t\t{{- if and $type.IsTargetNilable (not $type.IsNilable) }}\n\t\t\t\t\t\treturn *res, graphql.ErrorOnPath(ctx, err)\n\t\t\t\t\t{{- else if and (not $type.IsTargetNilable) $type.IsNilable }}\n\t\t\t\t\t\treturn &res, graphql.ErrorOnPath(ctx, err)\n\t\t\t\t\t{{- else}}\n\t\t\t\t\t\treturn res, graphql.ErrorOnPath(ctx, err)\n\t\t\t\t\t{{- end }}\n\t\t\t\t{{- else if $type.IsMarshaler }}\n\t\t\t\t\t{{- if and $type.IsNilable $type.Elem }}\n\t\t\t\t\t\tvar res = new({{ $type.Elem.GO | ref }})\n\t\t\t\t\t{{- else}}\n\t\t\t\t\t\tvar res {{ $type.GO | ref }}\n\t\t\t\t\t{{- end }}\n\t\t\t\t\t{{- if $type.IsContext }}\n\t\t\t\t\t\terr := res.UnmarshalGQLContext(ctx, v)\n\t\t\t\t\t{{- else }}\n\t\t\t\t\t\terr := res.UnmarshalGQL(v)\n\t\t\t\t\t{{- end }}\n\t\t\t\t\t\treturn res, graphql.ErrorOnPath(ctx, err)\n\t\t\t\t{{- else }}\n\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\tres, err := unmarshalInput{{ $type.GQL.Name }}(ctx, ec, v)\n\t\t\t\t\t{{- else -}}\n\t\t\t\t\tres, err := ec.unmarshalInput{{ $type.GQL.Name }}(ctx, v)\n\t\t\t\t\t{{- end }}\n\t\t\t\t\t{{- if and $type.IsNilable (not $type.IsMap) (not $type.PointersInUnmarshalInput) }}\n\t\t\t\t\t\treturn &res, graphql.ErrorOnPath(ctx, err)\n\t\t\t\t\t{{- else if and (not $type.IsNilable) $type.PointersInUnmarshalInput }}\n\t\t\t\t\t\treturn *res, graphql.ErrorOnPath(ctx, err)\n\t\t\t\t\t{{- else }}\n\t\t\t\t\t\treturn res, graphql.ErrorOnPath(ctx, err)\n\t\t\t\t\t{{- end }}\n\t\t\t\t{{- end }}\n\t\t\t{{- end }}\n\t\t}\n\t{{- end }}\n\n\t{{ with $type.MarshalFunc }}\n\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\tfunc {{ . }}(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v {{ $type.GO | ref }}) graphql.Marshaler {\n\t\t{{- else -}}\n\t\tfunc (ec *executionContext) {{ . }}(ctx context.Context, sel ast.SelectionSet, v {{ $type.GO | ref }}) graphql.Marshaler {\n\t\t{{- end -}}\n\t\t\t{{- if or $type.IsPtrToSlice $type.IsPtrToIntf }}\n\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\treturn {{ $type.Elem.MarshalFunc }}(ctx, ec, sel, *v)\n\t\t\t\t{{- else -}}\n\t\t\t\treturn ec.{{ $type.Elem.MarshalFunc }}(ctx, sel, *v)\n\t\t\t\t{{- end }}\n\t\t\t{{- else if $type.IsSlice }}\n\t\t\t\t{{- if not $type.GQL.NonNull }}\n\t\t\t\t\tif v == nil {\n\t\t\t\t\t\treturn graphql.Null\n\t\t\t\t\t}\n\t\t\t\t{{- end }}\n\t\t\t\t{{- if and $.HasBatchResolverFields (not $type.IsScalar) (eq $type.Elem.Definition.Kind \"OBJECT\") }}\n\t\t\t\tctx = graphql.WithBatchParents(ctx, {{ $type.Elem.Definition.Name | quote }}, v)\n\t\t\t\t{{- end }}\n\t\t\t\t{{- if not $type.IsScalar }}\n\t\t\t\t\tret := graphql.MarshalSliceConcurrently(ctx, len(v), {{ $.Config.Exec.WorkerLimit }}, {{ $.Config.OmitPanicHandler }}, func(ctx context.Context, i int) graphql.Marshaler {\n\t\t\t\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\t\t\t\tfc.Result = &v[i]\n\t\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\t\treturn {{ $type.Elem.MarshalFunc }}(ctx, ec, sel, v[i])\n\t\t\t\t\t\t{{- else -}}\n\t\t\t\t\t\treturn ec.{{ $type.Elem.MarshalFunc }}(ctx, sel, v[i])\n\t\t\t\t\t\t{{- end }}\n\t\t\t\t\t})\n\t\t\t\t{{- else }}\n\t\t\t\t\tret := make(graphql.Array, len(v))\n\t\t\t\t\tfor i := range v {\n\t\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\t\tret[i] = {{ $type.Elem.MarshalFunc }}(ctx, ec, sel, v[i])\n\t\t\t\t\t\t{{- else -}}\n\t\t\t\t\t\tret[i] = ec.{{ $type.Elem.MarshalFunc }}(ctx, sel, v[i])\n\t\t\t\t\t\t{{- end }}\n\t\t\t\t\t}\n\t\t\t\t{{- end }}\n\t\t\t\t{{ if $type.Elem.GQL.NonNull }}\n\t\t\t\t\tfor _, e := range ret {\n\t\t\t\t\t\tif e == graphql.Null {\n\t\t\t\t\t\t\treturn graphql.Null\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t{{ end }}\n\t\t\t\treturn ret\n\t\t\t{{- else if and $type.IsPtrToPtr (not $type.Unmarshaler) (not $type.IsMarshaler) }}\n\t\t\t\tif v == nil {\n\t\t\t\t\treturn graphql.Null\n\t\t\t\t}\n\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\treturn {{ $type.Elem.MarshalFunc }}(ctx, ec, sel, *v)\n\t\t\t\t{{- else -}}\n\t\t\t\treturn ec.{{ $type.Elem.MarshalFunc }}(ctx, sel, *v)\n\t\t\t\t{{- end }}\n\t\t\t{{- else }}\n\t\t\t\t{{- if $type.IsNilable }}\n\t\t\t\t\tif v == nil {\n\t\t\t\t\t\t{{- if $type.GQL.NonNull }}\n\t\t\t\t\t\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\t\t\t\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t{{- end }}\n\t\t\t\t\t\treturn graphql.Null\n\t\t\t\t\t}\n\t\t\t\t{{- end }}\n\t\t\t\t{{- if $type.IsMarshaler }}\n\t\t\t\t\t{{- if $type.IsContext }}\n\t\t\t\t\t\treturn graphql.WrapContextMarshaler(ctx, v)\n\t\t\t\t\t{{- else }}\n\t\t\t\t\t\treturn v\n\t\t\t\t\t{{- end }}\n\t\t\t\t{{- else if $type.Marshaler }}\n\t\t\t\t\t_ = sel\n\t\t\t\t\t{{- if and (not $type.GQL.NonNull) (not $type.IsContext) }}\n\t\t\t\t\t_ = ctx\n\t\t\t\t\t{{- end }}\n\t\t\t\t\t{{- $v := \"v\" }}\n\t\t\t\t\t{{- if and $type.IsTargetNilable (not $type.IsNilable) }}\n\t\t\t\t\t\t{{- $v = \"&v\" }}\n\t\t\t\t\t{{- else if and (not $type.IsTargetNilable) $type.IsNilable }}\n\t\t\t\t\t\t{{- $v = \"*v\" }}\n\t\t\t\t\t{{- end }}\n\t\t\t\t\t{{- if $type.HasEnumValues }}\n\t\t\t\t\t\t{{- if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\t\t{{- $v = printf \"%v[%v]\" $type.MarshalFuncFunctionSyntax $v }}\n\t\t\t\t\t\t{{- else -}}\n\t\t\t\t\t\t{{- $v = printf \"%v[%v]\" $type.MarshalFunc $v }}\n\t\t\t\t\t\t{{- end -}}\n\t\t\t\t\t{{- else if $type.CastType }}\n\t\t\t\t\t\t{{- $v = printf \"%v(%v)\" ($type.CastType | ref) $v}}\n\t\t\t\t\t{{- end }}\n\t\t\t\t\tres := {{ $type.Marshaler | call }}({{ $v }})\n\t\t\t\t\t{{- if $type.GQL.NonNull }}\n\t\t\t\t\t\tif res == graphql.Null {\n\t\t\t\t\t\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\t\t\t\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t{{- end }}\n\t\t\t\t\t{{- if $type.IsContext }}\n\t\t\t\t\t\treturn graphql.WrapContextMarshaler(ctx, res)\n\t\t\t\t\t{{- else }}\n\t\t\t\t\t\treturn res\n\t\t\t\t\t{{- end }}\n\t\t\t\t{{- else if $type.IsRoot }}\n\t\t\t\t\t{{- if eq $type.Definition.Name \"Subscription\" }}\n\t\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\t\tres := _{{$type.Definition.Name}}(ctx, ec, sel)\n\t\t\t\t\t\t{{- else -}}\n\t\t\t\t\t\tres := ec._{{$type.Definition.Name}}(ctx, sel)\n\t\t\t\t\t\t{{- end }}\n\t\t\t\t\t\treturn res(ctx)\n\t\t\t\t\t{{- else }}\n\t\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\t\treturn _{{$type.Definition.Name}}(ctx, ec, sel)\n\t\t\t\t\t\t{{- else -}}\n\t\t\t\t\t\treturn ec._{{$type.Definition.Name}}(ctx, sel)\n\t\t\t\t\t\t{{- end }}\n\t\t\t\t\t{{- end }}\n\t\t\t\t{{- else }}\n\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\treturn _{{$type.Definition.Name}}(ctx, ec, sel, {{ if not $type.IsNilable}}&{{end}} v)\n\t\t\t\t\t{{- else -}}\n\t\t\t\t\treturn ec._{{$type.Definition.Name}}(ctx, sel, {{ if not $type.IsNilable}}&{{end}} v)\n\t\t\t\t\t{{- end }}\n\t\t\t\t{{- end }}\n\t\t\t{{- end }}\n\t\t}\n\t{{- end }}\n\n\t{{- if and $type.HasEnumValues (not $type.IsSlice) }}\n\t{{- $enum := $type.GO }}\n\t{{- if $type.IsNilable }}\n\t\t{{- $enum = $type.GO.Elem }}\n\t{{- end }}\n\tvar (\n\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t{{ $type.UnmarshalFuncFunctionSyntax }} = map[string]{{ $enum | ref }}{\n\t\t{{- else -}}\n\t\t{{ $type.UnmarshalFunc }} = map[string]{{ $enum | ref }}{\n\t\t{{- end -}}\n\t\t{{- range $value := $type.EnumValues }}\n\t\t\t\"{{ $value.Definition.Name }}\": {{ $value.Object | obj }},\n\t\t{{- end }}\n\t\t}\n\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t{{ $type.MarshalFuncFunctionSyntax }} = map[{{ $enum | ref }}]string{\n\t\t{{- else -}}\n\t\t{{ $type.MarshalFunc }} = map[{{ $enum | ref }}]string{\n\t\t{{- end -}}\n\t\t{{- range $value := $type.EnumValues }}\n\t\t\t {{ $value.Object | obj }}: \"{{ $value.Definition.Name }}\",\n\t\t{{- end }}\n\t\t}\n\t )\n\t{{- end }}\n{{- end }}\n"
  },
  {
    "path": "codegen/util.go",
    "content": "package codegen\n\nimport (\n\t\"fmt\"\n\t\"go/types\"\n\t\"strings\"\n)\n\nfunc findGoNamedType(def types.Type) (*types.Named, error) {\n\tif def == nil {\n\t\treturn nil, nil\n\t}\n\n\tnamedType, ok := def.(*types.Named)\n\t//nolint:staticcheck // yes, it is bad to end in newline here\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\n\t\t\t\"expected %s to be a named type, instead found %T\\n\",\n\t\t\tdef.String(),\n\t\t\tdef,\n\t\t)\n\t}\n\n\treturn namedType, nil\n}\n\nfunc findGoInterface(def types.Type) (*types.Interface, error) {\n\tif def == nil {\n\t\treturn nil, nil\n\t}\n\tnamedType, err := findGoNamedType(def)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif namedType == nil {\n\t\treturn nil, nil\n\t}\n\n\tunderlying, ok := namedType.Underlying().(*types.Interface)\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\n\t\t\t\"expected %s to be a named interface, instead found %s\",\n\t\t\tdef.String(),\n\t\t\tnamedType.String(),\n\t\t)\n\t}\n\n\treturn underlying, nil\n}\n\nfunc equalFieldName(source, target string) bool {\n\tsource = strings.ReplaceAll(source, \"_\", \"\")\n\tsource = strings.ReplaceAll(source, \",omitempty\", \"\")\n\ttarget = strings.ReplaceAll(target, \"_\", \"\")\n\treturn strings.EqualFold(source, target)\n}\n"
  },
  {
    "path": "complexity/complexity.go",
    "content": "package complexity\n\nimport (\n\t\"context\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\nfunc Calculate(\n\tctx context.Context,\n\tes graphql.ExecutableSchema,\n\top *ast.OperationDefinition,\n\tvars map[string]any,\n\topts ...Option,\n) int {\n\tos := defaultOptions\n\tfor _, o := range opts {\n\t\to(&os)\n\t}\n\twalker := complexityWalker{\n\t\tes:     es,\n\t\tschema: es.Schema(),\n\t\tvars:   vars,\n\t\topts:   os,\n\t}\n\treturn walker.selectionSetComplexity(ctx, op.SelectionSet)\n}\n\ntype complexityWalker struct {\n\tes     graphql.ExecutableSchema\n\tschema *ast.Schema\n\tvars   map[string]any\n\topts   complexityOptions\n}\n\nfunc (cw complexityWalker) selectionSetComplexity(\n\tctx context.Context,\n\tselectionSet ast.SelectionSet,\n) int {\n\tvar complexity int\n\tfor _, selection := range selectionSet {\n\t\tswitch s := selection.(type) {\n\t\tcase *ast.Field:\n\t\t\tfieldDefinition := cw.schema.Types[s.Definition.Type.Name()]\n\n\t\t\tif fieldDefinition.Name == \"__Schema\" {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif _, ok := cw.opts.ignoreFields[s.ObjectDefinition.Name+\".\"+s.Name]; ok {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tvar childComplexity int\n\t\t\tswitch fieldDefinition.Kind {\n\t\t\tcase ast.Object, ast.Interface, ast.Union:\n\t\t\t\tchildComplexity = cw.selectionSetComplexity(ctx, s.SelectionSet)\n\t\t\t}\n\n\t\t\targs := s.ArgumentMap(cw.vars)\n\t\t\tvar fieldComplexity int\n\t\t\tif s.ObjectDefinition.Kind == ast.Interface {\n\t\t\t\tfieldComplexity = cw.interfaceFieldComplexity(\n\t\t\t\t\tctx,\n\t\t\t\t\ts.ObjectDefinition,\n\t\t\t\t\tfieldDefinition.Kind,\n\t\t\t\t\ts.Name,\n\t\t\t\t\tchildComplexity,\n\t\t\t\t\targs,\n\t\t\t\t)\n\t\t\t} else {\n\t\t\t\tfieldComplexity = cw.fieldComplexity(\n\t\t\t\t\tctx,\n\t\t\t\t\ts.ObjectDefinition,\n\t\t\t\t\tfieldDefinition.Kind,\n\t\t\t\t\ts.Name,\n\t\t\t\t\tchildComplexity,\n\t\t\t\t\targs,\n\t\t\t\t)\n\t\t\t}\n\t\t\tcomplexity = safeAdd(complexity, fieldComplexity)\n\n\t\tcase *ast.FragmentSpread:\n\t\t\tcomplexity = safeAdd(\n\t\t\t\tcomplexity,\n\t\t\t\tcw.selectionSetComplexity(ctx, s.Definition.SelectionSet),\n\t\t\t)\n\n\t\tcase *ast.InlineFragment:\n\t\t\tcomplexity = safeAdd(complexity, cw.selectionSetComplexity(ctx, s.SelectionSet))\n\t\t}\n\t}\n\treturn complexity\n}\n\nfunc (cw complexityWalker) interfaceFieldComplexity(\n\tctx context.Context,\n\tdef *ast.Definition,\n\tfieldKind ast.DefinitionKind,\n\tfield string,\n\tchildComplexity int,\n\targs map[string]any,\n) int {\n\t// Interfaces don't have their own separate field costs, so they have to assume the worst case.\n\t// We iterate over all implementors and choose the most expensive one.\n\tmaxComplexity := 0\n\timplementors := cw.schema.GetPossibleTypes(def)\n\tfor _, t := range implementors {\n\t\tfieldComplexity := cw.fieldComplexity(ctx, t, fieldKind, field, childComplexity, args)\n\t\tif fieldComplexity > maxComplexity {\n\t\t\tmaxComplexity = fieldComplexity\n\t\t}\n\t}\n\treturn maxComplexity\n}\n\nfunc (cw complexityWalker) fieldComplexity(\n\tctx context.Context,\n\tdef *ast.Definition,\n\tfieldKind ast.DefinitionKind,\n\tfield string,\n\tchildComplexity int,\n\targs map[string]any,\n) int {\n\tif customComplexity, ok := cw.es.Complexity(ctx, def.Name, field, childComplexity, args); ok &&\n\t\tcustomComplexity >= 1 {\n\t\treturn customComplexity\n\t}\n\n\t// default complexity calculation\n\tdefaultComplexity := 1\n\tswitch fieldKind {\n\tcase ast.Scalar, ast.Enum:\n\t\tdefaultComplexity = cw.opts.fixedScalarValue // also defaults to 1 unless explicitly set\n\t}\n\n\treturn safeAdd(defaultComplexity, childComplexity)\n}\n\nconst maxInt = int(^uint(0) >> 1)\n\n// safeAdd is a saturating add of a and b that ignores negative operands.\n// If a + b would overflow through normal Go addition,\n// it returns the maximum integer value instead.\n//\n// Adding complexities with this function prevents attackers from intentionally\n// overflowing the complexity calculation to allow overly-complex queries.\n//\n// It also helps mitigate the impact of custom complexities that accidentally\n// return negative values.\nfunc safeAdd(a, b int) int {\n\t// Ignore negative operands.\n\tif a < 0 {\n\t\tif b < 0 {\n\t\t\treturn 1\n\t\t}\n\t\treturn b\n\t} else if b < 0 {\n\t\treturn a\n\t}\n\n\tc := a + b\n\tif c < a {\n\t\t// Set c to maximum integer instead of overflowing.\n\t\tc = maxInt\n\t}\n\treturn c\n}\n"
  },
  {
    "path": "complexity/complexity_test.go",
    "content": "package complexity\n\nimport (\n\t\"context\"\n\t\"math\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\t\"github.com/vektah/gqlparser/v2/validator/rules\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\nvar schema = gqlparser.MustLoadSchema(\n\t&ast.Source{\n\t\tName: \"test.graphql\",\n\t\tInput: `\n\t\tinterface NameInterface {\n\t\t\tname: String\n\t\t}\n\n\t\ttype Item implements NameInterface {\n\t\t\tscalar: String\n\t\t\tname: String\n\t\t\tlist(size: Int = 10): [Item]\n\t\t}\n\n\t\ttype ExpensiveItem implements NameInterface {\n\t\t\tname: String\n\t\t}\n\n\t\ttype Named {\n\t\t\tname: String\n\t\t}\n\n\t\tunion NameUnion = Item | Named\n\n\t\ttype Query {\n\t\t\tscalar: String\n\t\t\tobject: Item\n\t\t\tinterface: NameInterface\n\t\t\tunion: NameUnion\n\t\t\tcustomObject: Item\n\t\t\tlist(size: Int = 10): [Item]\n\t\t}\n\t\t`,\n\t},\n)\n\nfunc requireComplexity(t *testing.T, source string, complexity int, opts ...Option) {\n\tt.Helper()\n\tquery := gqlparser.MustLoadQueryWithRules(schema, source, rules.NewDefaultRules())\n\n\tes := &graphql.ExecutableSchemaMock{\n\t\tComplexityFunc: func(ctx context.Context, typeName, field string, childComplexity int, args map[string]any) (int, bool) {\n\t\t\tswitch typeName + \".\" + field {\n\t\t\tcase \"ExpensiveItem.name\":\n\t\t\t\treturn 5, true\n\t\t\tcase \"Query.list\", \"Item.list\":\n\t\t\t\treturn int(args[\"size\"].(int64)) * childComplexity, true\n\t\t\tcase \"Query.customObject\":\n\t\t\t\treturn 1, true\n\t\t\t}\n\t\t\treturn 0, false\n\t\t},\n\t\tSchemaFunc: func() *ast.Schema {\n\t\t\treturn schema\n\t\t},\n\t}\n\n\tactualComplexity := Calculate(context.TODO(), es, query.Operations[0], nil, opts...)\n\trequire.Equal(t, complexity, actualComplexity)\n}\n\nfunc TestCalculate(t *testing.T) {\n\tt.Run(\"uses default cost\", func(t *testing.T) {\n\t\tconst query = `\n\t\t{\n\t\t\tscalar\n\t\t}\n\t\t`\n\t\trequireComplexity(t, query, 1)\n\t})\n\n\tt.Run(\"adds together fields\", func(t *testing.T) {\n\t\tconst query = `\n\t\t{\n\t\t\tscalar1: scalar\n\t\t\tscalar2: scalar\n\t\t}\n\t\t`\n\t\trequireComplexity(t, query, 2)\n\t})\n\n\tt.Run(\"a level of nesting adds complexity\", func(t *testing.T) {\n\t\tconst query = `\n\t\t{\n\t\t\tobject {\n\t\t\t\tscalar\n\t\t\t}\n\t\t}\n\t\t`\n\t\trequireComplexity(t, query, 2)\n\t})\n\n\tt.Run(\"adds together children\", func(t *testing.T) {\n\t\tconst query = `\n\t\t{\n\t\t\tscalar\n\t\t\tobject {\n\t\t\t\tscalar\n\t\t\t}\n\t\t}\n\t\t`\n\t\trequireComplexity(t, query, 3)\n\t})\n\n\tt.Run(\"adds inline fragments\", func(t *testing.T) {\n\t\tconst query = `\n\t\t{\n\t\t\t... {\n\t\t\t\tscalar\n\t\t\t}\n\t\t}\n\t\t`\n\t\trequireComplexity(t, query, 1)\n\t})\n\n\tt.Run(\"adds fragments\", func(t *testing.T) {\n\t\tconst query = `\n\t\t{\n\t\t\t... Fragment\n\t\t}\n\n\t\tfragment Fragment on Query {\n\t\t\tscalar\n\t\t}\n\t\t`\n\t\trequireComplexity(t, query, 1)\n\t})\n\n\tt.Run(\"uses custom complexity\", func(t *testing.T) {\n\t\tconst query = `\n\t\t{\n\t\t\tlist {\n\t\t\t\tscalar\n\t\t\t}\n\t\t}\n\t\t`\n\t\trequireComplexity(t, query, 10)\n\t})\n\n\tt.Run(\"ignores negative custom complexity values\", func(t *testing.T) {\n\t\tconst query = `\n\t\t{\n\t\t\tlist(size: -100) {\n\t\t\t\tscalar\n\t\t\t}\n\t\t}\n\t\t`\n\t\trequireComplexity(t, query, 2)\n\t})\n\n\tt.Run(\"interfaces take max concrete cost\", func(t *testing.T) {\n\t\tconst query = `\n\t\t{\n\t\t\tinterface {\n\t\t\t\tname\n\t\t\t}\n\t\t}\n\t\t`\n\t\trequireComplexity(t, query, 6)\n\t})\n\n\tt.Run(\"guards against integer overflow\", func(t *testing.T) {\n\t\tif maxInt == math.MaxInt32 {\n\t\t\t// this test is written assuming 64-bit ints\n\t\t\tt.Skip()\n\t\t}\n\t\tconst query = `\n\t\t{\n\t\t\tlist1: list(size: 2147483647) {\n\t\t\t\tlist(size: 2147483647) {\n\t\t\t\t\tlist(size: 2) {\n\t\t\t\t\t\tscalar\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t# total cost so far: 2*0x7fffffff*0x7fffffff\n\t\t\t# = 0x7ffffffe00000002\n\t\t\t# Adding the same again should cause overflow\n\t\t\tlist2: list(size: 2147483647) {\n\t\t\t\tlist(size: 2147483647) {\n\t\t\t\t\tlist(size: 2) {\n\t\t\t\t\t\tscalar\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t`\n\t\trequireComplexity(t, query, math.MaxInt64)\n\t})\n\n\tt.Run(\"fixed scalar value\", func(t *testing.T) {\n\t\tconst query = `\n\t\t{\n\t\t\tscalar\n\t\t\tobject {\n\t\t\t\tscalar\n\t\t\t\tname\n\t\t\t\tlist(size: 10) {\n\t\t\t\t\tscalar\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t`\n\t\t// object = 1\n\t\t// list = 1 (each scalar in the list is worth 0, hence 0*10=0,\n\t\t// but when custom complexity is less than 1 the calculation uses the default field value, i.e. 1)\n\t\trequireComplexity(t, query, 2, WithFixedScalarValue(0))\n\t\t// scalar = 2\n\t\t// object = 1\n\t\t// object.scalar = 2\n\t\t// object.name = 2\n\t\t// list = 2*10\n\t\trequireComplexity(t, query, 27, WithFixedScalarValue(2))\n\t})\n\n\tt.Run(\"ignore specified\", func(t *testing.T) {\n\t\tconst query = `\n\t\t{\n\t\t\tscalar\n\t\t\tobject {\n\t\t\t\tscalar\n\t\t\t\tname\n\t\t\t\tlist(size: 10) {\n\t\t\t\t\tscalar\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t`\n\t\tignore := map[string]struct{}{\n\t\t\t\"Query.scalar\": {},\n\t\t\t\"Item.name\":    {},\n\t\t}\n\t\trequireComplexity(t, query, 12, WithIgnoreFields(ignore))\n\t})\n}\n"
  },
  {
    "path": "complexity/option.go",
    "content": "package complexity\n\ntype Option func(*complexityOptions)\n\ntype complexityOptions struct {\n\tfixedScalarValue int\n\tignoreFields     map[string]struct{}\n}\n\nvar defaultOptions = complexityOptions{\n\tfixedScalarValue: 1,\n\tignoreFields:     nil,\n}\n\n// WithFixedScalarValue sets the default value attributed to scalar and enum fields.\nfunc WithFixedScalarValue(v int) Option {\n\treturn func(o *complexityOptions) {\n\t\to.fixedScalarValue = v\n\t}\n}\n\n// WithIgnoreFields specifies which fields are ignored in the complexity calculation.\n// It's equivalent to setting the value of these fields to zero.\nfunc WithIgnoreFields(m map[string]struct{}) Option {\n\treturn func(o *complexityOptions) {\n\t\to.ignoreFields = m\n\t}\n}\n"
  },
  {
    "path": "docs/build.sh",
    "content": "#!/bin/bash\n#\n# This was adapted from https://github.com/dgraph-io/dgraph/blob/master/wiki/scripts/build.sh\n#\n\nset -e\n\nGREEN='\\033[32;1m'\nRESET='\\033[0m'\nHOST=https://gqlgen.com\n\nIFS=$'\\n' read -r -d '' -a VERSIONS_ARRAY < <(curl -s -H \"Accept: application/vnd.github.v3+json\" \"https://api.github.com/repos/99designs/gqlgen/releases?per_page=20\" | jq -r '.[].tag_name' ) || true\n\nVERSIONS_ARRAY+=( \"origin/master\" )\n\njoinVersions() {\n\tversions=$(printf \",%s\" \"${VERSIONS_ARRAY[@]}\" | sed 's/origin\\/master/master/')\n\techo \"${versions:1}\"\n}\n\nfunction version { echo \"$@\" | gawk -F. '{ printf(\"%03d%03d%03d\\n\", $1,$2,$3); }'; }\n\nrebuild() {\n\tVERSION_STRING=$(joinVersions)\n\texport CURRENT_VERSION=${1}\n\tif [[ $CURRENT_VERSION == 'origin/master' ]] ; then\n\t    CURRENT_VERSION=\"master\"\n    fi\n\n\texport VERSIONS=${VERSION_STRING}\n\n    hugo --quiet --destination=\"public/$CURRENT_VERSION\" --baseURL=\"$HOST/$CURRENT_VERSION/\"\n\n    if [[ $1 == \"${VERSIONS_ARRAY[0]}\" ]]; then\n        hugo --quiet --destination=public/ --baseURL=\"$HOST/\"\n    fi\n}\n\n\ncurrentBranch=$(git rev-parse --abbrev-ref HEAD)\n\nif ! git remote  | grep -q origin ; then\n    git remote add origin https://github.com/99designs/gqlgen\nfi\ngit fetch origin --tags\n\nfor version in \"${VERSIONS_ARRAY[@]}\" ; do\n    echo -e \"$(date) $GREEN Updating docs for $version.$RESET\"\n    rm -rf content\n    git checkout $version -- content\n    rebuild \"$version\"\ndone\n\nrm -rf content\ngit checkout \"$currentBranch\" -- content\n\n"
  },
  {
    "path": "docs/config.yml",
    "content": "baseurl: https://gqlgen.com/\nmetadataformat: yaml\ntitle: gqlgen\nenableGitInfo: true\npygmentsCodeFences: true\npygmentsUseClasses: true\ncanonifyURLs: true\n\nparams:\n  name: gqlgen\n  description: graphql servers the easy way\n\nmenu:\n  main:\n    - name: Introduction\n      url: /\n      weight: -10\n    - name: Reference\n      identifier: reference\n      weight: 5\n    - name: Recipes\n      identifier: recipes\n      weight: 10\n    - name: pkg.go.dev →\n      parent: reference\n      url: https://pkg.go.dev/github.com/99designs/gqlgen\n\nsecurity:\n  funcs:\n    getenv:\n      - '^HUGO_'\n      - 'VERSIONS'\n      - 'CURRENT_VERSION'\n\ngo_initialisms:\n  replace_defaults: false\n  initialisms:\n    - 'CC'\n    - 'BCC'\n"
  },
  {
    "path": "docs/content/config.md",
    "content": "---\nlinkTitle: Configuration\ntitle: How to configure gqlgen using gqlgen.yml\ndescription: How to configure gqlgen using gqlgen.yml\nmenu: main\nweight: -5\n---\n\ngqlgen can be configured using a `gqlgen.yml` file, by default it will be loaded from the current directory, or any parent directory.\n\nAs an example, here is the default configuration file generated with `gqlgen init`:\n\n```yml\n# Where are all the schema files located? globs are supported eg  src/**/*.graphqls\nschema:\n  - graph/*.graphqls\n\n# Where should the generated server code go?\nexec:\n  package: graph\n  layout: single-file # Only other option is \"follow-schema,\" ie multi-file.\n\n  # Only for single-file layout:\n  filename: graph/generated.go\n\n  # Only for follow-schema layout:\n  # dir: graph\n  # filename_template: \"{name}.generated.go\"\n\n  # Optional: Maximum number of goroutines in concurrency to use per child resolvers(default: unlimited)\n  # worker_limit: 1000\n\n# Comment or remove this section to skip Apollo Federation support\nfederation:\n  filename: graph/federation.go\n  package: graph\n  version: 2\n  options:\n    computed_requires: true\n\n# Where should any generated models go?\nmodel:\n  filename: graph/model/models_gen.go\n  package: model\n\n  # Optional: Pass in a path to a new gotpl template to use for generating the models\n  # model_template: [your/path/model.gotpl]\n\n# Where should the resolver implementations go?\nresolver:\n  package: graph\n  layout: follow-schema # Only other option is \"single-file.\"\n\n  # Only for single-file layout:\n  # filename: graph/resolver.go\n\n  # Only for follow-schema layout:\n  dir: graph\n  filename_template: \"{name}.resolvers.go\"\n\n  # Optional: turn on to not generate template comments above resolvers\n  # omit_template_comment: false\n  # Optional: Pass in a path to a new gotpl template to use for generating resolvers\n  # resolver_template: [your/path/resolver.gotpl]\n  # Optional: turn on to avoid rewriting existing resolver(s) when generating\n  # preserve_resolver: false\n\n# Optional: turn on use ` + \"`\" + `gqlgen:\"fieldName\"` + \"`\" + ` tags in your models\n# struct_tag: json\n\n# Optional: turn on to split imports in generated files into local modules and third-party packages\n# local_prefix: github.com/myrepo\n\n# Optional: turn on to use []Thing instead of []*Thing\n# omit_slice_element_pointers: false\n\n# Optional: turn on to omit Is<Name>() methods to interface and unions\n# omit_interface_checks : true\n\n# Optional: turn on to skip generation of ComplexityRoot struct content and Complexity function\n# omit_complexity: false\n\n# Optional: turn on to not generate any file notice comments in generated files\n# omit_gqlgen_file_notice: false\n\n# Optional: turn on to exclude the gqlgen version in the generated file notice. No effect if `omit_gqlgen_file_notice` is true.\n# omit_gqlgen_version_in_file_notice: false\n\n# Optional: turn on to exclude root models such as Query and Mutation from the generated models file.\n# omit_root_models: false\n\n# Optional: turn on to exclude resolver fields from the generated models file.\n# omit_resolver_fields: false\n\n# Optional: turn on to set a different prefix to the generated base structs used for embedding.\n# embedded_structs_prefix: \"Base\"\n\n# Optional: turn off to make struct-type struct fields not use pointers\n# e.g. type Thing struct { FieldA OtherThing } instead of { FieldA *OtherThing }\n# struct_fields_always_pointers: true\n\n# Optional: turn off to make resolvers return values instead of pointers for structs\n# resolvers_always_return_pointers: true\n\n# Optional: turn on to return pointers instead of values in unmarshalInput\n# return_pointers_in_unmarshalinput: false\n\n# Optional: wrap nullable input fields with Omittable\n# nullable_input_omittable: true\n\n# Optional: set to speed up generation time by not performing a final validation pass.\n# skip_validation: true\n\n# Optional: set to skip running `go mod tidy` when generating server code\n# skip_mod_tidy: true\n\n# Optional: set to use -gcflags=\"-N -l\" during validation to disable compiler\n# optimizations. This makes cold cache validation ~2x faster since we only need\n# to check for errors, not produce optimized code. Default: false\n# fast_validation: false\n\n# Optional: set to use go/format.Source instead of imports.Process for formatting.\n# This is significantly faster (~10x) but doesn't group imports by stdlib/external/internal.\n# Imports will be sorted alphabetically instead. Default: false\n# skip_import_grouping: false\n\n# Optional: set to use light mode (NeedName|NeedFiles|NeedModule) for initial package\n# loading instead of full mode with NeedTypes. This avoids triggering compilation until\n# types are actually needed. Default: false (enable for large projects)\n# use_light_mode_prefetch: false\n\n# Optional: set to reuse byte buffers via sync.Pool during code formatting to reduce\n# GC pressure. Default: false (enable for large projects)\n# use_buffer_pooling: false\n\n# Optional: set to skip generation of JSON Marshalers and Unmarshalers for enums\n# omit_enum_json_marshalers: false\n\n# Optional: if this is set to true, argument directives that\n# decorate a field with a null value will still be called.\n#\n# This enables argumment directives to not just mutate\n# argument values but to set them even if they're null.\ncall_argument_directives_with_null: true\n\n# This enables gql server to use function syntax for execution context\n# instead of generating receiver methods of the execution context.\n# use_function_syntax_for_execution_context: true\n\n# Optional: set build tags that will be used to load packages\n# go_build_tags:\n#  - private\n#  - enterprise\n\n# Optional: set to modify the initialisms regarded for Go names\n# go_initialisms:\n#   replace_defaults: false # if true, the default initialisms will get dropped in favor of the new ones instead of being added\n#   initialisms: # List of initialisms to for Go names\n#     - 'CC'\n#     - 'BCC'\n\n# gqlgen will search for any type names in the schema in these go packages\n# if they match it will use them, otherwise it will generate them.\nautobind:\n#  - \"{{.}}/graph/model\"\n\n# Optional: turn on to allow binding to getters and hasers (useful for editions protos)\n# autobind_getter_haser: true\n\n# This section declares type mapping between the GraphQL and go type systems\n#\n# The first line in each type will be used as defaults for resolver arguments and\n# modelgen, the others will be allowed when binding to fields. Configure them to\n# your liking\nmodels:\n  ID:\n    model:\n      - github.com/99designs/gqlgen/graphql.ID\n      - github.com/99designs/gqlgen/graphql.Int\n      - github.com/99designs/gqlgen/graphql.Int64\n      - github.com/99designs/gqlgen/graphql.Int32\n  # gqlgen provides a default GraphQL UUID convenience wrapper for github.com/google/uuid\n  # but you can override this to provide your own GraphQL UUID implementation\n  UUID:\n    model:\n      - github.com/99designs/gqlgen/graphql.UUID\n\n  # The GraphQL spec explicitly states that the Int type is a signed 32-bit\n  # integer. Using Go int or int64 to represent it can lead to unexpected\n  # behavior, and some GraphQL tools like Apollo Router will fail when\n  # communicating numbers that overflow 32-bits.\n  #\n  # You may choose to use the custom, built-in Int64 scalar to represent 64-bit\n  # integers, or ignore the spec and bind Int to graphql.Int / graphql.Int64\n  # (the default behavior of gqlgen). This is fine in simple use cases when you\n  # do not need to worry about interoperability and only expect small numbers.\n  Int:\n    model:\n      - github.com/99designs/gqlgen/graphql.Int32\n  Int64:\n    model:\n      - github.com/99designs/gqlgen/graphql.Int\n      - github.com/99designs/gqlgen/graphql.Int64\n```\n\nEverything has defaults, so add things as you need.\n\n## Inline config with directives\n\ngqlgen ships with some builtin directives that make it a little easier to manage wiring.\n\nTo start using them you first need to define them:\n\n```graphql\ndirective @goModel(\n\tmodel: String\n\tmodels: [String!]\n\tforceGenerate: Boolean\n) on OBJECT | INPUT_OBJECT | SCALAR | ENUM | INTERFACE | UNION\n\ndirective @goField(\n\tforceResolver: Boolean\n\tname: String\n\tomittable: Boolean\n\ttype: String\n  autoBindGetterHaser: Boolean\n  forceGenerate: Boolean\n\tbatch: Boolean\n) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION\n\ndirective @goTag(\n\tkey: String!\n\tvalue: String\n) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION\n\ndirective @goExtraField(\n\tname: String\n\ttype: String!\n\toverrideTags: String\n\tdescription: String\n) repeatable on OBJECT | INPUT_OBJECT\n\ndirective @inlineArguments on ARGUMENT_DEFINITION\n```\n\n> Here be dragons\n>\n> gqlgen doesnt currently support user-configurable directives for SCALAR, ENUM, INTERFACE or UNION. This only works\n> for internal directives. You can track the progress [here](https://github.com/99designs/gqlgen/issues/760)\n\nNow you can use these directives when defining types in your schema:\n\n```graphql\ntype User\n\t@goModel(model: \"github.com/my/app/models.User\")\n\t@goExtraField(name: \"Activated\", type: \"bool\") {\n\tid: ID! @goField(name: \"todoId\")\n\tname: String!\n\t\t@goField(forceResolver: true)\n\t\t@goTag(key: \"xorm\", value: \"-\")\n\t\t@goTag(key: \"yaml\")\n}\n\n# This make sense when autobind activated.\ntype Person @goModel(forceGenerate: true) {\n\tid: ID!\n\tname: String!\n}\n```\n\nThe builtin directives `goField`, `goModel`, `goTag` and `goExtraField` are automatically registered to `skip_runtime`. Any directives registered as `skip_runtime` will not exposed during introspection and are used during code generation only.\n\nIf you have created a new code generation plugin using a directive which does not require runtime execution, the directive will need to be set to `skip_runtime`.\n\ne.g. a custom directive called `constraint` would be set as `skip_runtime` using the following configuration\n\n```yml\n# custom directives which are not exposed during introspection. These directives are\n# used for code generation only\ndirectives:\n  constraint:\n    skip_runtime: true\n```\n\n## Configuring for a big projects\nFor a single gqlgen project, what gqlgen config works best really changes at a few key points during the course of that project's normal growth and evolution. For instance:\n\n1. quick proof of concept - `single-file` layout\n2. medium-sized team(s) - `follow-schema` layout\n3. many teams - separate schema and resolvers into separate packages as [in this example](https://github.com/99designs/gqlgen/tree/master/_examples/large-project-structure/integration/go.mod) (see below)\n4. very large type systems (more than 65,000 methods) - `use_function_syntax_for_execution_context`\nHowever, some will instead choose to adopt GraphQL Federation and split into multiple gqlgen instances before one of these growth points is even reached.\n\nBig projects usually divide into a separate domains, grouping all related files and resources under a folder such as:\n```\nDomainA\n- schema\n- resolver\n- service\nDomainB\n- schema\n- resolver\n- service\n```\n\nAfter first generating `resolvers` section you can comment out the entire resolver section of the `config.yaml`, so that resolvers are **not** auto-generated so you can then design any desired resolver architecture.\nThis idea is from a discussion [https://github.com/99designs/gqlgen/issues/1253](https://github.com/99designs/gqlgen/issues/1253#issuecomment-664448226)\n\n## Performance optimization options\n\ngqlgen provides several options to optimize code generation performance, especially useful for large schemas.\n\n### skip_validation\n\n```yaml\nskip_validation: true\n```\n\nSkips the final validation step that compiles generated code to check for errors.\n\n**When to use:**\n- During rapid local development when you'll compile immediately after anyway\n- In CI pipelines where a separate build step follows generation\n\n**When NOT to use:**\n- When you want immediate feedback on generation errors\n- When the generated code won't be compiled immediately after\n\n**Performance impact:** Saves 1-4 minutes depending on project size and cache state.\n\n---\n\n### fast_validation\n\n```yaml\nfast_validation: true  # default: false\n```\n\nUses `-gcflags=\"-N -l\"` during validation to disable Go compiler optimizations and inlining. Since validation only checks for compilation errors (not producing production binaries), optimizations are unnecessary.\n\n**When to use:**\n- Especially beneficial on cold cache (fresh checkout, CI without cache)\n- When you want faster validation without skipping it entirely\n\n**When NOT to use:**\n- If you need the validation build artifacts for debugging with optimizations\n- If you experience issues with the unoptimized build (very rare)\n\n**Performance impact:** ~2x faster cold cache validation (e.g., 4m 30s → 2m 15s).\n\n**Trade-off:** None for typical use. The validation binary is discarded after checking for errors.\n\n---\n\n### skip_import_grouping\n\n```yaml\nskip_import_grouping: true  # default: false\n```\n\nUses `go/format.Source` instead of `golang.org/x/tools/imports.Process` for formatting generated code. This is significantly faster but produces different import formatting.\n\n**When to use:**\n- Large projects where generation time is a concern\n- When you don't care about import grouping style in generated files\n- When using automated formatters that will reformat anyway\n\n**When NOT to use:**\n- When you require imports grouped by category (stdlib, external, internal)\n- When your linter enforces specific import grouping in generated files\n- When generated files are frequently read by developers and style matters\n\n**Performance impact:** ~10x faster formatting (e.g., 2 minutes → 10 seconds for large projects).\n\n**Trade-off:**\n- With `false` (default): Imports are grouped and sorted by stdlib → external → internal\n- With `true`: Imports are sorted alphabetically without grouping\n\nExample difference:\n```go\n// skip_import_grouping: false (default) - grouped imports\nimport (\n    \"context\"\n    \"fmt\"\n\n    \"github.com/99designs/gqlgen/graphql\"\n    \"github.com/vektah/gqlparser/v2/ast\"\n\n    \"myproject/internal/models\"\n)\n\n// skip_import_grouping: true - alphabetically sorted, no groups\nimport (\n    \"context\"\n    \"fmt\"\n    \"github.com/99designs/gqlgen/graphql\"\n    \"github.com/vektah/gqlparser/v2/ast\"\n    \"myproject/internal/models\"\n)\n```\n\n---\n\n### skip_mod_tidy\n\n```yaml\nskip_mod_tidy: true\n```\n\nSkips running `go mod tidy` after code generation.\n\n**When to use:**\n- When your dependencies are already correct\n- In CI pipelines where mod tidy runs separately\n- When generating frequently during development\n\n**When NOT to use:**\n- After adding new external type bindings that may require new dependencies\n- When setting up a project for the first time\n\n**Performance impact:** Saves 1-5 seconds depending on module size.\n\n---\n\n### use_light_mode_prefetch\n\n```yaml\nuse_light_mode_prefetch: true  # default: false\n```\n\nUses `NeedName|NeedFiles|NeedModule` instead of full `NeedTypes` for initial package loading. This avoids triggering compilation until types are actually needed (e.g., for autobind).\n\n**When to use:**\n- Large codebases where `packages.Load` is slow\n- Projects with many packages that don't all need type information\n\n**When NOT to use:**\n- If you experience issues with type resolution\n- If you need full type info immediately for custom plugins\n\n**Performance impact:** ~200x faster initial package loading for large codebases.\n\n---\n\n### use_buffer_pooling\n\n```yaml\nuse_buffer_pooling: true  # default: false\n```\n\nReuses `bytes.Buffer` via `sync.Pool` during code formatting to reduce GC pressure.\n\n**When to use:**\n- Large projects with many generated files\n- When GC pauses are noticeable during generation\n\n**When NOT to use:**\n- If debugging memory issues and need to isolate buffer behavior\n\n**Performance impact:** Reduces GC pause times by ~25% for large projects.\n\n---\n\n### Recommended configurations\n\n**For maximum speed during development:**\n```yaml\nskip_validation: true\nskip_mod_tidy: true\nskip_import_grouping: true\nfast_validation: true\nuse_light_mode_prefetch: true\nuse_buffer_pooling: true\n```\n\n**For CI with validation:**\n```yaml\nskip_validation: false\nfast_validation: true\nskip_mod_tidy: true\nskip_import_grouping: true  # or false if import style matters\nuse_light_mode_prefetch: true\nuse_buffer_pooling: true\n```\n\n**For production/release builds:**\n```yaml\nskip_validation: false\nfast_validation: true\nskip_mod_tidy: false\n# skip_import_grouping: false  # default - consistent import style\n```\n"
  },
  {
    "path": "docs/content/feature-comparison.md",
    "content": "---\nlinkTitle: Feature Comparison\ntitle: Comparing Features of Other Go GraphQL Implementations\ndescription: Comparing Features of Other Go GraphQL Implementations\nmenu: main\nweight: -1\n---\n\n| | [gqlgen](https://github.com/99designs/gqlgen) | [gophers](https://github.com/graph-gophers/graphql-go) | [graphql-go](https://github.com/graphql-go/graphql) | [thunder](https://github.com/samsarahq/thunder) |\n| --------: | :-------- | :-------- | :-------- | :-------- |\n| Kind | schema first | schema first | run time types | struct first |\n| Boilerplate | less | more | more | some |\n| Docs | [docs](https://gqlgen.com) & [examples](https://github.com/99designs/gqlgen/tree/master/_examples) | [examples](https://github.com/graph-gophers/graphql-go/tree/master/example/starwars) | [examples](https://github.com/graphql-go/graphql/tree/master/examples) | [examples](https://github.com/samsarahq/thunder/tree/master/example)|\n| Query | 👍 | 👍 | 👍 | 👍 |\n| Mutation | 👍 | 🚧 [pr](https://github.com/graph-gophers/graphql-go/pull/182) | 👍 | 👍 |\n| Subscription | 👍 | 🚧 [pr](https://github.com/graph-gophers/graphql-go/pull/182) | 👍 | 👍 |\n| Type Safety | 👍 | 👍 | ⛔️ | 👍 | \n| Type Binding | 👍 | 👍 | ⛔️ | 👍 |\n| Embedding | 👍 | ⛔️ | 🚧 [pr](https://github.com/graphql-go/graphql/pull/371) | ⛔️ |\n| Interfaces | 👍 | 👍 | 👍 | ⛔️ [is](https://github.com/samsarahq/thunder/issues/78) |\n| Generated Enums | 👍 | ⛔️ | ⛔️ | ⛔️ |\n| Generated Inputs | 👍 | ⛔️ | ⛔️ | ⛔️ |\n| Federation | 👍 | ⛔️ | ⛔️ | ⛔️ |\n| Opentracing | 👍 | 👍 | ⛔️ | ✂️[pr](https://github.com/samsarahq/thunder/pull/77) |\n| Hooks for error logging | 👍 | ⛔️ | ⛔️ | ⛔️ |\n| Dataloading | 👍 | 👍 | 👍 | ⚠️ |\n| Concurrency | 👍 | 👍 | 👍 | 👍 |\n| Custom errors & error.path | 👍 | ⛔️ [is](https://github.com/graphql-go/graphql/issues/259) | ⛔️ | ⛔️ |\n| Query complexity | 👍 | ⛔️ [is](https://github.com/graphql-go/graphql/issues/231) | ⛔️ | ⛔️ |\n"
  },
  {
    "path": "docs/content/getting-started.md",
    "content": "---\nlinkTitle: Getting Started\ntitle: Building GraphQL servers in golang\ndescription: Get started building type-safe GraphQL servers in Golang using gqlgen\nmenu: main\nweight: -7\n---\n\nThis tutorial will take you through the process of building a GraphQL server with gqlgen that can:\n\n - Return a list of todos\n - Create new todos\n - Mark off todos as they are completed\n\nYou can find the finished code for this tutorial [here](https://github.com/vektah/gqlgen-tutorials/tree/master/gettingstarted)\n\n## Set up Project\n\nCreate a directory for your project, and [initialise it as a Go Module](https://golang.org/doc/tutorial/create-module):\n\n```shell\nmkdir gqlgen-todos\ncd gqlgen-todos\ngo mod init github.com/[username]/gqlgen-todos\n```\n\nNext, add `github.com/99designs/gqlgen` to your project, as a [tool dependency](https://go.dev/doc/modules/managing-dependencies#tools).\n\n```shell\ngo get -tool github.com/99designs/gqlgen\n```\n\nBy default you'll be using the latest version of gqlgen, but if you want to specify a particular version you can use `go get` (replacing `VERSION` with the particular version desired)\n```shell\ngo get -tool github.com/99designs/gqlgen@VERSION\n```\n\n## Building the server\n\n### Create the project skeleton\n\n```shell\ngo tool gqlgen init\n```\n\nThis will create our suggested package layout. You can modify these paths in gqlgen.yml if you need to.\n```\n├── go.mod\n├── go.sum\n├── gqlgen.yml               - The gqlgen config file, knobs for controlling the generated code.\n├── graph\n│   ├── generated            - A package that only contains the generated runtime\n│   │   └── generated.go\n│   ├── model                - A package for all your graph models, generated or otherwise\n│   │   └── models_gen.go\n│   ├── resolver.go          - The root graph resolver type. This file wont get regenerated\n│   ├── schema.graphqls      - Some schema. You can split the schema into as many graphql files as you like\n│   └── schema.resolvers.go  - the resolver implementation for schema.graphql\n└── server.go                - The entry point to your app. Customize it however you see fit\n```\n\n### Define your schema\n\ngqlgen is a schema-first library — before writing code, you describe your API using the GraphQL\n[Schema Definition Language](http://graphql.org/learn/schema/). By default this goes into a file called\n`schema.graphqls` but you can break it up into as many different files as you want.\n\nThe schema that was generated for us was:\n```graphql\ntype Todo {\n  id: ID!\n  text: String!\n  done: Boolean!\n  user: User!\n}\n\ntype User {\n  id: ID!\n  name: String!\n}\n\ntype Query {\n  todos: [Todo!]!\n}\n\ninput NewTodo {\n  text: String!\n  userId: String!\n}\n\ntype Mutation {\n  createTodo(input: NewTodo!): Todo!\n}\n```\n\n### Implement the resolvers\n\nWhen executed, gqlgen's `generate` command compares the schema file (`graph/schema.graphqls`) with the models `graph/model/*`, and, wherever it\ncan, it will bind directly to the model.  That was done already when `init` was run.  We'll edit the schema later in the tutorial, but for now, let's look at what was generated already.\n\nIf we take a look in `graph/schema.resolvers.go` we will see all the times that gqlgen couldn't match them up. For us\nit was twice:\n\n```go\nfunc (r *mutationResolver) CreateTodo(ctx context.Context, input model.NewTodo) (*model.Todo, error) {\n\tpanic(fmt.Errorf(\"not implemented\"))\n}\n\nfunc (r *queryResolver) Todos(ctx context.Context) ([]*model.Todo, error) {\n\tpanic(fmt.Errorf(\"not implemented\"))\n}\n```\n\nWe just need to implement these two methods to get our server working:\n\nFirst we need somewhere to track our state, lets put it in `graph/resolver.go`. The `graph/resolver.go` file is where we declare our app's dependencies, like our database. It gets initialized once in `server.go` when we create the graph.\n\n```go\ntype Resolver struct{\n\ttodos []*model.Todo\n}\n```\n\nReturning to `graph/schema.resolvers.go`, let's implement the bodies of those automatically generated resolver functions.  For `CreateTodo`, we'll use the [`crypto.rand` package](https://pkg.go.dev/crypto/rand#Int) to simply return a todo with a randomly generated ID and store that in the in-memory todos list --- in a real app, you're likely to use a database or some other backend service.\n\n```go\nfunc (r *mutationResolver) CreateTodo(ctx context.Context, input model.NewTodo) (*model.Todo, error) {\n\trandNumber, _ := rand.Int(rand.Reader, big.NewInt(100))\n\ttodo := &model.Todo{\n\t\tText: input.Text,\n\t\tID:   fmt.Sprintf(\"T%d\", randNumber),\n\t\tUser: &model.User{ID: input.UserID, Name: \"user \" + input.UserID},\n\t}\n\tr.todos = append(r.todos, todo)\n\treturn todo, nil\n}\n\nfunc (r *queryResolver) Todos(ctx context.Context) ([]*model.Todo, error) {\n\treturn r.todos, nil\n}\n```\n\n### Run the server\n\nWe now have a working server, to start it:\n```bash\ngo run server.go\n```\n\nOpen http://localhost:8080 in a browser. Here are some queries to try, starting with creating a todo:\n```graphql\nmutation createTodo {\n  createTodo(input: { text: \"todo\", userId: \"1\" }) {\n    user {\n      id\n    }\n    text\n    done\n  }\n}\n```\n\nAnd then querying for it:\n\n```graphql\nquery findTodos {\n  todos {\n    text\n    done\n    user {\n      name\n    }\n  }\n}\n```\n\n### Don't eagerly fetch the user\n\nThis example is great, but in the real world fetching most objects is expensive. We don't want to load the User on the\ntodo unless the user actually asked for it. So lets replace the generated `Todo` model with something slightly more\nrealistic.\n\nFirst let's enable `autobind`, allowing gqlgen to use your custom models if it can find them rather than generating them. We do this by uncommenting the `autobind` config line in `gqlgen.yml`:\n\n```yml\n# gqlgen will search for any type names in the schema in these go packages\n# if they match it will use them, otherwise it will generate them.\nautobind:\n - \"github.com/[username]/gqlgen-todos/graph/model\"\n```\n\nAnd add `Todo` fields resolver config in `gqlgen.yml` to generate resolver for `user` field\n```yml\n# This section declares type mapping between the GraphQL and go type systems\n#\n# The first line in each type will be used as defaults for resolver arguments and\n# modelgen, the others will be allowed when binding to fields. Configure them to\n# your liking\nmodels:\n  ID:\n    model:\n      - github.com/99designs/gqlgen/graphql.ID\n      - github.com/99designs/gqlgen/graphql.Int\n      - github.com/99designs/gqlgen/graphql.Int64\n      - github.com/99designs/gqlgen/graphql.Int32\n  Int:\n    model:\n      - github.com/99designs/gqlgen/graphql.Int32\n  Todo:\n    fields:\n      user:\n        resolver: true\n```\n\nNext, create a new file called `graph/model/todo.go`\n\n```go\npackage model\n\ntype Todo struct {\n\tID     string `json:\"id\"`\n\tText   string `json:\"text\"`\n\tDone   bool   `json:\"done\"`\n\tUserID string `json:\"userId\"`\n\tUser   *User  `json:\"user\"`\n}\n```\n\nAnd run `go tool gqlgen generate`.\n\nNow if we look in `graph/schema.resolvers.go` we can see a new resolver, lets implement it and fix `CreateTodo`.\n```go\nfunc (r *mutationResolver) CreateTodo(ctx context.Context, input model.NewTodo) (*model.Todo, error) {\n\trandNumber, _ := rand.Int(rand.Reader, big.NewInt(100))\n\ttodo := &model.Todo{\n\t\tText:   input.Text,\n\t\tID:     fmt.Sprintf(\"T%d\", randNumber),\n\t\tUserID: input.UserID,\n\t}\n\tr.todos = append(r.todos, todo)\n\treturn todo, nil\n}\n\nfunc (r *todoResolver) User(ctx context.Context, obj *model.Todo) (*model.User, error) {\n\treturn &model.User{ID: obj.UserID, Name: \"user \" + obj.UserID}, nil\n}\n```\n\n## Finishing touches\n\nAt the top of our `resolver.go`, between `package` and `import`, add the following line:\n\n```go\n//go:generate go tool gqlgen generate\n```\n\nThis magic comment tells `go generate` what command to run when we want to regenerate our code. To run go generate recursively over your entire project, use this command:\n\n```go\ngo generate ./...\n```\n"
  },
  {
    "path": "docs/content/introduction.md",
    "content": "---\nlinkTitle: Introduction\ntitle: Type-safe GraphQL for Go\ntype: homepage\ndate: 2018-03-17T13:06:47+11:00\n---\n"
  },
  {
    "path": "docs/content/recipes/authentication.md",
    "content": "---\ntitle: \"Providing authentication details through context\"\ndescription: How to using golang context.Context to authenticate users and pass user data to resolvers.\nlinkTitle: Authentication\nmenu: { main: { parent: 'recipes' } }\n---\n\nWe have an app where users are authenticated using a cookie in the HTTP request, and we want to check this authentication status somewhere in our graph. Because GraphQL is transport agnostic we can't assume there will even be an HTTP request, so we need to expose these authentication details to our graph using a middleware.\n\n\n```go\npackage auth\n\nimport (\n\t\"database/sql\"\n\t\"net/http\"\n\t\"context\"\n)\n\n// A private key for context that only this package can access. This is important\n// to prevent collisions between different context uses\nvar userCtxKey = &contextKey{\"user\"}\ntype contextKey struct {\n\tname string\n}\n\n// A stand-in for our database backed user object\ntype User struct {\n\tName string\n\tIsAdmin bool\n}\n\n// Middleware decodes the share session cookie and packs the session into context\nfunc Middleware(db *sql.DB) func(http.Handler) http.Handler {\n\treturn func(next http.Handler) http.Handler {\n\t\treturn http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {\n\t\t\tc, err := r.Cookie(\"auth-cookie\")\n\n\t\t\t// Allow unauthenticated users in\n\t\t\tif err != nil || c == nil {\n\t\t\t\tnext.ServeHTTP(w, r)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tuserId, err := validateAndGetUserID(c)\n\t\t\tif err != nil {\n\t\t\t\thttp.Error(w, \"Invalid cookie\", http.StatusForbidden)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// get the user from the database\n\t\t\tuser := getUserByID(db, userId)\n\n\t\t\t// put it in context\n\t\t\tctx := context.WithValue(r.Context(), userCtxKey, user)\n\n\t\t\t// and call the next with our new context\n\t\t\tr = r.WithContext(ctx)\n\t\t\tnext.ServeHTTP(w, r)\n\t\t})\n\t}\n}\n\n// ForContext finds the user from the context. REQUIRES Middleware to have run.\nfunc ForContext(ctx context.Context) *User {\n\traw, _ := ctx.Value(userCtxKey).(*User)\n\treturn raw\n}\n```\n\n**Note:** `getUserByID` and `validateAndGetUserID` have been left to the user to implement.\n\nNow when we create the server we should wrap it in our authentication middleware:\n```go\npackage main\n\nimport (\n\t\"net/http\"\n\n\t\"github.com/99designs/gqlgen/_examples/starwars\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/graphql/playground\"\n\t\"github.com/go-chi/chi\"\n)\n\nfunc main() {\n\trouter := chi.NewRouter()\n\n\trouter.Use(auth.Middleware(db))\n\n\tsrv := handler.New(starwars.NewExecutableSchema(starwars.NewResolver()))\n\tsrv.AddTransport(transport.POST{})\n\trouter.Handle(\"/\", playground.Handler(\"Starwars\", \"/query\"))\n\trouter.Handle(\"/query\", srv)\n\n\terr := http.ListenAndServe(\":8080\", router)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n```\n\nAnd in our resolvers (or directives) we can call `ForContext` to retrieve the data back out:\n```go\n\nfunc (r *queryResolver) Hero(ctx context.Context, episode Episode) (Character, error) {\n\tif user := auth.ForContext(ctx) ; user == nil || !user.IsAdmin {\n\t\treturn Character{}, fmt.Errorf(\"Access denied\")\n\t}\n\n\tif episode == EpisodeEmpire {\n\t\treturn r.humans[\"1000\"], nil\n\t}\n\treturn r.droid[\"2001\"], nil\n}\n```\n\n### Websockets\n\nIf you need access to the websocket init payload you can add your `InitFunc` in `AddTransport`.\nYour InitFunc implementation could then attempt to extract items from the payload:\n\n```go\npackage main\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"log\"\n\t\"net/http\"\n\t\"os\"\n\t\"time\"\n\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/extension\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/graphql/playground\"\n\t\"github.com/go-chi/chi\"\n\t\"github.com/gorilla/websocket\"\n\t\"github.com/gqlgen/_examples/websocket-initfunc/server/graph\"\n\t\"github.com/gqlgen/_examples/websocket-initfunc/server/graph/generated\"\n\t\"github.com/rs/cors\"\n)\n\nfunc webSocketInit(ctx context.Context, initPayload transport.InitPayload) (context.Context, error) {\n\t// Get the token from payload\n\tany := initPayload[\"authToken\"]\n\ttoken, ok := any.(string)\n\tif !ok || token == \"\" {\n\t\treturn nil, errors.New(\"authToken not found in transport payload\")\n\t}\n\n\t// Perform token verification and authentication...\n\tuserId := \"john.doe\" // e.g. userId, err := GetUserFromAuthentication(token)\n\n\t// put it in context\n\tctxNew := context.WithValue(ctx, \"username\", userId)\n\n\treturn ctxNew, nil\n}\n\nconst defaultPort = \"8080\"\n\nfunc main() {\n\tport := os.Getenv(\"PORT\")\n\tif port == \"\" {\n\t\tport = defaultPort\n\t}\n\n\trouter := chi.NewRouter()\n\n\t// CORS setup, allow any for now\n\t// https://gqlgen.com/recipes/cors/\n\tc := cors.New(cors.Options{\n\t\tAllowedOrigins:   []string{\"*\"},\n\t\tAllowCredentials: true,\n\t\tDebug:            false,\n\t})\n\n\tsrv := handler.New(generated.NewExecutableSchema(generated.Config{Resolvers: &graph.Resolver{}}))\n\tsrv.AddTransport(transport.Websocket{\n\t\tKeepAlivePingInterval: 10 * time.Second,\n\t\tUpgrader: websocket.Upgrader{\n\t\t\tCheckOrigin: func(r *http.Request) bool {\n\t\t\t\treturn true\n\t\t\t},\n\t\t},\n\t\tInitFunc: func(ctx context.Context, initPayload transport.InitPayload) (context.Context, error) {\n\t\t\treturn webSocketInit(ctx, initPayload)\n\t\t},\n\t})\n\tsrv.AddTransport(transport.POST{})\n\tsrv.Use(extension.Introspection{})\n\n\trouter.Handle(\"/\", playground.Handler(\"My GraphQL App\", \"/app\"))\n\trouter.Handle(\"/app\", c.Handler(srv))\n\n\tlog.Printf(\"connect to http://localhost:%s/ for GraphQL playground\", port)\n\tlog.Fatal(http.ListenAndServe(\":\"+port, router))\n}\n```\n\n> Note\n>\n> Subscriptions are long lived, if your tokens can timeout or need to be refreshed you should keep the token in\ncontext too and verify it is still valid in `auth.ForContext`.\n"
  },
  {
    "path": "docs/content/recipes/cors.md",
    "content": "---\ntitle: \"Setting CORS headers using rs/cors for gqlgen\"\ndescription: Use the best of breed rs/cors library to set CORS headers when working with gqlgen\nlinkTitle: CORS\nmenu: { main: { parent: \"recipes\" } }\n---\n\nCross-Origin Resource Sharing (CORS) headers are required when your graphql server lives on a different domain to the one your client code is served. You can read more about CORS in the [MDN docs](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS).\n\n## rs/cors\n\ngqlgen doesn't include a CORS implementation, but it is built to work with all standard http middleware. Here we are going to use the fantastic `chi` and `rs/cors` to build our server.\n\n```go\npackage main\n\nimport (\n\t\"net/http\"\n\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/_examples/starwars\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/go-chi/chi\"\n\t\"github.com/rs/cors\"\n\t\"github.com/gorilla/websocket\"\n\t\"github.com/99designs/gqlgen/graphql/playground\"\n)\n\nfunc main() {\n\trouter := chi.NewRouter()\n\n\t// Add CORS middleware around every request\n\t// See https://github.com/rs/cors for full option listing\n\trouter.Use(cors.New(cors.Options{\n\t\tAllowedOrigins:   []string{\"http://localhost:8080\"},\n\t\tAllowCredentials: true,\n\t\tDebug:            true,\n\t}).Handler)\n\n\n\tsrv := handler.New(starwars.NewExecutableSchema(starwars.NewResolver()))\n\n\t// Handle cross-origin checks in for websocket upgrade requests:\n\tsrv.AddTransport(&transport.Websocket{\n\t\tUpgrader: websocket.Upgrader{\n\t\t\tCheckOrigin: func(r *http.Request) bool {\n\t\t\t\t// Check against your desired domains here\n\t\t\t\treturn r.Host == \"example.org\"\n\t\t\t},\n\t\t\tReadBufferSize:  1024,\n\t\t\tWriteBufferSize: 1024,\n\t\t},\n\t})\n\tsrv.AddTransport(transport.POST{})\n\n\trouter.Handle(\"/\", playground.Handler(\"Starwars\", \"/query\"))\n\trouter.Handle(\"/query\", srv)\n\n\terr := http.ListenAndServe(\":8080\", router)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n```\n"
  },
  {
    "path": "docs/content/recipes/enum.md",
    "content": "---\ntitle: Extended enum to model binding tips\nlinkTitle: Enum binding\nmenu: { main: { parent: 'recipes' } }\n---\n\nUsing the following recipe you can bind enum values to specific const or variable.\nBoth typed and untyped binding are supported.\n\n- For typed:\\\n  Set model to const/var type. Set enum values to specific const/var.\n- For untyped:\\\n  Set model to predefined gqlgen type (e.g. for int use `github.com/99designs/gqlgen/graphql.Int`).\n  Set enum values to specific const/var.\n\nMore examples can be found in [_examples/enum](https://github.com/99designs/gqlgen/tree/master/_examples/enum).\n\n## Binding Targets\n\nBinding target go model enums:\n\n```golang\npackage model\n\ntype EnumTyped int\n\nconst (\n\tEnumTypedOne EnumTyped = iota + 1\n\tEnumTypedTwo\n)\n\nconst (\n\tEnumUntypedOne = iota + 1\n\tEnumUntypedTwo\n)\n\n```\n\nBinding using `@goModel` and `@goEnum` directives:\n\n```graphql\ndirective @goModel(\n    model: String\n    models: [String!]\n) on OBJECT | INPUT_OBJECT | SCALAR | ENUM | INTERFACE | UNION\n\ndirective @goEnum(\n    value: String\n) on ENUM_VALUE\n\ntype Query {\n    example(arg: EnumUntyped): EnumTyped\n}\n\nenum EnumTyped @goModel(model: \"./model.EnumTyped\") {\n    ONE @goEnum(value: \"./model.EnumTypedOne\")\n    TWO @goEnum(value: \"./model.EnumTypedTwo\")\n}\n\nenum EnumUntyped @goModel(model: \"github.com/99designs/gqlgen/graphql.Int\") {\n    ONE @goEnum(value: \"./model.EnumUntypedOne\")\n    TWO @goEnum(value: \"./model.EnumUntypedTwo\")\n}\n\n```\n\nThe same result can be achieved using the config:\n\n```yaml\nmodels:\n  EnumTyped:\n    model: ./model.EnumTyped\n    enum_values:\n      ONE:\n        value: ./model.EnumTypedOne\n      TWO:\n        value: ./model.EnumTypedTwo\n  EnumUntyped:\n    model: github.com/99designs/gqlgen/graphql.Int\n    enum_values:\n      ONE:\n        value: ./model.EnumUntypedOne\n      TWO:\n        value: ./model.EnumUntypedTwo\n```\n\n## Additional Notes for int-based Enums\n\nIf you want to use the generated input structs that use int-based enums to query your GraphQL server, you need an additional step to convert the int-based enum value into a JSON string representation. Otherwise, most client libraries will send an integer value, which the server will not understand, since it is expecting the string representation (e.g. `ONE` in the above example).\n\nTherefore, we must implement `MarshalJSON` and `UnmarshalJSON` on the typed enum type to convert between both. This is only possible with typed bindings.\n\n```go\nfunc (t EnumTyped) String() string {\n\tswitch t {\n\tcase EnumTypedOne:\n\t\treturn \"ONE\"\n\tcase EnumTypedTwo:\n\t\treturn \"TWO\"\n\tdefault:\n\t\treturn \"UNKNOWN\"\n\t}\n}\n\nfunc (t EnumTyped) MarshalJSON() ([]byte, error) {\n\treturn []byte(fmt.Sprintf(`\"%s\"`, t.String())), nil\n}\n\nfunc (t *EnumTyped) UnmarshalJSON(b []byte) (err error) {\n\tvar s string\n\n\tif err = json.Unmarshal(b, &s); err != nil {\n\t\treturn err\n\t}\n\n\tswitch s {\n\tcase \"ONE\":\n\t\t*t = EnumTypedOne\n\tcase \"TWO\":\n\t\t*t = EnumTypedTwo\n\tdefault:\n\t\treturn fmt.Errorf(\"unexpected enum value %q\", s)\n\t}\n\n\treturn nil\n}\n```\n\n"
  },
  {
    "path": "docs/content/recipes/extra_fields.md",
    "content": "---\ntitle: \"Generation of additional extra fields for internal use\"\ndescription: Pass implementation specific fields to the children resolvers without being forced to define your own types for a GraphQL model.\nlinkTitle: Generated Model Extra Fields\nmenu: { main: { parent: \"recipes\" } }\n---\n\nExtra fields allows you to generate additional fields for your models.\nThese fields can be used at runtime when implementing field resolvers.\n\n## Extending your models\n\nImagine you have a model named User and you want to extend a generated struct with additional data used in your service.\n\nThe schema is:\n\n```graphql\ntype User {\n\tid: ID!\n\tname: String!\n}\n```\n\nExtra fields can be defined in gqlgen.yaml configuration:\n\n```yaml\nmodels:\n  User:\n    extraFields:\n      Session:\n        description: \"A Session used by this user\"\n        type: \"github.com/author/mypkg.Session\"\n        overrideTags: 'xml:\"session\"'\n```\n\nThe generated code would look like:\n\n```go\n// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\ntype User struct {\n\tID   string\n\tName string\n\t// A Session used by this user.\n\tSession mypkg.Session `xml:\"session\"`\n}\n```\n\nAfter these steps you have an extra field for your server implementation and the field is not being exposed to a caller.\n\n### Inline config with directive\n\nTo start using it you first need to define it:\n\n```graphql\ndirective @goExtraField(\n\tname: String\n\ttype: String!\n\toverrideTags: String\n\tdescription: String\n) repeatable on OBJECT | INPUT_OBJECT\n```\n\nNow you can use these directive when defining types in your schema:\n\n```graphql\ntype User\n\t@goExtraField(\n\t\tname: \"Session\"\n\t\ttype: \"github.com/author/mypkg.Session\"\n\t\tdescription: \"A Session used by this user\"\n\t\toverrideTags: \"xml:\\\"session\\\"\"\n\t)\n\t@goExtraField(name: \"Activated\", type: \"bool\")\n\t@goExtraField(\n\t\ttype: \"time.Time\"\n\t\tdescription: \"type without name will be embedded\"\n\t) {\n\tid: ID\n\tname: String\n}\n```\n\nThe generated code would look like:\n\n```go\ntype User struct {\n  ID   string\n  Name string\n  // A Session used by this user.\n  Session   mypkg.Session `xml:\"session\"`\n  Activated bool\n  time.Time\n}\n```\n"
  },
  {
    "path": "docs/content/recipes/federation.md",
    "content": "---\ntitle: \"Using Apollo federation gqlgen\"\ndescription: How federate many services into a single graph using Apollo\nlinkTitle: Apollo Federation\nmenu: { main: { parent: \"recipes\" } }\n---\n\nIn this quick guide we are going to implement the example [Apollo Federation](https://www.apollographql.com/docs/apollo-server/federation/introduction/)\nserver in gqlgen. You can find the finished result in the [examples directory](https://github.com/99designs/gqlgen/tree/master/_examples/federation).\n\n## Enable federation\n\nUncomment federation configuration in your `gqlgen.yml`\n\n```yml\n# Uncomment to enable federation\nfederation:\n  filename: graph/federation.go\n  package: graph\n```\n\n### Federation 2\n\nIf you are using Apollo's Federation 2 standard, your schema should automatically be upgraded so long as you include the required `@link` directive within your schema. If you want to force Federation 2 composition, the `federation` configuration supports a `version` flag to override that. For example:\n\n```yml\nfederation:\n  filename: graph/federation.go\n  package: graph\n  version: 2\n```\n\n## Create the federated servers\n\nFor each server to be federated we will create a new gqlgen project.\n\n```bash\ngo tool gqlgen generate\n```\n\nUpdate the schema to reflect the federated example\n\n```graphql\ntype Review {\n\tbody: String\n\tauthor: User @provides(fields: \"username\")\n\tproduct: Product\n}\n\nextend type User @key(fields: \"id\") {\n\tid: ID! @external # External directive not required for key fields in federation v2\n\treviews: [Review]\n}\n\nextend type Product @key(fields: \"upc\") {\n\tupc: String! @external # External directive not required for key fields in federation v2\n\treviews: [Review]\n}\n```\n\nand regenerate\n\n```bash\ngo tool gqlgen generate\n```\n\nthen implement the resolvers\n\n```go\n// These two methods are required for gqlgen to resolve the internal id-only wrapper structs.\n// This boilerplate might be removed in a future version of gqlgen that can no-op id only nodes.\nfunc (r *entityResolver) FindProductByUpc(ctx context.Context, upc string) (*model.Product, error) {\n\treturn &model.Product{\n\t\tUpc: upc,\n\t}, nil\n}\n\nfunc (r *entityResolver) FindUserByID(ctx context.Context, id string) (*model.User, error) {\n\treturn &model.User{\n\t\tID: id,\n\t}, nil\n}\n\n// Here we implement the stitched part of this service, returning reviews for a product. Of course normally you would\n// go back to the database, but we are just making some data up here.\nfunc (r *productResolver) Reviews(ctx context.Context, obj *model.Product) ([]*model.Review, error) {\n\tswitch obj.Upc {\n\tcase \"top-1\":\n\t\treturn []*model.Review{{\n\t\t\tBody: \"A highly effective form of birth control.\",\n\t\t}}, nil\n\n\tcase \"top-2\":\n\t\treturn []*model.Review{{\n\t\t\tBody: \"Fedoras are one of the most fashionable hats around and can look great with a variety of outfits.\",\n\t\t}}, nil\n\n\tcase \"top-3\":\n\t\treturn []*model.Review{{\n\t\t\tBody: \"This is the last straw. Hat you will wear. 11/10\",\n\t\t}}, nil\n\n\t}\n\treturn nil, nil\n}\n\nfunc (r *userResolver) Reviews(ctx context.Context, obj *model.User) ([]*model.Review, error) {\n\tif obj.ID == \"1234\" {\n\t\treturn []*model.Review{{\n\t\t\tBody: \"Has an odd fascination with hats.\",\n\t\t}}, nil\n\t}\n\treturn nil, nil\n}\n```\n\n> Note\n>\n> Repeat this step for each of the services in the apollo doc (accounts, products, reviews)\n\n## Create the federation gateway\n\n```bash\nnpm install --save @apollo/gateway apollo-server graphql\n```\n\n```typescript\nconst { ApolloServer } = require(\"apollo-server\");\nconst { ApolloGateway, IntrospectAndCompose } = require(\"@apollo/gateway\");\n\nconst gateway = new ApolloGateway({\n\tsupergraphSdl: new IntrospectAndCompose({\n\t\tsubgraphs: [\n\t\t\t{ name: \"accounts\", url: \"http://localhost:4001/query\" },\n\t\t\t{ name: \"products\", url: \"http://localhost:4002/query\" },\n\t\t\t{ name: \"reviews\", url: \"http://localhost:4003/query\" },\n\t\t],\n\t}),\n});\n\nconst server = new ApolloServer({\n\tgateway,\n\n\tsubscriptions: false,\n});\n\nserver.listen().then(({ url }) => {\n\tconsole.log(`🚀 Server ready at ${url}`);\n});\n```\n\n## Start all the services\n\nIn separate terminals:\n\n```bash\ngo run accounts/server.go\ngo run products/server.go\ngo run reviews/server.go\nnode gateway/index.js\n```\n\n## Query the federated gateway\n\nThe examples from the apollo doc should all work, eg\n\n```graphql\nquery {\n\tme {\n\t\tusername\n\t\treviews {\n\t\t\tbody\n\t\t\tproduct {\n\t\t\t\tname\n\t\t\t\tupc\n\t\t\t}\n\t\t}\n\t}\n}\n```\n\nshould return\n\n```json\n{\n\t\"data\": {\n\t\t\"me\": {\n\t\t\t\"username\": \"Me\",\n\t\t\t\"reviews\": [\n\t\t\t\t{\n\t\t\t\t\t\"body\": \"A highly effective form of birth control.\",\n\t\t\t\t\t\"product\": {\n\t\t\t\t\t\t\"name\": \"Trilby\",\n\t\t\t\t\t\t\"upc\": \"top-1\"\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"body\": \"Fedoras are one of the most fashionable hats around and can look great with a variety of outfits.\",\n\t\t\t\t\t\"product\": {\n\t\t\t\t\t\t\"name\": \"Trilby\",\n\t\t\t\t\t\t\"upc\": \"top-1\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t}\n}\n```\n\n## Using @requires\n\n`@requires` enables you to [define computed fields](https://www.apollographql.com/docs/federation/federated-schemas/federated-directives/#requires). In order for this to work, you need to be able to reference the values injected by the selection set inside the `fields` property of `@requires`.\n\nIn order to do this, you need to enable the `federation.options.computed_requires` flag. You also\nneed to enable `call_argument_directives_with_null`.\n\n```yml\nfederation:\n  filename: graph/federation.go\n  package: graph\n  version: 2\n  options:\n    computed_requires: true\n\ncall_argument_directives_with_null: true\n```\n\nOnce you do this, if you have `@requires` declared anywhere on your schema, you'll see updates to the\ngenrated resolver functions that include a new argument, `federationRequires`, that will contain the\nfields you requested in your `@requires.fields` selection set.\n\n> Note: currently it's represented as a map[string]any where the contained values are encoded with\n> `encoding/json`. Eventually we will generate a typesafe model that represents these models,\n> however that is a large lift. This typesafe support will be added in the future.\n\n### Example\n\nTake a simple todo app schema that needs to provide a formatted status text to be used across all clients by referencing the assignee's name.\n\n```graphql\ntype Todo @key(fields: \"id\") {\n\tid: ID!\n\ttext: String!\n\tstatusText: String! @requires(fields: \"assignee { name }\")\n\tstatus: String!\n\towner: User!\n\tassignee: User! @external\n}\n\ntype User @key(fields: \"id\") {\n\tid: ID!\n\tname: String! @external\n}\n```\n\nThe `statusText` resolver function is updated and can be modified accordingly to use the todo representation with the assignee name.\n\n```golang\nfunc (r *todoResolver) StatusText(ctx context.Context, entity *model.Todo, federationRequires map[string]interface{} /* new argument generated onto your resolver function */) (string, error) {\n  if federationRequires[\"assignee\"] == nil {\n    return \"\", nil\n  }\n\n  // federationRequires will contain the \"assignee.name\" field provided by the Federation router\n  statusText := entity.Status + \" by \" + federationRequires[\"assignee\"].(map[string]interface{})[\"name\"].(string)\n  return statusText, nil\n}\n```\n\n### [DEPRECATED] Alternate API\n\n> Note: it's not recommended to use this API anymore. See the `Using @requires` section for the recommend API.\n\nIf you need to support **nested** or **array** fields in the `@requires` directive, this can be enabled in the configuration by setting `federation.options.explicit_requires` to true.\n\n```yml\nfederation:\n  filename: graph/federation.go\n  package: graph\n  version: 2\n  options:\n    explicit_requires: true\n```\n\nEnabling this will generate corresponding functions with the entity representations received in the request. This allows for the entity model to be explicitly populated with the required data provided.\n\n#### Example\n\nTake a simple todo app schema that needs to provide a formatted status text to be used across all clients by referencing the assignee's name.\n\n```graphql\ntype Todo @key(fields: \"id\") {\n\tid: ID!\n\ttext: String!\n\tstatusText: String! @requires(fields: \"assignee { name }\")\n\tstatus: String!\n\towner: User!\n\tassignee: User!\n}\n\ntype User @key(fields: \"id\") {\n\tid: ID!\n\tname: String! @external\n}\n```\n\nA `PopulateTodoRequires` function is generated, and can be modified accordingly to use the todo representation with the assignee name.\n\n```golang\n// PopulateTodoRequires is the requires populator for the Todo entity.\nfunc (ec *executionContext) PopulateTodoRequires(ctx context.Context, entity *model.Todo, reps map[string]interface{}) error {\n\tif reps[\"assignee\"] != nil {\n\t\tentity.StatusText = entity.Status + \" by \" + reps[\"assignee\"].(map[string]interface{})[\"name\"].(string)\n\t}\n\treturn nil\n}\n```\n\n## Using @entityResolver\n\nThe `@entityResolver` directive enables optimization for entity resolver generation in GraphQL federation.\n\n### Configuration\n\nTo use this feature, define the `@entityResolver(multi: Boolean)` directive on your OBJECT types. Federated entities must be annotated with this directive to enable the functionality.\n\nExample:\n\n```graphql\ntype MultiHello @key(fields: \"name\") @entityResolver(multi: true)\n```\n\n### Global Configuration\n\nYou can enable this feature by default by setting the `federation.options.entity_resolver_multi` flag in your configuration:\n\n```yml\nfederation:\n  filename: graph/federation.go\n  package: graph\n  version: 2\n  options:\n    entity_resolver_multi: true\n```\n\n### Schema Example\n\n```graphql\ndirective @entityResolver(multi: Boolean) on OBJECT\n\ntype User @key(fields: \"id\") @entityResolver(multi: true) {\n\tid: ID!\n\tname: String!\n}\n```\n\nAfter defining your schema, regenerate the code:\n\n```bash\ngo run github.com/99designs/gqlgen\n```\n\n### Implementation\n\nImplement the generated resolver method:\n\n```go\n// IMPORTANT: The output slice order is critical and must match the input slice order exactly!\nfunc (r *entityResolver) FindUserByIDs(ctx context.Context, reps []*entity.UserByIDsInput) ([]*model.User, error) {\n\toutput := make([]*model.User, len(reps))\n\tfor i, user := range reps {\n\t\toutput[i] = &model.User{\n\t\t\tID:   user.ID,\n\t\t\tName: \"User \" + user.ID,\n\t\t}\n\t}\n\n\treturn output, nil\n}\n```\n\nWhen configured, the federation plugin creates an entity resolver that accepts a list of representations, improving performance by reducing the number of individual resolver calls.\n"
  },
  {
    "path": "docs/content/recipes/gin.md",
    "content": "---\ntitle: \"Using Gin to setup HTTP handlers\"\ndescription: Setting up HTTP handlers using Gin, a HTTP web framework written in Go.\nlinkTitle: Gin\nmenu: { main: { parent: 'recipes' } }\n---\n\nGin is an excellent alternative for the `net/http` router. From their official [GitHub page](https://github.com/gin-gonic/gin):\n\n> Gin is a web framework written in Go (Golang). It features a martini-like API with much better performance, up to 40 times faster thanks to httprouter. If you need performance and good productivity, you will love Gin.\n\nHere are the steps to setup Gin and gqlgen together:\n\nInstall Gin:\n\n```bash\n$ go get github.com/gin-gonic/gin\n```\n\nIn your router file, define the handlers for the GraphQL and Playground endpoints in two different methods and tie them together in the Gin router:\n\n```go\nimport (\n\t\"github.com/[username]/gqlgen-todos/graph\"\t// Replace username with your github username\n\t\"github.com/gin-gonic/gin\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/extension\"\n\t\"github.com/99designs/gqlgen/graphql/handler/lru\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/graphql/playground\"\n)\n\n// Defining the Graphql handler\nfunc graphqlHandler() gin.HandlerFunc {\n\t// NewExecutableSchema and Config are in the generated.go file\n\t// Resolver is in the resolver.go file\n\th := handler.New(graph.NewExecutableSchema(graph.Config{Resolvers: &graph.Resolver{}}))\n\n\t// Server setup:\n\th.AddTransport(transport.Options{})\n\th.AddTransport(transport.GET{})\n\th.AddTransport(transport.POST{})\n\n\th.SetQueryCache(lru.New[*ast.QueryDocument](1000))\n\n\th.Use(extension.Introspection{})\n\th.Use(extension.AutomaticPersistedQuery{\n\t\tCache: lru.New[string](100),\n\t})\n\n\treturn func(c *gin.Context) {\n\t\th.ServeHTTP(c.Writer, c.Request)\n\t}\n}\n\n// Defining the Playground handler\nfunc playgroundHandler() gin.HandlerFunc {\n\th := playground.Handler(\"GraphQL\", \"/query\")\n\n\treturn func(c *gin.Context) {\n\t\th.ServeHTTP(c.Writer, c.Request)\n\t}\n}\n\nfunc main() {\n\t// Setting up Gin\n\tr := gin.Default()\n\tr.POST(\"/query\", graphqlHandler())\n\tr.GET(\"/\", playgroundHandler())\n\tr.Run()\n}\n\n```\n\n## Accessing gin.Context\n\nAt the Resolver level, `gqlgen` gives you access to the `context.Context` object. One way to access the `gin.Context` is to add it to the context and retrieve it again.\n\nFirst, create a `gin` middleware to add its context to the `context.Context`:\n\n```go\nfunc GinContextToContextMiddleware() gin.HandlerFunc {\n\treturn func(c *gin.Context) {\n\t\tctx := context.WithValue(c.Request.Context(), \"GinContextKey\", c)\n\t\tc.Request = c.Request.WithContext(ctx)\n\t\tc.Next()\n\t}\n}\n```\n\nIn the router definition, use the middleware:\n\n```go\nr.Use(GinContextToContextMiddleware())\n```\n\nDefine a function to recover the `gin.Context` from the `context.Context` struct:\n\n```go\nfunc GinContextFromContext(ctx context.Context) (*gin.Context, error) {\n\tginContext := ctx.Value(\"GinContextKey\")\n\tif ginContext == nil {\n\t\terr := fmt.Errorf(\"could not retrieve gin.Context\")\n\t\treturn nil, err\n\t}\n\n\tgc, ok := ginContext.(*gin.Context)\n\tif !ok {\n\t\terr := fmt.Errorf(\"gin.Context has wrong type\")\n\t\treturn nil, err\n\t}\n\treturn gc, nil\n}\n```\n\nLastly, in the Resolver, retrieve the `gin.Context` with the previous defined function:\n```go\nfunc (r *resolver) Todo(ctx context.Context) (*Todo, error) {\n\tgc, err := GinContextFromContext(ctx)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// ...\n}\n```\n"
  },
  {
    "path": "docs/content/recipes/interfaces.md",
    "content": "---\ntitle: \"Embedding Interfaces\"\ndescription: Embed GraphQL interfaces as Go structs using @goEmbedInterface directive\nlinkTitle: embedded_interfaces\nmenu: { main: { parent: \"recipes\" } }\n---\n\nEmbedding a GraphQL interface in a Go struct lets you share behavior without duplicating fields. Mark the interface with\n`@goEmbedInterface` and gqlgen would generate `Base{Interface}` struct and embed it to all implementors instead of copying fields.\n\n### Core Features\n\n- **Create base struct**: Interfaces marked with `@goEmbedInterface` get `Base{Interface}` structs generated for embedding.\n- **Resolve chained embedding**: For annotated interfaces, modelgen walks interface implementation hierarchy and reuses already embedded types, so implementing `A & B & C` keeps a single copy of shared parents. When some intermediate interfaces are not annotated, their fields are included directly in the next implementor struct.\n\n### Example\n\n```graphql\ndirective @goEmbedInterface on INTERFACE\n\ntype Query {\n  product(id: ID!): Product!\n}\n\ninterface Node @goEmbedInterface {\n  id: ID!\n}\n\ninterface Ownable @goEmbedInterface {\n  owner: String!\n}\n\ntype Product implements Node & Ownable {\n  id: ID!\n  owner: String!\n  name: String!\n}\n```\n\nConfiguration:\n\n```yaml\n# gqlgen.yml\nschema:\n  - schema.graphqls\nmodel:\n  filename: graph/model/models_gen.go\n```\n\ngqlgen generates `BaseNode` and `BaseOwnable` structs (only for interfaces with `@goEmbedInterface`), and `Product` embeds both:\n\n```startLine:endLine:graph/model/models_gen.go\ntype BaseNode struct {\n\tID string `json:\"id\"`\n}\n\nfunc (BaseNode) IsNode() {}\n\ntype BaseOwnable struct {\n\tOwner string `json:\"owner\"`\n}\n\nfunc (BaseOwnable) IsOwnable() {}\n\ntype Product struct {\n\tBaseNode\n\tBaseOwnable\n\tName string `json:\"name\"`\n}\n\nfunc (Product) IsNode() {}\nfunc (Product) IsOwnable() {}\n```\n\nIn resolvers, call methods that return base implementations—no need to construct interface fields manually:\n\n```startLine:endLine:graph/resolver.go\nfunc (r *queryResolver) Product(ctx context.Context, id string) (*model.Product, error) {\n\tnode, err := r.productService.GetNode(ctx, id)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\towner, err := r.productService.GetOwner(ctx, id)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname, err := r.productService.GetName(ctx, id)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &model.Product{\n\t\tBaseNode:    node,  // embeds ID from service\n\t\tBaseOwnable: owner, // embeds Owner from service\n\t\tName:        name,\n\t}, nil\n}\n```\n\n**Limitations**\n\n- **Diamond problem**: When an interface implements multiple parent interfaces that both have `@goEmbedInterface`, both base structs are embedded. This works correctly as long as there are no field name conflicts, which prevents embedding of both parents.\n- **Covariant overrides**: When a type implements an interface but uses a more specific type for a field (e.g., interface declares `data: NodeData!` but implementation uses `data: ProductNodeData!`), gqlgen skips embedding the base struct for that interface and generates explicit fields instead.\n"
  },
  {
    "path": "docs/content/recipes/migration-0.11.md",
    "content": "---\ntitle: \"Migrating to 0.11\"\ndescription: Changes in gqlgen 0.11\nlinkTitle: Migrating to 0.11\nmenu: { main: { parent: 'recipes' } }\n---\n\n## Updated gqlparser\n\ngqlparser had a breaking change, if you have any references to it in your project your going to need to update\nthem from `github.com/vektah/gqlparser` to `github.com/vektah/gqlparser/v2`.\n\n```bash\nsed -i 's/github.com\\/vektah\\/gqlparser/github.com\\/vektah\\/gqlparser\\/v2/' $(find -name '*.go')\n```\n\n## Handler Refactor\n\nThe handler package has grown organically for a long time, 0.11 is a large cleanup of the handler package to make it\nmore modular and easier to maintain once we get to 1.0.\n\n\n### Transports\n\nTransports are the first thing that run, they handle decoding the incoming http request, and encoding the graphql\nresponse. Supported transports are:\n\n - GET\n - JSON POST\n - Multipart form\n - UrlEncoded form\n - GRAPHQL\n - Websockets\n\nnew usage looks like this\n```go\nsrv := New(es)\n\nsrv.AddTransport(transport.Websocket{\n\tKeepAlivePingInterval: 10 * time.Second,\n})\nsrv.AddTransport(transport.Options{})\nsrv.AddTransport(transport.GET{})\nsrv.AddTransport(transport.POST{})\nsrv.AddTransport(transport.MultipartForm{})\nsrv.AddTransport(transport.UrlEncodedForm{})\nsrv.AddTransport(transport.GRAPHQL{})\n```\n\n### New handler extension API\n\nThe core of this changes the handler package to be a set of composable extensions. The extensions implement a set of optional interfaces:\n\n - **OperationParameterMutator** runs before creating a OperationContext (formerly RequestContext). allows manipulating the raw query before parsing.\n - **OperationContextMutator** runs after creating the OperationContext, but before executing the root resolver.\n - **OperationInterceptor** runs for each incoming query after parsing and validation, for basic requests the writer will be invoked once, for subscriptions it will be invoked multiple times.\n - **ResponseInterceptor** runs around each graphql operation response. This can be called many times for a single operation the case of subscriptions.\n - **FieldInterceptor** runs around each field\n\n![Anatomy of a request@2x](https://user-images.githubusercontent.com/2247982/68181515-c8a27c00-ffeb-11e9-86f6-1673e7179ecb.png)\n\nUsers of an extension should not need to know which extension points are being used by a given extension, they are added to the server simply by calling `Use(extension)`.\n\nThere are a few convenience methods for defining middleware inline, instead of creating an extension\n\n```go\nsrv := handler.New(es)\nsrv.AroundFields(func(ctx context.Context, next graphql.Resolver) (res interface{}, err error) {\n\t// this function will be called around every field. next() will evaluate the field and return\n\t// its computed value.\n\treturn next(ctx)\n})\nsrv.AroundOperations(func(ctx context.Context, next graphql.OperationHandler) graphql.ResponseHandler {\n\t// This function will be called around every operation, next() will return a function that when\n\t// called will evaluate one response. Eventually next will return nil, signalling there are no\n\t// more results to be returned by the server.\n\treturn next(ctx)\n})\nsrv.AroundResponses(func(ctx context.Context, next graphql.ResponseHandler) *graphql.Response {\n\t// This function will be called around each response in the operation. next() will evaluate\n\t// and return a single response.\n\treturn next(ctx)\n})\n```\n\n\nSome of the features supported out of the box by handler extensions:\n\n - APQ\n - Query Complexity\n - Error Presenters and Recover Func\n - Introspection Query support\n - Query AST cache\n - Tracing API\n\nThey can be `Use`'d like this:\n\n```go\nsrv := handler.New(es)\nsrv.Use(extension.Introspection{})\nsrv.Use(extension.AutomaticPersistedQuery{\n\tCache: lru.New(100),\n})\nsrv.Use(apollotracing.Tracer{})\n```\n\n### More consistent naming\n\nAs part of cleaning up the names the RequestContext has been renamed to OperationContext, as there can be multiple created during the lifecycle of a request. A new ResponseContext has also been created and error handling has been moved here. This allows each response in a subscription to have its own errors. I'm not sure what bugs this might have been causing before...\n\n### Removal of tracing\n\nMany of the old interfaces collapse down into just a few extension points:\n\n![Anatomy of a request](/request_anatomy.png)\n\nThe tracing interface has also been removed, tracing stats are now measured in core (eg time to parse query) and made available on the operation/response contexts. Much of the old interface was designed so that users of a tracer don't need to know which extension points it was listening to, the new handler extensions have the same goal.\n\n### Backward compatibility\n\nThere is a backwards compatibility layer that keeps most of the original interface in place. There are a few places where BC is known to be broken:\n\n - ResponseMiddleware: The signature used to be `func(ctx context.Context, next func(ctx context.Context) []byte) []byte` and is now `func(ctx context.Context) *Response`. We could maintain BC by marshalling to json before and after, but the change is pretty easy to make and is likely to cause less issues.\n - The Tracer interface has been removed, any tracers will need to be reimplemented against the new extension interface.\n\n## New resolver layout\n\n0.11 also added a new way to generate and layout resolvers on disk. We used to only generate resolver implementations\nwhenever the file didnt exist. This behaviour is still there for those that are already used to it, However there is a\nnew mode you can turn on in config:\n\n```yaml\nresolver:\n  layout: follow-schema\n  dir: graph\n```\n\nThis tells gqlgen to generate resolvers next to the schema file that declared the graphql field, which looks like this:\n\n![follow-schema layout](/schema_layout.png)\n"
  },
  {
    "path": "docs/content/recipes/modelgen-hook.md",
    "content": "---\ntitle: \"Allowing mutation of generated models before rendering\"\ndescription: How to use a model mutation function to insert a ORM-specific tags onto struct fields.\nlinkTitle: \"Modelgen hook\"\nmenu: { main: { parent: \"recipes\" } }\n---\n\n## BuildMutateHook\n\nThe following recipe shows how to use a `modelgen` plugin hook to mutate generated\nmodels before they are rendered into a resulting file. This feature has many uses but\nthe example focuses only on inserting ORM-specific tags into generated struct fields. This\nis a common use case since it allows for better field matching of DB queries and\nthe generated data structure.\n\nFirst of all, we need to create a function that will mutate the generated model.\nThen we can attach the function to the plugin and use it like any other plugin.\n\nCreate `generate.go` file in the same folder as `resolver.go` (usually in `graph` folder) and add the following code:\n\n```go\n//go:build ignore\n\npackage main\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/99designs/gqlgen/api\"\n\t\"github.com/99designs/gqlgen/codegen/config\"\n\t\"github.com/99designs/gqlgen/plugin/modelgen\"\n)\n\n// Defining mutation function\nfunc mutateHook(b *modelgen.ModelBuild) *modelgen.ModelBuild {\n\tfor _, model := range b.Models {\n\t\tfor _, field := range model.Fields {\n\t\t\tfield.Tag += ` orm_binding:\"` + model.Name + `.` +  field.Name + `\"`\n\t\t}\n\t}\n\n\treturn b\n}\n\nfunc main() {\n\tcfg, err := config.LoadConfigFromDefaultLocations()\n\tif err != nil {\n\t\tfmt.Fprintln(os.Stderr, \"failed to load config\", err.Error())\n\t\tos.Exit(2)\n\t}\n\n\t// Attaching the mutation function onto modelgen plugin\n\tp := modelgen.Plugin{\n\t\tMutateHook: mutateHook,\n\t}\n\n\terr = api.Generate(cfg, api.ReplacePlugin(&p))\n\n\tif err != nil {\n\t\tfmt.Fprintln(os.Stderr, err.Error())\n\t\tos.Exit(3)\n\t}\n}\n```\n\nIn `resolver.go`, add `//go:generate go run generate.go` (or replace `//go:generate go tool gqlgen` if you have it there).\n\nNow you can run `go generate ./...` to generate the code.\n\nNow fields from generated models will contain a additional tag `orm_binding`.\n\nThis schema:\n\n```graphql\ntype Object {\n\tfield1: String\n\tfield2: Int\n}\n```\n\nWill gen generated into:\n\n```go\ntype Object struct {\n\tfield1 *string  `json:\"field1\" orm_binding:\"Object.field1\"`\n\tfield2 *int     `json:\"field2\" orm_binding:\"Object.field2\"`\n}\n```\n\n## FieldMutateHook\n\nFor more fine grained control over model generation, a graphql schema aware a FieldHook can be provided. This hook has access to type and field graphql definitions enabling the hook to modify the `modelgen.Field` using directives defined within the schema.\n\nThe below recipe uses this feature to add validate tags to the generated model for use with `go-playground/validator` where the validate tags are defined in a constraint directive in the schema.\n\n```go\nimport (\n\t\"fmt\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\t\"os\"\n\n\t\"github.com/99designs/gqlgen/api\"\n\t\"github.com/99designs/gqlgen/codegen/config\"\n\t\"github.com/99designs/gqlgen/plugin/modelgen\"\n)\n\n// Defining mutation function\nfunc constraintFieldHook(td *ast.Definition, fd *ast.FieldDefinition, f *modelgen.Field) (*modelgen.Field, error) {\n\t// Call default hook to proceed standard directives like goField and goTag.\n\t// You can omit it, if you don't need.\n\tif f, err := modelgen.DefaultFieldMutateHook(td, fd, f); err != nil {\n\t\treturn f, err\n\t}\n\n\tc := fd.Directives.ForName(\"constraint\")\n\tif c != nil {\n\t\tformatConstraint := c.Arguments.ForName(\"format\")\n\n\t\tif formatConstraint != nil{\n\t\t\tf.Tag += \" validate:\"+formatConstraint.Value.String()\n\t\t}\n\n\t}\n\n\treturn f, nil\n}\n\nfunc main() {\n\tcfg, err := config.LoadConfigFromDefaultLocations()\n\tif err != nil {\n\t\tfmt.Fprintln(os.Stderr, \"failed to load config\", err.Error())\n\t\tos.Exit(2)\n\t}\n\n\t// Attaching the mutation function onto modelgen plugin\n\tp := modelgen.Plugin{\n\t\tFieldHook: constraintFieldHook,\n\t}\n\n\terr = api.Generate(cfg, api.ReplacePlugin(&p))\n\n\tif err != nil {\n\t\tfmt.Fprintln(os.Stderr, err.Error())\n\t\tos.Exit(3)\n\t}\n}\n```\n\nThis schema:\n\n```graphql\ndirective @constraint(\n\tformat: String\n) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION\n\ninput ObjectInput {\n\tcontactEmail: String @constraint(format: \"email\")\n\twebsite: String @constraint(format: \"uri\")\n}\n```\n\nWill generate the model:\n\n```go\ntype ObjectInput struct {\n\tcontactEmail *string  `json:\"contactEmail\" validate:\"email\"`\n\twebsite      *string  `json:\"website\" validate:\"uri\"`\n}\n```\n\nIf a constraint being used during generation should not be published during introspection, the directive should be listed with `skip_runtime:true` in gqlgen.yml\n\n```yaml\ndirectives:\n  constraint:\n    skip_runtime: true\n```\n\nThe built-in directives `@goField` and `@goTag` is implemented using the FieldMutateHook. See: `plugin/modelgen/models.go` functions `GoFieldHook` and `GoTagFieldHook`\n"
  },
  {
    "path": "docs/content/recipes/subscriptions.md",
    "content": "---\ntitle: \"Subscriptions\"\ndescription: Subscriptions allow for streaming real-time events to your clients. This is how to do that with gqlgen.\nlinkTitle: \"Subscriptions\"\nmenu: { main: { parent: 'recipes' } }\n---\n\nGraphQL Subscriptions allow you to stream events to your clients in real-time.\nThis is easy to do in gqlgen and this recipe will show you how to setup a quick example.\n\n## Preparation\n\nThis recipe starts with the empty project after the quick start steps were followed.\nAlthough the steps are the same in an existing, more complex projects you will need\nto be careful to configure routing correctly.\n\nIn this recipe you will learn how to\n\n1. add a WebSocket Transport to your server\n2. add the `Subscription` type to your schema\n3. implement a real-time resolver.\n\n## Adding a WebSocket Transport\n\nTo send real-time data to clients, your GraphQL server needs to have an open connection\nwith the client. This is done using WebSockets.\n\nTo add the WebSocket transport change your `main.go` by calling `AddTransport(transport.Websocket{})`\non your query handler.\n\n> If you are using an external router, remember to send *ALL* requests go to your handler (at `/query`),\n> not just POST requests!\n\n```go\npackage main\n\nimport (\n\t\"log\"\n\t\"net/http\"\n\t\"os\"\n\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/graphql/playground\"\n\t\"github.com/example/test/graph\"\n\t\"github.com/example/test/graph/generated\"\n)\n\nconst defaultPort = \"8080\"\n\nfunc main() {\n\tport := os.Getenv(\"PORT\")\n\tif port == \"\" {\n\t\tport = defaultPort\n\t}\n\n\tsrv := handler.New(generated.NewExecutableSchema(generated.Config{Resolvers: &graph.Resolver{}}))\n\n\tsrv.AddTransport(transport.Websocket{}) // Add WebSocket first. Here there is no config, see below for examples.\n\tsrv.AddTransport(transport.Options{})   // If you are using the playground, it's smart to add Options and GET.\n\tsrv.AddTransport(transport.GET{})       // ...\n\tsrv.AddTransport(transport.POST{})      // ... Make sure this is after the WebSocket transport!\n\n\thttp.Handle(\"/\", playground.Handler(\"GraphQL playground\", \"/query\"))\n\thttp.Handle(\"/query\", srv)\n\n\tlog.Printf(\"connect to http://localhost:%s/ for GraphQL playground\", port)\n\tlog.Fatal(http.ListenAndServe(\":\"+port, nil))\n}\n```\n\n## Configuring WebSockets\n\nThe WebSocket transport is complex, and for any non-trivial application you will need to\nconfigure it. The transport handles this configuration by setting fields on the `transport.Websocket`\nstruct. For an in-depth look at all configuration options, [explore the implementation][code].\n\nAt it's most basic, the transport uses [`github.com/gorilla/websocket`][gorilla] to implement\na WebSocket connection that sets up the subscription and then sends data to the client from\nthe Go channel returned by the resolver. The initial handshake and the structure of the data\npayloads are defined by one of two protocols: `graphql-ws` or `graphql-transport-ws` Which\none is used is negotiated by the client, defaulting to [`graphql-ws`][graphql-ws].\n\nA minimal WebSocket configuration will handle two basic things: keep-alives and security\nchecks that are normally handled by HTTP middleware that may not be available or compatible\nwith WebSockets:\n\n```go\nsrv.AddTransport(transport.Websocket{\n\t// Keep-alives are important for WebSockets to detect dead connections. This is\n\t// not unlike asking a partner who seems to have zoned out while you tell them\n\t// a story crucial to understanding the dynamics of your workplace: \"Are you\n\t// listening to me?\"\n\t//\n\t// Failing to set a keep-alive interval can result in the connection being held\n\t// open and the server expending resources to communicate with a client that has\n\t// long since walked to the kitchen to make a sandwich instead.\n\tKeepAlivePingInterval: 10 * time.Second,\n\n\t// The `github.com/gorilla/websocket.Upgrader` is used to handle the transition\n\t// from an HTTP connection to a WebSocket connection. Among other options, here\n\t// you must check the origin of the request to prevent cross-site request forgery\n\t// attacks.\n\tUpgrader: websocket.Upgrader{\n\t\tCheckOrigin: func(r *http.Request) bool {\n\t\t\t\t// Allow exact match on host.\n\t\t\t\torigin := r.Header.Get(\"Origin\")\n\t\t\t\tif origin == \"\" || origin == r.Header.Get(\"Host\") {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\n\t\t\t\t// Match on allow-listed origins.\n\t\t\t\treturn slices.Contains([]string{\":3000\", \"https://ui.mysite.com\"}, origin)\n\t\t},\n\t},\n})\n```\n\n[code]: https://github.com/99designs/gqlgen/blob/master/graphql/handler/transport/websocket.go\n[gorilla]: https://pkg.go.dev/github.com/gorilla/websocket\n[graphql-ws]: https://github.com/enisdenjo/graphql-ws/blob/master/PROTOCOL.md\n\n## Adding Subscriptions to your Schema\n\nNext you'll have to define the subscriptions in your schema in the `Subscription` top-level type.\n\n```graphql\n\"\"\"\nMake sure you have at least something in your `Query` type.\nIf you don't have a query the playground will be unable\nto introspect your schema!\n\"\"\"\ntype Query {\n  placeholder: String\n}\n\n\"\"\"\n`Time` is a simple type only containing the current time as\na unix epoch timestamp and a string timestamp.\n\"\"\"\ntype Time {\n  unixTime: Int!\n  timeStamp: String!\n}\n\n\"\"\"\n`Subscription` is where all the subscriptions your clients can\nrequest. You can use Schema Directives like normal to restrict\naccess.\n\"\"\"\ntype Subscription {\n  \"\"\"\n  `currentTime` will return a stream of `Time` objects.\n  \"\"\"\n  currentTime: Time!\n}\n```\n\n## Implementing your Resolver\n\nAfter regenerating your code with `go tool gqlgen generate` you'll find a\nnew resolver for your subscription. It will look like any other resolver, except it expects\na `<-chan *model.Time` (or whatever your type is). This is a\n[channel](https://go.dev/tour/concurrency/2). Channels in Go are used to send objects to a\nsingle receiver.\n\nThe resolver for our example `currentTime` subscription looks as follows:\n\n```go\n// CurrentTime is the resolver for the currentTime field.\nfunc (r *subscriptionResolver) CurrentTime(ctx context.Context) (<-chan *model.Time, error) {\n\t// First you'll need to `make()` your channel. Use your type here!\n\tch := make(chan *model.Time)\n\n\t// You can (and probably should) handle your channels in a central place outside of `schema.resolvers.go`.\n\t// For this example we'll simply use a Goroutine with a simple loop.\n\tgo func() {\n\t\t// Handle deregistration of the channel here. Note the `defer`\n\t\tdefer close(ch)\n\n\t\tfor {\n\t\t\t// In our example we'll send the current time every second.\n\t\t\ttime.Sleep(1 * time.Second)\n\t\t\tfmt.Println(\"Tick\")\n\n\t\t\t// Prepare your object.\n\t\t\tcurrentTime := time.Now()\n\t\t\tt := &model.Time{\n\t\t\t\tUnixTime:  int(currentTime.Unix()),\n\t\t\t\tTimeStamp: currentTime.Format(time.RFC3339),\n\t\t\t}\n\n\t\t\t// The subscription may have got closed due to the client disconnecting.\n\t\t\t// Hence we do send in a select block with a check for context cancellation.\n\t\t\t// This avoids goroutine getting blocked forever or panicking,\n\t\t\tselect {\n\t\t\tcase <-ctx.Done(): // This runs when context gets cancelled. Subscription closes.\n\t\t\t\tfmt.Println(\"Subscription Closed\")\n\t\t\t\t// Handle deregistration of the channel here. `close(ch)`\n\t\t\t\treturn // Remember to return to end the routine.\n\n\t\t\tcase ch <- t: // This is the actual send.\n\t\t\t\t// Our message went through, do nothing\n\t\t\t}\n\t\t}\n\t}()\n\n\t// We return the channel and no error.\n\treturn ch, nil\n}\n```\n\n## Trying it out\n\nTo try out your new subscription visit your GraphQL playground. This is exposed on\n`http://localhost:8080` by default.\n\nUse the following query:\n\n```graphql\nsubscription {\n  currentTime {\n    unixTime\n    timeStamp\n  }\n}\n```\n\nRun your query and you should see a response updating with the current timestamp every\nsecond. To gracefully stop the connection click the `Execute query` button again.\n\n\n## Adding Server-Sent Events transport\n\nYou can use instead of WebSocket (or in addition) [Server-Sent Events](https://en.wikipedia.org/wiki/Server-sent_events)\nas transport for subscriptions. This can have advantages and disadvantages over transport via WebSocket and requires a\ncompatible client library, for instance [graphql-sse](https://github.com/enisdenjo/graphql-sse). The connection between\nserver and client should be HTTP/2+. The client must send the subscription request via POST with\nthe header `accept: text/event-stream` and `content-type: application/json` in order to be accepted by the SSE transport.\nThe underling protocol is documented at [distinct connections mode](https://github.com/enisdenjo/graphql-sse/blob/master/PROTOCOL.md).\n\nAdd the SSE transport as first of all other transports, as the order is important.\n\n```go\nsrv := handler.New(generated.NewExecutableSchema(generated.Config{Resolvers: &graph.Resolver{}}))\n\nsrv.AddTransport(transport.SSE{}) // Add SSE first.\n\n// Continue server setup:\nsrv.AddTransport(transport.Options{})\nsrv.AddTransport(transport.GET{})\nsrv.AddTransport(transport.POST{})\n```\n\nOptionally add `KeepAlivePingInterval` to send a periodic heartbeat over the SSE transport.\n```go\nsrv.AddTransport(transport.SSE{\n\t// Load balancers, proxies, or firewalls often have idle timeout\n\t// settings that specify the maximum duration a connection can\n\t// remain open without data being sent across it. If the idle\n\t// timeout is exceeded without any data being transmitted, the\n\t// connection may be closed when connecting SSE over HTTP/1.\n\t//\n\t// End-to-end HTTP/2 connections do not require a ping interval\n\t// to keep the connection open.\n\tKeepAlivePingInterval: 10 * time.Second,\n})\n```\n\nThe GraphQL playground does not support SSE yet. You can try out the subscription via curl:\n\n```bash\ncurl -N --request POST --url http://localhost:8080/query \\\n--data '{\"query\":\"subscription { currentTime { unixTime timeStamp } }\"}' \\\n-H \"accept: text/event-stream\" -H 'content-type: application/json' \\\n--verbose\n```\n\n## Full Files\n\nHere are all files at the end of this tutorial. Only files changed from the end\nof the quick start are listed.\n\n### main.go\n\n```go\npackage main\n\nimport (\n\t\"log\"\n\t\"net/http\"\n\t\"os\"\n\t\"slices\"\n\t\"time\"\n\n\t\"github.com/gorilla/websocket\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/graphql/playground\"\n\t\"github.com/example/test/graph\"\n\t\"github.com/example/test/graph/generated\"\n)\n\nconst defaultPort = \"8080\"\n\nfunc main() {\n\tport := os.Getenv(\"PORT\")\n\tif port == \"\" {\n\t\tport = defaultPort\n\t}\n\n\tsrv := handler.New(\n\t\tgenerated.NewExecutableSchema(\n\t\t\tgenerated.Config{Resolvers: &graph.Resolver{}},\n\t\t),\n\t)\n\tsrv.AddTransport(transport.SSE{})\n\tsrv.AddTransport(transport.Websocket{\n\t\tKeepAlivePingInterval: 10 * time.Second,\n\t\tUpgrader: websocket.Upgrader{\n\t\t\tCheckOrigin: func(r *http.Request) bool {\n\t\t\t\t\torigin := r.Header.Get(\"Origin\")\n\t\t\t\t\tif origin == \"\" || origin == r.Header.Get(\"Host\") {\n\t\t\t\t\t\treturn true\n\t\t\t\t\t}\n\t\t\t\t\treturn slices.Contains([]string{\":3000\", \"https://ui.mysite.com\"}, origin)\n\t\t\t},\n\t\t},\n\t})\n\tsrv.AddTransport(transport.Options{})\n\tsrv.AddTransport(transport.GET{})\n\tsrv.AddTransport(transport.POST{})\n\n\thttp.Handle(\"/\", playground.Handler(\"GraphQL playground\", \"/query\"))\n\thttp.Handle(\"/query\", srv)\n\n\tlog.Printf(\"connect to http://localhost:%s/ for GraphQL playground\", port)\n\tlog.Fatal(http.ListenAndServe(\":\"+port, nil))\n}\n```\n\n### schema.graphqls\n\n```graphql\ntype Query {\n  placeholder: String\n}\n\ntype Time {\n  unixTime: Int!\n  timeStamp: String!\n}\n\ntype Subscription {\n  currentTime: Time!\n}\n```\n\n### schema.resolvers.go\n\n```go\npackage graph\n\n// This file will be automatically regenerated based on the schema, any resolver implementations\n// will be copied through when generating and any unknown code will be moved to the end.\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"time\"\n\n\t\"github.com/example/test/graph/generated\"\n\t\"github.com/example/test/graph/model\"\n)\n\n// Placeholder is the resolver for the placeholder field.\nfunc (r *queryResolver) Placeholder(ctx context.Context) (*string, error) {\n\tstr := \"Hello World\"\n\treturn &str, nil\n}\n\n// CurrentTime is the resolver for the currentTime field.\nfunc (r *subscriptionResolver) CurrentTime(ctx context.Context) (<-chan *model.Time, error) {\n\tch := make(chan *model.Time)\n\n\tgo func() {\n\t\tdefer close(ch)\n\n\t\tfor {\n\t\t\ttime.Sleep(1 * time.Second)\n\t\t\tfmt.Println(\"Tick\")\n\n\t\t\tcurrentTime := time.Now()\n\n\t\t\tt := &model.Time{\n\t\t\t\tUnixTime:  int(currentTime.Unix()),\n\t\t\t\tTimeStamp: currentTime.Format(time.RFC3339),\n\t\t\t}\n\n\t\t\tselect {\n\t\t\tcase <-ctx.Done():\n\t\t\t\t// Exit on cancellation\n\t\t\t\tfmt.Println(\"Subscription closed.\")\n\t\t\t\treturn\n\n\t\t\tcase ch <- t:\n\t\t\t\t// Our message went through, do nothing\n\t\t\t}\n\n\t\t}\n\t}()\n\treturn ch, nil\n}\n\n// Query returns generated.QueryResolver implementation.\nfunc (r *Resolver) Query() generated.QueryResolver { return &queryResolver{r} }\n\n// Subscription returns generated.SubscriptionResolver implementation.\nfunc (r *Resolver) Subscription() generated.SubscriptionResolver { return &subscriptionResolver{r} }\n\ntype queryResolver struct{ *Resolver }\ntype subscriptionResolver struct{ *Resolver }\n```\n"
  },
  {
    "path": "docs/content/reference/apq.md",
    "content": "---\ntitle: \"Automatic persisted queries\"\ndescription:\nlinkTitle: \"APQ\"\nmenu: { main: { parent: 'reference', weight: 10 } }\n---\n\nWhen you work with GraphQL by default your queries are transferred with every request. That can waste significant\nbandwidth. To avoid that you can use Automatic Persisted Queries (APQ).\n\nWith APQ you send only query hash to the server. If hash is not found on a server then client makes a second request\nto register query hash with original query on a server.\n\n## Usage\n\nIn order to enable Automatic Persisted Queries you need to change your client. For more information see\n[Automatic Persisted Queries Link](https://www.apollographql.com/docs/resources/glossary/#automatic-persisted-queries) documentation.\n\nFor the server you need to implement the `graphql.Cache` interface and pass an instance to\nthe `extension.AutomaticPersistedQuery` type. Make sure the extension is applied to your GraphQL handler.\n\nSee example using [go-redis](https://github.com/go-redis/redis) package below:\n```go\nimport (\n\t\"context\"\n\t\"time\"\n\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/extension\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/go-redis/redis\"\n)\n\ntype Cache struct {\n\tclient redis.UniversalClient\n\tttl    time.Duration\n}\n\nconst apqPrefix = \"apq:\"\n\nfunc NewCache(redisAddress string, ttl time.Duration) (*Cache, error) {\n\tclient := redis.NewClient(&redis.Options{\n\t\tAddr:     redisAddress,\n\t})\n\n\terr := client.Ping().Err()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"could not create cache: %w\", err)\n\t}\n\n\treturn &Cache{client: client, ttl: ttl}, nil\n}\n\nfunc (c *Cache) Add(ctx context.Context, key string, value interface{}) {\n\tc.client.Set(apqPrefix+key, value, c.ttl)\n}\n\nfunc (c *Cache) Get(ctx context.Context, key string) (interface{}, bool) {\n\ts, err := c.client.Get(apqPrefix + key).Result()\n\tif err != nil {\n\t\treturn struct{}{}, false\n\t}\n\treturn s, true\n}\n\nfunc main() {\n\tcache, err := NewCache(cfg.RedisAddress, 24*time.Hour)\n\tif err != nil {\n\t\tlog.Fatalf(\"cannot create APQ redis cache: %v\", err)\n\t}\n\n\tc := Config{ Resolvers: &resolvers{} }\n\tgqlHandler := handler.New(\n\t\tgenerated.NewExecutableSchema(c),\n\t)\n\tgqlHandler.AddTransport(transport.POST{})\n\tgqlHandler.Use(extension.AutomaticPersistedQuery{Cache: cache})\n\thttp.Handle(\"/query\", gqlHandler)\n}\n```\n"
  },
  {
    "path": "docs/content/reference/changesets.md",
    "content": "---\nlinkTitle: Changesets\ntitle: Using maps as changesets\ndescription: Falling back to map[string]interface{} to allow for presence checks.\nmenu: { main: { parent: 'reference', weight: 10 } }\n---\n\nOccasionally you need to distinguish presence from nil (undefined vs null). In gqlgen this can be done using either maps or the Omittable type.\n\n## Maps\n\n```graphql\ntype Mutation {\n\tupdateUser(id: ID!, changes: UserChanges!): User\n}\n\ninput UserChanges {\n\tname: String\n\temail: String\n}\n```\n\nThen in config set the backing type to `map[string]interface{}`\n```yaml\nmodels:\n  UserChanges:\n    model: \"map[string]interface{}\"\n```\n\nAfter running go generate you should end up with a resolver that looks like this:\n```go\nfunc (r *mutationResolver) UpdateUser(ctx context.Context, id int, changes map[string]interface{}) (*User, error) {\n\tu := fetchFromDb(id)\n\n\t// Check if name was provided in the input\n\tif v, isSet := changes[\"name\"]; isSet { // v is the value with type `interface{}`\n\t\tvalue, valid := v.(*string)  // *string, could be nil\n\t\tif !valid {\n\t\t\t// map values are automatically coerced to the types defined in the schema, \n\t\t\t// so if this error is thrown it's most likely a type mismatch between here and your GraphQL input definition\n\t\t\treturn nil, errors.New(\"field 'name' on UserChanges does not have type String\")\n\t\t}\n\n\t\tif value == nil {\n\t\t\tu.Name = \"\" // value to use when null\n\t\t} else {\n\t\t\tu.Name = *value // set to the provided value\n\t\t}\n\t}\n\t// If !isSet, the field was omitted entirely - no change\n\n\t// Alternative: use reflection (see below)\n\tif err := ApplyChanges(changes, &u); err != nil {\n\t\treturn nil, err\n\t}\n\t\n\tsaveToDb(u)\n\treturn u, nil\n}\n```\n\nPlease note that map values are automatically coerced to the types defined in the schema.\nThis means that optional, nested inputs or scalars will conform to their expected types.\n\nWe often use the mapstructure library to directly apply these changesets directly to the object using reflection:\n```go\n\nfunc ApplyChanges(changes map[string]interface{}, to interface{}) error {\n\tdec, err := mapstructure.NewDecoder(&mapstructure.DecoderConfig{\n\t\tErrorUnused: true,\n\t\tTagName:     \"json\",\n\t\tResult:      to,\n\t\tZeroFields:  true,\n\t\t// This is needed to get mapstructure to call the gqlgen unmarshaler func for custom scalars (eg Date)\n\t\tDecodeHook: func(a reflect.Type, b reflect.Type, v interface{}) (interface{}, error) {\n\t\t\tif reflect.PtrTo(b).Implements(reflect.TypeOf((*graphql.Unmarshaler)(nil)).Elem()) {\n\t\t\t\tresultType := reflect.New(b)\n\t\t\t\tresult := resultType.MethodByName(\"UnmarshalGQL\").Call([]reflect.Value{reflect.ValueOf(v)})\n\t\t\t\terr, _ := result[0].Interface().(error)\n\t\t\t\treturn resultType.Elem().Interface(), err\n\t\t\t}\n\n\t\t\treturn v, nil\n\t\t},\n\t})\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn dec.Decode(changes)\n}\n```\n\n## Omittable\n\nThe `Omittable[T]` type provides a more type-safe alternative to maps for distinguishing between unset, null, and actual values. It's a generic wrapper that tracks both the value and whether it was explicitly provided.\n\nYou can enable omittable fields in two ways:\n\n**Option 1: Per-field with directive**\n```graphql\ninput UserChanges {\n\tname: String @goField(omittable: true)\n\temail: String @goField(omittable: true)\n}\n```\n\n**Option 2: Globally in config**\n```yaml\n# gqlgen.yml\nnullable_input_omittable: true\n```\n\nThis generates a Go struct using `graphql.Omittable`:\n\n```go\ntype UserChanges struct {\n\tName  graphql.Omittable[*string] `json:\"name,omitempty\"`\n\tEmail graphql.Omittable[*string] `json:\"email,omitempty\"`\n}\n```\n\nYour resolver can then distinguish between three states:\n\n```go\nfunc (r *mutationResolver) UpdateUser(ctx context.Context, id int, changes UserChanges) (*User, error) {\n\tu := fetchFromDb(id)\n\t\n\t// Check if name was provided in the input\n\tif changes.Name.IsSet() {\n\t\tvalue := changes.Name.Value() // *string, could be nil\n\t\tif value == nil {\n\t\t\tu.Name = \"\" // value to use when null\n\t\t} else {\n\t\t\tu.Name = *value // set to the provided value\n\t\t}\n\t}\n\t// If !changes.Name.IsSet(), the field was omitted entirely - no change\n\t\n\t// Alternative: use ValueOK for cleaner code\n\tif value, isSet := changes.Email.ValueOK(); isSet {\n\t\tu.Email = value // *string, nil if null was provided, actual value otherwise\n\t}\n\t\n\tsaveToDb(u)\n\treturn u, nil\n}\n```\n\n### Key Methods\n\n- `IsSet()` - Returns true if the field was explicitly provided (even if null)\n- `Value()` - Returns the value, or zero value if not set\n- `ValueOK()` - Returns (value, wasSet) similar to map access\n- `OmittableOf(value)` - Helper to create an Omittable with a value\n\n"
  },
  {
    "path": "docs/content/reference/complexity.md",
    "content": "---\ntitle: \"Preventing overly complex queries\"\ndescription: Avoid denial of service attacks by calculating query costs and limiting complexity.\nlinkTitle: Query Complexity\nmenu: { main: { parent: \"reference\", weight: 10 } }\n---\n\nGraphQL provides a powerful way to query your data, but putting great power in the hands of your API clients also exposes you to a risk of denial of service attacks. You can mitigate that risk with gqlgen by limiting the complexity of the queries you allow.\n\n## Expensive Queries\n\nConsider a schema that allows listing blog posts. Each blog post is also related to other posts.\n\n```graphql\ntype Query {\n  posts(count: Int = 10): [Post!]!\n}\n\ntype Post {\n  title: String!\n  text: String!\n  related(count: Int = 10): [Post!]!\n}\n```\n\nIt's not too hard to craft a query that will cause a very large response:\n\n```graphql\n{\n  posts(count: 100) {\n    related(count: 100) {\n      related(count: 100) {\n        related(count: 100) {\n          title\n        }\n      }\n    }\n  }\n}\n```\n\nThe size of the response grows exponentially with each additional level of the `related` field. Fortunately, gqlgen's `http.Handler` includes a way to guard against this type of query.\n\n## Limiting Query Complexity\n\nLimiting query complexity is as simple as specifying it with the provided extension package.\n\n```go\nfunc main() {\n\tc := Config{ Resolvers: &resolvers{} }\n\n\tsrv := handler.New(blog.NewExecutableSchema(c))\n\t// Server setup...\n\n\tsrv.Use(extension.FixedComplexityLimit(5)) // This line is key\n\n\tr.Handle(\"/query\", srv)\n}\n```\n\nNow any query with complexity greater than 5 is rejected by the API. By default, each field and level of depth adds one to the overall query complexity. You can also use `extension.ComplexityLimit` to dynamically configure the complexity limit per request.\n\nTo set a custom complexity value for scalars and enums, use `extension.FixedComplexityLimit` with the `WithFixedScalarValue` functional option:\n\n```go\nsrv.Use(extension.FixedComplexityLimit(5, complexity.WithFixedScalarValue(0)))\n```\nYou can also specify which fields to ignore with the `WithIgnoreFields` functional option. The expected argument is a set of the field names:\n\n```go\nignore := map[string]struct{}{\n\t\"Query.foo\": {}, // ignore top-level 'foo' field\n\t\"Item.name\": {}, // ignore the 'name' field of the 'Item' object.\n}\nsrv.Use(extension.FixedComplexityLimit(5, complexity.WithIgnoreFields(ignore)))\n```\n\nThis helps, but we still have a problem: the `posts` and `related` fields, which return arrays, are much more expensive to resolve than the scalar `title` and `text` fields. However, the default complexity calculation weights them equally. It would make more sense to apply a higher cost to the array fields.\n\n## Custom Complexity Calculation\n\nTo apply higher costs to certain fields, we can use custom complexity functions.\n\n```go\nfunc main() {\n\tc := Config{ Resolvers: &resolvers{} }\n\n\tcountComplexity := func(childComplexity, count int) int {\n\t\treturn count * childComplexity\n\t}\n\tc.Complexity.Query.Posts = countComplexity\n\tc.Complexity.Post.Related = countComplexity\n\n\tsrv := handler.New(blog.NewExecutableSchema(c))\n\tsrv.AddTransport(transport.POST{})\n\tsrv.Use(extension.FixedComplexityLimit(5))\n\thttp.Handle(\"/query\", gqlHandler)\n}\n```\n\nWhen we assign a function to the appropriate `Complexity` field, that function is used in the complexity calculation. Here, the `posts` and `related` fields are weighted according to the value of their `count` parameter. This means that the more posts a client requests, the higher the query complexity. And just like the size of the response would increase exponentially in our original query, the complexity would also increase exponentially, so any client trying to abuse the API would run into the limit very quickly.\n\nBy applying a query complexity limit and specifying custom complexity functions in the right places, you can easily prevent clients from using a disproportionate amount of resources and disrupting your service.\n"
  },
  {
    "path": "docs/content/reference/dataloaders.md",
    "content": "---\ntitle: \"Optimizing N+1 database queries using Dataloaders\"\ndescription: Speeding up your GraphQL requests by reducing the number of round trips to the database.\nlinkTitle: Dataloaders\nmenu: { main: { parent: 'reference', weight: 10 } }\n---\n\nDataloaders consolidate the retrieval of information into fewer, batched calls. This example demonstrates the value of dataloaders by consolidating many SQL queries into a single bulk query.\n\n## The Problem\n\nImagine your graph has query that lists todos...\n\n```graphql\nquery { todos { user { name } } }\n```\n\nand the `todo.user` resolver reads the `User` from a database...\n```go\nfunc (r *todoResolver) User(ctx context.Context, obj *model.Todo) (*model.User, error) {\n\tstmt, err := r.db.PrepareContext(ctx, \"SELECT id, name FROM users WHERE id = ?\")\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer stmt.Close()\n\n\trows, err := stmt.QueryContext(ctx, obj.UserID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer rows.Close()\n\n\tif !rows.Next() {\n\t\treturn nil, rows.Err()\n\t}\n\n\tvar user model.User\n\tif err := rows.Scan(&user.ID, &user.Name); err != nil {\n\t\treturn nil, err\n\t}\n\treturn &user, nil\n}\n\n\n```\n\nThe query executor will call the `Query.Todos` resolver which does a `select * from todo` and returns `N` todos. If the nested `User` is selected, the above `UserRaw` resolver will run a separate query for each user, resulting in `N+1` database queries.\n\neg:\n```sql\nSELECT id, todo, user_id FROM todo\nSELECT id, name FROM users WHERE id = ?\nSELECT id, name FROM users WHERE id = ?\nSELECT id, name FROM users WHERE id = ?\nSELECT id, name FROM users WHERE id = ?\nSELECT id, name FROM users WHERE id = ?\nSELECT id, name FROM users WHERE id = ?\n```\n\nWhats even worse? most of those todos are all owned by the same user! We can do better than this.\n\n## Dataloader\n\nDataloaders allow us to consolidate the fetching of `todo.user` across all resolvers for a given GraphQL request into a single database query and even cache the results for subsequent requests.\n\nWe're going to use [vikstrous/dataloadgen](https://github.com/vikstrous/dataloadgen) to implement a dataloader for bulk-fetching users.\n\n```bash\ngo get github.com/vikstrous/dataloadgen\n```\n\nNext, we implement a data loader and a middleware for injecting the data loader on a request context.\n\n```go\npackage loaders\n\n// import vikstrous/dataloadgen with your other imports\nimport (\n\t\"context\"\n\t\"database/sql\"\n\t\"net/http\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/vikstrous/dataloadgen\"\n)\n\ntype ctxKey string\n\nconst (\n\tloadersKey = ctxKey(\"dataloaders\")\n)\n\n// userReader reads Users from a database\ntype userReader struct {\n\tdb *sql.DB\n}\n\n// getUsers implements a batch function that can retrieve many users by ID,\n// for use in a dataloader\nfunc (u *userReader) getUsers(ctx context.Context, userIDs []string) ([]*model.User, []error) {\n\tstmt, err := u.db.PrepareContext(ctx, `SELECT id, name FROM users WHERE id IN (?`+strings.Repeat(\",?\", len(userIDs)-1)+`)`)\n\tif err != nil {\n\t\treturn nil, []error{err}\n\t}\n\tdefer stmt.Close()\n\n\trows, err := stmt.QueryContext(ctx, userIDs)\n\tif err != nil {\n\t\treturn nil, []error{err}\n\t}\n\tdefer rows.Close()\n\n\tusers := make([]*model.User, 0, len(userIDs))\n\terrs := make([]error, 0, len(userIDs))\n\tfor rows.Next() {\n\t\tvar user model.User\n\t\terr := rows.Scan(&user.ID, &user.Name)\n\t\tusers = append(users, &user)\n\t\terrs = append(errs, err)\n\t}\n\treturn users, errs\n}\n\n// Loaders wrap your data loaders to inject via middleware\ntype Loaders struct {\n\tUserLoader *dataloadgen.Loader[string, *model.User]\n}\n\n// NewLoaders instantiates data loaders for the middleware\nfunc NewLoaders(conn *sql.DB) *Loaders {\n\t// define the data loader\n\tur := &userReader{db: conn}\n\treturn &Loaders{\n\t\tUserLoader: dataloadgen.NewLoader(ur.getUsers, dataloadgen.WithWait(time.Millisecond)),\n\t}\n}\n\n// Middleware injects data loaders into the context\nfunc Middleware(conn *sql.DB, next http.Handler) http.Handler {\n\t// return a middleware that injects the loader to the request context\n\treturn http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {\n\t\tloader := NewLoaders(conn)\n\t\tr = r.WithContext(context.WithValue(r.Context(), loadersKey, loader))\n\t\tnext.ServeHTTP(w, r)\n\t})\n}\n\n// For returns the dataloader for a given context\nfunc For(ctx context.Context) *Loaders {\n\treturn ctx.Value(loadersKey).(*Loaders)\n}\n\n// GetUser returns single user by id efficiently\nfunc GetUser(ctx context.Context, userID string) (*model.User, error) {\n\tloaders := For(ctx)\n\treturn loaders.UserLoader.Load(ctx, userID)\n}\n\n// GetUsers returns many users by ids efficiently\nfunc GetUsers(ctx context.Context, userIDs []string) ([]*model.User, error) {\n\tloaders := For(ctx)\n\treturn loaders.UserLoader.LoadAll(ctx, userIDs)\n}\n\n```\n\nAdd the dataloader middleware to your server...\n```go\n// create the query handler\nh := handler.New(generated.NewExecutableSchema(...))\nh.AddTransport(transport.POST{})\n\n// wrap the query handler with middleware to inject dataloader in requests.\n// pass in your dataloader dependencies, in this case the db connection.\nsrv = loaders.Middleware(db, h)\n\n// register the wrapped handler\nhttp.Handle(\"/query\", srv)\n```\n\nNow lets update our resolver to call the dataloader:\n```go\nfunc (r *todoResolver) User(ctx context.Context, obj *model.Todo) (*model.User, error) {\n\treturn loaders.GetUser(ctx, obj.UserID)\n}\n```\n\nThe end result? Just 2 queries!\n```sql\nSELECT id, todo, user_id FROM todo\nSELECT id, name from user WHERE id IN (?,?,?,?,?)\n```\n\nYou can see an end-to-end example [here](https://github.com/vikstrous/dataloadgen-example).\n"
  },
  {
    "path": "docs/content/reference/directives.md",
    "content": "---\ntitle: Using schema directives to implement permission checks\ndescription: Implementing graphql schema directives in golang for permission checks.\nlinkTitle: Schema Directives\nmenu: { main: { parent: 'reference', weight: 10 } }\n---\n\nDirectives act a bit like annotations, decorators, or HTTP middleware. They give you a way to specify some behaviour based on a field or argument in a generic and reusable way. This can be really useful for cross-cutting concerns like permission checks which can be applied broadly across your API.\n\n**Note**: The current directives implementation is still fairly limited, and is designed to cover the most common \"field middleware\" case.\n\n## Restricting access based on user role\n\nFor example, we might want to restrict which mutations or queries a client can make based on the authenticated user's role:\n```graphql\ntype Mutation {\n\tdeleteUser(userID: ID!): Bool @hasRole(role: ADMIN)\n}\n```\n\n### Declare it in the schema\n\nBefore we can use a directive we must declare it in the schema. Here's how we would define the `@hasRole` directive:\n\n```graphql\ndirective @hasRole(role: Role!) on FIELD_DEFINITION\n\nenum Role {\n    ADMIN\n    USER\n}\n```\n\nNext, run `go generate` and gqlgen will add the directive to the DirectiveRoot:\n```go\ntype DirectiveRoot struct {\n\tHasRole func(ctx context.Context, obj interface{}, next graphql.Resolver, role Role) (res interface{}, err error)\n}\n```\n\nThe arguments are:\n - *ctx*: the parent context\n - *obj*: the object containing the value this was applied to, e.g.:\n    - for field definition directives (`FIELD_DEFINITION`), the object/input object that contains the field\n    - for argument directives (`ARGUMENT_DEFINITION`), a map containing all arguments\n - *next*: the next directive in the directive chain, or the field resolver. This should be called to get the\n           value of the field/argument/whatever. You can block access to the field by not calling `next(ctx)`\n           after checking whether a user has a required permission, for example.\n - *...args*: finally, any args defined in the directive schema definition are passed in\n\n## Implement the directive\n\nNow we must implement the directive. The directive function is assigned to the Config object before registering the GraphQL handler.\n\n```go\npackage main\n\nimport (\n\t\"context\"\n\t\"log\"\n\t\"net/http\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc main() {\n\tc := Config{ Resolvers: &resolvers{} }\n\tc.Directives.HasRole = func(ctx context.Context, obj interface{}, next graphql.Resolver, role Role) (interface{}, error) {\n\t\tif !getCurrentUser(ctx).HasRole(role) {\n\t\t\t// block calling the next resolver\n\t\t\treturn nil, fmt.Errorf(\"Access denied\")\n\t\t}\n\n\t\t// or let it pass through\n\t\treturn next(ctx)\n\t}\n\n\tsrv := handler.New(NewExecutableSchema(c))\n\tsrv.AddTransport(transport.POST{})\n\n\thttp.Handle(\"/query\", srv)\n\tlog.Fatal(http.ListenAndServe(\":8081\", nil))\n}\n```\n\nThat's it! You can now apply the `@hasRole` directive to any mutation or query in your schema.\n"
  },
  {
    "path": "docs/content/reference/errors.md",
    "content": "---\nlinkTitle: Handling Errors\ntitle: Sending custom error data in the graphql response\ndescription: Customising graphql error types to send custom error data back to the client using gqlgen.\nmenu: { main: { parent: 'reference', weight: 10 } }\n---\n\n## Returning errors\n\nAll resolvers simply return an error to be sent to the user. The assumption is that any error message returned\nhere is appropriate for end users. If certain messages aren't safe, customise the error presenter.\n\n### Multiple errors\n\nTo return multiple errors you can call the `graphql.Error` functions like so:\n\n```go\npackage foo\n\nimport (\n\t\"context\"\n\t\"errors\"\n\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\n// DoThings add errors to the stack.\nfunc (r Query) DoThings(ctx context.Context) (bool, error) {\n\t// Print a formatted string\n\tgraphql.AddErrorf(ctx, \"Error %d\", 1)\n\n\t// Pass an existing error out\n\tgraphql.AddError(ctx, gqlerror.Errorf(\"zzzzzt\"))\n\n\t// Or fully customize the error\n\tgraphql.AddError(ctx, &gqlerror.Error{\n\t\tPath:       graphql.GetPath(ctx),\n\t\tMessage:    \"A descriptive error message\",\n\t\tExtensions: map[string]interface{}{\n\t\t\t\"code\": \"10-4\",\n\t\t},\n\t})\n\n\t// And you can still return an error if you need\n\treturn false, gqlerror.Errorf(\"BOOM! Headshot\")\n}\n```\n\nThey will be returned in the same order in the response, eg:\n```json\n{\n  \"data\": {\n    \"todo\": null\n  },\n  \"errors\": [\n    { \"message\": \"Error 1\", \"path\": [ \"todo\" ] },\n    { \"message\": \"zzzzzt\", \"path\": [ \"todo\" ] },\n    { \"message\": \"A descriptive error message\", \"path\": [ \"todo\" ], \"extensions\": { \"code\": \"10-4\" } },\n    { \"message\": \"BOOM! Headshot\", \"path\": [ \"todo\" ] }\n  ]\n}\n```\n\nor you can simply return multiple errors\n\n```go\npackage foo\n\nimport (\n\t\"context\"\n\t\"errors\"\n\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\nvar errSomethingWrong = errors.New(\"some validation failed\")\n\n// DoThingsReturnMultipleErrors collect errors and returns it if any.\nfunc (r Query) DoThingsReturnMultipleErrors(ctx context.Context) (bool, error) {\n\terrList := gqlerror.List{}\n\n\t// Add existing error\n\terrList = append(errList, gqlerror.Wrap(errSomethingWrong))\n\n\t// Create new formatted and append\n\terrList = append(errList, gqlerror.Errorf(\"invalid value: %s\", \"invalid\"))\n\n\t// Or fully customize the error and append\n\terrList = append(errList, &gqlerror.Error{\n\t\tPath:       graphql.GetPath(ctx),\n\t\tMessage:    \"A descriptive error message\",\n\t\tExtensions: map[string]interface{}{\n\t\t\t\"code\": \"10-4\",\n\t\t},\n\t})\n\n\treturn false, errList\n}\n```\n\nThey will be returned in the same order in the response, eg:\n```json\n{\n  \"data\": {\n    \"todo\": null\n  },\n  \"errors\": [\n    { \"message\": \"some validation failed\", \"path\": [ \"todo\" ] },\n    { \"message\": \"invalid value: invalid\", \"path\": [ \"todo\" ] },\n    { \"message\": \"A descriptive error message\", \"path\": [ \"todo\" ], \"extensions\": { \"code\": \"10-4\" } },\n  ]\n}\n```\n\n## Hooks\n\n### The error presenter\n\nAll `errors` returned by resolvers, or from validation, pass through a hook before being displayed to the user.\nThis hook gives you the ability to customise errors however makes sense in your app.\n\nThe default error presenter will capture the resolver path and use the Error() message in the response.\n\nYou change this when creating the server:\n```go\npackage bar\n\nimport (\n\t\"context\"\n\t\"errors\"\n\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n)\n\nfunc main() {\n\tserver := handler.New(MakeExecutableSchema(resolvers))\n\n\t// Server setup...\n\n\tserver.SetErrorPresenter(func(ctx context.Context, e error) *gqlerror.Error {\n\t\terr := graphql.DefaultErrorPresenter(ctx, e)\n\n\t\tvar myErr *MyError\n\t\tif errors.As(e, &myErr) {\n\t\t\terr.Message = \"Eeek!\"\n\t\t}\n\n\t\treturn err\n\t})\n}\n\n```\n\nThis function will be called with the same resolver context that generated it, so you can extract the\ncurrent resolver path and whatever other state you might want to notify the client about.\n\n\n### The panic handler\n\nThere is also a panic handler, called whenever a panic happens to gracefully return a message to the user before\nstopping parsing. This is a good spot to notify your bug tracker and send a custom message to the user. Any errors\nreturned from here will also go through the error presenter.\n\nYou change this when creating the server:\n```go\nserver := handler.New(MakeExecutableSchema(resolvers))\n\n// Server setup...\n\nserver.SetRecoverFunc(func(ctx context.Context, err interface{}) error {\n    // Notify bug tracker...\n\n\t\treturn gqlerror.Errorf(\"Internal server error!\")\n})\n```\n\nWhile these handlers are useful in production to make sure the program does not crash, even if a user finds an issue that causes a crash-condition. During development, it can sometimes be more useful to properly crash, potentially generating a coredump to [enable further debugging](https://go.dev/wiki/CoreDumpDebugging).\n\nTo allow your program to crash on a panic, add this to your config file:\n\n```yaml\nomit_panic_handler: true\n```\n"
  },
  {
    "path": "docs/content/reference/field-collection.md",
    "content": "---\ntitle: 'Determining which fields were requested by a query'\ndescription: How to determine which fields a query requested in a resolver.\nlinkTitle: Field Collection\nmenu: { main: { parent: 'reference', weight: 10 } }\n---\n\nOften it is useful to know which fields were queried for in a resolver.  Having this information can allow a resolver to only fetch the set of fields required from a data source, rather than over-fetching everything and allowing gqlgen to do the rest.\n\nThis process is known as [Field Collection](https://spec.graphql.org/draft/#sec-Field-Collection) — gqlgen automatically does this in order to know which fields should be a part of the response payload.  The set of collected fields does however depend on the type being resolved.  Queries can contain fragments, and resolvers can return interfaces and unions, therefore the set of collected fields cannot be fully determined until the type of the resolved object is known.\n\nWithin a resolver, there are several API methods available to query the selected fields.\n\n## CollectAllFields\n\n`CollectAllFields` is the simplest way to get the set of queried fields.  It will return a slice of strings of the field names from the query.  This will be a unique set of fields, and will return all fragment fields, ignoring fragment Type Conditions.\n\nGiven the following example query:\n\n```graphql\nquery {\n    foo {\n        fieldA\n        ... on Bar {\n            fieldB\n        }\n        ... on Baz {\n            fieldC\n        }\n    }\n}\n```\n\nCalling `CollectAllFields` from a resolver will yield a string slice containing `fieldA`, `fieldB`, and `fieldC`.\n\n## CollectFieldsCtx\n\n`CollectFieldsCtx` is useful in cases where more information on matches is required, or the set of collected fields should match fragment type conditions for a resolved type.  `CollectFieldsCtx` takes a `satisfies` parameter, which should be a slice of strings of types that the resolved type will satisfy.\n\nFor example, given the following schema:\n\n```graphql\ninterface Shape {\n    area: Float\n}\ntype Circle implements Shape {\n    radius: Float\n    area: Float\n}\nunion Shapes = Circle\n```\n\nThe type `Circle` would satisfy `Circle`, `Shape`, and `Shapes` — these values should be passed to `CollectFieldsCtx` to get the set of collected fields for a resolved `Circle` object.\n\n> Note\n>\n> `CollectFieldsCtx` is just a convenience wrapper around `CollectFields` that calls the later with the selection set automatically passed through from the resolver context.\n\n## Practical example\n\nSay we have the following GraphQL query\n\n```graphql\nquery {\n  flowBlocks {\n    id\n    block {\n      id\n      title\n      type\n      choices {\n        id\n        title\n        description\n        slug\n      }\n    }\n  }\n}\n```\n\nWe don't want to overfetch our database so we want to know which field are requested.\nHere is an example which get's all requested field as convenient string slice, which can be easily checked.\n\n```golang\nfunc GetPreloads(ctx context.Context) []string {\n\treturn GetNestedPreloads(\n\t\tgraphql.GetOperationContext(ctx),\n\t\tgraphql.CollectFieldsCtx(ctx, nil),\n\t\t\"\",\n\t)\n}\n\nfunc GetNestedPreloads(ctx *graphql.OperationContext, fields []graphql.CollectedField, prefix string) (preloads []string) {\n\tfor _, column := range fields {\n\t\tprefixColumn := GetPreloadString(prefix, column.Name)\n\t\tpreloads = append(preloads, prefixColumn)\n\t\tpreloads = append(preloads, GetNestedPreloads(ctx, graphql.CollectFields(ctx, column.Selections, nil), prefixColumn)...)\n\t}\n\treturn\n}\n\nfunc GetPreloadString(prefix, name string) string {\n\tif len(prefix) > 0 {\n\t\treturn prefix + \".\" + name\n\t}\n\treturn name\n}\n\n```\n\nSo if we call these helpers in our resolver:\n```golang\nfunc (r *queryResolver) FlowBlocks(ctx context.Context) ([]*FlowBlock, error) {\n\tpreloads := GetPreloads(ctx)\n```\nit will result in the following string slice:\n```\n[\"id\", \"block\", \"block.id\", \"block.title\", \"block.type\", \"block.choices\", \"block.choices.id\", \"block.choices.title\", \"block.choices.description\", \"block.choices.slug\"]\n```\n"
  },
  {
    "path": "docs/content/reference/file-upload.md",
    "content": "---\ntitle: \"File Upload\"\ndescription: How to upload files.\nlinkTitle: File Upload\nmenu: { main: { parent: \"reference\", weight: 10 } }\n---\n\nGraphql server has an already built-in Upload scalar to upload files using a multipart request. \\\nIt implements the following spec [https://github.com/jaydenseric/graphql-multipart-request-spec](https://github.com/jaydenseric/graphql-multipart-request-spec),\nthat defines an interoperable multipart form field structure for GraphQL requests, used by\nvarious file upload client implementations.\n\nTo use it you need to add the Upload scalar in your schema, and it will automatically add the\nmarshalling behaviour to Go types.\n\n# Configuration\n\nThere are two specific options that can be configured for uploading files:\n\n- uploadMaxSize \\\n  This option specifies the maximum number of bytes used to parse a request body as multipart/form-data.\n- uploadMaxMemory \\\n  This option specifies the maximum number of bytes used to parse a request body as\n  multipart/form-data in memory, with the remainder stored on disk in temporary files.\n\n# Examples\n\n## Single file upload\n\nFor this use case, the schema could look like this.\n\n```graphql\n\"The `UploadFile, // b.txt` scalar type represents a multipart file upload.\"\nscalar Upload\n\n\"The `Query` type, represents all of the entry points into our object graph.\"\ntype Query {\n    ...\n}\n\n\"The `Mutation` type, represents all updates we can make to our data.\"\ntype Mutation {\n    singleUpload(file: Upload!): Boolean!\n}\n```\n\ncURL can be used the make a query as follows:\n\n```\ncurl localhost:4000/graphql \\\n  -F operations='{ \"query\": \"mutation ($file: Upload!) { singleUpload(file: $file) }\", \"variables\": { \"file\": null } }' \\\n  -F map='{ \"0\": [\"variables.file\"] }' \\\n  -F 0=@a.txt\n```\n\nThat invokes the following operation:\n\n```javascript\n{\n  query: `\n    mutation($file: Upload!) {\n      singleUpload(file: $file)\n    }\n  `,\n  variables: {\n    file: File // a.txt\n  }\n}\n```\n\n## Multiple file upload\n\nFor this use case, the schema could look like this.\n\n```graphql\n\"The `Upload` scalar type represents a multipart file upload.\"\nscalar Upload\n\n\"The `File` type, represents the response of uploading a file.\"\ntype File {\n    id: Int!\n    name: String!\n    content: String!\n}\n\n\"The `UploadFile` type, represents the request for uploading a file with a certain payload.\"\ninput UploadFile {\n    id: Int!\n    file: Upload!\n}\n\n\"The `Query` type, represents all of the entry points into our object graph.\"\ntype Query {\n    ...\n}\n\n\"The `Mutation` type, represents all updates we can make to our data.\"\ntype Mutation {\n    multipleUpload(req: [UploadFile!]!): [File!]!\n}\n\n```\n\ncURL can be used the make a query as follows:\n\n```bash\ncurl localhost:4000/query \\\n  -F operations='{ \"query\": \"mutation($req: [UploadFile!]!) { multipleUpload(req: $req) { id, name, content } }\", \"variables\": { \"req\": [ { \"id\": 1, \"file\": null }, { \"id\": 2, \"file\": null } ] } }' \\\n  -F map='{ \"0\": [\"variables.req.0.file\"], \"1\": [\"variables.req.1.file\"] }' \\\n  -F 0=@b.txt \\\n  -F 1=@c.txt\n```\n\nThat invokes the following operation:\n\n```javascript\n{\n  query: `\n    mutation($req: [UploadFile!]!)\n      multipleUpload(req: $req) {\n        id,\n        name,\n        content\n      }\n    }\n  `,\n  variables: {\n    req: [\n        {\n            id: 1,\n            File, // b.txt\n        },\n        {\n            id: 2,\n            File, // c.txt\n        }\n    ]\n  }\n}\n```\n\nSee the [_examples/fileupload](https://github.com/99designs/gqlgen/tree/master/_examples/fileupload) package for more examples.\n\n# Usage with Apollo\n\n[apollo-upload-client](https://github.com/jaydenseric/apollo-upload-client) needs to be installed in order for file uploading to work with Apollo:\n\n```javascript\nimport ApolloClient from \"apollo-client\";\nimport { createUploadLink } from \"apollo-upload-client\";\n\nconst client = new ApolloClient({\n\tcache: new InMemoryCache(),\n\tlink: createUploadLink({ uri: \"/graphql\" })\n});\n```\n\nA `File` object can then be passed into your mutation as a variable:\n\n```javascript\n{\n  query: `\n    mutation($file: Upload!) {\n      singleUpload(file: $file) {\n        id\n      }\n    }\n  `,\n  variables: {\n    file: new File(...)\n  }\n}\n```\n"
  },
  {
    "path": "docs/content/reference/introspection.md",
    "content": "---\ntitle: 'Enabling introspection'\ndescription: Allow users to introspect schemas.\nlinkTitle: Introspection\nmenu: { main: { parent: 'reference', weight: 10 } }\n---\n\nOne of the best features of GraphQL is it's powerful discoverability, known as [introspection][introspection]. Introspection allows clients to query the server's schema about itself, and is the foundation of many tools like GraphiQL and Apollo Studio.\n\n## Enabling introspection\n\nTo enable introspection for the whole server, you use the bundled middleware extension `github.com/99designs/gqlgen/graphql/handler/extension.Introspection`:\n\n```go\nsrv := handler.New(es)\n\n// Add server setup.\nsrv.AddTransport(transport.Options{})\nsrv.AddTransport(transport.POST{})\n\n// Add the introspection middleware.\nsrv.Use(extension.Introspection{})\n```\n\nTo opt in to introspection for certain environments, you can just guard the middleware with an environment variable:\n\n```go\nsrv := handler.New(es)\n\n// Server setup...\n\nif os.Getenv(\"ENVIRONMENT\") == \"development\" {\n    srv.Use(extension.Introspection{})\n}\n```\n\n## Disabling introspection based on authentication\n\nIntrospection can also be guarded on a per-request context basis. For example, you can disable it in a middleware based on user authentication:\n\n```go\nsrv := handler.New(es)\n\n// Server setup...\n\nsrv.Use(extension.Introspection{})\nsrv.AroundOperations(func(ctx context.Context, next graphql.OperationHandler) graphql.ResponseHandler {\n    if !userForContext(ctx).IsAdmin {\n        graphql.GetOperationContext(ctx).DisableIntrospection = true\n    }\n\n    return next(ctx)\n})\n```\n\n[introspection]: https://graphql.org/learn/introspection/\n"
  },
  {
    "path": "docs/content/reference/model-generation.md",
    "content": "---\ntitle: Model generation\ndescription: Examples of ways to alter generated model output\nlinkTitle: Model Generation\nmenu: { main: {parent: 'reference', weight: 10 }}\n---\n\nWhile we do our best to create Go models that are equivalent to their GraphQL counterparts, it can sometimes be\nadvantageous, or even necessary, to have control over some aspects of this output depending on runtime environment.\n\n## json \",omitempty\"\n\nBy default, fields that are marked as nullable in the GraphQL schema, e.g. `field: String` rather than `field: String!`,\nhave the [json \",omitempty\"](https://pkg.go.dev/encoding/json#Marshal) field tag applied to them.  This is probably fine\nif the downstream consumers of json serialized representations of this model are all written in Go, but obviously this\nis not always true.\n\nTo that end, you expressly disable the addition of the `,omitempty` json field tag by setting the top-level\n[config](https://gqlgen.com/config/) field `enable_model_json_omitempty_tag` to `false`:\n\n### Examples\n\n```graphql\n# graphql\n\ntype OmitEmptyJsonTagTest {\n    ValueNonNil: String!\n    Value: String\n}\n```\n\nWithout `enable_model_json_omitempty_tag` configured:\n\n```go\ntype OmitEmptyJSONTagTest struct {\n\tValueNonNil string  `json:\"ValueNonNil\" database:\"OmitEmptyJsonTagTestValueNonNil\"`\n\tValue       *string `json:\"Value,omitempty\" database:\"OmitEmptyJsonTagTestValue\"`\n}\n```\n\nWith `enable_model_json_omitempty_tag: true` (same as un-configured):\n\n```go\ntype OmitEmptyJSONTagTest struct {\n\tValueNonNil string  `json:\"ValueNonNil\" database:\"OmitEmptyJsonTagTestValueNonNil\"`\n\tValue       *string `json:\"Value,omitempty\" database:\"OmitEmptyJsonTagTestValue\"`\n}\n```\n\n## json \",omitzero\"\n\nFields marked as nullable in the GraphQL schema, e.g. `field: String` rather than `field: String!`,\nhave the [json \",omitzero\"](https://pkg.go.dev/encoding/json#Marshal) field tag applied to them.\nTo that end, you expressly enable the addition of the `,omitzero` json field tag by setting the top-level\n[config](https://gqlgen.com/config/) field `enable_model_json_omitzero_tag` to `true`:\n\n### Examples\n\nenable_model_json_omitempty_tag default is false.\n\nWith `enable_model_json_omitempty_tag: false`:\n\n```go\ntype OmitEmptyJSONTagTest struct {\n\tValueNonNil string  `json:\"ValueNonNil\" database:\"OmitEmptyJsonTagTestValueNonNil\"`\n\tValue       *string `json:\"Value\" database:\"OmitEmptyJsonTagTestValue\"`\n}\n```\n\nWith `enable_model_json_omitzero_tag: true`:\n\n```go\ntype OmitEmptyJSONTagTest struct {\n\tValueNonNil string  `json:\"ValueNonNil\" database:\"OmitEmptyJsonTagTestValueNonNil\"`\n\tValue       *string `json:\"Value,omitzero\" database:\"OmitEmptyJsonTagTestValue\"`\n}\n```\n"
  },
  {
    "path": "docs/content/reference/name-collision.md",
    "content": "---\ntitle: Handling type naming collisions\ndescription: Examples of logic used to avoid type name collision\nlinkTitle: Name Collision\nmenu: { main: { parent: 'reference', weight: 10 }}\n---\n\nWhile most generated Golang types must have unique names by virtue of being based on their GraphQL `type` counterpart,\nwhich themselves must be unique, there are a few edge scenarios where conflicts can occur.  This document describes\nhow those collisions are handled.\n\n## Enum Constants\n\nEnum type generation is a prime example of where naming collisions can occur, as we build the const names per value\nas a composite of the Enum name and each individual value.\n\n### Example Problem\n\nCurrently, enum types are transposed as such:\n\n```graphql\n# graphql\n\nenum MyEnum {\n  value1\n  value2\n  value3\n  value4\n}\n```\n\nWhich will result in the following Golang:\n\n```go\n// golang\n\ntype MyEnum string\n\nconst (\n\tMyEnumValue1 MyEnum = \"value1\"\n\tMyEnumValue2 MyEnum = \"value2\"\n\tMyEnumValue3 MyEnum = \"value3\"\n\tMyEnumValue4 MyEnum = \"value4\"\n)\n```\n\nHowever, those above enum values are just strings.  What if you encounter a scenario where the following is\nnecessary:\n\n```graphql\n# graphql\n\nenum MyEnum {\n  value1\n  value2\n  value3\n  value4\n  Value4\n  Value_4\n}\n```\n\nThe `Value4` and `Value_4` enum values cannot be directly transposed into the same \"pretty\" naming convention as their\nresulting constant names would conflict with the name for `value4`, as so:\n\n```go\n// golang\n\ntype MyEnum string\n\nconst (\n\tMyEnumValue1 MyEnum = \"value1\"\n\tMyEnumValue2 MyEnum = \"value2\"\n\tMyEnumValue3 MyEnum = \"value3\"\n\tMyEnumValue4 MyEnum = \"value4\"\n\tMyEnumValue4 MyEnum = \"Value4\"\n\tMyEnumValue4 MyEnum = \"Value_4\"\n)\n```\n\nWhich immediately leads to compilation errors as we now have three constants with the same name, but different values.\n\n### Resolution\n\n1. Store each name generated as part of a run for later comparison\n2. Try to coerce name into `CapitalCase`.  Use if no conflicts.\n   - This process attempts to break apart identifiers into \"words\", identified by separating on capital letters,\n     underscores, hyphens, and spaces.\n   - Each \"word\" is capitalized and appended to previous word.\n3. If non-composite name, append integer to end of name, starting at 0 and going to `math.MaxInt`\n4. If composite name, in reverse order, the pieces of the name have a less opinionated converter applied\n5. If all else fails, append integer to end of name, starting at 0 and going to `math.MaxInt`\n\nThe first step to produce a name that does not conflict with an existing name succeeds.\n\n## Examples\n\n### Example A\nGraphQL:\n```graphql\n# graphql\n\nenum MyEnum {\n  Value\n  value\n  TitleValue\n  title_value\n}\n```\nGo:\n```go\n// golang\n\ntype MyEnum string\n\nconst (\n\tMyEnumValue MyEnum       = \"Value\"\n\tMyEnumvalue MyEnum       = \"value\"\n\tMyEnumTitleValue MyEnum  = \"TitleValue\"\n\tMyEnumtitle_value MyEnum = \"title_value\"\n)\n```\n\n### Example B\nGraphQL:\n```graphql\n# graphql\n\nenum MyEnum {\n  TitleValue\n  title_value\n  title_Value\n  Title_Value\n}\n```\nGo:\n```go\n// golang\n\ntype MyEnum string\n\nconst (\n\tMyEnumTitleValue MyEnum  = \"TitleValue\"\n\tMyEnumtitle_value MyEnum = \"title_value\"\n\tMyEnumtitle_Value MyEnum = \"title_Value\"\n\tMyEnumTitle_Value MyEnum = \"Title_Value\"\n)\n```\n\n### Example C\nGraphQL:\n```graphql\n# graphql\n\nenum MyEnum {\n  value\n  Value\n}\n```\nGo:\n```go\n// golang\n\ntype MyEnum string\n\nconst (\n\tMyEnumValue  = \"value\"\n\tMyEnumValue0 = \"Value\"\n)\n```\n\n## Warning\n\nName collision resolution is handled per-name, as they come in.  If you change the order of an enum, you could very\nwell end up with the same constant resolving to a different value.\n\nLets mutate [Example C](#example-c):\n\n### Example C - State A\nGraphQL:\n```graphql\n# graphql\n\nenum MyEnum {\n  value\n  Value\n}\n```\nGo:\n```go\n// golang\n\ntype MyEnum string\n\nconst (\n\tMyEnumValue  = \"value\"\n\tMyEnumValue0 = \"Value\"\n)\n```\n\n### Example C - State B\nGraphQL:\n```graphql\n# graphql\n\nenum MyEnum {\n  Value\n  value\n}\n```\nGo:\n```go\n// golang\n\ntype MyEnum string\n\nconst (\n\tMyEnumValue  = \"Value\"\n\tMyEnumValue0 = \"value\"\n)\n```\n\nNotice how the constant names are the same, but the value that each applies to has changed.\n"
  },
  {
    "path": "docs/content/reference/plugins.md",
    "content": "---\nlinkTitle: Plugins\ntitle: How to write plugins for gqlgen\ndescription: Use plugins to customize code generation and integrate with other libraries\nmenu: { main: { parent: \"reference\", weight: 10 } }\n---\n\nPlugins provide a way to hook into the gqlgen code generation lifecycle. In order to use anything other than the\ndefault plugins you will need to create your own entrypoint:\n\n## Using a plugin\n\nTo use a plugin during code generation, you need to create a new entry point. Create `generate.go` in the same folder as `resolver.go` with the following code:\n\n```go\n// go:build ignore\n\npackage main\n\nimport (\n\t\"flag\"\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"os\"\n\t\"time\"\n\n\t\"github.com/99designs/gqlgen/api\"\n\t\"github.com/99designs/gqlgen/codegen/config\"\n\t\"github.com/99designs/gqlgen/plugin/stubgen\"\n)\n\nfunc main() {\n\tcfg, err := config.LoadConfigFromDefaultLocations()\n\tif err != nil {\n\t\tfmt.Fprintln(os.Stderr, \"failed to load config\", err.Error())\n\t\tos.Exit(2)\n\t}\n\n\n\terr = api.Generate(cfg,\n\t\tapi.AddPlugin(yourplugin.New()), // This is the magic line\n\t)\n\tif err != nil {\n\t\tfmt.Fprintln(os.Stderr, err.Error())\n\t\tos.Exit(3)\n\t}\n}\n\n```\n\nIn `resolver.go`, add `//go:generate go run generate.go` (or replace `//go:generate go tool gqlgen` if you have it there).\n\nNow you can run `go generate ./...` to generate code using your plugin.\n\n## Writing a plugin\n\nThere are currently only two hooks:\n\n- MutateConfig: Allows a plugin to mutate the config before codegen starts. This allows plugins to add\n  custom directives, define types, and implement resolvers. see\n  [modelgen](https://github.com/99designs/gqlgen/tree/master/plugin/modelgen) for an example\n- GenerateCode: Allows a plugin to generate a new output file, see\n  [stubgen](https://github.com/99designs/gqlgen/tree/master/plugin/stubgen) for an example\n\nTake a look at [plugin.go](https://github.com/99designs/gqlgen/blob/master/plugin/plugin.go) for the full list of\navailable hooks. These are likely to change with each release.\n"
  },
  {
    "path": "docs/content/reference/resolvers.md",
    "content": "---\nlinkTitle: Resolvers\ntitle: Resolving graphQL requests\ndescription: Different ways of binding graphQL requests to resolvers\nmenu: { main: { parent: 'reference', weight: 10 } }\n---\n\nThere are multiple ways that a graphQL type can be bound to a Go struct that allows for many usecases.\n\n\n## Bind directly to struct field names\nThis is the most common use case where the names of the fields on the Go struct match the names of the\nfields in the graphQL type.  If a Go struct field is unexported, it will not be bound to the graphQL type.\n\n```go\ntype Car struct {\n    Make string\n    Model string\n    Color string\n    OdometerReading int\n}\n```\n\nAnd then in your graphQL schema:\n```graphql\ntype Car {\n    make: String!\n    model: String!\n    color: String!\n    odometerReading: Int!\n}\n```\n\nAnd in the gqlgen config file:\n```yaml\nmodels:\n    Car:\n        model: github.com/my/app/models.Car\n```\n\nIn this case, each field in the graphQL type will be bound to the respective field on the go struct\nignoring the case of the fields\n\n\n## Bind to a method name\n\nThis is also very common use case that comes up where we want to bind a graphQL field to a Go struct method\n\n```go\ntype Person struct {\n    Name string\n}\n\ntype Car struct {\n    Make string\n    Model string\n    Color string\n    OwnerID *string\n    OdometerReading int\n}\n\nfunc (c *Car) Owner() (*Person) {\n    // get the car owner\n    //....\n    return owner\n}\n```\n\nAnd then in your graphQL schema:\n```graphql\ntype Car {\n    make: String!\n    model: String!\n    color: String!\n    odometerReading: Int!\n    owner: Person\n}\n```\n\nAnd in the gqlgen config file:\n```yaml\nmodels:\n    Car:\n        model: github.com/my/app/models.Car\n    Person:\n        model: github.com/my/app/models.Person\n```\n\nHere, we see that there is a method on car with the name ```Owner```, thus the ```Owner``` function will be called if\na graphQL request includes that field to be resolved.\n\nModel methods can optionally take a context as their first argument. If a\ncontext is required, the model method will also be run in parallel.\n\n## Bind when the field names do not match\n\nThere are two ways you can bind to fields when the Go struct and the graphQL type do not match.\n\n\nThe first way is you can bind resolvers to a struct based off of struct tags like the following:\n\n```go\ntype Car struct {\n    Make string\n    ShortState string\n    LongState string `gqlgen:\"state\"`\n    Model string\n    Color string\n    OdometerReading int\n}\n```\n\nAnd then in your graphQL schema:\n```graphql\ntype Car {\n    make: String!\n    model: String!\n    state: String!\n    color: String!\n    odometerReading: Int!\n}\n```\n\nAnd in the gqlgen config file add the line:\n```yaml\nstruct_tag: gqlgen\n\nmodels:\n    Car:\n        model: github.com/my/app/models.Car\n```\n\nHere even though the graphQL type and Go struct have different field names, there is a Go struct tag field on ```longState```\nthat matches and thus ```state``` will be bound to ```LongState```.\n\n\nThe second way you can bind fields is by adding a line into the config file such as:\n```go\ntype Car struct {\n    Make string\n    ShortState string\n    LongState string\n    Model string\n    Color string\n    OdometerReading int\n}\n```\n\nAnd then in your graphQL schema:\n```graphql\ntype Car {\n    make: String!\n    model: String!\n    state: String!\n    color: String!\n    odometerReading: Int!\n}\n```\n\nAnd in the gqlgen config file add the line:\n```yaml\nmodels:\n    Car:\n        model: github.com/my/app/models.Car\n        fields:\n            state:\n                fieldName: LongState\n```\n\n## Binding to Anonymous or Embedded Structs\nAll of the rules from above apply to a struct that has an embedded struct.\nHere is an example\n```go\ntype Truck struct {\n    Car\n\n    Is4x4 bool\n}\n\ntype Car struct {\n    Make string\n    ShortState string\n    LongState string\n    Model string\n    Color string\n    OdometerReading int\n}\n```\n\nAnd then in your graphQL schema:\n```graphql\ntype Truck {\n    make: String!\n    model: String!\n    state: String!\n    color: String!\n    odometerReading: Int!\n    is4x4: Bool!\n}\n```\n\nHere all the fields from the Go struct Car will still be bound to the respective fields in the graphQL schema that match\n\nEmbedded structs are a good way to create thin wrappers around data access types an example would be:\n\n```go\ntype Cat struct {\n    db.Cat\n    //...\n}\n\nfunc (c *Cat) ID() string {\n    // return a custom id based on the db shard and the cat's id\n     return fmt.Sprintf(\"%d:%d\", c.Shard, c.Id)\n}\n```\n\nWhich would correlate with a gqlgen config file of:\n```yaml\nmodels:\n    Cat:\n        model: github.com/my/app/models.Cat\n```\n\n## Binding Priority\nIf a ```struct_tags``` config exists, then struct tag binding has the highest priority over all other types of binding.\nIn all other cases, the first Go struct field found that matches the graphQL type field will be the field that is bound.\n"
  },
  {
    "path": "docs/content/reference/scalars.md",
    "content": "---\nlinkTitle: Scalars\ntitle: Mapping GraphQL scalar types to Go types\ndescription: Mapping GraphQL scalar types to Go types\nmenu: { main: { parent: \"reference\", weight: 10 } }\n---\n\n## Built-in helpers\n\ngqlgen ships with some built-in helpers for common custom scalar use-cases, `Int64`, `Time`, `Any`, `Upload` and `Map`.\nAdding any of these to a schema will automatically add the marshalling behaviour to Go types.\n\n### Int64\n\nSince the GraphQL spec identifies `Int` as a signed 32-bit integer, gqlgen provides an `Int64` scalar to represent 64-bit integers.\nAnywhere you want to use a Go `int` and not deal with overflows, use `Int64` in your schema.\n\n```graphql\nscalar Int64\n```\n\n### Time\n\n```graphql\nscalar Time\n```\n\nMaps a `Time` GraphQL scalar to a Go `time.Time` struct.\nThis scalar adheres to the [time.RFC3339Nano](https://pkg.go.dev/time#pkg-constants) format.\n\n### Universally Unique Identifier (UUID)\n\n```graphql\nscalar UUID\n```\nThis maps a `UUID` scalar value to a `uuid.UUID` type.\n\nIf you add to gqlgen.yml:\n\n```yaml\nmodels:\n  UUID:\n    model:\n      - github.com/99designs/gqlgen/graphql.UUID\n```\n\nAnd then add `scalar UUID` to `schema.graphql`\n\nSee the _examples/uuid package for more examples.\n\n### Map\n\n```graphql\nscalar Map\n```\n\nMaps an arbitrary GraphQL value to a `map[string]interface{}` Go type.\n\n### Upload\n\n```graphql\nscalar Upload\n```\n\nMaps a `Upload` GraphQL scalar to a `graphql.Upload` struct, defined as follows:\n\n```go\ntype Upload struct {\n\tFile        io.ReadSeeker\n\tFilename    string\n\tSize        int64\n\tContentType string\n}\n```\n\n### Any\n\n```graphql\nscalar Any\n```\n\nMaps an arbitrary GraphQL value to a `interface{}` Go type.\n\n### Duration\n\n```graphql\nscalar Duration\n```\n\nThis maps a `Duration` scalar value conforming to the [`ISO8601`](https://en.wikipedia.org/wiki/ISO_8601#Durations) standard `PnDTnHnMn.nS` format (ex.: `P1Y2D` or `PT15M`)  to a `time.Duration` type.\n\nIf you add to gqlgen.yml:\n\n```yaml\nmodels:\n  Duration:\n    model:\n      - github.com/99designs/gqlgen/graphql.Duration\n```\n\nAnd then add `scalar Duration` to `schema.graphql`\n\n## Custom scalars with user defined types\n\nFor user defined types you can implement the [graphql.Marshaler](https://pkg.go.dev/github.com/99designs/gqlgen/graphql#Marshaler) and [graphql.Unmarshaler](https://pkg.go.dev/github.com/99designs/gqlgen/graphql#Unmarshaler) or implement the [graphql.ContextMarshaler](https://pkg.go.dev/github.com/99designs/gqlgen/graphql#ContextMarshaler) and [graphql.ContextUnmarshaler](https://pkg.go.dev/github.com/99designs/gqlgen/graphql#ContextUnmarshaler) interfaces and they will be called.\n\n```go\npackage mypkg\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n)\n\n//\n// Most common scalars\n//\n\ntype YesNo bool\n\n// UnmarshalGQL implements the graphql.Unmarshaler interface\nfunc (y *YesNo) UnmarshalGQL(v interface{}) error {\n\tyes, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"YesNo must be a string\")\n\t}\n\n\tif yes == \"yes\" {\n\t\t*y = true\n\t} else {\n\t\t*y = false\n\t}\n\treturn nil\n}\n\n// MarshalGQL implements the graphql.Marshaler interface\nfunc (y YesNo) MarshalGQL(w io.Writer) {\n\tif y {\n\t\tw.Write([]byte(`\"yes\"`))\n\t} else {\n\t\tw.Write([]byte(`\"no\"`))\n\t}\n}\n\n//\n// Scalars that need access to the request context\n//\n\ntype Length float64\n\n// UnmarshalGQLContext implements the graphql.ContextUnmarshaler interface\nfunc (l *Length) UnmarshalGQLContext(ctx context.Context, v interface{}) error {\n\ts, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"Length must be a string\")\n\t}\n\tlength, err := ParseLength(s)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*l = length\n\treturn nil\n}\n\n// MarshalGQLContext implements the graphql.ContextMarshaler interface\nfunc (l Length) MarshalGQLContext(ctx context.Context, w io.Writer) error {\n\ts, err := l.FormatContext(ctx)\n\tif err != nil {\n\t\treturn err\n\t}\n\tw.Write([]byte(strconv.Quote(s)))\n\treturn nil\n}\n\n// ParseLength parses a length measurement string with unit on the end (eg: \"12.45in\")\nfunc ParseLength(string) (Length, error)\n\n// ParseLength formats the string using a value in the context to specify format\nfunc (l Length) FormatContext(ctx context.Context) (string, error)\n```\n\nand then wire up the type in `.gqlgen.yml` or via directives like normal:\n\n```yaml\nmodels:\n  YesNo:\n    model: github.com/me/mypkg.YesNo\n```\n\n## Custom scalars with third party types\n\nSometimes you are unable to add methods to a type — perhaps you don't own the type, or it is part of the standard\nlibrary (eg `string` or `time.Time`). To support this we can build an external marshaler:\n\n```go\npackage mypkg\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"strings\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\n\nfunc MarshalMyCustomBooleanScalar(b bool) graphql.Marshaler {\n\treturn graphql.WriterFunc(func(w io.Writer) {\n\t\tif b {\n\t\t\tw.Write([]byte(\"true\"))\n\t\t} else {\n\t\t\tw.Write([]byte(\"false\"))\n\t\t}\n\t})\n}\n\nfunc UnmarshalMyCustomBooleanScalar(v interface{}) (bool, error) {\n\tswitch v := v.(type) {\n\tcase string:\n\t\treturn \"true\" == strings.ToLower(v), nil\n\tcase int:\n\t\treturn v != 0, nil\n\tcase bool:\n\t\treturn v, nil\n\tdefault:\n\t\treturn false, fmt.Errorf(\"%T is not a bool\", v)\n\t}\n}\n```\n\nThen in `.gqlgen.yml` point to the name without the Marshal|Unmarshal in front:\n\n```yaml\nmodels:\n  MyCustomBooleanScalar:\n    model: github.com/me/mypkg.MyCustomBooleanScalar\n```\n\n**Note:** You also can (un)marshal to pointer types via this approach, simply accept a pointer in your\n`Marshal...` func and return one in your `Unmarshal...` func.\n\n**Note:** You can also (un)marshal with a context by having your custom marshal function return a\n`graphql.ContextMarshaler` _and_ your unmarshal function take a `context.Context` as the first argument.\n\nSee the [_examples/scalars](https://github.com/99designs/gqlgen/tree/master/_examples/scalars) package for more examples.\n\n## Marshaling/Unmarshaling Errors\n\nThe errors that occur as part of custom scalar marshaling/unmarshaling will return a full path to the field.\nFor example, given the following schema:\n\n```graphql\nextend type Mutation{\n    updateUser(userInput: UserInput!): User!\n}\n\ninput UserInput {\n    name: String!\n    primaryContactDetails: ContactDetailsInput!\n    secondaryContactDetails: ContactDetailsInput!\n}\n\nscalar Email\n\ninput ContactDetailsInput {\n    email: Email!\n}\n```\n\n... and the following variables:\n\n```json\n{\n  \"userInput\": {\n    \"name\": \"George\",\n    \"primaryContactDetails\": {\n      \"email\": \"not-an-email\"\n    },\n    \"secondaryContactDetails\": {\n      \"email\": \"george@gmail.com\"\n    }\n  }\n}\n```\n\n... and an unmarshal function that returns an error if the email is invalid.\nThe mutation will return an error containing the full path:\n\n```json\n{\n  \"message\": \"email invalid\",\n  \"path\": [\n    \"updateUser\",\n    \"userInput\",\n    \"primaryContactDetails\",\n    \"email\"\n  ]\n}\n```\n\n**Note:** Marshaling errors can only be returned when using the `graphql.ContextMarshaler` style interface.\n"
  },
  {
    "path": "docs/layouts/404.html",
    "content": "{{ define \"main\" }}\n\t<h1>Page not found</h1>\n\n\tI'm sorry, but the requested page wasn’t found on the server.\n{{ end }}"
  },
  {
    "path": "docs/layouts/_default/baseof.html",
    "content": "<!DOCTYPE html>\n<html>\n\n<head {{ with .Site.LanguageCode }}lang=\"{{ . }}\" {{ end }}>\n\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=0.9, maximum-scale=0.9\" /> {{- if .Params.description }}\n\t<meta name=\"description\" content=\"{{ .Params.description }}\"> {{- else }}\n\t<meta name=\"description\" content=\"{{ .Site.Params.description }}\"> {{- end }}\n\n\t<title>{{ if not .IsHome }}{{ .Title }} &mdash;{{ end }} {{ .Site.Title }}</title>\n\n\t<link href=\"https://fonts.googleapis.com/css?family=Roboto:400,400i,700|Source+Code+Pro:400,700|Work+Sans:500,700\" rel=\"stylesheet\">\n\t<link rel=\"stylesheet\" href=\"{{ .Site.BaseURL }}main.css?v=3\" type=\"text/css\" />\n\t<link rel=\"stylesheet\" href=\"{{ .Site.BaseURL }}syntax.css?v=2\" type=\"text/css\" />\n\n\t<!-- Global site tag (gtag.js) - Google Analytics -->\n\t<script async src=\"https://www.googletagmanager.com/gtag/js?id=UA-116208894-2\"></script>\n\t<script>\n\t\twindow.dataLayer = window.dataLayer || [];\n\t\tfunction gtag() { dataLayer.push(arguments); }\n\t\tgtag('js', new Date());\n\n\t\tgtag('config', 'UA-116208894-2');\n\t</script>\n\t<script src=\"{{ .Site.BaseURL }}main.js?v=1\" async></script>\n\n</head>\n\n<body>\n\t{{ partial \"version-switcher\" . }}\n\t{{ partial \"sidebar\" . }} {{ block \"main\" . }}{{ end }}\n</body>\n\n</html>\n"
  },
  {
    "path": "docs/layouts/_default/single.html",
    "content": "{{ define \"main\" }}\n    <header>\n        <div class=\"content\">\n            <h1>{{ .LinkTitle }}</h1>\n            <div class=\"description\">{{ .Title }}</div>\n            <a class=\"header-link\"\n               target=\"_blank\"\n               href=\"https://github.com/99designs/gqlgen/blob/master/docs/content/{{.File.Path }}\">\n                [edit]\n            </a>\n        </div>\n    </header>\n\n    <main>\n        <div class=\"content\">\n\t\t\t\t\t\t{{partial \"version-banner\"}}\n            {{ .Content }}\n        </div>\n    </main>\n{{ end }}\n"
  },
  {
    "path": "docs/layouts/index.html",
    "content": "{{ define \"main\" }}\n\t{{ range where .Site.Pages \"Type\" \"homepage\" }}\n\t\t\t\t<header>\n\t\t\t\t\t\t<span class=\"description\">{{ .Description }}</span>\n\t\t\t\t\t\t<div class=\"content\">\n\t\t\t\t\t\t\t<h1>{{ .LinkTitle }}</h1>\n\t\t\t\t\t\t\t<div class=\"description\">{{ .Title }}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t</header>\n\n\t\t\t\t<main>\n\t\t\t\t\t<div class=\"content\">\n\t\t\t\t\t\t{{partial \"version-banner\"}}\n\t\t\t\t\t\t{{ .Content }}\n\t\t\t\t\t\t{{.Scratch.Set \"intro\" (readFile \"content/_introduction.md\")}}\n\t\t\t\t\t\t{{.Scratch.Set \"intro\" (split (.Scratch.Get \"intro\") \"\\n\")}}\n\t\t\t\t\t\t{{.Scratch.Set \"intro\" (after 2 (.Scratch.Get \"intro\"))}}\n\t\t\t\t\t\t{{.Scratch.Set \"intro\" (delimit (.Scratch.Get \"intro\") \"\\n\")}}\n\t\t\t\t\t\t{{.Scratch.Get \"intro\"|markdownify}}\n\t\t\t\t\t</div>\n\t\t\t\t</main>\n\t{{ end }}\n{{ end }}\n"
  },
  {
    "path": "docs/layouts/partials/sidebar.html",
    "content": "<div class=\"layout--logo\">\n\t<a class=\"logo\" href=\"http://github.com/99designs/gqlgen\">\n\t\t{{ partial \"gqlgen.svg\" }}\n\t\t<span class=\"logo--name\">gqlgen</span>\n\t</a>\n</div>\n\n<nav>\n\t<input class=\"hamburger-toggle\" type=\"checkbox\" />\n\n\t<div class=\"hamburger\">\n\t\t<span></span>\n\t\t<span></span>\n\t\t<span></span>\n\t</div>\n\n\t<ul class=\"menu\">\n\t{{ $currentPage := . }}\n\t{{- range .Site.Menus.main }}\n\t\t<li class=\"{{ if $currentPage.IsMenuCurrent \"main\" . }}active{{ end }}\">\n\t\t\t{{ if .URL }}\n\t\t\t\t<a class=\"menu-item\" href=\"{{ .URL }}\">{{ .Name }}</a>\n\t\t\t{{ else }}\n\t\t\t\t<span class=\"menu-item submenu-heading\">{{ .Name }}</span>\n\t\t\t{{ end }}\n\t\t{{- if .HasChildren }}\n\t\t\t<ul class=\"submenu\">\n\t\t\t{{- range .Children.ByWeight }}\n\t\t\t\t<li class=\"{{ if $currentPage.IsMenuCurrent \"main\" . }}active{{ end }}\">\n\t\t\t\t\t{{ if .URL }}\n\t\t\t\t\t\t<a class=\"menu-item\" href=\"{{ .URL }}\">\n\t\t\t\t\t\t\t{{ .Name | safeHTML }}\n\t\t\t\t\t\t</a>\n\t\t\t\t\t{{ else }}\n\t\t\t\t\t\t<span class=\"menu-item\">{{ .Name }}</span>\n\t\t\t\t\t{{ end }}\n\t\t\t\t</li>\n\t\t\t{{- end }}\n\t\t\t</ul>\n\t\t{{- end }}\n\t\t</li>\n\t{{- end}}\n\t</ul>\n</nav>\n"
  },
  {
    "path": "docs/layouts/partials/version-banner.html",
    "content": "{{ $currentVersion := getenv \"CURRENT_VERSION\" }}\n{{ $versionString := getenv \"VERSIONS\" }}\n{{ $versions := split $versionString \",\" }}\n{{ $latestVersion := index $versions 0 }}\n\n{{ if (eq $currentVersion \"master\") }}\n\t<div class=\"alert-warning\">\n\t\tYou are looking at the docs for the unreleased <code>master</code> branch. The latest version is <a href=\"../{{$latestVersion}}/\">{{ $latestVersion }}</a>.\n\t</div>\n{{ else if not (eq $latestVersion $currentVersion) }}\n\t<div class=\"alert-warning\">\n\t\tYou are looking at the docs for an older version ({{ $currentVersion }}). The latest version is <a href=\"../{{$latestVersion}}/\">{{ $latestVersion }}</a>.\n\t</div>\n{{ end }}\n"
  },
  {
    "path": "docs/layouts/partials/version-switcher.html",
    "content": "{{ $VersionString := getenv \"VERSIONS\" }}\n{{ $Versions := split $VersionString \",\" }}\n{{ $currentVersion := getenv \"CURRENT_VERSION\" }}\n\n<div class=\"version-switcher\">\n\t<span>{{ $currentVersion }}</span>\n\t<div class=\"version-switcher-options\">\n\t\t<a class=\"version-switcher-option\">{{$currentVersion}}</a>\n\t\t{{ range $i, $version := $Versions }}\n\t\t\t{{ if not (eq $currentVersion $version) }}\n\t\t\t\t<a href=\"https://gqlgen.com/{{$version}}/\" class=\"version-switcher-option\">{{$version}}</a>\n\t\t\t{{ end }}\n\t\t{{ end }}\n\t</div>\n</div>\n"
  },
  {
    "path": "docs/layouts/sitemap.xml",
    "content": "<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\" xmlns:xhtml=\"http://www.w3.org/1999/xhtml\">\n    {{ range .Data.Pages }}\n        {{ if or .Description (eq .Kind \"home\") }}\n            <url>\n                <loc>{{ .Permalink }}</loc>\n                {{ if not .Lastmod.IsZero }}<lastmod>{{ safeHTML ( .Lastmod.Format \"2006-01-02T15:04:05-07:00\" ) }}</lastmod>{{ end }}\n                {{ with .Sitemap.ChangeFreq }}<changefreq>{{ . }}</changefreq>{{ end }}\n                {{ if ge .Sitemap.Priority 0.0 }}<priority>{{ .Sitemap.Priority }}</priority>{{ end }}\n            </url>\n        {{ end }}\n    {{ end }}\n</urlset>\n\n"
  },
  {
    "path": "docs/readme.md",
    "content": "Documentation\n====\n\nThis directory contains the markdown source files for the static doc site hosted at [gqlgen.com](https://gqlgen.com) \n\n\n## Install hugo\n\nBefore working with these docs you will need to install hugo, see [Quickstart](https://gohugo.io/getting-started/quick-start/) for instructions.\n\n\n## Editing docs\n\nWhen editing docs run `hugo serve` and a live reload server will start, then navigate to http://localhost:1313 in your browser. Any changes made will be updated in the browser.\n\n\n## Publishing docs\n\nDocs are hosted using [render.com](https://render.com/) and will be automatically deployed when merging to master.\n\n"
  },
  {
    "path": "docs/static/main.css",
    "content": ":root {\n    --font-text: 'Roboto', sans-serif;\n    --font-heading: 'Work Sans', sans-serif;\n    --font-code: 'Source Code Pro', monospace;\n\n    --main-bg-color: coral;\n\n    --color-link: #336699;\n    --color-text: #556;\n\n    --color-heading-text: #445;\n    --color-heading-background: #e9ebed;\n\n    --color-nav-text: #eee;\n    --color-nav-background: #0A215C;\n    --color-nav-active: #284578;\n\n    --color-anchor-default: #DDD;\n    --color-anchor-hover: #666;\n\n    --color-code-text: #445;\n    --color-code-background: #f5f9fc;\n\n    --color-blockquote-background: #fffaf3;\n    --color-blockquote-highlight: rgba(0, 0, 0, 0.1);\n\n    --margin-default: 15px;\n}\n\nhtml, body, div, span, applet, object, iframe,\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\na, abbr, acronym, address, big, cite, code,\ndel, dfn, em, img, ins, kbd, q, s, samp,\nsmall, strike, strong, sub, sup, tt, var,\nb, u, i, center,\ndl, dt, dd, ol, ul, li,\nfieldset, form, label, legend,\ntable, caption, tbody, tfoot, thead, tr, th, td,\narticle, aside, canvas, details, embed,\nfigure, figcaption, footer, header, hgroup,\nmenu, nav, output, ruby, section, summary,\ntime, mark, audio, video {\n    margin: 0;\n    padding: 0;\n    border: 0;\n    font-size: 100%;\n    font: inherit;\n    vertical-align: baseline;\n}\n/* HTML5 display-role reset for older browsers */\narticle, aside, details, figcaption, figure,\nfooter, header, hgroup, menu, nav, section {\n    display: block;\n}\nol, ul {\n    margin-bottom: var(--margin-default);\n    list-style: disc;\n    margin-left: 1.5em;\n}\nblockquote, q {\n    quotes: none;\n}\nblockquote:before, blockquote:after,\nq:before, q:after {\n    content: '';\n    content: none;\n}\ntable {\n    border-collapse: collapse;\n    border-spacing: 0;\n}\n\nbody {\n    font-family: var(--font-text);\n    font-size: 15px;\n    line-height: 1.55em;\n    display: flex;\n    flex-direction: column;\n    min-height: 100vh;\n}\n\na {\n    color: var(--color-link);\n    text-decoration: none;\n}\n\nimg {\n    max-width: 100%;\n}\n\na:hover {\n    text-decoration: underline;\n}\n\n@media (min-width: 768px) {\n    body {\n        display: grid;\n        grid-template:\n            'logo header'\n            'nav content'\n            'nav footer';\n        grid-template-columns: 200px 1fr;\n        grid-template-rows: min-content auto min-content;\n    }\n}\n\nmain {\n    flex: 1;\n    padding: 0 20px 20px;\n    color: var(--color-text);\n}\n\n.content {\n    position: relative;\n    grid-area: content;\n    max-width: 920px;\n    margin: auto;\n}\n\nmain .content {\n    margin-top: 40px;\n}\n\nheader {\n    grid-area: header;\n    background: var(--color-heading-background);\n    padding: 45px 20px;\n    overflow: hidden;\n}\n\nfooter {\n    padding: 2px;\n    text-align: center;\n    font-size: 0.7em;\n    color: var(--color-heading-text);\n}\n\nh1,h2,h3,h4,h5,h6 {\n    font-family: var(--font-heading);\n    color: #445;\n}\n\nh1 {\n    font-size: 25px;\n    font-weight: 700;\n    margin: 15px 0 10px 0;\n    position: relative;\n}\n\n.description {\n    font-family: 'Work Sans', sans-serif;\n    font-size: 18px;\n    color: var(--color-text);\n}\n\n.header-link {\n    position: absolute;\n    top: 0;\n    right: 0;\n}\n\nh2 {\n    margin-top: 2em;\n    margin-bottom: var(--margin-default);\n    font-size: 19px;\n    font-weight: 700;\n}\n\nh3 {\n    margin-top: 1.5em;\n    margin-bottom: var(--margin-default);\n    font-size: 16px;\n    font-weight: 500;\n}\n\np {\n    margin-bottom: var(--margin-default);\n}\n\nnav {\n    grid-area: nav;\n    color: var(--color-nav-text);\n    background-color: var(--color-nav-background);\n    font-family: var(--font-heading);\n    font-weight: 500;\n}\n\n.menu {\n\n}\n\n.menu a {\n    color: inherit;\n}\n\n.menu a:hover {\n    text-decoration: none;\n}\n\n.menu-item {\n    display: block;\n    padding: 5px 10px;\n}\n\n.submenu .menu-item {\n    padding: 5px 20px;\n}\n\n.submenu-heading {\n    margin-top: 15px;\n}\n\nul.menu {\n    margin-left:0;\n    list-style: none;\n}\n\nul.submenu {\n    margin-left: 0;\n    list-style: none;\n    margin-bottom: 0;\n}\n\nul.submenu span {\n    padding: 5px 10px;\n}\n\nul.menu li.active,\nul.menu a:hover {\n    background-color: var(--color-nav-active);\n}\n\n.layout--logo {\n    grid-area: logo;\n    background-color: var(--color-nav-background);\n}\n\n.logo {\n    grid-area: logo;\n    color: #eee;\n    margin: 15px;\n    text-align: center;\n    display: block;\n}\n\n.logo svg {\n    fill: currentColor;\n    max-width: 30px;\n}\n\n.logo--name {\n    vertical-align: top;\n    height: 100%;\n    font-size: 30px;\n}\n\n.logo:hover {\n    text-decoration: none;\n}\n\ncode {\n    font-family: var(--font-code);\n    font-weight: 500;\n    color: var(--color-code-text);\n    background-color: var(--color-code-background);\n    border-radius: 3px;\n    display: inline-block;\n    padding: 0px 5px;\n    font-size: 13px;\n    line-height: 1.5;\n}\n\npre > code {\n    overflow: auto;\n    display: block;\n    padding: 5px 10px;\n    margin-bottom: var(--margin-default);\n}\n\nstrong {\n    font-weight: 700;\n}\n\nem {\n    font-style: italic;\n}\n\n.anchor-link {\n    display: inline-block;\n}\n\n.anchor-link:hover {\n    text-decoration: none;\n}\n\n.anchor-icon {\n    fill: var(--color-anchor-default);\n    display: inline-block;\n    vertical-align: middle;\n    padding: 0 5px;\n    width: 14px;\n}\n\n.anchor-icon:hover {\n    fill: var(--color-anchor-hover);\n}\n\n@media (min-width: 768px) {\n    .logo {\n        margin: 20px 50px;\n\n    }\n    .logo svg {\n        max-width: none;\n        margin: 5px;\n    }\n    nav input {\n        display: none;\n    }\n}\n\n/* pure css hamburger, adapted from https://codepen.io/erikterwan/pen/EVzeRP */\n\n@media (max-width: 767px) {\n    .layout--logo {\n        z-index: 2;\n    }\n\n    nav {\n        -webkit-user-select: none;\n        user-select: none;\n\n    }\n\n    .hamburger {\n        position: absolute;\n        top: 0px;\n        left: 0px;\n        margin: 15px;\n        z-index: 3;\n    }\n\n    nav input {\n        display: block;\n        width: 70px;\n        height: 70px;\n        position: absolute;\n        top: -7px;\n        left: -5px;\n\n        cursor: pointer;\n\n        opacity: 0; /* hide this */\n        z-index: 4; /* and place it over the hamburger */\n\n        -webkit-touch-callout: none;\n    }\n\n    .hamburger span {\n        display: block;\n        width: 28px;\n        height: 4px;\n        margin: 5px;\n        position: relative;\n        background: currentColor;\n        border-radius: 3px;\n        z-index: 1;\n        transform-origin: 0 1.5px;\n\n        transition: transform 0.5s cubic-bezier(0.77, 0.2, 0.05, 1.0),\n        background 0.5s cubic-bezier(0.77, 0.2, 0.05, 1.0),\n        opacity 0.55s ease;\n    }\n\n    nav input:checked ~ .hamburger span {\n        opacity: 1;\n        transform: rotate(45deg) translate(-2px, -1px);\n    }\n\n    nav input:checked ~ .hamburger span:nth-last-child(2) {\n        opacity: 0;\n        transform: rotate(0deg) scale(0.2, 0.2);\n    }\n\n    nav input:checked ~ .hamburger span:nth-last-child(1) {\n        transform: rotate(-45deg) translate(0, -1px);\n    }\n\n    .menu {\n        z-index: 1;\n        position: absolute;\n        width: 300px;\n        height: 100%;\n        margin: -100px 0 0 -50px;\n        padding: 150px 0;\n\n        color: var(--color-heading-text);\n        background-color: var(--color-heading-background);\n        font-family: var(--font-heading);\n\n        list-style-type: none;\n        -webkit-font-smoothing: antialiased;\n        /* to stop flickering of text in safari */\n\n        transform-origin: 0% 0%;\n        transform: translate(-100%, 0);\n\n        transition: transform 0.5s cubic-bezier(0.77, 0.2, 0.05, 1.0);\n    }\n\n    ul.menu li.active,\n    ul.menu a:hover {\n        background-color: #d3d5d7;\n    }\n\n    nav input:checked ~ ul {\n        transform: none;\n    }\n\n}\n\n\nblockquote {\n    background-color: var(--color-blockquote-background);\n    border-left-color: var(--color-blockquote-highlight);\n    border-left-width: 9px;\n    border-left-style: solid;\n    padding: 1em 20px 1em 11px;\n    margin-bottom: var(--margin-default);\n    margin-left: -20px;\n    margin-right: -20px;\n}\n\nblockquote p {\n    margin-bottom: 0;\n}\n\n/* Blockquote headings. */\nblockquote p:first-of-type {\n    font-weight: bold;\n}\n\nblockquote code {\n    background-color: var(--color-blockquote-highlight);\n}\n\ntable {\n    width: 100%;\n}\n\ntd, th {\n    padding: 0.2em 1em;\n}\n\ntr {\n    border-bottom: 1px solid var(--color-heading-background);\n}\n\ntr td:first-child, th {\n    font-weight: bold;\n}\n\n.version-switcher {\n    position: absolute;\n    top: 18px;\n    right: 16px;\n    display: inline-block;\n    width: 80px;\n    z-index: 3;\n    color: white;\n}\n\n\n.version-switcher-options {\n    display: none;\n    /*opacity: 40%;*/\n    color: var(--color-text);\n    position: absolute;\n    top: 0;\n    right: 0;\n    background-color: #f9f9f9;\n    width: 80px;\n    box-shadow: 0px 3px 7px 0px rgba(0,0,0,0.2);\n    z-index: 2;\n}\n\n@media (min-width: 768px) {\n    .version-switcher {\n        color: var(--color-text);\n    }\n}\n\n.version-switcher-options a, .version-switcher span {\n    list-style-type: none;\n    padding: 3px 10px;\n    display: block;\n    cursor: pointer;\n    font-family: var(--font-code);\n}\n\n.version-switcher-options a {\n    color: var(--color-text);\n}\n\n.version-switcher-options a:hover {\n    background: #bbb;\n    text-decoration: none;\n}\n\n.version-switcher-options a:first-child {\n    background: #ccc;\n}\n\n.version-switcher:hover .version-switcher-options {\n    display: block;\n}\n\n.alert-warning {\n    background-color: rgba(255, 85, 35, 0.84);\n    padding: 10px;\n    color: white;\n    font-weight: bolder;\n}\n\n.alert-warning a {\n    color: #ff6;\n}\n\n.icon {\n    display: inline-block;\n    line-height: .75em;\n    width: 1em;\n}\n\n.icon svg {\n    display: block;\n}\n\n.icon svg path {\n    fill: currentColor;\n}\n\nul.submenu span.icon {\n    padding: 0;\n}\n"
  },
  {
    "path": "docs/static/main.js",
    "content": "var anchorForId = function (id) {\n    var anchor = document.createElement(\"a\");\n    anchor.className = \"anchor-link\";\n    anchor.href      = \"#\" + id;\n    anchor.innerHTML = '  <svg class=\"anchor-icon\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z\"/></svg>';\n    return anchor;\n};\n\nvar linkifyAnchors = function (level, containingElement) {\n    var headers = containingElement.getElementsByTagName(\"h\" + level);\n    for (var h = 0; h < headers.length; h++) {\n        var header = headers[h];\n\n        if (typeof header.id !== \"undefined\" && header.id !== \"\") {\n            header.appendChild(anchorForId(header.id));\n\n        }\n    }\n};\n\n\ndocument.onreadystatechange = function () {\n    if (this.readyState === \"complete\") {\n        var contentBlock = document.getElementsByTagName(\"body\")[0]\n        if (!contentBlock) {\n            return;\n        }\n        for (var level = 2; level <= 4; level++) {\n            linkifyAnchors(level, contentBlock);\n        }\n    }\n};\n"
  },
  {
    "path": "docs/static/syntax.css",
    "content": ".chroma .c { color: #aaaaaa; font-style: italic } /* Comment */\n.chroma .err { color: #F00000; background-color: #F0A0A0 } /* Error */\n.chroma .k { color: #0000aa } /* Keyword */\n.chroma .cm { color: #aaaaaa; font-style: italic } /* Comment.Multiline */\n.chroma .cp { color: #4c8317 } /* Comment.Preproc */\n.chroma .c1 { color: #aaaaaa; font-style: italic } /* Comment.Single */\n.chroma .cs { color: #0000aa; font-style: italic } /* Comment.Special */\n.chroma .gd { color: #aa0000 } /* Generic.Deleted */\n.chroma .ge { font-style: italic } /* Generic.Emph */\n.chroma .gr { color: #aa0000 } /* Generic.Error */\n.chroma .gh { color: #000080; font-weight: bold } /* Generic.Heading */\n.chroma .gi { color: #00aa00 } /* Generic.Inserted */\n.chroma .go { color: #888888 } /* Generic.Output */\n.chroma .gp { color: #555555 } /* Generic.Prompt */\n.chroma .gs { font-weight: bold } /* Generic.Strong */\n.chroma .gu { color: #800080; font-weight: bold } /* Generic.Subheading */\n.chroma .gt { color: #aa0000 } /* Generic.Traceback */\n.chroma .kc { color: #0000aa } /* Keyword.Constant */\n.chroma .kd { color: #0000aa } /* Keyword.Declaration */\n.chroma .kn { color: #0000aa } /* Keyword.Namespace */\n.chroma .kp { color: #0000aa } /* Keyword.Pseudo */\n.chroma .kr { color: #0000aa } /* Keyword.Reserved */\n.chroma .kt { color: #00aaaa } /* Keyword.Type */\n.chroma .m { color: #009999 } /* Literal.Number */\n.chroma .s { color: #aa5500 } /* Literal.String */\n.chroma .na { color: #1e90ff } /* Name.Attribute */\n.chroma .nb { color: #00aaaa } /* Name.Builtin */\n.chroma .nc { color: #00aa00; text-decoration: underline } /* Name.Class */\n.chroma .no { color: #aa0000 } /* Name.Constant */\n.chroma .nd { color: #888888 } /* Name.Decorator */\n.chroma .ni { color: #800000; font-weight: bold } /* Name.Entity */\n.chroma .nf { color: #00aa00 } /* Name.Function */\n.chroma .nn { color: #00aaaa; text-decoration: underline } /* Name.Namespace */\n.chroma .nt { color: #1e90ff; font-weight: bold } /* Name.Tag */\n.chroma .nv { color: #aa0000 } /* Name.Variable */\n.chroma .ow { color: #0000aa } /* Operator.Word */\n.chroma .w { color: #bbbbbb } /* Text.Whitespace */\n.chroma .mf { color: #009999 } /* Literal.Number.Float */\n.chroma .mh { color: #009999 } /* Literal.Number.Hex */\n.chroma .mi { color: #009999 } /* Literal.Number.Integer */\n.chroma .mo { color: #009999 } /* Literal.Number.Oct */\n.chroma .sb { color: #aa5500 } /* Literal.String.Backtick */\n.chroma .sc { color: #aa5500 } /* Literal.String.Char */\n.chroma .sd { color: #aa5500 } /* Literal.String.Doc */\n.chroma .s2 { color: #aa5500 } /* Literal.String.Double */\n.chroma .se { color: #aa5500 } /* Literal.String.Escape */\n.chroma .sh { color: #aa5500 } /* Literal.String.Heredoc */\n.chroma .si { color: #aa5500 } /* Literal.String.Interpol */\n.chroma .sx { color: #aa5500 } /* Literal.String.Other */\n.chroma .sr { color: #009999 } /* Literal.String.Regex */\n.chroma .s1 { color: #aa5500 } /* Literal.String.Single */\n.chroma .ss { color: #0000aa } /* Literal.String.Symbol */\n.chroma .bp { color: #00aaaa } /* Name.Builtin.Pseudo */\n.chroma .vc { color: #aa0000 } /* Name.Variable.Class */\n.chroma .vg { color: #aa0000 } /* Name.Variable.Global */\n.chroma .vi { color: #aa0000 } /* Name.Variable.Instance */\n.chroma .il { color: #009999 } /* Literal.Number.Integer.Long */\n"
  },
  {
    "path": "go.mod",
    "content": "module github.com/99designs/gqlgen\n\ngo 1.25.0\n\nrequire (\n\tgithub.com/PuerkitoBio/goquery v1.11.0\n\tgithub.com/go-viper/mapstructure/v2 v2.5.0\n\tgithub.com/goccy/go-yaml v1.19.2\n\tgithub.com/google/uuid v1.6.0\n\tgithub.com/gorilla/websocket v1.5.0 // do not upgrade to v1.5.1 as it has serious bugs\n\tgithub.com/hashicorp/golang-lru/v2 v2.0.7\n\tgithub.com/logrusorgru/aurora/v4 v4.0.0\n\tgithub.com/matryer/moq v0.6.0\n\tgithub.com/mattn/go-colorable v0.1.14\n\tgithub.com/mattn/go-isatty v0.0.20\n\tgithub.com/sosodev/duration v1.4.0\n\tgithub.com/stretchr/testify v1.11.1\n\tgithub.com/urfave/cli/v3 v3.7.0\n\tgithub.com/vektah/gqlparser/v2 v2.5.32\n\tgolang.org/x/text v0.34.0\n\tgolang.org/x/tools v0.42.0\n\tgoogle.golang.org/protobuf v1.36.11\n)\n\nrequire golang.org/x/sync v0.20.0\n\nrequire (\n\tgithub.com/agnivade/levenshtein v1.2.1 // indirect\n\tgithub.com/andybalholm/cascadia v1.3.3 // indirect\n\tgithub.com/davecgh/go-spew v1.1.1 // indirect\n\tgithub.com/pmezard/go-difflib v1.0.0 // indirect\n\tgolang.org/x/mod v0.33.0 // indirect\n\tgolang.org/x/net v0.51.0 // indirect\n\tgolang.org/x/sys v0.42.0 // indirect\n\tgopkg.in/yaml.v3 v3.0.1 // indirect\n)\n"
  },
  {
    "path": "go.sum",
    "content": "github.com/PuerkitoBio/goquery v1.11.0 h1:jZ7pwMQXIITcUXNH83LLk+txlaEy6NVOfTuP43xxfqw=\ngithub.com/PuerkitoBio/goquery v1.11.0/go.mod h1:wQHgxUOU3JGuj3oD/QFfxUdlzW6xPHfqyHre6VMY4DQ=\ngithub.com/agnivade/levenshtein v1.2.1 h1:EHBY3UOn1gwdy/VbFwgo4cxecRznFk7fKWN1KOX7eoM=\ngithub.com/agnivade/levenshtein v1.2.1/go.mod h1:QVVI16kDrtSuwcpd0p1+xMC6Z/VfhtCyDIjcwga4/DU=\ngithub.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ=\ngithub.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=\ngithub.com/andybalholm/cascadia v1.3.3 h1:AG2YHrzJIm4BZ19iwJ/DAua6Btl3IwJX+VI4kktS1LM=\ngithub.com/andybalholm/cascadia v1.3.3/go.mod h1:xNd9bqTn98Ln4DwST8/nG+H0yuB8Hmgu1YHNnWw0GeA=\ngithub.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0 h1:jfIu9sQUG6Ig+0+Ap1h4unLjW6YQJpKZVmUzxsD4E/Q=\ngithub.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0/go.mod h1:t2tdKJDJF9BV14lnkjHmOQgcvEKgtqs5a1N3LNdJhGE=\ngithub.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=\ngithub.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/dgryski/trifles v0.0.0-20230903005119-f50d829f2e54 h1:SG7nF6SRlWhcT7cNTs5R6Hk4V2lcmLz2NsG2VnInyNo=\ngithub.com/dgryski/trifles v0.0.0-20230903005119-f50d829f2e54/go.mod h1:if7Fbed8SFyPtHLHbg49SI7NAdJiC5WIA09pe59rfAA=\ngithub.com/go-viper/mapstructure/v2 v2.5.0 h1:vM5IJoUAy3d7zRSVtIwQgBj7BiWtMPfmPEgAXnvj1Ro=\ngithub.com/go-viper/mapstructure/v2 v2.5.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=\ngithub.com/goccy/go-yaml v1.19.2 h1:PmFC1S6h8ljIz6gMRBopkjP1TVT7xuwrButHID66PoM=\ngithub.com/goccy/go-yaml v1.19.2/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA=\ngithub.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=\ngithub.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=\ngithub.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=\ngithub.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=\ngithub.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=\ngithub.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=\ngithub.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=\ngithub.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k=\ngithub.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM=\ngithub.com/logrusorgru/aurora/v4 v4.0.0 h1:sRjfPpun/63iADiSvGGjgA1cAYegEWMPCJdUpJYn9JA=\ngithub.com/logrusorgru/aurora/v4 v4.0.0/go.mod h1:lP0iIa2nrnT/qoFXcOZSrZQpJ1o6n2CUf/hyHi2Q4ZQ=\ngithub.com/matryer/moq v0.6.0 h1:FCccG09c3o4cg3gnrZ+7ty5Pa/sjmN24BMHp/0pwhjQ=\ngithub.com/matryer/moq v0.6.0/go.mod h1:iEVhY/XBwFG/nbRyEf0oV+SqnTHZJ5wectzx7yT+y98=\ngithub.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=\ngithub.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=\ngithub.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=\ngithub.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=\ngithub.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=\ngithub.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8=\ngithub.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I=\ngithub.com/sosodev/duration v1.4.0 h1:35ed0KiVFriGHHzZZJaZLgmTEEICIyt8Sx0RQfj9IjE=\ngithub.com/sosodev/duration v1.4.0/go.mod h1:RQIBBX0+fMLc/D9+Jb/fwvVmo0eZvDDEERAikUR6SDg=\ngithub.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=\ngithub.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=\ngithub.com/urfave/cli/v3 v3.7.0 h1:AGSnbUyjtLiM+WJUb4dzXKldl/gL+F8OwmRDtVr6g2U=\ngithub.com/urfave/cli/v3 v3.7.0/go.mod h1:ysVLtOEmg2tOy6PknnYVhDoouyC/6N42TMeoMzskhso=\ngithub.com/vektah/gqlparser/v2 v2.5.32 h1:k9QPJd4sEDTL+qB4ncPLflqTJ3MmjB9SrVzJrawpFSc=\ngithub.com/vektah/gqlparser/v2 v2.5.32/go.mod h1:c1I28gSOVNzlfc4WuDlqU7voQnsqI6OG2amkBAFmgts=\ngithub.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=\ngolang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=\ngolang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=\ngolang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc=\ngolang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=\ngolang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=\ngolang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=\ngolang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=\ngolang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=\ngolang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=\ngolang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=\ngolang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=\ngolang.org/x/mod v0.33.0 h1:tHFzIWbBifEmbwtGz65eaWyGiGZatSrT9prnU8DbVL8=\ngolang.org/x/mod v0.33.0/go.mod h1:swjeQEj+6r7fODbD2cqrnje9PnziFuw4bmLbBZFrQ5w=\ngolang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=\ngolang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=\ngolang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=\ngolang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=\ngolang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=\ngolang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=\ngolang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=\ngolang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=\ngolang.org/x/net v0.51.0 h1:94R/GTO7mt3/4wIKpcR5gkGmRLOuE/2hNGeWq/GBIFo=\ngolang.org/x/net v0.51.0/go.mod h1:aamm+2QF5ogm02fjy5Bb7CQ0WMt1/WVM7FtyaTLlA9Y=\ngolang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=\ngolang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=\ngolang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=\ngolang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=\ngolang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4=\ngolang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=\ngolang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=\ngolang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=\ngolang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=\ngolang.org/x/sys v0.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo=\ngolang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=\ngolang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE=\ngolang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=\ngolang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=\ngolang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=\ngolang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=\ngolang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU=\ngolang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=\ngolang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY=\ngolang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM=\ngolang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=\ngolang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=\ngolang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=\ngolang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=\ngolang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=\ngolang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=\ngolang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=\ngolang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=\ngolang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=\ngolang.org/x/text v0.34.0 h1:oL/Qq0Kdaqxa1KbNeMKwQq0reLCCaFtqu2eNuSeNHbk=\ngolang.org/x/text v0.34.0/go.mod h1:homfLqTYRFyVYemLBFl5GgL/DWEiH5wcsQ5gSh1yziA=\ngolang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=\ngolang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=\ngolang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=\ngolang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=\ngolang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=\ngolang.org/x/tools v0.42.0 h1:uNgphsn75Tdz5Ji2q36v/nsFSfR/9BRFvqhGBaJGd5k=\ngolang.org/x/tools v0.42.0/go.mod h1:Ma6lCIwGZvHK6XtgbswSoWroEkhugApmsXyrUmBhfr0=\ngolang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngoogle.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=\ngoogle.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=\ngopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\n"
  },
  {
    "path": "gqlgen.schema.json",
    "content": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"title\": \"gqlgen Configuration\",\n  \"description\": \"Configuration file for gqlgen code generation\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"schema\": {\n      \"description\": \"Where are all the schema files located? globs are supported\",\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"string\"\n      }\n    },\n    \"exec\": {\n      \"description\": \"Where should the generated server code go?\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"filename\": {\n          \"type\": \"string\",\n          \"description\": \"Path to the generated file (required for single-file layout)\"\n        },\n        \"package\": {\n          \"type\": \"string\",\n          \"description\": \"The go package name\"\n        },\n        \"layout\": {\n          \"type\": \"string\",\n          \"enum\": [\"single-file\", \"follow-schema\"],\n          \"default\": \"single-file\"\n        },\n        \"dir\": {\n          \"type\": \"string\",\n          \"description\": \"Directory for generated files (required for follow-schema layout)\"\n        },\n        \"filename_template\": {\n          \"type\": \"string\",\n          \"default\": \"{name}.generated.go\",\n          \"description\": \"Template for filenames (required for follow-schema layout)\"\n        },\n        \"worker_limit\": {\n          \"type\": \"integer\",\n          \"description\": \"Maximum number of goroutines in concurrency to use per child resolvers\",\n          \"default\": 1000\n        }\n      }\n    },\n    \"federation\": {\n      \"description\": \"Federation configuration\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"filename\": { \"type\": \"string\" },\n        \"package\": { \"type\": \"string\" },\n        \"version\": { \"type\": \"integer\" },\n        \"options\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"explicit_requires\": {\n              \"type\": \"boolean\",\n              \"description\": \"Generate a function in the execution context to populate fields using the @requires directive into the entity. Cannot be used together with computed_requires.\",\n              \"default\": false\n            },\n            \"computed_requires\": {\n              \"type\": \"boolean\",\n              \"description\": \"Generate resolver functions to compute values for fields using the @requires directive. Requires federation version 2 and call_argument_directives_with_null to be true. Cannot be used together with explicit_requires.\",\n              \"default\": false\n            },\n            \"entity_resolver_multi\": {\n              \"type\": \"boolean\",\n              \"description\": \"Default engine for entityResolver generation. Can be overridden per entity with @entityResolver(multi: Boolean) directive.\",\n              \"default\": false\n            }\n          }\n        },\n        \"model_template\": { \"type\": \"string\" }\n      }\n    },\n    \"model\": {\n      \"description\": \"Where should any generated models go?\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"filename\": { \"type\": \"string\" },\n        \"package\": { \"type\": \"string\" },\n        \"model_template\": { \"type\": \"string\" },\n        \"version\": { \"type\": \"integer\" },\n        \"options\": {\n          \"type\": \"object\",\n          \"additionalProperties\": { \"type\": \"boolean\" }\n        }\n      }\n    },\n    \"resolver\": {\n      \"description\": \"Where should the resolver implementations go?\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"layout\": {\n          \"type\": \"string\",\n          \"enum\": [\"single-file\", \"follow-schema\"],\n          \"default\": \"follow-schema\"\n        },\n        \"package\": { \"type\": \"string\" },\n        \"dir\": { \"type\": \"string\" },\n        \"filename\": { \"type\": \"string\" },\n        \"filename_template\": {\n          \"type\": \"string\",\n          \"default\": \"{name}.resolvers.go\"\n        },\n        \"omit_template_comment\": { \"type\": \"boolean\" },\n        \"resolver_template\": { \"type\": \"string\" },\n        \"preserve_resolver\": { \"type\": \"boolean\" },\n        \"type\": {\n          \"type\": \"string\",\n          \"description\": \"The name of the resolver struct type\",\n          \"default\": \"Resolver\"\n        }\n      }\n    },\n    \"autobind\": {\n      \"description\": \"gqlgen will search for any type names in the schema in these go packages\",\n      \"type\": \"array\",\n      \"items\": { \"type\": \"string\" }\n    },\n    \"autobind_getter_haser\": {\n      \"description\": \"Enable getter/haser methods for autobind\",\n      \"type\": \"boolean\",\n      \"default\": false\n    },\n    \"models\": {\n      \"description\": \"Type mapping between the GraphQL and go type systems\",\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"model\": {\n            \"type\": \"array\",\n            \"items\": { \"type\": \"string\" }\n          },\n          \"forceGenerate\": {\n            \"type\": \"boolean\",\n            \"description\": \"Force generation of this type even if it is mapped to a model\"\n          },\n          \"fields\": {\n            \"type\": \"object\",\n            \"additionalProperties\": {\n              \"type\": \"object\",\n              \"properties\": {\n                \"type\": {\n                  \"type\": \"string\",\n                  \"description\": \"Go type for this field\"\n                },\n                \"resolver\": { \"type\": \"boolean\" },\n                \"fieldName\": { \"type\": \"string\" },\n                \"omittable\": {\n                  \"type\": \"boolean\",\n                  \"description\": \"Wrap this field with Omittable\"\n                },\n                \"autoBindGetterHaser\": {\n                  \"type\": \"boolean\",\n                  \"description\": \"Enable getter/haser auto-binding for this field\"\n                },\n                \"batch\": {\n                  \"type\": \"boolean\",\n                  \"description\": \"Enable batch resolver generation for this field to reduce N+1 queries\"\n                },\n                \"forceGenerate\": {\n                  \"type\": \"boolean\",\n                  \"description\": \"Force generate this field in the model even when OmitResolverFields is enabled\"\n                }\n              }\n            }\n          },\n          \"enum_values\": {\n            \"type\": \"object\",\n            \"description\": \"Custom enum value mappings\",\n            \"additionalProperties\": {\n              \"type\": \"object\"\n            }\n          },\n          \"extraFields\": {\n            \"type\": \"object\",\n            \"description\": \"Additional named fields to add to the generated model\",\n            \"additionalProperties\": {\n              \"type\": \"object\",\n              \"properties\": {\n                \"type\": { \"type\": \"string\", \"description\": \"Go type of the extra field\" },\n                \"overrideTags\": { \"type\": \"string\", \"description\": \"Override the Go struct tag\" },\n                \"description\": { \"type\": \"string\", \"description\": \"Go doc-comment for the field\" }\n              }\n            }\n          },\n          \"embedExtraFields\": {\n            \"type\": \"array\",\n            \"description\": \"Embeddable extra fields to add to the generated model\",\n            \"items\": {\n              \"type\": \"object\",\n              \"properties\": {\n                \"type\": { \"type\": \"string\", \"description\": \"Go type of the extra field\" },\n                \"overrideTags\": { \"type\": \"string\", \"description\": \"Override the Go struct tag\" },\n                \"description\": { \"type\": \"string\", \"description\": \"Go doc-comment for the field\" }\n              }\n            }\n          }\n        }\n      }\n    },\n    \"struct_tag\": {\n      \"description\": \"Tag to use for model fields (e.g. json)\",\n      \"type\": \"string\",\n      \"default\": \"json\"\n    },\n    \"embedded_structs_prefix\": {\n      \"description\": \"Prefix for embedded structs\",\n      \"type\": \"string\",\n      \"default\": \"Base\"\n    },\n    \"directives\": {\n      \"description\": \"Custom directive configuration\",\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"skip_runtime\": {\n            \"type\": \"boolean\",\n            \"description\": \"Skip runtime directive hook generation\"\n          },\n          \"implementation\": {\n            \"type\": \"string\",\n            \"description\": \"Static implementation function for the directive\"\n          }\n        }\n      }\n    },\n    \"local_prefix\": {\n      \"description\": \"Local package prefix for import sorting\",\n      \"type\": \"string\"\n    },\n    \"omit_slice_element_pointers\": {\n      \"description\": \"Turn on to use []Thing instead of []*Thing\",\n      \"type\": \"boolean\",\n      \"default\": false\n    },\n    \"omit_getters\": {\n      \"description\": \"Turn on to omit getter methods on models\",\n      \"type\": \"boolean\",\n      \"default\": false\n    },\n    \"omit_interface_checks\": {\n      \"description\": \"Turn on to omit Is<Name>() methods to interface and unions\",\n      \"type\": \"boolean\",\n      \"default\": true\n    },\n    \"omit_complexity\": {\n      \"description\": \"Turn on to skip generation of ComplexityRoot struct content and Complexity function\",\n      \"type\": \"boolean\",\n      \"default\": false\n    },\n    \"omit_gqlgen_file_notice\": {\n      \"description\": \"Turn on to not generate any file notice comments in generated files\",\n      \"type\": \"boolean\",\n      \"default\": false\n    },\n    \"omit_gqlgen_version_in_file_notice\": {\n      \"description\": \"Turn on to exclude the gqlgen version in the generated file notice\",\n      \"type\": \"boolean\",\n      \"default\": false\n    },\n    \"omit_root_models\": {\n      \"description\": \"Turn on to exclude root models such as Query and Mutation from the generated models file\",\n      \"type\": \"boolean\",\n      \"default\": false\n    },\n    \"omit_resolver_fields\": {\n      \"description\": \"Turn on to exclude resolver fields from the generated models file\",\n      \"type\": \"boolean\",\n      \"default\": false\n    },\n    \"omit_panic_handler\": {\n      \"description\": \"Turn on to omit panic handler in the generated server\",\n      \"type\": \"boolean\",\n      \"default\": false\n    },\n    \"omit_enum_json_marshalers\": {\n      \"description\": \"Turn on to omit JSON marshaler/unmarshaler generation for enums\",\n      \"type\": \"boolean\",\n      \"default\": false\n    },\n    \"struct_fields_always_pointers\": {\n      \"description\": \"Turn off to make struct-type struct fields not use pointers\",\n      \"type\": \"boolean\",\n      \"default\": true\n    },\n    \"resolvers_always_return_pointers\": {\n      \"description\": \"Turn off to make resolvers return values instead of pointers for structs\",\n      \"type\": \"boolean\",\n      \"default\": true\n    },\n    \"return_pointers_in_unmarshalinput\": {\n      \"description\": \"Turn on to return pointers instead of values in unmarshalInput\",\n      \"type\": \"boolean\",\n      \"default\": false\n    },\n    \"nullable_input_omittable\": {\n      \"description\": \"Wrap nullable input fields with Omittable\",\n      \"type\": \"boolean\",\n      \"default\": true\n    },\n    \"enable_model_json_omitempty_tag\": {\n      \"description\": \"Enable adding omitempty to the json tag of generated model fields\",\n      \"type\": \"boolean\",\n      \"default\": false\n    },\n    \"enable_model_json_omitzero_tag\": {\n      \"description\": \"Enable adding omitzero to the json tag of generated model fields\",\n      \"type\": \"boolean\",\n      \"default\": false\n    },\n    \"skip_validation\": {\n      \"description\": \"Set to speed up generation time by not performing a final validation pass\",\n      \"type\": \"boolean\",\n      \"default\": false\n    },\n    \"skip_mod_tidy\": {\n      \"description\": \"Set to skip running 'go mod tidy' when generating server code\",\n      \"type\": \"boolean\",\n      \"default\": false\n    },\n    \"fast_validation\": {\n      \"description\": \"Use -gcflags=\\\"-N -l\\\" during validation to disable compiler optimizations for faster cold cache builds\",\n      \"type\": \"boolean\",\n      \"default\": false\n    },\n    \"skip_import_grouping\": {\n      \"description\": \"Use go/format.Source instead of imports.Process for formatting (faster but no import grouping)\",\n      \"type\": \"boolean\",\n      \"default\": false\n    },\n    \"use_light_mode_prefetch\": {\n      \"description\": \"Use light mode (NeedName|NeedFiles|NeedModule) for initial package loading instead of full NeedTypes\",\n      \"type\": \"boolean\",\n      \"default\": false\n    },\n    \"use_buffer_pooling\": {\n      \"description\": \"Reuse byte buffers via sync.Pool during code formatting to reduce GC pressure\",\n      \"type\": \"boolean\",\n      \"default\": false\n    },\n    \"call_argument_directives_with_null\": {\n      \"description\": \"Argument directives decorating a field with a null value will still be called\",\n      \"type\": \"boolean\",\n      \"default\": true\n    },\n    \"use_function_syntax_for_execution_context\": {\n      \"description\": \"Use function syntax for execution context instead of receiver methods\",\n      \"type\": \"boolean\",\n      \"default\": false\n    },\n    \"go_build_tags\": {\n      \"description\": \"Set build tags that will be used to load packages\",\n      \"type\": \"array\",\n      \"items\": { \"type\": \"string\" }\n    },\n    \"go_initialisms\": {\n      \"description\": \"Set to modify the initialisms regarded for Go names\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"replace_defaults\": { \"type\": \"boolean\" },\n        \"initialisms\": {\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "graphql/any.go",
    "content": "package graphql\n\nimport (\n\t\"encoding/json\"\n\t\"io\"\n)\n\nfunc MarshalAny(v any) Marshaler {\n\treturn WriterFunc(func(w io.Writer) {\n\t\terr := json.NewEncoder(w).Encode(v)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t})\n}\n\nfunc UnmarshalAny(v any) (any, error) {\n\treturn v, nil\n}\n"
  },
  {
    "path": "graphql/args.go",
    "content": "package graphql\n\nimport (\n\t\"context\"\n)\n\n// ProcessArgField Parses argument value without Execution Context\n// This function is called from generated code\nfunc ProcessArgField[T any](\n\tctx context.Context,\n\trawArgs map[string]any,\n\tfieldName string,\n\tvalueMapperFn func(ctx context.Context, value any) (T, error),\n) (T, error) {\n\tvalue, exists := rawArgs[fieldName]\n\tif !exists {\n\t\tvar zeroVal T\n\t\treturn zeroVal, nil\n\t}\n\n\tctx = WithPathContext(ctx, NewPathWithField(fieldName))\n\treturn valueMapperFn(ctx, value)\n}\n\n// ProcessArgFieldWithEC Parses argument value with Execution Context\n// This function is called from generated code\nfunc ProcessArgFieldWithEC[T, EC any](\n\tctx context.Context,\n\tec EC,\n\trawArgs map[string]any,\n\tfieldName string,\n\tvalueMapperFn func(ctx context.Context, ec EC, value any) (T, error),\n) (T, error) {\n\tvalue, exists := rawArgs[fieldName]\n\tif !exists {\n\t\tvar zeroVal T\n\t\treturn zeroVal, nil\n\t}\n\n\tctx = WithPathContext(ctx, NewPathWithField(fieldName))\n\treturn valueMapperFn(ctx, ec, value)\n}\n"
  },
  {
    "path": "graphql/args_test.go",
    "content": "package graphql\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\nfunc TestProcessArgField(t *testing.T) {\n\ttests := []struct {\n\t\tname          string\n\t\trawArgs       map[string]any\n\t\tfieldName     string\n\t\tvalueMapperFn func(ctx context.Context, value any) (any, error)\n\t\texpected      any\n\t\texpectedErr   string\n\t}{\n\t\t{\n\t\t\tname:      \"field does not exist\",\n\t\t\trawArgs:   map[string]any{},\n\t\t\tfieldName: \"name\",\n\t\t\tvalueMapperFn: func(ctx context.Context, value any) (any, error) {\n\t\t\t\treturn \"\", errors.New(\"should not be called\")\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname:      \"field exists\",\n\t\t\trawArgs:   map[string]any{\"name\": \"test\"},\n\t\t\tfieldName: \"name\",\n\t\t\tvalueMapperFn: func(ctx context.Context, value any) (any, error) {\n\t\t\t\tpath := GetPath(ctx)\n\t\t\t\tassert.Equal(t, ast.Path{ast.PathName(\"name\")}, path)\n\t\t\t\treturn value.(string), nil\n\t\t\t},\n\t\t\texpected: \"test\",\n\t\t},\n\t\t{\n\t\t\tname:      \"valueMapperFn returns an error\",\n\t\t\trawArgs:   map[string]any{\"name\": \"test\"},\n\t\t\tfieldName: \"name\",\n\t\t\tvalueMapperFn: func(ctx context.Context, value any) (any, error) {\n\t\t\t\treturn nil, errors.New(\"mapper error\")\n\t\t\t},\n\t\t\texpectedErr: \"mapper error\",\n\t\t},\n\t}\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tactual, err := ProcessArgField(\n\t\t\t\tcontext.Background(),\n\t\t\t\ttest.rawArgs,\n\t\t\t\ttest.fieldName,\n\t\t\t\ttest.valueMapperFn,\n\t\t\t)\n\t\t\tif test.expectedErr != \"\" {\n\t\t\t\trequire.EqualError(t, err, test.expectedErr)\n\t\t\t} else {\n\t\t\t\trequire.NoError(t, err)\n\t\t\t\tassert.Equal(t, test.expected, actual)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestProcessArgFieldWithEC(t *testing.T) {\n\ttype executionContext struct {\n\t\tsomeValue string\n\t}\n\n\ttests := []struct {\n\t\tname          string\n\t\tec            *executionContext\n\t\trawArgs       map[string]any\n\t\tfieldName     string\n\t\tvalueMapperFn func(ctx context.Context, ec *executionContext, value any) (any, error)\n\t\texpected      any\n\t\texpectedErr   string\n\t}{\n\t\t{\n\t\t\tname:      \"field does not exist\",\n\t\t\tec:        &executionContext{someValue: \"test1\"},\n\t\t\trawArgs:   map[string]any{},\n\t\t\tfieldName: \"name\",\n\t\t\tvalueMapperFn: func(ctx context.Context, ec *executionContext, value any) (any, error) {\n\t\t\t\treturn \"\", errors.New(\"should not be called\")\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname:      \"field exists\",\n\t\t\tec:        &executionContext{someValue: \"test2\"},\n\t\t\trawArgs:   map[string]any{\"name\": \"test\"},\n\t\t\tfieldName: \"name\",\n\t\t\tvalueMapperFn: func(ctx context.Context, ec *executionContext, value any) (any, error) {\n\t\t\t\tpath := GetPath(ctx)\n\t\t\t\tassert.Equal(t, \"test2\", ec.someValue)\n\t\t\t\tassert.Equal(t, ast.Path{ast.PathName(\"name\")}, path)\n\t\t\t\treturn value.(string), nil\n\t\t\t},\n\t\t\texpected: \"test\",\n\t\t},\n\t\t{\n\t\t\tname:      \"valueMapperFn returns an error\",\n\t\t\tec:        &executionContext{someValue: \"test3\"},\n\t\t\trawArgs:   map[string]any{\"name\": \"test\"},\n\t\t\tfieldName: \"name\",\n\t\t\tvalueMapperFn: func(ctx context.Context, ec *executionContext, value any) (any, error) {\n\t\t\t\tassert.Equal(t, \"test3\", ec.someValue)\n\t\t\t\treturn nil, errors.New(\"mapper error\")\n\t\t\t},\n\t\t\texpectedErr: \"mapper error\",\n\t\t},\n\t}\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tactual, err := ProcessArgFieldWithEC(\n\t\t\t\tcontext.Background(),\n\t\t\t\ttest.ec,\n\t\t\t\ttest.rawArgs,\n\t\t\t\ttest.fieldName,\n\t\t\t\ttest.valueMapperFn,\n\t\t\t)\n\t\t\tif test.expectedErr != \"\" {\n\t\t\t\trequire.EqualError(t, err, test.expectedErr)\n\t\t\t} else {\n\t\t\t\trequire.NoError(t, err)\n\t\t\t\tassert.Equal(t, test.expected, actual)\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "graphql/batch.go",
    "content": "package graphql\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"maps\"\n\t\"sync\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n)\n\n// BatchErrors represents per-item errors from a batch resolver.\n// The returned slice must be the same length as the results slice, with nils for successes.\ntype BatchErrors interface {\n\terror\n\tErrors() []error\n}\n\n// BatchErrorList is a simple BatchErrors implementation backed by a slice.\ntype BatchErrorList []error\n\nfunc (e BatchErrorList) Error() string   { return \"batch resolver returned errors\" }\nfunc (e BatchErrorList) Errors() []error { return []error(e) }\nfunc (e BatchErrorList) Unwrap() []error {\n\tif len(e) == 0 {\n\t\treturn nil\n\t}\n\tout := make([]error, 0, len(e))\n\tfor _, err := range e {\n\t\tif err != nil {\n\t\t\tout = append(out, err)\n\t\t}\n\t}\n\tif len(out) == 0 {\n\t\treturn nil\n\t}\n\treturn out\n}\n\ntype batchContextKey struct{}\n\n// BatchParentState holds the batch parent groups for the current context.\ntype BatchParentState struct {\n\tgroups map[string]*BatchParentGroup\n}\n\n// BatchParentGroup represents a group of parent objects being resolved together.\ntype BatchParentGroup struct {\n\tParents any\n\tfields  sync.Map\n}\n\n// BatchFieldResult represents the cached result of a batch field resolution.\ntype BatchFieldResult struct {\n\tonce    sync.Once\n\tdone    chan struct{}\n\tResults any\n\tErr     error\n}\n\n// WithBatchParents adds a batch parent group to the context.\nfunc WithBatchParents(ctx context.Context, typeName string, parents any) context.Context {\n\tprev, _ := ctx.Value(batchContextKey{}).(*BatchParentState)\n\tvar groups map[string]*BatchParentGroup\n\tif prev != nil {\n\t\tgroups = make(map[string]*BatchParentGroup, len(prev.groups)+1)\n\t\tmaps.Copy(groups, prev.groups)\n\t} else {\n\t\tgroups = make(map[string]*BatchParentGroup, 1)\n\t}\n\tgroups[typeName] = &BatchParentGroup{Parents: parents}\n\n\treturn context.WithValue(ctx, batchContextKey{}, &BatchParentState{groups: groups})\n}\n\n// GetBatchParentGroup retrieves the batch parent group for a given type name from context.\nfunc GetBatchParentGroup(ctx context.Context, typeName string) *BatchParentGroup {\n\tstate, _ := ctx.Value(batchContextKey{}).(*BatchParentState)\n\tif state == nil {\n\t\treturn nil\n\t}\n\treturn state.groups[typeName]\n}\n\n// GetFieldResult retrieves or computes the result for a batch field.\nfunc (g *BatchParentGroup) GetFieldResult(\n\tkey string,\n\tresolve func() (any, error),\n) *BatchFieldResult {\n\tif g == nil {\n\t\treturn nil\n\t}\n\tres, _ := g.fields.LoadOrStore(key, &BatchFieldResult{done: make(chan struct{})})\n\tresult := res.(*BatchFieldResult)\n\tresult.once.Do(func() {\n\t\tdefer close(result.done)\n\t\tresult.Results, result.Err = resolve()\n\t})\n\t<-result.done\n\treturn result\n}\n\n// BatchParentIndex returns the index of the current parent in the batch from the path.\nfunc BatchParentIndex(ctx context.Context) (ast.PathIndex, bool) {\n\tpath := GetPath(ctx)\n\tif len(path) < 2 {\n\t\treturn 0, false\n\t}\n\tif idx, ok := path[len(path)-2].(ast.PathIndex); ok {\n\t\treturn idx, true\n\t}\n\treturn 0, false\n}\n\n// BatchPathWithIndex returns a copy of the current path with the parent index replaced.\nfunc BatchPathWithIndex(ctx context.Context, index int) ast.Path {\n\tpath := GetPath(ctx)\n\tif len(path) < 2 {\n\t\treturn path\n\t}\n\tif _, ok := path[len(path)-2].(ast.PathIndex); !ok {\n\t\treturn path\n\t}\n\tcopied := make(ast.Path, len(path))\n\tcopy(copied, path)\n\tcopied[len(path)-2] = ast.PathIndex(index)\n\treturn copied\n}\n\n// AddBatchError adds an error for a specific index in a batch operation.\nfunc AddBatchError(ctx context.Context, index int, err error) {\n\tif err == nil {\n\t\treturn\n\t}\n\tpath := BatchPathWithIndex(ctx, index)\n\tif list, ok := err.(gqlerror.List); ok {\n\t\tfor _, item := range list {\n\t\t\tif item == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif item.Path == nil {\n\t\t\t\tcloned := *item\n\t\t\t\tcloned.Path = path\n\t\t\t\tAddError(ctx, &cloned)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tAddError(ctx, item)\n\t\t}\n\t\treturn\n\t}\n\tvar gqlErr *gqlerror.Error\n\tif errors.As(err, &gqlErr) {\n\t\tif gqlErr.Path == nil {\n\t\t\tcloned := *gqlErr\n\t\t\tcloned.Path = path\n\t\t\tAddError(ctx, &cloned)\n\t\t\treturn\n\t\t}\n\t\tAddError(ctx, gqlErr)\n\t\treturn\n\t}\n\tAddError(ctx, gqlerror.WrapPath(path, err))\n}\n\n// ResolveBatchGroupResult handles batch resolver results for grouped parents.\nfunc ResolveBatchGroupResult[T any](\n\tctx context.Context,\n\tidx ast.PathIndex,\n\tparentsLen int,\n\tresult *BatchFieldResult,\n\tfieldName string,\n) (any, error) {\n\tidxInt := int(idx)\n\tif result.Err != nil {\n\t\tif batchErrs, ok := result.Err.(BatchErrors); ok {\n\t\t\tresults, ok := result.Results.([]T)\n\t\t\tif !ok {\n\t\t\t\tAddBatchError(ctx, idxInt, fmt.Errorf(\n\t\t\t\t\t\"batch resolver %s returned unexpected result type (index %d)\",\n\t\t\t\t\tfieldName,\n\t\t\t\t\tidx,\n\t\t\t\t))\n\t\t\t\treturn nil, nil\n\t\t\t}\n\t\t\terrs := batchErrs.Errors()\n\t\t\tif len(results) != parentsLen {\n\t\t\t\tAddBatchError(ctx, idxInt, fmt.Errorf(\n\t\t\t\t\t\"index %d: batch resolver %s returned %d results for %d parents\",\n\t\t\t\t\tidx,\n\t\t\t\t\tfieldName,\n\t\t\t\t\tlen(results),\n\t\t\t\t\tparentsLen,\n\t\t\t\t))\n\t\t\t\treturn nil, nil\n\t\t\t}\n\t\t\tif len(errs) != parentsLen {\n\t\t\t\tAddBatchError(ctx, idxInt, fmt.Errorf(\n\t\t\t\t\t\"index %d: batch resolver %s returned %d errors for %d parents\",\n\t\t\t\t\tidx,\n\t\t\t\t\tfieldName,\n\t\t\t\t\tlen(errs),\n\t\t\t\t\tparentsLen,\n\t\t\t\t))\n\t\t\t\treturn nil, nil\n\t\t\t}\n\t\t\tif idxInt < 0 || idxInt >= len(results) {\n\t\t\t\tAddBatchError(ctx, idxInt, fmt.Errorf(\n\t\t\t\t\t\"batch resolver %s could not resolve parent index %d\",\n\t\t\t\t\tfieldName,\n\t\t\t\t\tidx,\n\t\t\t\t))\n\t\t\t\treturn nil, nil\n\t\t\t}\n\t\t\tif err := errs[idxInt]; err != nil {\n\t\t\t\tAddBatchError(ctx, idxInt, err)\n\t\t\t\treturn nil, nil\n\t\t\t}\n\t\t\treturn results[idxInt], nil\n\t\t}\n\t\tAddBatchError(ctx, idxInt, result.Err)\n\t\treturn nil, nil\n\t}\n\n\tresults, ok := result.Results.([]T)\n\tif !ok {\n\t\tAddBatchError(ctx, idxInt, fmt.Errorf(\n\t\t\t\"batch resolver %s returned unexpected result type (index %d)\",\n\t\t\tfieldName,\n\t\t\tidx,\n\t\t))\n\t\treturn nil, nil\n\t}\n\tif len(results) != parentsLen {\n\t\tAddBatchError(ctx, idxInt, fmt.Errorf(\n\t\t\t\"index %d: batch resolver %s returned %d results for %d parents\",\n\t\t\tidx,\n\t\t\tfieldName,\n\t\t\tlen(results),\n\t\t\tparentsLen,\n\t\t))\n\t\treturn nil, nil\n\t}\n\tif idxInt < 0 || idxInt >= len(results) {\n\t\tAddBatchError(ctx, idxInt, fmt.Errorf(\n\t\t\t\"batch resolver %s could not resolve parent index %d\",\n\t\t\tfieldName,\n\t\t\tidx,\n\t\t))\n\t\treturn nil, nil\n\t}\n\treturn results[idxInt], nil\n}\n\n// ResolveBatchSingleResult handles batch resolver results for a single parent.\nfunc ResolveBatchSingleResult[T any](\n\tctx context.Context,\n\tresults []T,\n\terr error,\n\tfieldName string,\n) (any, error) {\n\tif err != nil {\n\t\tif batchErrs, ok := err.(BatchErrors); ok {\n\t\t\terrs := batchErrs.Errors()\n\t\t\tif len(results) != 1 {\n\t\t\t\tAddBatchError(ctx, 0, fmt.Errorf(\n\t\t\t\t\t\"batch resolver %s returned %d results for %d parents (index %d)\",\n\t\t\t\t\tfieldName,\n\t\t\t\t\tlen(results),\n\t\t\t\t\t1,\n\t\t\t\t\t0,\n\t\t\t\t))\n\t\t\t\treturn nil, nil\n\t\t\t}\n\t\t\tif len(errs) != 1 {\n\t\t\t\tAddBatchError(ctx, 0, fmt.Errorf(\n\t\t\t\t\t\"batch resolver %s returned %d errors for %d parents (index %d)\",\n\t\t\t\t\tfieldName,\n\t\t\t\t\tlen(errs),\n\t\t\t\t\t1,\n\t\t\t\t\t0,\n\t\t\t\t))\n\t\t\t\treturn nil, nil\n\t\t\t}\n\t\t\tif errs[0] != nil {\n\t\t\t\tAddBatchError(ctx, 0, errs[0])\n\t\t\t\treturn nil, nil\n\t\t\t}\n\t\t\treturn results[0], nil\n\t\t}\n\t\tAddBatchError(ctx, 0, err)\n\t\treturn nil, nil\n\t}\n\tif len(results) != 1 {\n\t\tAddBatchError(ctx, 0, fmt.Errorf(\n\t\t\t\"batch resolver %s returned %d results for %d parents (index %d)\",\n\t\t\tfieldName,\n\t\t\tlen(results),\n\t\t\t1,\n\t\t\t0,\n\t\t))\n\t\treturn nil, nil\n\t}\n\treturn results[0], nil\n}\n"
  },
  {
    "path": "graphql/batch_test.go",
    "content": "package graphql\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\nfunc TestBatchErrorList_UnwrapFiltersNil(t *testing.T) {\n\tsentinel := errors.New(\"sentinel\")\n\tlist := BatchErrorList{nil, sentinel, nil}\n\n\ttype unwrapper interface {\n\t\tUnwrap() []error\n\t}\n\tu, ok := any(list).(unwrapper)\n\trequire.True(t, ok)\n\n\tgot := u.Unwrap()\n\trequire.Len(t, got, 1)\n\trequire.Equal(t, sentinel, got[0])\n}\n\nfunc TestBatchErrorList_ErrorsIs(t *testing.T) {\n\tsentinel := errors.New(\"sentinel\")\n\tother := errors.New(\"other\")\n\tlist := BatchErrorList{nil, sentinel, other}\n\n\trequire.ErrorIs(t, list, sentinel)\n\trequire.ErrorIs(t, list, other)\n\trequire.NotErrorIs(t, list, errors.New(\"missing\"))\n}\n\nfunc TestBatchErrorList_ErrorsIsWithAllNil(t *testing.T) {\n\tlist := BatchErrorList{nil, nil}\n\n\trequire.NotErrorIs(t, list, errors.New(\"missing\"))\n}\n\nfunc newBatchTestContext() context.Context {\n\tctx := WithResponseContext(context.Background(), DefaultErrorPresenter, nil)\n\tctx = WithPathContext(ctx, NewPathWithField(\"users\"))\n\tctx = WithPathContext(ctx, NewPathWithIndex(0))\n\tctx = WithPathContext(ctx, NewPathWithField(\"profile\"))\n\treturn ctx\n}\n\nfunc TestResolveBatchGroupResult_Success(t *testing.T) {\n\tctx := newBatchTestContext()\n\tresult := &BatchFieldResult{\n\t\tResults: []string{\"a\", \"b\"},\n\t}\n\n\tgot, err := ResolveBatchGroupResult[string](\n\t\tctx,\n\t\tast.PathIndex(1),\n\t\t2,\n\t\tresult,\n\t\t\"User.profile\",\n\t)\n\trequire.NoError(t, err)\n\trequire.Equal(t, \"b\", got)\n\trequire.Empty(t, GetErrors(ctx))\n}\n\nfunc TestResolveBatchGroupResult_ResultLenMismatch(t *testing.T) {\n\tctx := newBatchTestContext()\n\tresult := &BatchFieldResult{\n\t\tResults: []string{\"a\"},\n\t}\n\n\tgot, err := ResolveBatchGroupResult[string](\n\t\tctx,\n\t\tast.PathIndex(1),\n\t\t2,\n\t\tresult,\n\t\t\"User.profile\",\n\t)\n\trequire.NoError(t, err)\n\trequire.Nil(t, got)\n\n\terrs := GetErrors(ctx)\n\trequire.Len(t, errs, 1)\n\trequire.Equal(\n\t\tt,\n\t\t\"index 1: batch resolver User.profile returned 1 results for 2 \"+\n\t\t\t\"parents\",\n\t\terrs[0].Message,\n\t)\n\trequire.Equal(\n\t\tt,\n\t\tast.Path{\n\t\t\tast.PathName(\"users\"),\n\t\t\tast.PathIndex(1),\n\t\t\tast.PathName(\"profile\"),\n\t\t},\n\t\terrs[0].Path,\n\t)\n}\n\nfunc TestResolveBatchSingleResult_BatchErrors(t *testing.T) {\n\tctx := newBatchTestContext()\n\n\tgot, err := ResolveBatchSingleResult[string](\n\t\tctx,\n\t\t[]string{\"a\"},\n\t\tBatchErrorList{errors.New(\"boom\")},\n\t\t\"User.profile\",\n\t)\n\trequire.NoError(t, err)\n\trequire.Nil(t, got)\n\n\terrs := GetErrors(ctx)\n\trequire.Len(t, errs, 1)\n\trequire.Equal(t, \"boom\", errs[0].Message)\n}\n\nfunc TestResolveBatchSingleResult_ErrorLenMismatch(t *testing.T) {\n\tctx := newBatchTestContext()\n\n\tgot, err := ResolveBatchSingleResult[string](\n\t\tctx,\n\t\t[]string{\"a\"},\n\t\tBatchErrorList{},\n\t\t\"User.profile\",\n\t)\n\trequire.NoError(t, err)\n\trequire.Nil(t, got)\n\n\terrs := GetErrors(ctx)\n\trequire.Len(t, errs, 1)\n\trequire.Equal(\n\t\tt,\n\t\t\"batch resolver User.profile returned 0 errors for 1 \"+\n\t\t\t\"parents (index 0)\",\n\t\terrs[0].Message,\n\t)\n}\n"
  },
  {
    "path": "graphql/bool.go",
    "content": "package graphql\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\t\"strings\"\n)\n\nfunc MarshalBoolean(b bool) Marshaler {\n\tstr := strconv.FormatBool(b)\n\treturn WriterFunc(func(w io.Writer) { w.Write([]byte(str)) })\n}\n\nfunc UnmarshalBoolean(v any) (bool, error) {\n\tswitch v := v.(type) {\n\tcase string:\n\t\treturn strings.EqualFold(v, \"true\"), nil\n\tcase int:\n\t\treturn v != 0, nil\n\tcase bool:\n\t\treturn v, nil\n\tcase nil:\n\t\treturn false, nil\n\tdefault:\n\t\treturn false, fmt.Errorf(\"%T is not a bool\", v)\n\t}\n}\n"
  },
  {
    "path": "graphql/bool_test.go",
    "content": "package graphql\n\nimport (\n\t\"bytes\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc TestBoolean(t *testing.T) {\n\tassert.Equal(t, \"true\", doBooleanMarshal(true))\n\tassert.Equal(t, \"false\", doBooleanMarshal(false))\n}\n\nfunc doBooleanMarshal(b bool) string {\n\tvar buf bytes.Buffer\n\tMarshalBoolean(b).MarshalGQL(&buf)\n\treturn buf.String()\n}\n"
  },
  {
    "path": "graphql/cache.go",
    "content": "package graphql\n\nimport \"context\"\n\n// Cache is a shared store for APQ and query AST caching\ntype Cache[T any] interface {\n\t// Get looks up a key's value from the cache.\n\tGet(ctx context.Context, key string) (value T, ok bool)\n\n\t// Add adds a value to the cache.\n\tAdd(ctx context.Context, key string, value T)\n}\n\n// MapCache is the simplest implementation of a cache, because it can not evict it should only be\n// used in tests\ntype MapCache[T any] map[string]T\n\n// Get looks up a key's value from the cache.\nfunc (m MapCache[T]) Get(_ context.Context, key string) (value T, ok bool) {\n\tv, ok := m[key]\n\treturn v, ok\n}\n\n// Add adds a value to the cache.\nfunc (m MapCache[T]) Add(_ context.Context, key string, value T) { m[key] = value }\n\ntype NoCache[T any] struct{}\n\nvar _ Cache[string] = (*NoCache[string])(nil)\n\nfunc (n NoCache[T]) Get(_ context.Context, _ string) (value T, ok bool) {\n\tvar val T\n\treturn val, false\n}\n\nfunc (n NoCache[T]) Add(_ context.Context, _ string, _ T) {}\n"
  },
  {
    "path": "graphql/cache_test.go",
    "content": "package graphql\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc TestMapCache(t *testing.T) {\n\tt.Run(\"Add and Get\", func(t *testing.T) {\n\t\tcache := MapCache[string]{}\n\t\tctx := context.Background()\n\t\tkey := \"testKey\"\n\t\tvalue := \"testValue\"\n\n\t\t// Test Add\n\t\tcache.Add(ctx, key, value)\n\t\tval, ok := cache[key]\n\t\tassert.True(t, ok, \"Key should exist in cache\")\n\t\tassert.Equal(t, value, val, \"Cache should return the correct value for a key\")\n\n\t\t// Test Get\n\t\tgotValue, ok := cache.Get(ctx, key)\n\t\tassert.True(t, ok, \"Get should find the key\")\n\t\tassert.Equal(t, value, gotValue, \"Get should return the correct value\")\n\t})\n}\n\nfunc TestMapCacheMultipleEntries(t *testing.T) {\n\tt.Run(\"Multiple Add and Get\", func(t *testing.T) {\n\t\tcache := MapCache[string]{}\n\t\tctx := context.Background()\n\n\t\t// Define multiple key-value pairs\n\t\tentries := map[string]string{\n\t\t\t\"key1\": \"value1\",\n\t\t\t\"key2\": \"value2\",\n\t\t\t\"key3\": \"value3\",\n\t\t}\n\n\t\t// Test Add for multiple entries\n\t\tfor key, value := range entries {\n\t\t\tcache.Add(ctx, key, value)\n\t\t\tval, ok := cache[key]\n\t\t\tassert.True(t, ok, \"Key %s should exist in cache\", key)\n\t\t\tassert.Equal(t, value, val, \"Cache should return the correct value for key %s\", key)\n\t\t}\n\n\t\t// Test Get for multiple entries\n\t\tfor key, expectedValue := range entries {\n\t\t\tgotValue, ok := cache.Get(ctx, key)\n\t\t\tassert.True(t, ok, \"Get should find the key %s\", key)\n\t\t\tassert.Equal(\n\t\t\t\tt,\n\t\t\t\texpectedValue,\n\t\t\t\tgotValue,\n\t\t\t\t\"Get should return the correct value for key %s\",\n\t\t\t\tkey,\n\t\t\t)\n\t\t}\n\t})\n}\n\nfunc TestMapCacheEdgeCases(t *testing.T) {\n\ttype testCase struct {\n\t\tname       string\n\t\tkey        string\n\t\tvalue      string\n\t\tinitialVal string // Initial value if needed (for overwrite tests)\n\t\twantValue  string\n\t\twantOk     bool\n\t}\n\n\ttests := []testCase{\n\t\t{\n\t\t\tname:      \"Empty Key\",\n\t\t\tkey:       \"\",\n\t\t\tvalue:     \"valueForEmptyKey\",\n\t\t\twantValue: \"valueForEmptyKey\",\n\t\t\twantOk:    true,\n\t\t},\n\t\t{\n\t\t\tname:      \"Very Long Key\",\n\t\t\tkey:       \"key\" + string(make([]rune, 10000)),\n\t\t\tvalue:     \"valueForLongKey\",\n\t\t\twantValue: \"valueForLongKey\",\n\t\t\twantOk:    true,\n\t\t},\n\t\t{\n\t\t\tname:       \"Overwrite Existing Key\",\n\t\t\tkey:        \"testKey\",\n\t\t\tinitialVal: \"initialValue\",\n\t\t\tvalue:      \"newValue\",\n\t\t\twantValue:  \"newValue\",\n\t\t\twantOk:     true,\n\t\t},\n\t}\n\n\tfor _, tc := range tests {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tcache := MapCache[string]{}\n\t\t\tctx := context.Background()\n\n\t\t\t// Set initial value if needed\n\t\t\tif tc.initialVal != \"\" {\n\t\t\t\tcache.Add(ctx, tc.key, tc.initialVal)\n\t\t\t}\n\n\t\t\t// Add the main value\n\t\t\tcache.Add(ctx, tc.key, tc.value)\n\n\t\t\t// Test Get\n\t\t\tgotValue, ok := cache.Get(ctx, tc.key)\n\t\t\tassert.Equal(t, tc.wantOk, ok, \"Expected ok to be %v\", tc.wantOk)\n\t\t\tassert.Equal(t, tc.wantValue, gotValue, \"Expected value to be %v\", tc.wantValue)\n\t\t})\n\t}\n}\n\nfunc TestNoCache(t *testing.T) {\n\tt.Run(\"Add and Get\", func(t *testing.T) {\n\t\tcache := NoCache[*string]{}\n\t\tctx := context.Background()\n\t\tkey := \"testKey\"\n\t\tvalue := \"testValue\"\n\n\t\t// Test Add\n\t\tcache.Add(ctx, key, &value) // Should do nothing\n\n\t\t// Test Get\n\t\tgotValue, ok := cache.Get(ctx, key)\n\t\tassert.False(t, ok, \"Get should not find the key\")\n\t\tassert.Nil(t, gotValue, \"Get should return nil for any key\")\n\t})\n}\n\nfunc TestNoCacheMultipleEntries(t *testing.T) {\n\tt.Run(\"Multiple Add and Get\", func(t *testing.T) {\n\t\tcache := NoCache[*string]{}\n\t\tctx := context.Background()\n\n\t\t// Define multiple key-value pairs\n\t\tentries := map[string]string{\n\t\t\t\"key1\": \"value1\",\n\t\t\t\"key2\": \"value2\",\n\t\t\t\"key3\": \"value3\",\n\t\t}\n\n\t\t// Test Add for multiple entries\n\t\tfor key, value := range entries {\n\t\t\tcache.Add(ctx, key, &value) // Should do nothing\n\t\t}\n\n\t\t// Test Get for multiple entries\n\t\tfor key := range entries {\n\t\t\tgotValue, ok := cache.Get(ctx, key)\n\t\t\tassert.False(t, ok, \"Get should not find the key %s\", key)\n\t\t\tassert.Nil(t, gotValue, \"Get should return nil for key %s\", key)\n\t\t}\n\t})\n}\n\nfunc TestNoCacheEdgeCases(t *testing.T) {\n\ttype testCase struct {\n\t\tname      string\n\t\tkey       string\n\t\tvalue     string\n\t\twantOk    bool\n\t\twantValue *string\n\t}\n\n\ttests := []testCase{\n\t\t{\n\t\t\tname:      \"Get After Add\",\n\t\t\tkey:       \"anyKey\",\n\t\t\tvalue:     \"anyValue\",\n\t\t\twantOk:    false,\n\t\t\twantValue: nil,\n\t\t},\n\t\t{\n\t\t\tname:      \"Empty Key\",\n\t\t\tkey:       \"\",\n\t\t\tvalue:     \"value\",\n\t\t\twantOk:    false,\n\t\t\twantValue: nil,\n\t\t},\n\t\t{\n\t\t\tname:      \"Very Long Key\",\n\t\t\tkey:       \"key\" + string(make([]rune, 10000)),\n\t\t\tvalue:     \"value\",\n\t\t\twantOk:    false,\n\t\t\twantValue: nil,\n\t\t},\n\t}\n\n\tfor _, tc := range tests {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tcache := NoCache[*string]{}\n\t\t\tctx := context.Background()\n\n\t\t\t// Test Add\n\t\t\tcache.Add(ctx, tc.key, &tc.value)\n\n\t\t\t// Test Get\n\t\t\tgotValue, ok := cache.Get(ctx, tc.key)\n\t\t\tassert.Equal(t, tc.wantOk, ok, \"Get should not find the key\")\n\t\t\tassert.Equal(t, tc.wantValue, gotValue, \"Get should return nil for any key\")\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "graphql/coercion.go",
    "content": "package graphql\n\nimport (\n\t\"encoding/json\"\n)\n\n// CoerceList applies coercion from a single value to a list.\nfunc CoerceList(v any) []any {\n\tvar vSlice []any\n\tif v == nil {\n\t\treturn vSlice\n\t}\n\n\tswitch v := v.(type) {\n\tcase []any:\n\t\t// already a slice no coercion required\n\t\tvSlice = v\n\tcase []string:\n\t\tif len(v) > 0 {\n\t\t\tvSlice = []any{v[0]}\n\t\t}\n\tcase []json.Number:\n\t\tif len(v) > 0 {\n\t\t\tvSlice = []any{v[0]}\n\t\t}\n\tcase []bool:\n\t\tif len(v) > 0 {\n\t\t\tvSlice = []any{v[0]}\n\t\t}\n\tcase []map[string]any:\n\t\tif len(v) > 0 {\n\t\t\tvSlice = []any{v[0]}\n\t\t}\n\tcase []float64:\n\t\tif len(v) > 0 {\n\t\t\tvSlice = []any{v[0]}\n\t\t}\n\tcase []float32:\n\t\tif len(v) > 0 {\n\t\t\tvSlice = []any{v[0]}\n\t\t}\n\tcase []int:\n\t\tif len(v) > 0 {\n\t\t\tvSlice = []any{v[0]}\n\t\t}\n\tcase []int32:\n\t\tif len(v) > 0 {\n\t\t\tvSlice = []any{v[0]}\n\t\t}\n\tcase []int64:\n\t\tif len(v) > 0 {\n\t\t\tvSlice = []any{v[0]}\n\t\t}\n\tdefault:\n\t\tvSlice = []any{v}\n\t}\n\treturn vSlice\n}\n"
  },
  {
    "path": "graphql/coercion_test.go",
    "content": "package graphql\n\nimport (\n\t\"encoding/json\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc TestCoerceList(t *testing.T) {\n\tmapInput := map[string]any{\n\t\t\"test\": \"value\",\n\t\t\"nested\": map[string]any{\n\t\t\t\"nested\": true,\n\t\t},\n\t}\n\n\tjsonNumber := json.Number(\"12\")\n\n\tassert.Equal(t, []any{\"test\", \"values\"}, CoerceList([]any{\"test\", \"values\"}))\n\tassert.Equal(t, []any{\"test\"}, CoerceList(\"test\"))\n\tassert.Equal(t, []any{\"test\"}, CoerceList([]string{\"test\"}))\n\tassert.Equal(t, []any{3}, CoerceList([]int{3}))\n\tassert.Equal(t, []any{3}, CoerceList(3))\n\tassert.Equal(t, []any{int32(3)}, CoerceList([]int32{3}))\n\tassert.Equal(t, []any{int64(2)}, CoerceList([]int64{2}))\n\tassert.Equal(t, []any{float32(3.14)}, CoerceList([]float32{3.14}))\n\tassert.Equal(t, []any{3.14}, CoerceList([]float64{3.14}))\n\tassert.Equal(t, []any{jsonNumber}, CoerceList([]json.Number{jsonNumber}))\n\tassert.Equal(t, []any{jsonNumber}, CoerceList(jsonNumber))\n\tassert.Equal(t, []any{true}, CoerceList([]bool{true}))\n\tassert.Equal(t, []any{mapInput}, CoerceList(mapInput))\n\tassert.Equal(t, []any{mapInput}, CoerceList([]any{mapInput}))\n\tassert.Equal(t, []any{mapInput}, CoerceList([]map[string]any{mapInput}))\n\tassert.Empty(t, CoerceList(nil))\n}\n"
  },
  {
    "path": "graphql/collect_fields_cache_integration_test.go",
    "content": "package graphql\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\t\"github.com/vektah/gqlparser/v2/validator/rules\"\n)\n\nconst collectFieldsSchemaSDL = `\n    interface Node {\n        name: String!\n        email: String\n    }\n\n    type User implements Node {\n        name: String!\n        email: String\n    }\n\n    type Admin implements Node {\n        name: String!\n        email: String\n        secret: String\n    }\n\n    type Query {\n        search: [Node!]!\n        user: User!\n    }\n`\n\nvar collectFieldsSchema = gqlparser.MustLoadSchema(&ast.Source{\n\tName:  \"collectFieldsCache\",\n\tInput: collectFieldsSchemaSDL,\n})\n\nfunc TestCollectFieldsCache_InterfaceResult(t *testing.T) {\n\tconst query = `\n        query {\n            search {\n                name\n                ... on User {\n                    email\n                }\n                ... on Admin {\n                    secret\n                }\n            }\n        }\n    `\n\n\tdoc := gqlparser.MustLoadQueryWithRules(collectFieldsSchema, query, rules.NewDefaultRules())\n\top := doc.Operations[0]\n\tsearchField := op.SelectionSet[0].(*ast.Field)\n\n\topCtx := &OperationContext{\n\t\tRawQuery:  query,\n\t\tVariables: nil,\n\t\tDoc:       doc,\n\t\tOperation: op,\n\t}\n\n\tuserFields := CollectFields(opCtx, searchField.SelectionSet, []string{\"User\"})\n\tadminFields := CollectFields(opCtx, searchField.SelectionSet, []string{\"Admin\"})\n\n\trequire.ElementsMatch(t, []string{\"name\", \"email\"}, fieldNames(userFields))\n\trequire.ElementsMatch(t, []string{\"name\", \"secret\"}, fieldNames(adminFields))\n\trequire.Equal(t, 2, opCtx.collectFieldsCache.Len())\n}\n\nfunc TestCollectFieldsCache_AliasResult(t *testing.T) {\n\tconst query = `\n        query {\n            user1: user { name }\n            user2: user { email }\n        }\n    `\n\n\tdoc := gqlparser.MustLoadQueryWithRules(collectFieldsSchema, query, rules.NewDefaultRules())\n\top := doc.Operations[0]\n\n\topCtx := &OperationContext{\n\t\tRawQuery:  query,\n\t\tVariables: nil,\n\t\tDoc:       doc,\n\t\tOperation: op,\n\t}\n\n\tfields := CollectFields(opCtx, op.SelectionSet, nil)\n\trequire.Equal(t, 1, opCtx.collectFieldsCache.Len())\n\trequire.Len(t, fields, 2)\n\n\texpected := []struct {\n\t\talias        string\n\t\texpectedName string\n\t}{\n\t\t{alias: \"user1\", expectedName: \"name\"},\n\t\t{alias: \"user2\", expectedName: \"email\"},\n\t}\n\n\tfor _, check := range expected {\n\t\tvar matched bool\n\t\tfor _, f := range fields {\n\t\t\talias := f.Alias\n\t\t\tif alias == \"\" {\n\t\t\t\talias = f.Name\n\t\t\t}\n\t\t\tif alias == check.alias {\n\t\t\t\trequire.Equal(t, []string{check.expectedName}, selectionNames(f.Selections))\n\t\t\t\tmatched = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\trequire.True(t, matched, \"expected alias %q not found\", check.alias)\n\t}\n}\n\nfunc TestCollectFieldsCache_DirectiveResult(t *testing.T) {\n\tconst query = `\n        query Test($includeEmail: Boolean!, $skipName: Boolean!) {\n            search {\n                ... on User {\n                    name @skip(if: $skipName)\n                    email @include(if: $includeEmail)\n                }\n            }\n        }\n    `\n\n\trun := func(vars map[string]any) ([]CollectedField, int) {\n\t\tdoc := gqlparser.MustLoadQueryWithRules(collectFieldsSchema, query, rules.NewDefaultRules())\n\t\top := doc.Operations[0]\n\t\tsearchField := op.SelectionSet[0].(*ast.Field)\n\n\t\topCtx := &OperationContext{\n\t\t\tRawQuery:  query,\n\t\t\tVariables: vars,\n\t\t\tDoc:       doc,\n\t\t\tOperation: op,\n\t\t}\n\n\t\tfirst := CollectFields(opCtx, searchField.SelectionSet, []string{\"User\"})\n\t\tsecond := CollectFields(opCtx, searchField.SelectionSet, []string{\"User\"})\n\t\trequire.Equal(t, first, second)\n\t\treturn first, opCtx.collectFieldsCache.Len()\n\t}\n\n\tfieldsA, cacheA := run(map[string]any{\"includeEmail\": false, \"skipName\": false})\n\trequire.Equal(t, 1, cacheA)\n\trequire.Equal(t, []string{\"name\"}, fieldNames(fieldsA))\n\n\tfieldsB, cacheB := run(map[string]any{\"includeEmail\": true, \"skipName\": true})\n\trequire.Equal(t, 1, cacheB)\n\trequire.Equal(t, []string{\"email\"}, fieldNames(fieldsB))\n\n\tfieldsC, cacheC := run(map[string]any{\"includeEmail\": false, \"skipName\": true})\n\trequire.Equal(t, 1, cacheC)\n\trequire.Empty(t, fieldsC)\n\n\tfieldsD, cacheD := run(map[string]any{\"includeEmail\": true, \"skipName\": false})\n\trequire.Equal(t, 1, cacheD)\n\trequire.ElementsMatch(t, []string{\"name\", \"email\"}, fieldNames(fieldsD))\n}\n\nfunc fieldNames(fields []CollectedField) []string {\n\tnames := make([]string, 0, len(fields))\n\tfor _, f := range fields {\n\t\tnames = append(names, f.Name)\n\t}\n\treturn names\n}\n\nfunc selectionNames(sel ast.SelectionSet) []string {\n\tnames := make([]string, 0, len(sel))\n\tfor _, s := range sel {\n\t\tif f, ok := s.(*ast.Field); ok {\n\t\t\tnames = append(names, f.Name)\n\t\t}\n\t}\n\treturn names\n}\n"
  },
  {
    "path": "graphql/collect_fields_cache_store.go",
    "content": "package graphql\n\nimport (\n\t\"hash/fnv\"\n\t\"reflect\"\n\t\"sync\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// collectFieldsCacheKey is the cache key for CollectFields results.\ntype collectFieldsCacheKey struct {\n\tselectionPtr  uintptr // Pointer to the underlying SelectionSet data\n\tselectionLen  int     // Length of the selection set\n\tsatisfiesHash uint64  // Hash of the satisfies array\n}\n\n// collectFieldsCacheStore manages CollectFields cache entries safely.\ntype collectFieldsCacheStore struct {\n\tmu    sync.RWMutex\n\titems map[collectFieldsCacheKey][]CollectedField\n}\n\n// Get returns the cached result for the key if present.\nfunc (s *collectFieldsCacheStore) Get(key collectFieldsCacheKey) ([]CollectedField, bool) {\n\ts.mu.RLock()\n\tdefer s.mu.RUnlock()\n\tif s.items == nil {\n\t\treturn nil, false\n\t}\n\tval, ok := s.items[key]\n\treturn val, ok\n}\n\n// Add stores the value when absent and returns the cached value.\nfunc (s *collectFieldsCacheStore) Add(\n\tkey collectFieldsCacheKey,\n\tvalue []CollectedField,\n) []CollectedField {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\n\tif s.items == nil {\n\t\ts.items = make(map[collectFieldsCacheKey][]CollectedField)\n\t}\n\n\tif existing, ok := s.items[key]; ok {\n\t\treturn existing\n\t}\n\ts.items[key] = value\n\treturn value\n}\n\n// Len returns the number of cached entries.\nfunc (s *collectFieldsCacheStore) Len() int {\n\ts.mu.RLock()\n\tdefer s.mu.RUnlock()\n\treturn len(s.items)\n}\n\n// makeCollectFieldsCacheKey generates a cache key for CollectFields.\nfunc makeCollectFieldsCacheKey(selSet ast.SelectionSet, satisfies []string) collectFieldsCacheKey {\n\tvar selectionPtr uintptr\n\tif selSet != nil {\n\t\tselectionPtr = reflect.ValueOf(selSet).Pointer()\n\t}\n\n\th := fnv.New64a()\n\tfor _, s := range satisfies {\n\t\th.Write([]byte(s))\n\t\th.Write([]byte{0})\n\t}\n\n\treturn collectFieldsCacheKey{\n\t\tselectionPtr:  selectionPtr,\n\t\tselectionLen:  len(selSet),\n\t\tsatisfiesHash: h.Sum64(),\n\t}\n}\n"
  },
  {
    "path": "graphql/config.go",
    "content": "package graphql\n\nimport \"github.com/vektah/gqlparser/v2/ast\"\n\n// Config holds dependencies for constructing an executable schema.\n// R, D, C are generated types from the target schema package.\ntype Config[R any, D any, C any] struct {\n\tSchema     *ast.Schema\n\tResolvers  R\n\tDirectives D\n\tComplexity C\n}\n"
  },
  {
    "path": "graphql/context_field.go",
    "content": "package graphql\n\nimport (\n\t\"context\"\n\t\"time\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\ntype key string\n\nconst resolverCtx key = \"resolver_context\"\n\n// Deprecated: Use FieldContext instead\ntype ResolverContext = FieldContext\n\ntype FieldContext struct {\n\tParent *FieldContext\n\t// The name of the type this field belongs to\n\tObject string\n\t// These are the args after processing, they can be mutated in middleware to change what the\n\t// resolver will get.\n\tArgs map[string]any\n\t// The raw field\n\tField CollectedField\n\t// The index of array in path.\n\tIndex *int\n\t// The result object of resolver\n\tResult any\n\t// IsMethod indicates if the resolver is a method\n\tIsMethod bool\n\t// IsResolver indicates if the field has a user-specified resolver\n\tIsResolver bool\n\t// Child allows getting a child FieldContext by its field collection description.\n\t// Note that, the returned child FieldContext represents the context as it was\n\t// before the execution of the field resolver. For example:\n\t//\n\t//\tsrv.AroundFields(func(ctx context.Context, next graphql.Resolver) (any, error) {\n\t//\t\tfc := graphql.GetFieldContext(ctx)\n\t//\t\topCtx := graphql.GetOperationContext(ctx)\n\t//\t\tcollected := graphql.CollectFields(opCtx, fc.Field.Selections, []string{\"User\"})\n\t//\n\t//\t\tchild, err := fc.Child(ctx, collected[0])\n\t//\t\tif err != nil {\n\t//\t\t\treturn nil, err\n\t//\t\t}\n\t//\t\tfmt.Printf(\"child context %q with args: %v\\n\", child.Field.Name, child.Args)\n\t//\n\t//\t\treturn next(ctx)\n\t//\t})\n\t//\n\tChild func(context.Context, CollectedField) (*FieldContext, error)\n}\n\ntype FieldStats struct {\n\t// When field execution started\n\tStarted time.Time\n\n\t// When argument marshaling finished\n\tArgumentsCompleted time.Time\n\n\t// When the field completed running all middleware. Not available inside field middleware!\n\tCompleted time.Time\n}\n\nfunc (r *FieldContext) Path() ast.Path {\n\tvar path ast.Path\n\tfor it := r; it != nil; it = it.Parent {\n\t\tif it.Index != nil {\n\t\t\tpath = append(path, ast.PathIndex(*it.Index))\n\t\t} else if it.Field.Field != nil {\n\t\t\tpath = append(path, ast.PathName(it.Field.Alias))\n\t\t}\n\t}\n\n\t// because we are walking up the chain, all the elements are backwards, do an inplace flip.\n\tfor i := len(path)/2 - 1; i >= 0; i-- {\n\t\topp := len(path) - 1 - i\n\t\tpath[i], path[opp] = path[opp], path[i]\n\t}\n\n\treturn path\n}\n\n// Deprecated: Use GetFieldContext instead\nfunc GetResolverContext(ctx context.Context) *ResolverContext {\n\treturn GetFieldContext(ctx)\n}\n\nfunc GetFieldContext(ctx context.Context) *FieldContext {\n\tif val, ok := ctx.Value(resolverCtx).(*FieldContext); ok {\n\t\treturn val\n\t}\n\treturn nil\n}\n\nfunc WithFieldContext(ctx context.Context, rc *FieldContext) context.Context {\n\trc.Parent = GetFieldContext(ctx)\n\treturn context.WithValue(ctx, resolverCtx, rc)\n}\n\nfunc equalPath(a, b ast.Path) bool {\n\tif len(a) != len(b) {\n\t\treturn false\n\t}\n\n\tfor i := range a {\n\t\tif a[i] != b[i] {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n"
  },
  {
    "path": "graphql/context_field_test.go",
    "content": "package graphql\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\nfunc TestGetResolverContext(t *testing.T) {\n\trequire.Nil(t, GetFieldContext(context.Background()))\n\n\trc := &FieldContext{}\n\trequire.Equal(t, rc, GetFieldContext(WithFieldContext(context.Background(), rc)))\n}\n\nfunc testContext(sel ast.SelectionSet) context.Context {\n\tctx := context.Background()\n\n\trqCtx := &OperationContext{}\n\tctx = WithOperationContext(ctx, rqCtx)\n\n\troot := &FieldContext{\n\t\tField: CollectedField{\n\t\t\tSelections: sel,\n\t\t},\n\t}\n\tctx = WithFieldContext(ctx, root)\n\n\treturn ctx\n}\n"
  },
  {
    "path": "graphql/context_operation.go",
    "content": "package graphql\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"net/http\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n)\n\n// Deprecated: Please update all references to OperationContext instead\ntype RequestContext = OperationContext\n\ntype OperationContext struct {\n\tRawQuery      string\n\tVariables     map[string]any\n\tOperationName string\n\tDoc           *ast.QueryDocument\n\tExtensions    map[string]any\n\tHeaders       http.Header\n\n\tOperation              *ast.OperationDefinition\n\tDisableIntrospection   bool\n\tRecoverFunc            RecoverFunc\n\tResolverMiddleware     FieldMiddleware\n\tRootResolverMiddleware RootFieldMiddleware\n\n\tStats Stats\n\n\tcollectFieldsCache collectFieldsCacheStore\n}\n\nfunc (c *OperationContext) Validate(ctx context.Context) error {\n\tif c.Doc == nil {\n\t\treturn errors.New(\"field 'Doc'is required\")\n\t}\n\tif c.RawQuery == \"\" {\n\t\treturn errors.New(\"field 'RawQuery' is required\")\n\t}\n\tif c.Variables == nil {\n\t\tc.Variables = make(map[string]any)\n\t}\n\tif c.ResolverMiddleware == nil {\n\t\treturn errors.New(\"field 'ResolverMiddleware' is required\")\n\t}\n\tif c.RootResolverMiddleware == nil {\n\t\treturn errors.New(\"field 'RootResolverMiddleware' is required\")\n\t}\n\tif c.RecoverFunc == nil {\n\t\tc.RecoverFunc = DefaultRecover\n\t}\n\n\treturn nil\n}\n\nconst operationCtx key = \"operation_context\"\n\n// Deprecated: Please update all references to GetOperationContext instead\nfunc GetRequestContext(ctx context.Context) *RequestContext {\n\treturn GetOperationContext(ctx)\n}\n\nfunc GetOperationContext(ctx context.Context) *OperationContext {\n\tif val, ok := ctx.Value(operationCtx).(*OperationContext); ok && val != nil {\n\t\treturn val\n\t}\n\tpanic(\"missing operation context\")\n}\n\nfunc WithOperationContext(ctx context.Context, opCtx *OperationContext) context.Context {\n\treturn context.WithValue(ctx, operationCtx, opCtx)\n}\n\n// HasOperationContext checks if the given context is part of an ongoing operation\n//\n// Some errors can happen outside of an operation, eg json unmarshal errors.\nfunc HasOperationContext(ctx context.Context) bool {\n\tval, ok := ctx.Value(operationCtx).(*OperationContext)\n\treturn ok && val != nil\n}\n\n// CollectFieldsCtx is just a convenient wrapper method for CollectFields.\nfunc CollectFieldsCtx(ctx context.Context, satisfies []string) []CollectedField {\n\tresctx := GetFieldContext(ctx)\n\treturn CollectFields(GetOperationContext(ctx), resctx.Field.Selections, satisfies)\n}\n\n// CollectAllFields returns a slice of all GraphQL field names that were selected for the current\n// resolver context. The slice will contain the unique set of all field names requested regardless\n// of fragment type conditions.\nfunc CollectAllFields(ctx context.Context) []string {\n\tresctx := GetFieldContext(ctx)\n\tcollected := CollectFields(GetOperationContext(ctx), resctx.Field.Selections, nil)\n\tuniq := make([]string, 0, len(collected))\nNext:\n\tfor _, f := range collected {\n\t\tfor _, name := range uniq {\n\t\t\tif name == f.Name {\n\t\t\t\tcontinue Next\n\t\t\t}\n\t\t}\n\t\tuniq = append(uniq, f.Name)\n\t}\n\treturn uniq\n}\n\n// Errorf sends an error string to the client, passing it through the formatter.\n//\n// Deprecated: use graphql.AddErrorf(ctx, err) instead\nfunc (c *OperationContext) Errorf(ctx context.Context, format string, args ...any) {\n\tAddErrorf(ctx, format, args...)\n}\n\n// Error add error or multiple errors (if underlaying type is gqlerror.List) into the stack.\n// Then it will be sends to the client, passing it through the formatter.\nfunc (c *OperationContext) Error(ctx context.Context, err error) {\n\tif errList, ok := err.(gqlerror.List); ok {\n\t\tfor _, e := range errList {\n\t\t\tAddError(ctx, e)\n\t\t}\n\t\treturn\n\t}\n\n\tAddError(ctx, err)\n}\n\nfunc (c *OperationContext) Recover(ctx context.Context, err any) error {\n\treturn ErrorOnPath(ctx, c.RecoverFunc(ctx, err))\n}\n"
  },
  {
    "path": "graphql/context_operation_test.go",
    "content": "package graphql\n\nimport (\n\t\"context\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// implement context.Context interface\ntype testGraphRequestContext struct {\n\topContext *OperationContext\n}\n\nfunc (t *testGraphRequestContext) Deadline() (deadline time.Time, ok bool) {\n\treturn time.Time{}, false\n}\n\nfunc (t *testGraphRequestContext) Done() <-chan struct{} {\n\treturn nil\n}\n\nfunc (t *testGraphRequestContext) Err() error {\n\treturn nil\n}\n\nfunc (t *testGraphRequestContext) Value(key any) any {\n\treturn t.opContext\n}\n\nfunc TestGetOperationContext(t *testing.T) {\n\topCtx := &OperationContext{}\n\n\tt.Run(\"with operation context\", func(t *testing.T) {\n\t\tctx := WithOperationContext(context.Background(), opCtx)\n\n\t\trequire.True(t, HasOperationContext(ctx))\n\t\trequire.Equal(t, opCtx, GetOperationContext(ctx))\n\t})\n\n\tt.Run(\"without operation context\", func(t *testing.T) {\n\t\tctx := context.Background()\n\n\t\trequire.False(t, HasOperationContext(ctx))\n\t\trequire.Panics(t, func() {\n\t\t\tGetOperationContext(ctx)\n\t\t})\n\t})\n\n\tt.Run(\"with nil operation context\", func(t *testing.T) {\n\t\tctx := &testGraphRequestContext{opContext: nil}\n\n\t\trequire.False(t, HasOperationContext(ctx))\n\t\trequire.Panics(t, func() {\n\t\t\tGetOperationContext(ctx)\n\t\t})\n\t})\n}\n\nfunc TestCollectFields(t *testing.T) {\n\tgetNames := func(collected []CollectedField) []string {\n\t\tnames := make([]string, 0, len(collected))\n\t\tfor _, f := range collected {\n\t\t\tnames = append(names, f.Name)\n\t\t}\n\t\treturn names\n\t}\n\n\tvar (\n\t\ttrueVal  = &ast.Value{Kind: ast.BooleanValue, Raw: \"true\"}\n\t\tfalseVal = &ast.Value{Kind: ast.BooleanValue, Raw: \"false\"}\n\t\tskipTrue = &ast.Directive{\n\t\t\tName:      \"skip\",\n\t\t\tArguments: ast.ArgumentList{{Name: \"if\", Value: trueVal}},\n\t\t}\n\t\tskipFalse = &ast.Directive{\n\t\t\tName:      \"skip\",\n\t\t\tArguments: ast.ArgumentList{{Name: \"if\", Value: falseVal}},\n\t\t}\n\t\tincludeTrue = &ast.Directive{\n\t\t\tName:      \"include\",\n\t\t\tArguments: ast.ArgumentList{{Name: \"if\", Value: trueVal}},\n\t\t}\n\t\tincludeFalse = &ast.Directive{\n\t\t\tName:      \"include\",\n\t\t\tArguments: ast.ArgumentList{{Name: \"if\", Value: falseVal}},\n\t\t}\n\t)\n\n\tt.Run(\"handles fields\", func(t *testing.T) {\n\t\tctx := testContext(ast.SelectionSet{\n\t\t\t&ast.Field{\n\t\t\t\tName: \"field\",\n\t\t\t},\n\t\t})\n\t\tresCtx := GetFieldContext(ctx)\n\t\tcollected := CollectFields(GetOperationContext(ctx), resCtx.Field.Selections, nil)\n\t\trequire.Equal(t, []string{\"field\"}, getNames(collected))\n\t})\n\n\tt.Run(\"handles include and skip on fields\", func(t *testing.T) {\n\t\tctx := testContext(ast.SelectionSet{\n\t\t\t&ast.Field{\n\t\t\t\tName: \"fieldA\",\n\t\t\t},\n\t\t\t&ast.Field{\n\t\t\t\tName:       \"fieldB\",\n\t\t\t\tDirectives: ast.DirectiveList{includeTrue},\n\t\t\t},\n\t\t\t&ast.Field{\n\t\t\t\tName:       \"fieldC\",\n\t\t\t\tDirectives: ast.DirectiveList{includeFalse},\n\t\t\t},\n\t\t\t&ast.Field{\n\t\t\t\tName:       \"fieldD\",\n\t\t\t\tDirectives: ast.DirectiveList{skipTrue},\n\t\t\t},\n\t\t\t&ast.Field{\n\t\t\t\tName:       \"fieldE\",\n\t\t\t\tDirectives: ast.DirectiveList{skipFalse},\n\t\t\t},\n\t\t})\n\t\tresCtx := GetFieldContext(ctx)\n\t\tcollected := CollectFields(GetOperationContext(ctx), resCtx.Field.Selections, nil)\n\t\trequire.Equal(t, []string{\"fieldA\", \"fieldB\", \"fieldE\"}, getNames(collected))\n\t})\n\n\tt.Run(\"handles inline fragments that apply\", func(t *testing.T) {\n\t\tctx := testContext(ast.SelectionSet{\n\t\t\t&ast.InlineFragment{\n\t\t\t\tTypeCondition: \"ExampleTypeA\",\n\t\t\t\tSelectionSet: ast.SelectionSet{\n\t\t\t\t\t&ast.Field{\n\t\t\t\t\t\tName: \"fieldA\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t&ast.InlineFragment{\n\t\t\t\tTypeCondition: \"ExampleTypeB\",\n\t\t\t\tSelectionSet: ast.SelectionSet{\n\t\t\t\t\t&ast.Field{\n\t\t\t\t\t\tName: \"fieldB\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t&ast.Field{\n\t\t\t\tName: \"fieldC\",\n\t\t\t},\n\t\t})\n\t\tresCtx := GetFieldContext(ctx)\n\t\tcollected := CollectFields(\n\t\t\tGetOperationContext(ctx),\n\t\t\tresCtx.Field.Selections,\n\t\t\t[]string{\"ExampleTypeB\"},\n\t\t)\n\t\trequire.Equal(t, []string{\"fieldB\", \"fieldC\"}, getNames(collected))\n\t})\n\n\tt.Run(\"handles inline fragment when no type\", func(t *testing.T) {\n\t\tctx := testContext(ast.SelectionSet{\n\t\t\t&ast.InlineFragment{\n\t\t\t\tTypeCondition: \"\",\n\t\t\t\tSelectionSet: ast.SelectionSet{\n\t\t\t\t\t&ast.Field{\n\t\t\t\t\t\tName: \"fieldA\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t&ast.InlineFragment{\n\t\t\t\tTypeCondition: \"ExampleTypeB\",\n\t\t\t\tSelectionSet: ast.SelectionSet{\n\t\t\t\t\t&ast.Field{\n\t\t\t\t\t\tName: \"fieldB\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t&ast.Field{\n\t\t\t\tName: \"fieldC\",\n\t\t\t},\n\t\t})\n\t\tresCtx := GetFieldContext(ctx)\n\t\tcollected := CollectFields(\n\t\t\tGetOperationContext(ctx),\n\t\t\tresCtx.Field.Selections,\n\t\t\t[]string{\"ExampleTypeB\"},\n\t\t)\n\t\trequire.Equal(t, []string{\"fieldA\", \"fieldB\", \"fieldC\"}, getNames(collected))\n\t})\n\n\tt.Run(\"handles inline fragments with include and skip\", func(t *testing.T) {\n\t\tctx := testContext(ast.SelectionSet{\n\t\t\t&ast.InlineFragment{\n\t\t\t\tTypeCondition: \"\",\n\t\t\t\tSelectionSet: ast.SelectionSet{\n\t\t\t\t\t&ast.Field{\n\t\t\t\t\t\tName: \"fieldA*\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tDirectives: ast.DirectiveList{includeFalse},\n\t\t\t},\n\t\t\t&ast.InlineFragment{\n\t\t\t\tTypeCondition: \"\",\n\t\t\t\tSelectionSet: ast.SelectionSet{\n\t\t\t\t\t&ast.Field{\n\t\t\t\t\t\tName: \"fieldA1\",\n\t\t\t\t\t},\n\t\t\t\t\t&ast.Field{\n\t\t\t\t\t\tName:       \"fieldA2\",\n\t\t\t\t\t\tDirectives: ast.DirectiveList{skipTrue},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tDirectives: ast.DirectiveList{includeTrue},\n\t\t\t},\n\t\t\t&ast.InlineFragment{\n\t\t\t\tTypeCondition: \"ExampleTypeB\",\n\t\t\t\tSelectionSet: ast.SelectionSet{\n\t\t\t\t\t&ast.Field{\n\t\t\t\t\t\tName: \"fieldB*\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tDirectives: ast.DirectiveList{skipTrue},\n\t\t\t},\n\t\t\t&ast.InlineFragment{\n\t\t\t\tTypeCondition: \"ExampleTypeB\",\n\t\t\t\tSelectionSet: ast.SelectionSet{\n\t\t\t\t\t&ast.Field{\n\t\t\t\t\t\tName: \"fieldB1\",\n\t\t\t\t\t},\n\t\t\t\t\t&ast.Field{\n\t\t\t\t\t\tName:       \"fieldB2\",\n\t\t\t\t\t\tDirectives: ast.DirectiveList{skipTrue},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tDirectives: ast.DirectiveList{skipFalse},\n\t\t\t},\n\t\t\t&ast.InlineFragment{\n\t\t\t\tTypeCondition: \"ExampleTypeC\",\n\t\t\t\tSelectionSet: ast.SelectionSet{\n\t\t\t\t\t&ast.Field{\n\t\t\t\t\t\tName:       \"fieldC1\",\n\t\t\t\t\t\tDirectives: ast.DirectiveList{includeTrue},\n\t\t\t\t\t},\n\t\t\t\t\t&ast.Field{\n\t\t\t\t\t\tName:       \"fieldC2\",\n\t\t\t\t\t\tDirectives: ast.DirectiveList{includeFalse},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t&ast.InlineFragment{\n\t\t\t\tTypeCondition: \"ExampleTypeD\",\n\t\t\t\tSelectionSet: ast.SelectionSet{\n\t\t\t\t\t&ast.Field{\n\t\t\t\t\t\tName: \"fieldD*\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tDirectives: ast.DirectiveList{includeTrue},\n\t\t\t},\n\t\t})\n\t\tresCtx := GetFieldContext(ctx)\n\t\tcollected := CollectFields(\n\t\t\tGetOperationContext(ctx),\n\t\t\tresCtx.Field.Selections,\n\t\t\t[]string{\"ExampleTypeB\", \"ExampleTypeC\"},\n\t\t)\n\t\trequire.Equal(t, []string{\"fieldA1\", \"fieldB1\", \"fieldC1\"}, getNames(collected))\n\t})\n\n\tt.Run(\"collect inline fragments with same field name on different types\", func(t *testing.T) {\n\t\tctx := testContext(ast.SelectionSet{\n\t\t\t&ast.InlineFragment{\n\t\t\t\tTypeCondition: \"ExampleTypeA\",\n\t\t\t\tSelectionSet: ast.SelectionSet{\n\t\t\t\t\t&ast.Field{\n\t\t\t\t\t\tName:             \"fieldA\",\n\t\t\t\t\t\tObjectDefinition: &ast.Definition{Name: \"ExampleTypeA\"},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t&ast.InlineFragment{\n\t\t\t\tTypeCondition: \"ExampleTypeB\",\n\t\t\t\tSelectionSet: ast.SelectionSet{\n\t\t\t\t\t&ast.Field{\n\t\t\t\t\t\tName:             \"fieldA\",\n\t\t\t\t\t\tObjectDefinition: &ast.Definition{Name: \"ExampleTypeB\"},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tresCtx := GetFieldContext(ctx)\n\t\tcollected := CollectFields(\n\t\t\tGetOperationContext(ctx),\n\t\t\tresCtx.Field.Selections,\n\t\t\t[]string{\"ExampleTypeA\", \"ExampleTypeB\"},\n\t\t)\n\t\trequire.Len(t, collected, 2)\n\t\trequire.NotEqual(t, collected[0], collected[1])\n\t\trequire.Equal(t, collected[0].Name, collected[1].Name)\n\t})\n\n\tt.Run(\"collect inline fragments with same field name and different alias\", func(t *testing.T) {\n\t\tctx := testContext(ast.SelectionSet{\n\t\t\t&ast.InlineFragment{\n\t\t\t\tTypeCondition: \"ExampleTypeA\",\n\t\t\t\tSelectionSet: ast.SelectionSet{\n\t\t\t\t\t&ast.Field{\n\t\t\t\t\t\tName:             \"fieldA\",\n\t\t\t\t\t\tAlias:            \"fieldA\",\n\t\t\t\t\t\tObjectDefinition: &ast.Definition{Name: \"ExampleTypeA\"},\n\t\t\t\t\t},\n\t\t\t\t\t&ast.Field{\n\t\t\t\t\t\tName:             \"fieldA\",\n\t\t\t\t\t\tAlias:            \"fieldA Alias\",\n\t\t\t\t\t\tObjectDefinition: &ast.Definition{Name: \"ExampleTypeA\"},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tObjectDefinition: &ast.Definition{Name: \"ExampleType\", Kind: ast.Interface},\n\t\t\t},\n\t\t})\n\t\tresCtx := GetFieldContext(ctx)\n\t\tcollected := CollectFields(\n\t\t\tGetOperationContext(ctx),\n\t\t\tresCtx.Field.Selections,\n\t\t\t[]string{\"ExampleTypeA\", \"ExampleTypeB\"},\n\t\t)\n\t\trequire.Len(t, collected, 2)\n\t\trequire.NotEqual(t, collected[0], collected[1])\n\t\trequire.Equal(t, collected[0].Name, collected[1].Name)\n\t\trequire.NotEqual(t, collected[0].Alias, collected[1].Alias)\n\t})\n\n\tt.Run(\"handles fragment spreads\", func(t *testing.T) {\n\t\tctx := testContext(ast.SelectionSet{\n\t\t\t&ast.FragmentSpread{\n\t\t\t\tName: \"FragmentA\",\n\t\t\t},\n\t\t\t&ast.FragmentSpread{\n\t\t\t\tName: \"FragmentB\",\n\t\t\t},\n\t\t\t&ast.Field{\n\t\t\t\tName: \"fieldC\",\n\t\t\t},\n\t\t})\n\t\tresCtx := GetFieldContext(ctx)\n\t\treqCtx := GetOperationContext(ctx)\n\t\treqCtx.Doc = &ast.QueryDocument{\n\t\t\tFragments: []*ast.FragmentDefinition{\n\t\t\t\t{\n\t\t\t\t\tName:          \"FragmentA\",\n\t\t\t\t\tTypeCondition: \"ExampleTypeA\",\n\t\t\t\t\tSelectionSet: ast.SelectionSet{\n\t\t\t\t\t\t&ast.Field{\n\t\t\t\t\t\t\tName: \"fieldA\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tName:          \"FragmentB\",\n\t\t\t\t\tTypeCondition: \"ExampleTypeB\",\n\t\t\t\t\tSelectionSet: ast.SelectionSet{\n\t\t\t\t\t\t&ast.Field{\n\t\t\t\t\t\t\tName: \"fieldB\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\t\tcollected := CollectFields(reqCtx, resCtx.Field.Selections, []string{\"ExampleTypeB\"})\n\t\trequire.Equal(t, []string{\"fieldB\", \"fieldC\"}, getNames(collected))\n\t})\n\n\tt.Run(\"handles fragment spreads with directives\", func(t *testing.T) {\n\t\tctx := testContext(ast.SelectionSet{\n\t\t\t&ast.FragmentSpread{\n\t\t\t\tName:       \"FragmentA\",\n\t\t\t\tDirectives: ast.DirectiveList{includeTrue},\n\t\t\t},\n\t\t\t&ast.FragmentSpread{\n\t\t\t\tName:       \"FragmentB\",\n\t\t\t\tDirectives: ast.DirectiveList{includeFalse},\n\t\t\t},\n\t\t\t&ast.FragmentSpread{\n\t\t\t\tName:       \"FragmentC\",\n\t\t\t\tDirectives: ast.DirectiveList{skipTrue},\n\t\t\t},\n\t\t\t&ast.FragmentSpread{\n\t\t\t\tName:       \"FragmentD\",\n\t\t\t\tDirectives: ast.DirectiveList{skipFalse},\n\t\t\t},\n\t\t})\n\t\tresCtx := GetFieldContext(ctx)\n\t\treqCtx := GetOperationContext(ctx)\n\t\treqCtx.Doc = &ast.QueryDocument{\n\t\t\tFragments: []*ast.FragmentDefinition{\n\t\t\t\t{\n\t\t\t\t\tName:          \"FragmentA\",\n\t\t\t\t\tTypeCondition: \"ExampleTypeA\",\n\t\t\t\t\tSelectionSet: ast.SelectionSet{\n\t\t\t\t\t\t&ast.Field{\n\t\t\t\t\t\t\tName: \"fieldA\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tName:          \"FragmentB\",\n\t\t\t\t\tTypeCondition: \"ExampleTypeB\",\n\t\t\t\t\tSelectionSet: ast.SelectionSet{\n\t\t\t\t\t\t&ast.Field{\n\t\t\t\t\t\t\tName: \"fieldB\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tName:          \"FragmentC\",\n\t\t\t\t\tTypeCondition: \"ExampleTypeA\",\n\t\t\t\t\tSelectionSet: ast.SelectionSet{\n\t\t\t\t\t\t&ast.Field{\n\t\t\t\t\t\t\tName: \"fieldC\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tName:          \"FragmentD\",\n\t\t\t\t\tTypeCondition: \"ExampleTypeB\",\n\t\t\t\t\tSelectionSet: ast.SelectionSet{\n\t\t\t\t\t\t&ast.Field{\n\t\t\t\t\t\t\tName: \"fieldD\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\t\tcollected := CollectFields(\n\t\t\treqCtx,\n\t\t\tresCtx.Field.Selections,\n\t\t\t[]string{\"ExampleTypeA\", \"ExampleTypeB\"},\n\t\t)\n\t\trequire.Equal(t, []string{\"fieldA\", \"fieldD\"}, getNames(collected))\n\t})\n}\n\nfunc TestCollectAllFields(t *testing.T) {\n\tt.Run(\n\t\t\"collects all fields incl inline fragments and fragment spreads regardless of type\",\n\t\tfunc(t *testing.T) {\n\t\t\tctx := testContext(ast.SelectionSet{\n\t\t\t\t&ast.Field{\n\t\t\t\t\tName: \"fieldA\",\n\t\t\t\t},\n\t\t\t\t&ast.InlineFragment{\n\t\t\t\t\tSelectionSet: ast.SelectionSet{\n\t\t\t\t\t\t&ast.Field{\n\t\t\t\t\t\t\tName: \"fieldB\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tDirectives: ast.DirectiveList{\n\t\t\t\t\t\t&ast.Directive{Name: \"someDirective\"},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t&ast.InlineFragment{\n\t\t\t\t\tTypeCondition: \"ExampleTypeC\",\n\t\t\t\t\tSelectionSet: ast.SelectionSet{\n\t\t\t\t\t\t&ast.Field{\n\t\t\t\t\t\t\tName: \"fieldC\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tObjectDefinition: &ast.Definition{Name: \"ExampleTypeC\"},\n\t\t\t\t},\n\t\t\t\t&ast.FragmentSpread{\n\t\t\t\t\tName: \"FragmentD\",\n\t\t\t\t},\n\t\t\t})\n\t\t\treqCtx := GetOperationContext(ctx)\n\t\t\treqCtx.Doc = &ast.QueryDocument{\n\t\t\t\tFragments: []*ast.FragmentDefinition{\n\t\t\t\t\t{\n\t\t\t\t\t\tName:          \"FragmentD\",\n\t\t\t\t\t\tTypeCondition: \"ExampleTypeD\",\n\t\t\t\t\t\tSelectionSet: ast.SelectionSet{\n\t\t\t\t\t\t\t&ast.Field{\n\t\t\t\t\t\t\t\tName: \"fieldD\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}\n\t\t\tctx = WithOperationContext(ctx, reqCtx)\n\t\t\trequire.Equal(\n\t\t\t\tt,\n\t\t\t\t[]string{\"fieldA\", \"fieldB\", \"fieldC\", \"fieldD\"},\n\t\t\t\tCollectAllFields(ctx),\n\t\t\t)\n\t\t},\n\t)\n\n\tt.Run(\"de-dupes aliased field names\", func(t *testing.T) {\n\t\tctx := testContext(ast.SelectionSet{\n\t\t\t&ast.Field{\n\t\t\t\tName: \"field\",\n\t\t\t},\n\t\t\t&ast.Field{\n\t\t\t\tName:  \"field\",\n\t\t\t\tAlias: \"field alias\",\n\t\t\t},\n\t\t})\n\t\trequire.Equal(t, []string{\"field\"}, CollectAllFields(ctx))\n\t})\n}\n"
  },
  {
    "path": "graphql/context_path.go",
    "content": "package graphql\n\nimport (\n\t\"context\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\nconst fieldInputCtx key = \"path_context\"\n\ntype PathContext struct {\n\tParentField *FieldContext\n\tParent      *PathContext\n\tField       *string\n\tIndex       *int\n}\n\nfunc (fic *PathContext) Path() ast.Path {\n\tvar path ast.Path\n\tfor it := fic; it != nil; it = it.Parent {\n\t\tif it.Index != nil {\n\t\t\tpath = append(path, ast.PathIndex(*it.Index))\n\t\t} else if it.Field != nil {\n\t\t\tpath = append(path, ast.PathName(*it.Field))\n\t\t}\n\t}\n\n\t// because we are walking up the chain, all the elements are backwards, do an inplace flip.\n\tfor i := len(path)/2 - 1; i >= 0; i-- {\n\t\topp := len(path) - 1 - i\n\t\tpath[i], path[opp] = path[opp], path[i]\n\t}\n\n\tif fic.ParentField != nil {\n\t\tfieldPath := fic.ParentField.Path()\n\t\treturn append(fieldPath, path...)\n\t}\n\n\treturn path\n}\n\nfunc NewPathWithField(field string) *PathContext {\n\treturn &PathContext{Field: &field}\n}\n\nfunc NewPathWithIndex(index int) *PathContext {\n\treturn &PathContext{Index: &index}\n}\n\nfunc WithPathContext(ctx context.Context, fic *PathContext) context.Context {\n\tif fieldContext := GetFieldContext(ctx); fieldContext != nil {\n\t\tfic.ParentField = fieldContext\n\t}\n\tif fieldInputContext := GetPathContext(ctx); fieldInputContext != nil {\n\t\tfic.Parent = fieldInputContext\n\t}\n\n\treturn context.WithValue(ctx, fieldInputCtx, fic)\n}\n\nfunc GetPathContext(ctx context.Context) *PathContext {\n\tif val, ok := ctx.Value(fieldInputCtx).(*PathContext); ok {\n\t\treturn val\n\t}\n\treturn nil\n}\n\nfunc GetPath(ctx context.Context) ast.Path {\n\tif pc := GetPathContext(ctx); pc != nil {\n\t\treturn pc.Path()\n\t}\n\tif fc := GetFieldContext(ctx); fc != nil {\n\t\treturn fc.Path()\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "graphql/context_path_test.go",
    "content": "package graphql\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestGetFieldInputContext(t *testing.T) {\n\trequire.Nil(t, GetFieldContext(context.Background()))\n\n\trc := &PathContext{}\n\trequire.Equal(t, rc, GetPathContext(WithPathContext(context.Background(), rc)))\n}\n"
  },
  {
    "path": "graphql/context_response.go",
    "content": "package graphql\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"sync\"\n\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n)\n\ntype responseContext struct {\n\terrorPresenter ErrorPresenterFunc\n\trecover        RecoverFunc\n\n\terrors   gqlerror.List\n\terrorsMu sync.Mutex\n\n\textensions   map[string]any\n\textensionsMu sync.Mutex\n}\n\nconst resultCtx key = \"result_context\"\n\nfunc getResponseContext(ctx context.Context) *responseContext {\n\tval, ok := ctx.Value(resultCtx).(*responseContext)\n\tif !ok {\n\t\tpanic(\"missing response context\")\n\t}\n\treturn val\n}\n\nfunc WithResponseContext(\n\tctx context.Context,\n\tpresenterFunc ErrorPresenterFunc,\n\trecoverFunc RecoverFunc,\n) context.Context {\n\treturn context.WithValue(ctx, resultCtx, &responseContext{\n\t\terrorPresenter: presenterFunc,\n\t\trecover:        recoverFunc,\n\t})\n}\n\nfunc WithFreshResponseContext(ctx context.Context) context.Context {\n\te := getResponseContext(ctx)\n\treturn context.WithValue(ctx, resultCtx, &responseContext{\n\t\terrorPresenter: e.errorPresenter,\n\t\trecover:        e.recover,\n\t})\n}\n\n// AddErrorf writes a formatted error to the client, first passing it through the error presenter.\nfunc AddErrorf(ctx context.Context, format string, args ...any) {\n\tAddError(ctx, fmt.Errorf(format, args...))\n}\n\n// AddError sends an error to the client, first passing it through the error presenter.\nfunc AddError(ctx context.Context, err error) {\n\tif err == nil {\n\t\treturn\n\t}\n\tc := getResponseContext(ctx)\n\n\tpresentedError := c.errorPresenter(ctx, ErrorOnPath(ctx, err))\n\tif presentedError == nil {\n\t\treturn\n\t}\n\n\tc.errorsMu.Lock()\n\tdefer c.errorsMu.Unlock()\n\tc.errors = append(c.errors, presentedError)\n}\n\nfunc Recover(ctx context.Context, err any) (userMessage error) {\n\tc := getResponseContext(ctx)\n\treturn ErrorOnPath(ctx, c.recover(ctx, err))\n}\n\n// HasFieldError returns true if the given field has already errored\nfunc HasFieldError(ctx context.Context, rctx *FieldContext) bool {\n\tc := getResponseContext(ctx)\n\n\tc.errorsMu.Lock()\n\tdefer c.errorsMu.Unlock()\n\n\tif len(c.errors) == 0 {\n\t\treturn false\n\t}\n\n\tpath := rctx.Path()\n\tfor _, err := range c.errors {\n\t\tif equalPath(err.Path, path) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// GetFieldErrors returns a list of errors that occurred in the given field\nfunc GetFieldErrors(ctx context.Context, rctx *FieldContext) gqlerror.List {\n\tc := getResponseContext(ctx)\n\n\tc.errorsMu.Lock()\n\tdefer c.errorsMu.Unlock()\n\n\tif len(c.errors) == 0 {\n\t\treturn nil\n\t}\n\n\tpath := rctx.Path()\n\tvar errs gqlerror.List\n\tfor _, err := range c.errors {\n\t\tif equalPath(err.Path, path) {\n\t\t\terrs = append(errs, err)\n\t\t}\n\t}\n\treturn errs\n}\n\nfunc GetErrors(ctx context.Context) gqlerror.List {\n\tresCtx := getResponseContext(ctx)\n\tresCtx.errorsMu.Lock()\n\tdefer resCtx.errorsMu.Unlock()\n\n\tif len(resCtx.errors) == 0 {\n\t\treturn nil\n\t}\n\n\terrs := resCtx.errors\n\tcpy := make(gqlerror.List, len(errs))\n\tfor i := range errs {\n\t\terrCpy := *errs[i]\n\t\tcpy[i] = &errCpy\n\t}\n\treturn cpy\n}\n\n// RegisterExtension allows you to add a new extension into the graphql response\nfunc RegisterExtension(ctx context.Context, key string, value any) {\n\tc := getResponseContext(ctx)\n\tc.extensionsMu.Lock()\n\tdefer c.extensionsMu.Unlock()\n\n\tif c.extensions == nil {\n\t\tc.extensions = make(map[string]any)\n\t}\n\n\tif _, ok := c.extensions[key]; ok {\n\t\tpanic(fmt.Errorf(\"extension already registered for key %s\", key))\n\t}\n\n\tc.extensions[key] = value\n}\n\n// GetExtensions returns any extensions registered in the current result context\nfunc GetExtensions(ctx context.Context) map[string]any {\n\text := getResponseContext(ctx).extensions\n\tif ext == nil {\n\t\treturn map[string]any{}\n\t}\n\n\treturn ext\n}\n\nfunc GetExtension(ctx context.Context, name string) any {\n\text := getResponseContext(ctx).extensions\n\tif ext == nil {\n\t\treturn nil\n\t}\n\n\treturn ext[name]\n}\n"
  },
  {
    "path": "graphql/context_response_test.go",
    "content": "package graphql\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n)\n\nfunc nilUserPresenter(ctx context.Context, err error) *gqlerror.Error {\n\treturn nil\n}\n\nvar _ ErrorPresenterFunc = nilUserPresenter\n\nfunc TestAddError(t *testing.T) {\n\tctx := WithResponseContext(context.Background(), DefaultErrorPresenter, nil)\n\n\troot := &FieldContext{\n\t\tField: CollectedField{\n\t\t\tField: &ast.Field{\n\t\t\t\tAlias: \"foo\",\n\t\t\t},\n\t\t},\n\t}\n\tctx = WithFieldContext(ctx, root)\n\tAddError(ctx, errors.New(\"foo1\"))\n\tAddError(ctx, errors.New(\"foo2\"))\n\n\tindex := 1\n\tchild := &FieldContext{\n\t\tParent: root,\n\t\tIndex:  &index,\n\t}\n\tuserProvidedPath := &FieldContext{\n\t\tParent: child,\n\t\tField: CollectedField{\n\t\t\tField: &ast.Field{\n\t\t\t\tAlias: \"works\",\n\t\t\t},\n\t\t},\n\t}\n\n\tctx = WithFieldContext(ctx, child)\n\tAddError(ctx, errors.New(\"bar\"))\n\tAddError(ctx, &gqlerror.Error{\n\t\tMessage: \"foo3\",\n\t\tPath:    append(child.Path(), ast.PathName(\"works\")),\n\t})\n\n\tspecs := []struct {\n\t\tName     string\n\t\tRCtx     *FieldContext\n\t\tMessages []string\n\t}{\n\t\t{\n\t\t\tName:     \"with root FieldContext\",\n\t\t\tRCtx:     root,\n\t\t\tMessages: []string{\"foo1\", \"foo2\"},\n\t\t},\n\t\t{\n\t\t\tName:     \"with child FieldContext\",\n\t\t\tRCtx:     child,\n\t\t\tMessages: []string{\"bar\"},\n\t\t},\n\t\t{\n\t\t\tName:     \"with user provided path\",\n\t\t\tRCtx:     userProvidedPath,\n\t\t\tMessages: []string{\"foo3\"},\n\t\t},\n\t}\n\n\tfor _, spec := range specs {\n\t\tt.Run(spec.Name, func(t *testing.T) {\n\t\t\terrList := GetFieldErrors(ctx, spec.RCtx)\n\t\t\trequire.Len(t, errList, len(spec.Messages))\n\n\t\t\tfor idx, err := range errList {\n\t\t\t\tassert.Equal(t, spec.Messages[idx], err.Message)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestAddError_NilUserPresenter(t *testing.T) {\n\tctx := WithResponseContext(context.Background(), nilUserPresenter, nil)\n\tnilUserPresenterRoot := &FieldContext{\n\t\tField: CollectedField{\n\t\t\tField: &ast.Field{\n\t\t\t\tAlias: \"foo\",\n\t\t\t},\n\t\t},\n\t}\n\tctx = WithFieldContext(ctx, nilUserPresenterRoot)\n\tAddError(ctx, errors.New(\"foo\"))\n\tAddError(ctx, errors.New(\"bar\"))\n\n\terrList := GetFieldErrors(ctx, nilUserPresenterRoot)\n\trequire.Empty(t, errList)\n}\n\nfunc TestGetErrorFromPresenter(t *testing.T) {\n\tctx := WithResponseContext(\n\t\tcontext.Background(),\n\t\tfunc(ctx context.Context, err error) *gqlerror.Error {\n\t\t\terrs := GetErrors(ctx)\n\n\t\t\t// because we are still presenting the error it is not expected to be returned, but this\n\t\t\t// should not deadlock.\n\t\t\trequire.Empty(t, errs)\n\t\t\treturn DefaultErrorPresenter(ctx, err)\n\t\t},\n\t\tnil,\n\t)\n\n\tctx = WithFieldContext(ctx, &FieldContext{})\n\tAddError(ctx, errors.New(\"foo1\"))\n}\n"
  },
  {
    "path": "graphql/context_root_field.go",
    "content": "package graphql\n\nimport (\n\t\"context\"\n)\n\nconst rootResolverCtx key = \"root_resolver_context\"\n\ntype RootFieldContext struct {\n\t// The name of the type this field belongs to\n\tObject string\n\t// The raw field\n\tField CollectedField\n}\n\nfunc GetRootFieldContext(ctx context.Context) *RootFieldContext {\n\tif val, ok := ctx.Value(rootResolverCtx).(*RootFieldContext); ok {\n\t\treturn val\n\t}\n\treturn nil\n}\n\nfunc WithRootFieldContext(ctx context.Context, rc *RootFieldContext) context.Context {\n\treturn context.WithValue(ctx, rootResolverCtx, rc)\n}\n"
  },
  {
    "path": "graphql/context_root_field_test.go",
    "content": "package graphql\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestGetRootFieldContext(t *testing.T) {\n\trequire.Nil(t, GetRootFieldContext(context.Background()))\n\n\trc := &RootFieldContext{}\n\trequire.Equal(t, rc, GetRootFieldContext(WithRootFieldContext(context.Background(), rc)))\n}\n"
  },
  {
    "path": "graphql/deferred.go",
    "content": "package graphql\n\nimport (\n\t\"context\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n)\n\ntype Deferrable struct {\n\tLabel string\n}\n\ntype DeferredGroup struct {\n\tPath     ast.Path\n\tLabel    string\n\tFieldSet *FieldSet\n\tContext  context.Context\n}\n\ntype DeferredResult struct {\n\tPath   ast.Path\n\tLabel  string\n\tResult Marshaler\n\tErrors gqlerror.List\n}\n"
  },
  {
    "path": "graphql/duration.go",
    "content": "package graphql\n\nimport (\n\t\"errors\"\n\t\"time\"\n\n\tdur \"github.com/sosodev/duration\"\n)\n\n// UnmarshalDuration returns the duration from a string in ISO8601 format\n// PnDTnHnMn.nS with days considered to be exactly 24 hours.\n// See https://en.wikipedia.org/wiki/ISO_8601#Durations\n// P - Period\n// D - D is the\n// T - T is the time designator that precedes the time components\n// H - H is the hour designator that follows the value for the number of hours.\n// M - M is the minute designator that follows the value for the number of minutes.\n// S - S is the second designator that follows the value for the number of seconds.\n// \"PT20.345S\" -- parses as \"20.345 seconds\"\n// \"PT15M\"     -- parses as \"15 minutes\" (where a minute is 60 seconds)\n// \"PT10H\"     -- parses as \"10 hours\" (where an hour is 3600 seconds)\n// \"P2D\"       -- parses as \"2 days\" (where a day is 24 hours or 86400 seconds)\nfunc UnmarshalDuration(v any) (time.Duration, error) {\n\tinput, ok := v.(string)\n\tif !ok {\n\t\treturn 0, errors.New(\"input must be a string\")\n\t}\n\n\td2, err := dur.Parse(input)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn d2.ToTimeDuration(), nil\n}\n\n// MarshalDuration returns the duration in ISO8601 format\n// PnDTnHnMn.nS with days considered to be exactly 24 hours.\n// See https://en.wikipedia.org/wiki/ISO_8601#Durations\n// P - Period\n// D - D is the\n// T - T is the time designator that precedes the time components\n// H - H is the hour designator that follows the value for the number of hours.\n// M - M is the minute designator that follows the value for the number of minutes.\n// S - S is the second designator that follows the value for the number of seconds.\n// \"PT20.345S\" -- parses as \"20.345 seconds\"\n// \"PT15M\"     -- parses as \"15 minutes\" (where a minute is 60 seconds)\n// \"PT10H\"     -- parses as \"10 hours\" (where an hour is 3600 seconds)\n// \"P2D\"       -- parses as \"2 days\" (where a day is 24 hours or 86400 seconds)\nfunc MarshalDuration(d time.Duration) Marshaler {\n\treturn MarshalString(dur.Format(d))\n}\n"
  },
  {
    "path": "graphql/duration_test.go",
    "content": "package graphql\n\nimport (\n\t\"bytes\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestDurationMarshaling(t *testing.T) {\n\tt.Run(\"UnmarshalDuration\", func(t *testing.T) {\n\t\td, err := UnmarshalDuration(\"P2Y\")\n\t\trequire.NoError(t, err)\n\n\t\tassert.InEpsilon(t, float64(365*24*2), d.Hours(), 0.02)\n\t})\n\tt.Run(\"MarshalDuration\", func(t *testing.T) {\n\t\tm := MarshalDuration(time.Hour * 365 * 24 * 2)\n\n\t\tbuf := new(bytes.Buffer)\n\t\tm.MarshalGQL(buf)\n\n\t\tassert.Equal(t, \"\\\"P2Y\\\"\", buf.String())\n\t})\n}\n"
  },
  {
    "path": "graphql/errcode/codes.go",
    "content": "package errcode\n\nimport (\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n)\n\nconst (\n\tValidationFailed = \"GRAPHQL_VALIDATION_FAILED\"\n\tParseFailed      = \"GRAPHQL_PARSE_FAILED\"\n)\n\ntype ErrorKind int\n\nconst (\n\t// issues with graphql (validation, parsing).  422s in http, GQL_ERROR in websocket\n\tKindProtocol ErrorKind = iota\n\t// user errors, 200s in http, GQL_DATA in websocket\n\tKindUser\n)\n\nvar codeType = map[string]ErrorKind{\n\tValidationFailed: KindProtocol,\n\tParseFailed:      KindProtocol,\n}\n\n// RegisterErrorType should be called by extensions that want to customize the http status codes for\n// errors they return\nfunc RegisterErrorType(code string, kind ErrorKind) {\n\tcodeType[code] = kind\n}\n\n// Set the error code on a given graphql error extension\nfunc Set(err error, value string) {\n\tif err == nil {\n\t\treturn\n\t}\n\tgqlErr, ok := err.(*gqlerror.Error)\n\tif !ok {\n\t\treturn\n\t}\n\n\tif gqlErr.Extensions == nil {\n\t\tgqlErr.Extensions = map[string]any{}\n\t}\n\n\tgqlErr.Extensions[\"code\"] = value\n}\n\n// get the kind of the first non User error, defaults to User if no errors have a custom extension\nfunc GetErrorKind(errs gqlerror.List) ErrorKind {\n\tfor _, err := range errs {\n\t\tif code, ok := err.Extensions[\"code\"].(string); ok {\n\t\t\tif kind, ok := codeType[code]; ok && kind != KindUser {\n\t\t\t\treturn kind\n\t\t\t}\n\t\t}\n\t}\n\n\treturn KindUser\n}\n"
  },
  {
    "path": "graphql/error.go",
    "content": "package graphql\n\nimport (\n\t\"context\"\n\t\"errors\"\n\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n)\n\ntype ErrorPresenterFunc func(ctx context.Context, err error) *gqlerror.Error\n\nfunc DefaultErrorPresenter(ctx context.Context, err error) *gqlerror.Error {\n\tif err == nil {\n\t\treturn nil\n\t}\n\tvar gqlErr *gqlerror.Error\n\tif errors.As(err, &gqlErr) {\n\t\treturn gqlErr\n\t}\n\treturn gqlerror.WrapPath(GetPath(ctx), err)\n}\n\nfunc ErrorOnPath(ctx context.Context, err error) error {\n\tif err == nil {\n\t\treturn nil\n\t}\n\tvar gqlErr *gqlerror.Error\n\tif errors.As(err, &gqlErr) {\n\t\tif gqlErr.Path == nil {\n\t\t\tgqlErr.Path = GetPath(ctx)\n\t\t}\n\t\t// Return the original error to avoid losing any attached annotation\n\t\treturn err\n\t}\n\treturn gqlerror.WrapPath(GetPath(ctx), err)\n}\n"
  },
  {
    "path": "graphql/executable_schema.go",
    "content": "//go:generate go run github.com/matryer/moq -out executable_schema_mock.go . ExecutableSchema\n\npackage graphql\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"slices\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\ntype ExecutableSchema interface {\n\tSchema() *ast.Schema\n\n\tComplexity(\n\t\tctx context.Context,\n\t\ttypeName, fieldName string,\n\t\tchildComplexity int,\n\t\targs map[string]any,\n\t) (int, bool)\n\tExec(ctx context.Context) ResponseHandler\n}\n\n// CollectFields returns the set of fields from an ast.SelectionSet where all collected fields\n// satisfy at least one of the GraphQL types passed through satisfies. Providing an empty slice for\n// satisfies will collect all fields regardless of fragment type conditions.\nfunc CollectFields(\n\treqCtx *OperationContext,\n\tselSet ast.SelectionSet,\n\tsatisfies []string,\n) []CollectedField {\n\tcacheKey := makeCollectFieldsCacheKey(selSet, satisfies)\n\n\tif cached, ok := reqCtx.collectFieldsCache.Get(cacheKey); ok {\n\t\treturn cached\n\t}\n\n\tresult := collectFields(reqCtx, selSet, satisfies, map[string]bool{})\n\n\treturn reqCtx.collectFieldsCache.Add(cacheKey, result)\n}\n\nfunc collectFields(\n\treqCtx *OperationContext,\n\tselSet ast.SelectionSet,\n\tsatisfies []string,\n\tvisited map[string]bool,\n) []CollectedField {\n\tgroupedFields := make([]CollectedField, 0, len(selSet))\n\n\tfor _, sel := range selSet {\n\t\tswitch sel := sel.(type) {\n\t\tcase *ast.Field:\n\t\t\tif !shouldIncludeNode(sel.Directives, reqCtx.Variables) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tf := getOrCreateAndAppendField(\n\t\t\t\t&groupedFields,\n\t\t\t\tsel.Name,\n\t\t\t\tsel.Alias,\n\t\t\t\tsel.ObjectDefinition,\n\t\t\t\tfunc() CollectedField {\n\t\t\t\t\treturn CollectedField{Field: sel}\n\t\t\t\t},\n\t\t\t)\n\n\t\t\tf.Selections = append(f.Selections, sel.SelectionSet...)\n\n\t\tcase *ast.InlineFragment:\n\t\t\tif !shouldIncludeNode(sel.Directives, reqCtx.Variables) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif !doesFragmentConditionMatch(sel.TypeCondition, satisfies) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tshouldDefer, label := deferrable(sel.Directives, reqCtx.Variables)\n\t\t\tfor _, childField := range collectFields(reqCtx, sel.SelectionSet, satisfies, visited) {\n\t\t\t\tf := getOrCreateAndAppendField(\n\t\t\t\t\t&groupedFields, childField.Name, childField.Alias, childField.ObjectDefinition,\n\t\t\t\t\tfunc() CollectedField { return childField })\n\t\t\t\tf.Selections = append(f.Selections, childField.Selections...)\n\t\t\t\tif shouldDefer {\n\t\t\t\t\tf.Deferrable = &Deferrable{\n\t\t\t\t\t\tLabel: label,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\tcase *ast.FragmentSpread:\n\t\t\tfragmentName := sel.Name\n\t\t\tif _, seen := visited[fragmentName]; seen {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif !shouldIncludeNode(sel.Directives, reqCtx.Variables) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tvisited[fragmentName] = true\n\n\t\t\tfragment := reqCtx.Doc.Fragments.ForName(fragmentName)\n\t\t\tif fragment == nil {\n\t\t\t\t// should never happen, validator has already run\n\t\t\t\tpanic(fmt.Errorf(\"missing fragment %s\", fragmentName))\n\t\t\t}\n\t\t\tif !doesFragmentConditionMatch(fragment.TypeCondition, satisfies) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tshouldDefer, label := deferrable(sel.Directives, reqCtx.Variables)\n\t\t\tfor _, childField := range collectFields(reqCtx, fragment.SelectionSet, satisfies, visited) {\n\t\t\t\tf := getOrCreateAndAppendField(&groupedFields,\n\t\t\t\t\tchildField.Name, childField.Alias, childField.ObjectDefinition,\n\t\t\t\t\tfunc() CollectedField { return childField })\n\t\t\t\tf.Selections = append(f.Selections, childField.Selections...)\n\t\t\t\tif shouldDefer {\n\t\t\t\t\tf.Deferrable = &Deferrable{Label: label}\n\t\t\t\t}\n\t\t\t}\n\n\t\tdefault:\n\t\t\tpanic(fmt.Errorf(\"unsupported %T\", sel))\n\t\t}\n\t}\n\n\treturn groupedFields\n}\n\ntype CollectedField struct {\n\t*ast.Field\n\n\tSelections ast.SelectionSet\n\tDeferrable *Deferrable\n}\n\nfunc doesFragmentConditionMatch(typeCondition string, satisfies []string) bool {\n\t// To allow simplified \"collect all\" types behavior, pass an empty list of types\n\t// that the type condition must satisfy: we will apply the fragment regardless of\n\t// type condition.\n\tif len(satisfies) == 0 {\n\t\treturn true\n\t}\n\n\t// When the type condition is not set (... { field }) we will apply the fragment\n\t// to any satisfying types.\n\tif typeCondition == \"\" {\n\t\treturn true\n\t}\n\n\t// To handle abstract types we pass in a list of all known types that the current\n\t// type will satisfy.\n\treturn slices.Contains(satisfies, typeCondition)\n}\n\nfunc getOrCreateAndAppendField(\n\tc *[]CollectedField,\n\tname, alias string,\n\tobjectDefinition *ast.Definition,\n\tcreator func() CollectedField,\n) *CollectedField {\n\tfor i, cf := range *c {\n\t\tif cf.Name == name && cf.Alias == alias {\n\t\t\tif cf.ObjectDefinition == objectDefinition {\n\t\t\t\treturn &(*c)[i]\n\t\t\t}\n\n\t\t\tif cf.ObjectDefinition == nil || objectDefinition == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif cf.ObjectDefinition.Name == objectDefinition.Name {\n\t\t\t\treturn &(*c)[i]\n\t\t\t}\n\n\t\t\tif slices.Contains(objectDefinition.Interfaces, cf.ObjectDefinition.Name) {\n\t\t\t\treturn &(*c)[i]\n\t\t\t}\n\t\t\tif slices.Contains(cf.ObjectDefinition.Interfaces, objectDefinition.Name) {\n\t\t\t\treturn &(*c)[i]\n\t\t\t}\n\t\t}\n\t}\n\n\tf := creator()\n\n\t*c = append(*c, f)\n\treturn &(*c)[len(*c)-1]\n}\n\nfunc shouldIncludeNode(directives ast.DirectiveList, variables map[string]any) bool {\n\tif len(directives) == 0 {\n\t\treturn true\n\t}\n\n\tskip, include := false, true\n\n\tif d := directives.ForName(\"skip\"); d != nil {\n\t\tskip = resolveIfArgument(d, variables)\n\t}\n\n\tif d := directives.ForName(\"include\"); d != nil {\n\t\tinclude = resolveIfArgument(d, variables)\n\t}\n\n\treturn !skip && include\n}\n\nfunc deferrable(\n\tdirectives ast.DirectiveList,\n\tvariables map[string]any,\n) (shouldDefer bool, label string) {\n\td := directives.ForName(\"defer\")\n\tif d == nil {\n\t\treturn false, \"\"\n\t}\n\n\tshouldDefer = true\n\n\tfor _, arg := range d.Arguments {\n\t\tswitch arg.Name {\n\t\tcase \"if\":\n\t\t\tif value, err := arg.Value.Value(variables); err == nil {\n\t\t\t\tshouldDefer, _ = value.(bool)\n\t\t\t}\n\t\tcase \"label\":\n\t\t\tif value, err := arg.Value.Value(variables); err == nil {\n\t\t\t\tlabel, _ = value.(string)\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(fmt.Sprintf(\"defer: argument '%s' not supported\", arg.Name))\n\t\t}\n\t}\n\n\treturn shouldDefer, label\n}\n\nfunc resolveIfArgument(d *ast.Directive, variables map[string]any) bool {\n\targ := d.Arguments.ForName(\"if\")\n\tif arg == nil {\n\t\tpanic(fmt.Sprintf(\"%s: argument 'if' not defined\", d.Name))\n\t}\n\tvalue, err := arg.Value.Value(variables)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tret, ok := value.(bool)\n\tif !ok {\n\t\tpanic(fmt.Sprintf(\"%s: argument 'if' is not a boolean\", d.Name))\n\t}\n\treturn ret\n}\n"
  },
  {
    "path": "graphql/executable_schema_mock.go",
    "content": "// Code generated by moq; DO NOT EDIT.\n// github.com/matryer/moq\n\npackage graphql\n\nimport (\n\t\"context\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\t\"sync\"\n)\n\n// Ensure, that ExecutableSchemaMock does implement ExecutableSchema.\n// If this is not the case, regenerate this file with moq.\nvar _ ExecutableSchema = &ExecutableSchemaMock{}\n\n// ExecutableSchemaMock is a mock implementation of ExecutableSchema.\n//\n//\tfunc TestSomethingThatUsesExecutableSchema(t *testing.T) {\n//\n//\t\t// make and configure a mocked ExecutableSchema\n//\t\tmockedExecutableSchema := &ExecutableSchemaMock{\n//\t\t\tComplexityFunc: func(ctx context.Context, typeName string, fieldName string, childComplexity int, args map[string]any) (int, bool) {\n//\t\t\t\tpanic(\"mock out the Complexity method\")\n//\t\t\t},\n//\t\t\tExecFunc: func(ctx context.Context) ResponseHandler {\n//\t\t\t\tpanic(\"mock out the Exec method\")\n//\t\t\t},\n//\t\t\tSchemaFunc: func() *ast.Schema {\n//\t\t\t\tpanic(\"mock out the Schema method\")\n//\t\t\t},\n//\t\t}\n//\n//\t\t// use mockedExecutableSchema in code that requires ExecutableSchema\n//\t\t// and then make assertions.\n//\n//\t}\ntype ExecutableSchemaMock struct {\n\t// ComplexityFunc mocks the Complexity method.\n\tComplexityFunc func(ctx context.Context, typeName string, fieldName string, childComplexity int, args map[string]any) (int, bool)\n\n\t// ExecFunc mocks the Exec method.\n\tExecFunc func(ctx context.Context) ResponseHandler\n\n\t// SchemaFunc mocks the Schema method.\n\tSchemaFunc func() *ast.Schema\n\n\t// calls tracks calls to the methods.\n\tcalls struct {\n\t\t// Complexity holds details about calls to the Complexity method.\n\t\tComplexity []struct {\n\t\t\t// Ctx is the ctx argument value.\n\t\t\tCtx context.Context\n\t\t\t// TypeName is the typeName argument value.\n\t\t\tTypeName string\n\t\t\t// FieldName is the fieldName argument value.\n\t\t\tFieldName string\n\t\t\t// ChildComplexity is the childComplexity argument value.\n\t\t\tChildComplexity int\n\t\t\t// Args is the args argument value.\n\t\t\tArgs map[string]any\n\t\t}\n\t\t// Exec holds details about calls to the Exec method.\n\t\tExec []struct {\n\t\t\t// Ctx is the ctx argument value.\n\t\t\tCtx context.Context\n\t\t}\n\t\t// Schema holds details about calls to the Schema method.\n\t\tSchema []struct {\n\t\t}\n\t}\n\tlockComplexity sync.RWMutex\n\tlockExec       sync.RWMutex\n\tlockSchema     sync.RWMutex\n}\n\n// Complexity calls ComplexityFunc.\nfunc (mock *ExecutableSchemaMock) Complexity(ctx context.Context, typeName string, fieldName string, childComplexity int, args map[string]any) (int, bool) {\n\tif mock.ComplexityFunc == nil {\n\t\tpanic(\"ExecutableSchemaMock.ComplexityFunc: method is nil but ExecutableSchema.Complexity was just called\")\n\t}\n\tcallInfo := struct {\n\t\tCtx             context.Context\n\t\tTypeName        string\n\t\tFieldName       string\n\t\tChildComplexity int\n\t\tArgs            map[string]any\n\t}{\n\t\tCtx:             ctx,\n\t\tTypeName:        typeName,\n\t\tFieldName:       fieldName,\n\t\tChildComplexity: childComplexity,\n\t\tArgs:            args,\n\t}\n\tmock.lockComplexity.Lock()\n\tmock.calls.Complexity = append(mock.calls.Complexity, callInfo)\n\tmock.lockComplexity.Unlock()\n\treturn mock.ComplexityFunc(ctx, typeName, fieldName, childComplexity, args)\n}\n\n// ComplexityCalls gets all the calls that were made to Complexity.\n// Check the length with:\n//\n//\tlen(mockedExecutableSchema.ComplexityCalls())\nfunc (mock *ExecutableSchemaMock) ComplexityCalls() []struct {\n\tCtx             context.Context\n\tTypeName        string\n\tFieldName       string\n\tChildComplexity int\n\tArgs            map[string]any\n} {\n\tvar calls []struct {\n\t\tCtx             context.Context\n\t\tTypeName        string\n\t\tFieldName       string\n\t\tChildComplexity int\n\t\tArgs            map[string]any\n\t}\n\tmock.lockComplexity.RLock()\n\tcalls = mock.calls.Complexity\n\tmock.lockComplexity.RUnlock()\n\treturn calls\n}\n\n// Exec calls ExecFunc.\nfunc (mock *ExecutableSchemaMock) Exec(ctx context.Context) ResponseHandler {\n\tif mock.ExecFunc == nil {\n\t\tpanic(\"ExecutableSchemaMock.ExecFunc: method is nil but ExecutableSchema.Exec was just called\")\n\t}\n\tcallInfo := struct {\n\t\tCtx context.Context\n\t}{\n\t\tCtx: ctx,\n\t}\n\tmock.lockExec.Lock()\n\tmock.calls.Exec = append(mock.calls.Exec, callInfo)\n\tmock.lockExec.Unlock()\n\treturn mock.ExecFunc(ctx)\n}\n\n// ExecCalls gets all the calls that were made to Exec.\n// Check the length with:\n//\n//\tlen(mockedExecutableSchema.ExecCalls())\nfunc (mock *ExecutableSchemaMock) ExecCalls() []struct {\n\tCtx context.Context\n} {\n\tvar calls []struct {\n\t\tCtx context.Context\n\t}\n\tmock.lockExec.RLock()\n\tcalls = mock.calls.Exec\n\tmock.lockExec.RUnlock()\n\treturn calls\n}\n\n// Schema calls SchemaFunc.\nfunc (mock *ExecutableSchemaMock) Schema() *ast.Schema {\n\tif mock.SchemaFunc == nil {\n\t\tpanic(\"ExecutableSchemaMock.SchemaFunc: method is nil but ExecutableSchema.Schema was just called\")\n\t}\n\tcallInfo := struct {\n\t}{}\n\tmock.lockSchema.Lock()\n\tmock.calls.Schema = append(mock.calls.Schema, callInfo)\n\tmock.lockSchema.Unlock()\n\treturn mock.SchemaFunc()\n}\n\n// SchemaCalls gets all the calls that were made to Schema.\n// Check the length with:\n//\n//\tlen(mockedExecutableSchema.SchemaCalls())\nfunc (mock *ExecutableSchemaMock) SchemaCalls() []struct {\n} {\n\tvar calls []struct {\n\t}\n\tmock.lockSchema.RLock()\n\tcalls = mock.calls.Schema\n\tmock.lockSchema.RUnlock()\n\treturn calls\n}\n"
  },
  {
    "path": "graphql/executable_schema_state.go",
    "content": "package graphql\n\nimport \"github.com/vektah/gqlparser/v2/ast\"\n\n// ExecutableSchemaState stores generated executable schema dependencies.\n// Generated code defines its local executableSchema type from this one.\ntype ExecutableSchemaState[R any, D any, C any] struct {\n\tSchemaData     *ast.Schema\n\tResolvers      R\n\tDirectives     D\n\tComplexityRoot C\n}\n"
  },
  {
    "path": "graphql/execution_context_state.go",
    "content": "package graphql\n\nimport (\n\t\"errors\"\n\t\"sync/atomic\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n)\n\n// ExecutionContextState stores generated execution context dependencies and state.\n// Generated code defines its local executionContext type from this one.\ntype ExecutionContextState[R any, D any, C any] struct {\n\t*OperationContext\n\t*ExecutableSchemaState[R, D, C]\n\tParsedSchema    *ast.Schema\n\tDeferred        int32\n\tPendingDeferred int32\n\tDeferredResults chan DeferredResult\n}\n\nfunc NewExecutionContextState[R any, D any, C any](\n\toperationContext *OperationContext,\n\texecutableSchemaState *ExecutableSchemaState[R, D, C],\n\tparsedSchema *ast.Schema,\n\tdeferredResults chan DeferredResult,\n) *ExecutionContextState[R, D, C] {\n\treturn &ExecutionContextState[R, D, C]{\n\t\tOperationContext:      operationContext,\n\t\tExecutableSchemaState: executableSchemaState,\n\t\tParsedSchema:          parsedSchema,\n\t\tDeferredResults:       deferredResults,\n\t}\n}\n\nfunc (ec *ExecutionContextState[R, D, C]) Schema() *ast.Schema {\n\tif ec.SchemaData != nil {\n\t\treturn ec.SchemaData\n\t}\n\treturn ec.ParsedSchema\n}\n\nfunc (ec *ExecutionContextState[R, D, C]) ProcessDeferredGroup(dg DeferredGroup) {\n\tatomic.AddInt32(&ec.PendingDeferred, 1)\n\tgo func() {\n\t\tctx := WithFreshResponseContext(dg.Context)\n\t\tdg.FieldSet.Dispatch(ctx)\n\t\tds := DeferredResult{\n\t\t\tPath:   dg.Path,\n\t\t\tLabel:  dg.Label,\n\t\t\tResult: dg.FieldSet,\n\t\t\tErrors: GetErrors(ctx),\n\t\t}\n\t\t// null fields should bubble up\n\t\tif dg.FieldSet.Invalids > 0 {\n\t\t\tds.Result = Null\n\t\t}\n\t\tec.DeferredResults <- ds\n\t}()\n}\n\nfunc (ec *ExecutionContextState[R, D, C]) IntrospectSchema() (*introspection.Schema, error) {\n\tif ec.DisableIntrospection {\n\t\treturn nil, errors.New(\"introspection disabled\")\n\t}\n\treturn introspection.WrapSchema(ec.Schema()), nil\n}\n\nfunc (ec *ExecutionContextState[R, D, C]) IntrospectType(name string) (*introspection.Type, error) {\n\tif ec.DisableIntrospection {\n\t\treturn nil, errors.New(\"introspection disabled\")\n\t}\n\treturn introspection.WrapTypeFromDef(ec.Schema(), ec.Schema().Types[name]), nil\n}\n"
  },
  {
    "path": "graphql/execution_context_state_test.go",
    "content": "package graphql\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"sync/atomic\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\ntype (\n\ttestResolverRoot   struct{}\n\ttestDirectiveRoot  struct{}\n\ttestComplexityRoot struct{}\n)\n\nfunc newTestExecutionContextState(\n\topCtx *OperationContext,\n\tschemaData *ast.Schema,\n\tparsedSchema *ast.Schema,\n\tdeferredResults chan DeferredResult,\n) *ExecutionContextState[testResolverRoot, testDirectiveRoot, testComplexityRoot] {\n\tif opCtx == nil {\n\t\topCtx = &OperationContext{}\n\t}\n\tif deferredResults == nil {\n\t\tdeferredResults = make(chan DeferredResult, 1)\n\t}\n\treturn NewExecutionContextState[testResolverRoot, testDirectiveRoot, testComplexityRoot](\n\t\topCtx,\n\t\t&ExecutableSchemaState[testResolverRoot, testDirectiveRoot, testComplexityRoot]{\n\t\t\tSchemaData: schemaData,\n\t\t},\n\t\tparsedSchema,\n\t\tdeferredResults,\n\t)\n}\n\nfunc receiveDeferredResult(t *testing.T, ch <-chan DeferredResult) DeferredResult {\n\tt.Helper()\n\n\tselect {\n\tcase res := <-ch:\n\t\treturn res\n\tcase <-time.After(2 * time.Second):\n\t\tt.Fatal(\"timed out waiting for deferred result\")\n\t\treturn DeferredResult{}\n\t}\n}\n\nfunc makeSchemaWithType(typeName string) *ast.Schema {\n\tquery := &ast.Definition{Name: \"Query\", Kind: ast.Object}\n\ttyp := &ast.Definition{Name: typeName, Kind: ast.Object}\n\n\treturn &ast.Schema{\n\t\tQuery: query,\n\t\tTypes: map[string]*ast.Definition{\n\t\t\t\"Query\":  query,\n\t\t\ttypeName: typ,\n\t\t},\n\t\tDirectives: map[string]*ast.DirectiveDefinition{},\n\t}\n}\n\nfunc TestExecutionContextState_Schema(t *testing.T) {\n\tschemaData := makeSchemaWithType(\"SchemaDataType\")\n\tparsedSchema := makeSchemaWithType(\"ParsedType\")\n\n\tec := newTestExecutionContextState(\n\t\t&OperationContext{},\n\t\tschemaData,\n\t\tparsedSchema,\n\t\tnil,\n\t)\n\n\tassert.Same(t, schemaData, ec.Schema())\n}\n\nfunc TestExecutionContextState_Schema_FallsBackToParsedSchema(t *testing.T) {\n\tparsedSchema := makeSchemaWithType(\"ParsedType\")\n\n\tec := newTestExecutionContextState(\n\t\t&OperationContext{},\n\t\tnil,\n\t\tparsedSchema,\n\t\tnil,\n\t)\n\n\tassert.Same(t, parsedSchema, ec.Schema())\n}\n\nfunc TestExecutionContextState_IntrospectionDisabled(t *testing.T) {\n\tec := newTestExecutionContextState(\n\t\t&OperationContext{DisableIntrospection: true},\n\t\tnil,\n\t\tmakeSchemaWithType(\"Foo\"),\n\t\tnil,\n\t)\n\n\tschema, schemaErr := ec.IntrospectSchema()\n\trequire.Error(t, schemaErr)\n\trequire.EqualError(t, schemaErr, \"introspection disabled\")\n\tassert.Nil(t, schema)\n\n\ttyp, typeErr := ec.IntrospectType(\"Foo\")\n\trequire.Error(t, typeErr)\n\trequire.EqualError(t, typeErr, \"introspection disabled\")\n\tassert.Nil(t, typ)\n}\n\nfunc TestExecutionContextState_IntrospectType(t *testing.T) {\n\tec := newTestExecutionContextState(\n\t\t&OperationContext{},\n\t\tnil,\n\t\tmakeSchemaWithType(\"Foo\"),\n\t\tnil,\n\t)\n\n\ttyp, err := ec.IntrospectType(\"Foo\")\n\trequire.NoError(t, err)\n\trequire.NotNil(t, typ)\n\n\tname := typ.Name()\n\trequire.NotNil(t, name)\n\tassert.Equal(t, \"Foo\", *name)\n\n\tmissing, missingErr := ec.IntrospectType(\"Missing\")\n\trequire.NoError(t, missingErr)\n\tassert.Nil(t, missing)\n}\n\nfunc TestExecutionContextState_ProcessDeferredGroup_IncrementsPendingAndPropagates(t *testing.T) {\n\tdeferredResults := make(chan DeferredResult, 1)\n\tec := newTestExecutionContextState(\n\t\t&OperationContext{},\n\t\tnil,\n\t\tmakeSchemaWithType(\"Foo\"),\n\t\tdeferredResults,\n\t)\n\n\tctx := WithResponseContext(context.Background(), DefaultErrorPresenter, DefaultRecover)\n\tfieldSet := NewFieldSet([]CollectedField{{Field: &ast.Field{Alias: \"value\"}}})\n\tfieldSet.Concurrently(0, func(ctx context.Context) Marshaler {\n\t\treturn MarshalString(\"ok\")\n\t})\n\n\tpath := ast.Path{ast.PathName(\"query\")}\n\tlabel := \"group-1\"\n\n\tec.ProcessDeferredGroup(DeferredGroup{\n\t\tPath:     path,\n\t\tLabel:    label,\n\t\tFieldSet: fieldSet,\n\t\tContext:  ctx,\n\t})\n\n\tassert.Equal(t, int32(1), atomic.LoadInt32(&ec.PendingDeferred))\n\n\tresult := receiveDeferredResult(t, deferredResults)\n\tassert.Equal(t, path, result.Path)\n\tassert.Equal(t, label, result.Label)\n\tassert.Same(t, fieldSet, result.Result)\n\tassert.Nil(t, result.Errors)\n}\n\nfunc TestExecutionContextState_ProcessDeferredGroup_NullsOnInvalidAndIsolatesErrors(t *testing.T) {\n\tdeferredResults := make(chan DeferredResult, 1)\n\tec := newTestExecutionContextState(\n\t\t&OperationContext{},\n\t\tnil,\n\t\tmakeSchemaWithType(\"Foo\"),\n\t\tdeferredResults,\n\t)\n\n\tctx := WithResponseContext(context.Background(), DefaultErrorPresenter, DefaultRecover)\n\tAddError(ctx, errors.New(\"parent error\"))\n\n\tfieldSet := NewFieldSet([]CollectedField{{Field: &ast.Field{Alias: \"value\"}}})\n\tfieldSet.Concurrently(0, func(ctx context.Context) Marshaler {\n\t\tAddError(ctx, errors.New(\"deferred error\"))\n\t\tatomic.AddUint32(&fieldSet.Invalids, 1)\n\t\treturn MarshalString(\"ignored\")\n\t})\n\n\tec.ProcessDeferredGroup(DeferredGroup{\n\t\tPath:     ast.Path{ast.PathName(\"query\")},\n\t\tLabel:    \"group-2\",\n\t\tFieldSet: fieldSet,\n\t\tContext:  ctx,\n\t})\n\n\tresult := receiveDeferredResult(t, deferredResults)\n\tassert.Same(t, Null, result.Result)\n\n\trequire.Len(t, result.Errors, 1)\n\tassert.Equal(t, \"deferred error\", result.Errors[0].Message)\n\n\tparentErrors := GetErrors(ctx)\n\trequire.Len(t, parentErrors, 1)\n\tassert.Equal(t, \"parent error\", parentErrors[0].Message)\n}\n"
  },
  {
    "path": "graphql/executor/executor.go",
    "content": "package executor\n\nimport (\n\t\"context\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n\t\"github.com/vektah/gqlparser/v2/parser\"\n\t\"github.com/vektah/gqlparser/v2/validator\"\n\t\"github.com/vektah/gqlparser/v2/validator/rules\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/errcode\"\n)\n\nconst parserTokenNoLimit = 0\n\n// Executor executes graphql queries against a schema.\ntype Executor struct {\n\tes         graphql.ExecutableSchema\n\textensions []graphql.HandlerExtension\n\text        extensions\n\n\terrorPresenter graphql.ErrorPresenterFunc\n\trecoverFunc    graphql.RecoverFunc\n\tqueryCache     graphql.Cache[*ast.QueryDocument]\n\n\tparserTokenLimit  int\n\tdisableSuggestion bool\n\tdefaultRulesFn    func() *rules.Rules\n}\n\nvar _ graphql.GraphExecutor = &Executor{}\n\n// New creates a new Executor with the given schema, and a default error and\n// recovery callbacks, and no query cache or extensions.\nfunc New(es graphql.ExecutableSchema) *Executor {\n\te := &Executor{\n\t\tes:               es,\n\t\terrorPresenter:   graphql.DefaultErrorPresenter,\n\t\trecoverFunc:      graphql.DefaultRecover,\n\t\tqueryCache:       graphql.NoCache[*ast.QueryDocument]{},\n\t\text:              processExtensions(nil),\n\t\tparserTokenLimit: parserTokenNoLimit,\n\t}\n\treturn e\n}\n\n// SetDefaultRulesFn is to customize the Default GraphQL Validation Rules\nfunc (e *Executor) SetDefaultRulesFn(f func() *rules.Rules) {\n\te.defaultRulesFn = f\n}\n\nfunc (e *Executor) CreateOperationContext(\n\tctx context.Context,\n\tparams *graphql.RawParams,\n) (*graphql.OperationContext, gqlerror.List) {\n\topCtx := &graphql.OperationContext{\n\t\tDisableIntrospection:   true,\n\t\tRecoverFunc:            e.recoverFunc,\n\t\tResolverMiddleware:     e.ext.fieldMiddleware,\n\t\tRootResolverMiddleware: e.ext.rootFieldMiddleware,\n\t\tStats: graphql.Stats{\n\t\t\tRead:           params.ReadTime,\n\t\t\tOperationStart: graphql.GetStartTime(ctx),\n\t\t},\n\t}\n\tctx = graphql.WithOperationContext(ctx, opCtx)\n\n\tfor _, p := range e.ext.operationParameterMutators {\n\t\tif err := p.MutateOperationParameters(ctx, params); err != nil {\n\t\t\treturn opCtx, gqlerror.List{err}\n\t\t}\n\t}\n\n\topCtx.RawQuery = params.Query\n\topCtx.OperationName = params.OperationName\n\topCtx.Extensions = params.Extensions\n\topCtx.Headers = params.Headers\n\n\tvar listErr gqlerror.List\n\topCtx.Doc, listErr = e.parseQuery(ctx, &opCtx.Stats, params.Query)\n\tif len(listErr) != 0 {\n\t\treturn opCtx, listErr\n\t}\n\n\topCtx.Operation = opCtx.Doc.Operations.ForName(params.OperationName)\n\tif opCtx.Operation == nil {\n\t\terr := gqlerror.Errorf(\"operation %s not found\", params.OperationName)\n\t\terrcode.Set(err, errcode.ValidationFailed)\n\t\treturn opCtx, gqlerror.List{err}\n\t}\n\n\tvar err error\n\topCtx.Variables, err = validator.VariableValues(\n\t\te.es.Schema(),\n\t\topCtx.Operation,\n\t\tparams.Variables,\n\t)\n\tif err != nil {\n\t\tgqlErr, ok := err.(*gqlerror.Error)\n\t\tif ok {\n\t\t\terrcode.Set(gqlErr, errcode.ValidationFailed)\n\t\t\treturn opCtx, gqlerror.List{gqlErr}\n\t\t}\n\t}\n\topCtx.Stats.Validation.End = graphql.Now()\n\n\tfor _, p := range e.ext.operationContextMutators {\n\t\tif err := p.MutateOperationContext(ctx, opCtx); err != nil {\n\t\t\treturn opCtx, gqlerror.List{err}\n\t\t}\n\t}\n\n\treturn opCtx, nil\n}\n\nfunc (e *Executor) DispatchOperation(\n\tctx context.Context,\n\topCtx *graphql.OperationContext,\n) (graphql.ResponseHandler, context.Context) {\n\tinnerCtx := graphql.WithOperationContext(ctx, opCtx)\n\n\tres := e.ext.operationMiddleware(innerCtx, func(ctx context.Context) graphql.ResponseHandler {\n\t\tinnerCtx = ctx\n\n\t\ttmpResponseContext := graphql.WithResponseContext(ctx, e.errorPresenter, e.recoverFunc)\n\t\tresponses := e.es.Exec(tmpResponseContext)\n\t\tif errs := graphql.GetErrors(tmpResponseContext); errs != nil {\n\t\t\treturn graphql.OneShot(&graphql.Response{Errors: errs})\n\t\t}\n\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tctx = graphql.WithResponseContext(ctx, e.errorPresenter, e.recoverFunc)\n\t\t\tresp := e.ext.responseMiddleware(ctx, func(ctx context.Context) *graphql.Response {\n\t\t\t\tresp := responses(ctx)\n\t\t\t\tif resp == nil {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t\tresp.Errors = append(resp.Errors, graphql.GetErrors(ctx)...)\n\t\t\t\tresp.Extensions = graphql.GetExtensions(ctx)\n\t\t\t\treturn resp\n\t\t\t})\n\t\t\tif resp == nil {\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\treturn resp\n\t\t}\n\t})\n\n\treturn res, innerCtx\n}\n\nfunc (e *Executor) DispatchError(ctx context.Context, list gqlerror.List) *graphql.Response {\n\tctx = graphql.WithResponseContext(ctx, e.errorPresenter, e.recoverFunc)\n\tfor _, gErr := range list {\n\t\tgraphql.AddError(ctx, gErr)\n\t}\n\n\tresp := e.ext.responseMiddleware(ctx, func(ctx context.Context) *graphql.Response {\n\t\tresp := &graphql.Response{\n\t\t\tErrors: graphql.GetErrors(ctx),\n\t\t}\n\t\tresp.Extensions = graphql.GetExtensions(ctx)\n\t\treturn resp\n\t})\n\n\treturn resp\n}\n\nfunc (e *Executor) PresentRecoveredError(ctx context.Context, err any) error {\n\treturn e.errorPresenter(ctx, e.recoverFunc(ctx, err))\n}\n\nfunc (e *Executor) SetQueryCache(cache graphql.Cache[*ast.QueryDocument]) {\n\te.queryCache = cache\n}\n\nfunc (e *Executor) SetErrorPresenter(f graphql.ErrorPresenterFunc) {\n\te.errorPresenter = f\n}\n\nfunc (e *Executor) SetRecoverFunc(f graphql.RecoverFunc) {\n\te.recoverFunc = f\n}\n\nfunc (e *Executor) SetParserTokenLimit(limit int) {\n\te.parserTokenLimit = limit\n}\n\nfunc (e *Executor) SetDisableSuggestion(value bool) {\n\te.disableSuggestion = value\n}\n\n// parseQuery decodes the incoming query and validates it, pulling from cache if present.\n//\n// NOTE: This should NOT look at variables, they will change per request. It should only parse and\n// validate\n// the raw query string.\nfunc (e *Executor) parseQuery(\n\tctx context.Context,\n\tstats *graphql.Stats,\n\tquery string,\n) (*ast.QueryDocument, gqlerror.List) {\n\tstats.Parsing.Start = graphql.Now()\n\n\tif doc, ok := e.queryCache.Get(ctx, query); ok {\n\t\tnow := graphql.Now()\n\n\t\tstats.Parsing.End = now\n\t\tstats.Validation.Start = now\n\t\treturn doc, nil\n\t}\n\n\tdoc, err := parser.ParseQueryWithTokenLimit(&ast.Source{Input: query}, e.parserTokenLimit)\n\tif err != nil {\n\t\tgqlErr, ok := err.(*gqlerror.Error)\n\t\tif ok {\n\t\t\terrcode.Set(gqlErr, errcode.ParseFailed)\n\t\t\treturn nil, gqlerror.List{gqlErr}\n\t\t}\n\t}\n\tstats.Parsing.End = graphql.Now()\n\n\tstats.Validation.Start = graphql.Now()\n\n\tif doc == nil || len(doc.Operations) == 0 {\n\t\terr = gqlerror.Errorf(\"no operation provided\")\n\t\tgqlErr, _ := err.(*gqlerror.Error)\n\t\terrcode.Set(err, errcode.ValidationFailed)\n\t\treturn nil, gqlerror.List{gqlErr}\n\t}\n\n\tvar currentRules *rules.Rules\n\tif e.defaultRulesFn == nil {\n\t\tcurrentRules = rules.NewDefaultRules()\n\t} else {\n\t\tcurrentRules = e.defaultRulesFn()\n\t}\n\t// Customise rules as required\n\t// TODO(steve): consider currentRules.RemoveRule(rules.MaxIntrospectionDepth.Name)\n\n\t// swap out the FieldsOnCorrectType rule with one that doesn't provide suggestions\n\tif e.disableSuggestion {\n\t\tcurrentRules.RemoveRule(\"FieldsOnCorrectType\")\n\t\trule := rules.FieldsOnCorrectTypeRuleWithoutSuggestions\n\t\tcurrentRules.AddRule(rule.Name, rule.RuleFunc)\n\t} else { // or vice versa\n\t\tcurrentRules.RemoveRule(\"FieldsOnCorrectTypeWithoutSuggestions\")\n\t\trule := rules.FieldsOnCorrectTypeRule\n\t\tcurrentRules.AddRule(rule.Name, rule.RuleFunc)\n\t}\n\n\tlistErr := validator.ValidateWithRules(e.es.Schema(), doc, currentRules)\n\tif len(listErr) != 0 {\n\t\tfor _, e := range listErr {\n\t\t\terrcode.Set(e, errcode.ValidationFailed)\n\t\t}\n\t\treturn nil, listErr\n\t}\n\n\te.queryCache.Add(ctx, query, doc)\n\n\treturn doc, nil\n}\n"
  },
  {
    "path": "graphql/executor/executor_test.go",
    "content": "package executor_test\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n\t\"github.com/vektah/gqlparser/v2/parser\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/errcode\"\n\t\"github.com/99designs/gqlgen/graphql/executor/testexecutor\"\n)\n\nfunc TestExecutor(t *testing.T) {\n\texec := testexecutor.New()\n\n\tt.Run(\"calls query on executable schema\", func(t *testing.T) {\n\t\tresp := query(exec, \"\", \"{name}\")\n\t\tassert.JSONEq(t, `{\"name\":\"test\"}`, string(resp.Data))\n\t})\n\n\tt.Run(\"validates operation\", func(t *testing.T) {\n\t\tt.Run(\"no operation\", func(t *testing.T) {\n\t\t\tresp := query(exec, \"\", \"\")\n\t\t\tassert.Empty(t, string(resp.Data))\n\t\t\tassert.Len(t, resp.Errors, 1)\n\t\t\tassert.Equal(t, errcode.ValidationFailed, resp.Errors[0].Extensions[\"code\"])\n\t\t})\n\n\t\tt.Run(\"bad operation\", func(t *testing.T) {\n\t\t\tresp := query(exec, \"badOp\", \"query test { name }\")\n\t\t\tassert.Empty(t, string(resp.Data))\n\t\t\tassert.Len(t, resp.Errors, 1)\n\t\t\tassert.Equal(t, errcode.ValidationFailed, resp.Errors[0].Extensions[\"code\"])\n\t\t})\n\t})\n\n\tt.Run(\"invokes operation middleware in order\", func(t *testing.T) {\n\t\tvar calls []string\n\t\texec.AroundOperations(\n\t\t\tfunc(ctx context.Context, next graphql.OperationHandler) graphql.ResponseHandler {\n\t\t\t\tcalls = append(calls, \"first\")\n\t\t\t\treturn next(ctx)\n\t\t\t},\n\t\t)\n\t\texec.AroundOperations(\n\t\t\tfunc(ctx context.Context, next graphql.OperationHandler) graphql.ResponseHandler {\n\t\t\t\tcalls = append(calls, \"second\")\n\t\t\t\treturn next(ctx)\n\t\t\t},\n\t\t)\n\n\t\tresp := query(exec, \"\", \"{name}\")\n\t\tassert.JSONEq(t, `{\"name\":\"test\"}`, string(resp.Data))\n\t\tassert.Equal(t, []string{\"first\", \"second\"}, calls)\n\t})\n\n\tt.Run(\"invokes response middleware in order\", func(t *testing.T) {\n\t\tvar calls []string\n\t\texec.AroundResponses(\n\t\t\tfunc(ctx context.Context, next graphql.ResponseHandler) *graphql.Response {\n\t\t\t\tcalls = append(calls, \"first\")\n\t\t\t\treturn next(ctx)\n\t\t\t},\n\t\t)\n\t\texec.AroundResponses(\n\t\t\tfunc(ctx context.Context, next graphql.ResponseHandler) *graphql.Response {\n\t\t\t\tcalls = append(calls, \"second\")\n\t\t\t\treturn next(ctx)\n\t\t\t},\n\t\t)\n\n\t\tresp := query(exec, \"\", \"{name}\")\n\t\tassert.JSONEq(t, `{\"name\":\"test\"}`, string(resp.Data))\n\t\tassert.Equal(t, []string{\"first\", \"second\"}, calls)\n\t})\n\n\tt.Run(\"invokes root field middleware in order\", func(t *testing.T) {\n\t\tvar calls []string\n\t\texec.AroundRootFields(\n\t\t\tfunc(ctx context.Context, next graphql.RootResolver) graphql.Marshaler {\n\t\t\t\tcalls = append(calls, \"first\")\n\t\t\t\treturn next(ctx)\n\t\t\t},\n\t\t)\n\t\texec.AroundRootFields(\n\t\t\tfunc(ctx context.Context, next graphql.RootResolver) graphql.Marshaler {\n\t\t\t\tcalls = append(calls, \"second\")\n\t\t\t\treturn next(ctx)\n\t\t\t},\n\t\t)\n\n\t\tresp := query(exec, \"\", \"{name}\")\n\t\tassert.JSONEq(t, `{\"name\":\"test\"}`, string(resp.Data))\n\t\tassert.Equal(t, []string{\"first\", \"second\"}, calls)\n\t})\n\n\tt.Run(\"invokes field middleware in order\", func(t *testing.T) {\n\t\tvar calls []string\n\t\texec.AroundFields(func(ctx context.Context, next graphql.Resolver) (res any, err error) {\n\t\t\tcalls = append(calls, \"first\")\n\t\t\treturn next(ctx)\n\t\t})\n\t\texec.AroundFields(func(ctx context.Context, next graphql.Resolver) (res any, err error) {\n\t\t\tcalls = append(calls, \"second\")\n\t\t\treturn next(ctx)\n\t\t})\n\n\t\tresp := query(exec, \"\", \"{name}\")\n\t\tassert.JSONEq(t, `{\"name\":\"test\"}`, string(resp.Data))\n\t\tassert.Equal(t, []string{\"first\", \"second\"}, calls)\n\t})\n\n\tt.Run(\"invokes operation mutators\", func(t *testing.T) {\n\t\tvar calls []string\n\t\texec.Use(&testParamMutator{\n\t\t\tMutate: func(ctx context.Context, req *graphql.RawParams) *gqlerror.Error {\n\t\t\t\tcalls = append(calls, \"param\")\n\t\t\t\treturn nil\n\t\t\t},\n\t\t})\n\t\texec.Use(&testCtxMutator{\n\t\t\tMutate: func(ctx context.Context, opCtx *graphql.OperationContext) *gqlerror.Error {\n\t\t\t\tcalls = append(calls, \"context\")\n\t\t\t\treturn nil\n\t\t\t},\n\t\t})\n\t\tresp := query(exec, \"\", \"{name}\")\n\t\tassert.JSONEq(t, `{\"name\":\"test\"}`, string(resp.Data))\n\t\tassert.Equal(t, []string{\"param\", \"context\"}, calls)\n\t})\n\n\tt.Run(\"get query parse error in AroundResponses\", func(t *testing.T) {\n\t\tvar errors1 gqlerror.List\n\t\tvar errors2 gqlerror.List\n\t\texec.AroundResponses(\n\t\t\tfunc(ctx context.Context, next graphql.ResponseHandler) *graphql.Response {\n\t\t\t\tresp := next(ctx)\n\t\t\t\terrors1 = graphql.GetErrors(ctx)\n\t\t\t\terrors2 = resp.Errors\n\t\t\t\treturn resp\n\t\t\t},\n\t\t)\n\n\t\tresp := query(exec, \"\", \"invalid\")\n\t\tassert.Empty(t, string(resp.Data))\n\t\tassert.Len(t, resp.Errors, 1)\n\t\tassert.Len(t, errors1, 1)\n\t\tassert.Len(t, errors2, 1)\n\t})\n\n\tt.Run(\"query caching\", func(t *testing.T) {\n\t\tctx := context.Background()\n\t\tcache := &graphql.MapCache[*ast.QueryDocument]{}\n\t\texec.SetQueryCache(cache)\n\t\tqry := `query Foo {name}`\n\n\t\tt.Run(\"cache miss populates cache\", func(t *testing.T) {\n\t\t\tresp := query(exec, \"Foo\", qry)\n\t\t\tassert.JSONEq(t, `{\"name\":\"test\"}`, string(resp.Data))\n\n\t\t\tcacheDoc, ok := cache.Get(ctx, qry)\n\t\t\trequire.True(t, ok)\n\t\t\trequire.Equal(t, \"Foo\", cacheDoc.Operations[0].Name)\n\t\t})\n\n\t\tt.Run(\"cache hits use document from cache\", func(t *testing.T) {\n\t\t\tdoc, err := parser.ParseQuery(&ast.Source{Input: `query Bar {name}`})\n\t\t\trequire.NoError(t, err)\n\t\t\tcache.Add(ctx, qry, doc)\n\n\t\t\tresp := query(exec, \"Bar\", qry)\n\t\t\tassert.JSONEq(t, `{\"name\":\"test\"}`, string(resp.Data))\n\n\t\t\tcacheDoc, ok := cache.Get(ctx, qry)\n\t\t\trequire.True(t, ok)\n\t\t\trequire.Equal(t, \"Bar\", cacheDoc.Operations[0].Name)\n\t\t})\n\t})\n}\n\nfunc TestExecutorDisableSuggestion(t *testing.T) {\n\tt.Run(\"by default, the error message will include suggestions\", func(t *testing.T) {\n\t\texec := testexecutor.New()\n\t\tresp := query(exec, \"\", \"{nam}\")\n\t\tassert.Empty(t, string(resp.Data))\n\t\tassert.Equal(\n\t\t\tt,\n\t\t\t\"input:1:2: Cannot query field \\\"nam\\\" on type \\\"Query\\\". Did you mean \\\"name\\\"?\\n\",\n\t\t\tresp.Errors.Error(),\n\t\t)\n\t})\n\n\tt.Run(\"disable suggestion, the error message will not include suggestions\", func(t *testing.T) {\n\t\texec := testexecutor.New()\n\t\texec.SetDisableSuggestion(true)\n\t\tresp := query(exec, \"\", \"{nam}\")\n\t\tassert.Empty(t, string(resp.Data))\n\t\tassert.Len(t, resp.Errors, 1)\n\t\tassert.Equal(\n\t\t\tt,\n\t\t\t\"input:1:2: Cannot query field \\\"nam\\\" on type \\\"Query\\\".\\n\",\n\t\t\tresp.Errors.Error(),\n\t\t)\n\n\t\t// check if the error message is displayed correctly even if an error occurs multiple times\n\t\tresp = query(exec, \"\", \"{nam}\")\n\t\tassert.Empty(t, string(resp.Data))\n\t\tassert.Len(t, resp.Errors, 1)\n\t\tassert.Equal(\n\t\t\tt,\n\t\t\t\"input:1:2: Cannot query field \\\"nam\\\" on type \\\"Query\\\".\\n\",\n\t\t\tresp.Errors.Error(),\n\t\t)\n\t})\n}\n\ntype testParamMutator struct {\n\tMutate func(context.Context, *graphql.RawParams) *gqlerror.Error\n}\n\nfunc (m *testParamMutator) ExtensionName() string {\n\treturn \"Operation: Mutate Parameters\"\n}\n\nfunc (m *testParamMutator) Validate(s graphql.ExecutableSchema) error {\n\treturn nil\n}\n\nfunc (m *testParamMutator) MutateOperationParameters(\n\tctx context.Context,\n\tr *graphql.RawParams,\n) *gqlerror.Error {\n\treturn m.Mutate(ctx, r)\n}\n\ntype testCtxMutator struct {\n\tMutate func(context.Context, *graphql.OperationContext) *gqlerror.Error\n}\n\nfunc (m *testCtxMutator) ExtensionName() string {\n\treturn \"Operation: Mutate the Context\"\n}\n\nfunc (m *testCtxMutator) Validate(s graphql.ExecutableSchema) error {\n\treturn nil\n}\n\nfunc (m *testCtxMutator) MutateOperationContext(\n\tctx context.Context,\n\topCtx *graphql.OperationContext,\n) *gqlerror.Error {\n\treturn m.Mutate(ctx, opCtx)\n}\n\nfunc TestErrorServer(t *testing.T) {\n\texec := testexecutor.NewError()\n\n\tt.Run(\"get resolver error in AroundResponses\", func(t *testing.T) {\n\t\tvar errors1 gqlerror.List\n\t\tvar errors2 gqlerror.List\n\t\texec.AroundResponses(\n\t\t\tfunc(ctx context.Context, next graphql.ResponseHandler) *graphql.Response {\n\t\t\t\tresp := next(ctx)\n\t\t\t\terrors1 = graphql.GetErrors(ctx)\n\t\t\t\terrors2 = resp.Errors\n\t\t\t\treturn resp\n\t\t\t},\n\t\t)\n\n\t\tresp := query(exec, \"\", \"{name}\")\n\t\tassert.Equal(t, \"null\", string(resp.Data))\n\t\tassert.Len(t, errors1, 1)\n\t\tassert.Len(t, errors2, 1)\n\t})\n}\n\nfunc query(exec *testexecutor.TestExecutor, op, q string) *graphql.Response {\n\tctx := graphql.StartOperationTrace(context.Background())\n\tnow := graphql.Now()\n\trc, err := exec.CreateOperationContext(ctx, &graphql.RawParams{\n\t\tQuery:         q,\n\t\tOperationName: op,\n\t\tReadTime: graphql.TraceTiming{\n\t\t\tStart: now,\n\t\t\tEnd:   now,\n\t\t},\n\t})\n\tif err != nil {\n\t\treturn exec.DispatchError(ctx, err)\n\t}\n\n\tresp, ctx2 := exec.DispatchOperation(ctx, rc)\n\treturn resp(ctx2)\n}\n"
  },
  {
    "path": "graphql/executor/extensions.go",
    "content": "package executor\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\n// Use adds the given extension to this Executor.\nfunc (e *Executor) Use(extension graphql.HandlerExtension) {\n\tif err := extension.Validate(e.es); err != nil {\n\t\tpanic(err)\n\t}\n\n\tswitch extension.(type) {\n\tcase graphql.OperationParameterMutator,\n\t\tgraphql.OperationContextMutator,\n\t\tgraphql.OperationInterceptor,\n\t\tgraphql.RootFieldInterceptor,\n\t\tgraphql.FieldInterceptor,\n\t\tgraphql.ResponseInterceptor:\n\t\te.extensions = append(e.extensions, extension)\n\t\te.ext = processExtensions(e.extensions)\n\n\tdefault:\n\t\tpanic(\n\t\t\tfmt.Errorf(\n\t\t\t\t\"cannot Use %T as a gqlgen handler extension because it does not implement any extension hooks\",\n\t\t\t\textension,\n\t\t\t),\n\t\t)\n\t}\n}\n\n// AroundFields is a convenience method for creating an extension that only implements field\n// middleware\nfunc (e *Executor) AroundFields(f graphql.FieldMiddleware) {\n\te.Use(aroundFieldFunc(f))\n}\n\n// AroundRootFields is a convenience method for creating an extension that only implements root\n// field middleware\nfunc (e *Executor) AroundRootFields(f graphql.RootFieldMiddleware) {\n\te.Use(aroundRootFieldFunc(f))\n}\n\n// AroundOperations is a convenience method for creating an extension that only implements operation\n// middleware\nfunc (e *Executor) AroundOperations(f graphql.OperationMiddleware) {\n\te.Use(aroundOpFunc(f))\n}\n\n// AroundResponses is a convenience method for creating an extension that only implements response\n// middleware\nfunc (e *Executor) AroundResponses(f graphql.ResponseMiddleware) {\n\te.Use(aroundRespFunc(f))\n}\n\ntype extensions struct {\n\toperationMiddleware        graphql.OperationMiddleware\n\tresponseMiddleware         graphql.ResponseMiddleware\n\trootFieldMiddleware        graphql.RootFieldMiddleware\n\tfieldMiddleware            graphql.FieldMiddleware\n\toperationParameterMutators []graphql.OperationParameterMutator\n\toperationContextMutators   []graphql.OperationContextMutator\n}\n\nfunc processExtensions(exts []graphql.HandlerExtension) extensions {\n\te := extensions{\n\t\toperationMiddleware: func(ctx context.Context, next graphql.OperationHandler) graphql.ResponseHandler {\n\t\t\treturn next(ctx)\n\t\t},\n\t\tresponseMiddleware: func(ctx context.Context, next graphql.ResponseHandler) *graphql.Response {\n\t\t\treturn next(ctx)\n\t\t},\n\t\trootFieldMiddleware: func(ctx context.Context, next graphql.RootResolver) graphql.Marshaler {\n\t\t\treturn next(ctx)\n\t\t},\n\t\tfieldMiddleware: func(ctx context.Context, next graphql.Resolver) (res any, err error) {\n\t\t\treturn next(ctx)\n\t\t},\n\t}\n\n\t// this loop goes backwards so the first extension is the outer most middleware and runs first.\n\tfor i := len(exts) - 1; i >= 0; i-- {\n\t\tp := exts[i]\n\t\tif p, ok := p.(graphql.OperationInterceptor); ok {\n\t\t\tprevious := e.operationMiddleware\n\t\t\te.operationMiddleware = func(ctx context.Context, next graphql.OperationHandler) graphql.ResponseHandler {\n\t\t\t\treturn p.InterceptOperation(ctx, func(ctx context.Context) graphql.ResponseHandler {\n\t\t\t\t\treturn previous(ctx, next)\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\tif p, ok := p.(graphql.ResponseInterceptor); ok {\n\t\t\tprevious := e.responseMiddleware\n\t\t\te.responseMiddleware = func(ctx context.Context, next graphql.ResponseHandler) *graphql.Response {\n\t\t\t\treturn p.InterceptResponse(ctx, func(ctx context.Context) *graphql.Response {\n\t\t\t\t\treturn previous(ctx, next)\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\tif p, ok := p.(graphql.RootFieldInterceptor); ok {\n\t\t\tprevious := e.rootFieldMiddleware\n\t\t\te.rootFieldMiddleware = func(ctx context.Context, next graphql.RootResolver) graphql.Marshaler {\n\t\t\t\treturn p.InterceptRootField(ctx, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn previous(ctx, next)\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\tif p, ok := p.(graphql.FieldInterceptor); ok {\n\t\t\tprevious := e.fieldMiddleware\n\t\t\te.fieldMiddleware = func(ctx context.Context, next graphql.Resolver) (res any, err error) {\n\t\t\t\treturn p.InterceptField(ctx, func(ctx context.Context) (res any, err error) {\n\t\t\t\t\treturn previous(ctx, next)\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\n\tfor _, p := range exts {\n\t\tif p, ok := p.(graphql.OperationParameterMutator); ok {\n\t\t\te.operationParameterMutators = append(e.operationParameterMutators, p)\n\t\t}\n\n\t\tif p, ok := p.(graphql.OperationContextMutator); ok {\n\t\t\te.operationContextMutators = append(e.operationContextMutators, p)\n\t\t}\n\t}\n\n\treturn e\n}\n\ntype aroundOpFunc func(ctx context.Context, next graphql.OperationHandler) graphql.ResponseHandler\n\nfunc (r aroundOpFunc) ExtensionName() string {\n\treturn \"InlineOperationFunc\"\n}\n\nfunc (r aroundOpFunc) Validate(schema graphql.ExecutableSchema) error {\n\tif r == nil {\n\t\treturn errors.New(\"OperationFunc can not be nil\")\n\t}\n\treturn nil\n}\n\nfunc (r aroundOpFunc) InterceptOperation(\n\tctx context.Context,\n\tnext graphql.OperationHandler,\n) graphql.ResponseHandler {\n\treturn r(ctx, next)\n}\n\ntype aroundRespFunc func(ctx context.Context, next graphql.ResponseHandler) *graphql.Response\n\nfunc (r aroundRespFunc) ExtensionName() string {\n\treturn \"InlineResponseFunc\"\n}\n\nfunc (r aroundRespFunc) Validate(schema graphql.ExecutableSchema) error {\n\tif r == nil {\n\t\treturn errors.New(\"ResponseFunc can not be nil\")\n\t}\n\treturn nil\n}\n\nfunc (r aroundRespFunc) InterceptResponse(\n\tctx context.Context,\n\tnext graphql.ResponseHandler,\n) *graphql.Response {\n\treturn r(ctx, next)\n}\n\ntype aroundFieldFunc func(ctx context.Context, next graphql.Resolver) (res any, err error)\n\nfunc (f aroundFieldFunc) ExtensionName() string {\n\treturn \"InlineFieldFunc\"\n}\n\nfunc (f aroundFieldFunc) Validate(schema graphql.ExecutableSchema) error {\n\tif f == nil {\n\t\treturn errors.New(\"FieldFunc can not be nil\")\n\t}\n\treturn nil\n}\n\nfunc (f aroundFieldFunc) InterceptField(\n\tctx context.Context,\n\tnext graphql.Resolver,\n) (res any, err error) {\n\treturn f(ctx, next)\n}\n\ntype aroundRootFieldFunc func(ctx context.Context, next graphql.RootResolver) graphql.Marshaler\n\nfunc (f aroundRootFieldFunc) ExtensionName() string {\n\treturn \"InlineRootFieldFunc\"\n}\n\nfunc (f aroundRootFieldFunc) Validate(schema graphql.ExecutableSchema) error {\n\tif f == nil {\n\t\treturn errors.New(\"RootFieldFunc can not be nil\")\n\t}\n\treturn nil\n}\n\nfunc (f aroundRootFieldFunc) InterceptRootField(\n\tctx context.Context,\n\tnext graphql.RootResolver,\n) graphql.Marshaler {\n\treturn f(ctx, next)\n}\n"
  },
  {
    "path": "graphql/executor/testexecutor/testexecutor.go",
    "content": "package testexecutor\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"time\"\n\n\t\"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/executor\"\n)\n\ntype MockResponse struct {\n\tName string `json:\"name\"`\n}\n\nfunc (mr *MockResponse) UnmarshalGQL(v any) error {\n\treturn nil\n}\n\nfunc (mr *MockResponse) MarshalGQL(w io.Writer) {\n\tbuf := new(bytes.Buffer)\n\terr := json.NewEncoder(buf).Encode(mr)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tba := bytes.NewBuffer(bytes.TrimRight(buf.Bytes(), \"\\n\"))\n\n\tfmt.Fprint(w, ba)\n}\n\n// New provides a server for use in tests that isn't relying on generated code. It isnt a perfect\n// reproduction of a generated server, but it aims to be good enough to test the handler package\n// without relying on codegen.\nfunc New() *TestExecutor {\n\tnext := make(chan struct{})\n\n\tschema := gqlparser.MustLoadSchema(&ast.Source{Input: `\n    type Query {\n      name: String!\n      find(id: Int!): String!\n    }\n    type Mutation {\n      name: String!\n    }\n    type Subscription {\n      name: String!\n    }\n  `})\n\n\texec := &TestExecutor{\n\t\tnext: next,\n\t}\n\n\texec.schema = &graphql.ExecutableSchemaMock{\n\t\tExecFunc: func(ctx context.Context) graphql.ResponseHandler {\n\t\t\topCtx := graphql.GetOperationContext(ctx)\n\t\t\tswitch opCtx.Operation.Operation {\n\t\t\tcase ast.Query:\n\t\t\t\tran := false\n\t\t\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\t\t\tif ran {\n\t\t\t\t\t\treturn nil\n\t\t\t\t\t}\n\t\t\t\t\tran = true\n\t\t\t\t\t// Field execution happens inside the generated code, lets simulate some of it.\n\t\t\t\t\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\t\t\t\t\tObject: \"Query\",\n\t\t\t\t\t\tField: graphql.CollectedField{\n\t\t\t\t\t\t\tField: &ast.Field{\n\t\t\t\t\t\t\t\tName:       \"name\",\n\t\t\t\t\t\t\t\tAlias:      \"name\",\n\t\t\t\t\t\t\t\tDefinition: schema.Types[\"Query\"].Fields.ForName(\"name\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t\tdata := graphql.GetOperationContext(ctx).\n\t\t\t\t\t\tRootResolverMiddleware(ctx, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\t\t\tres, err := graphql.GetOperationContext(ctx).\n\t\t\t\t\t\t\t\tResolverMiddleware(ctx, func(ctx context.Context) (any, error) {\n\t\t\t\t\t\t\t\t\t// return &graphql.Response{Data: []byte(`{\"name\":\"test\"}`)},\n\t\t\t\t\t\t\t\t\t// nil\n\t\t\t\t\t\t\t\t\treturn &MockResponse{Name: \"test\"}, nil\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\t\tpanic(err)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn res.(*MockResponse)\n\t\t\t\t\t\t})\n\n\t\t\t\t\tvar buf bytes.Buffer\n\t\t\t\t\tdata.MarshalGQL(&buf)\n\n\t\t\t\t\treturn &graphql.Response{Data: buf.Bytes()}\n\t\t\t\t}\n\t\t\tcase ast.Mutation:\n\t\t\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"mutations are not supported\"))\n\t\t\tcase ast.Subscription:\n\t\t\t\treturn func(context context.Context) *graphql.Response {\n\t\t\t\t\tselect {\n\t\t\t\t\tcase <-ctx.Done():\n\t\t\t\t\t\treturn nil\n\t\t\t\t\tcase <-next:\n\t\t\t\t\t\treturn &graphql.Response{\n\t\t\t\t\t\t\tData: []byte(`{\"name\":\"test\"}`),\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t\t\t}\n\t\t},\n\t\tSchemaFunc: func() *ast.Schema {\n\t\t\treturn schema\n\t\t},\n\t\tComplexityFunc: func(ctx context.Context, typeName string, fieldName string, childComplexity int, args map[string]any) (i int, b bool) {\n\t\t\treturn exec.complexity, true\n\t\t},\n\t}\n\n\texec.Executor = executor.New(exec.schema)\n\treturn exec\n}\n\n// NewError provides a server for use in resolver error tests that isn't relying on generated code.\n// It isnt a perfect reproduction of a generated server, but it aims to be good enough to test the\n// handler package without relying on codegen.\nfunc NewError() *TestExecutor {\n\tnext := make(chan struct{})\n\n\tschema := gqlparser.MustLoadSchema(&ast.Source{Input: `\n\t\ttype Query {\n\t\t\tname: String!\n\t\t}\n\t`})\n\n\texec := &TestExecutor{\n\t\tnext: next,\n\t}\n\n\texec.schema = &graphql.ExecutableSchemaMock{\n\t\tExecFunc: func(ctx context.Context) graphql.ResponseHandler {\n\t\t\topCtx := graphql.GetOperationContext(ctx)\n\t\t\tswitch opCtx.Operation.Operation {\n\t\t\tcase ast.Query:\n\t\t\t\tran := false\n\t\t\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\t\t\tif ran {\n\t\t\t\t\t\treturn nil\n\t\t\t\t\t}\n\t\t\t\t\tran = true\n\n\t\t\t\t\tgraphql.AddError(ctx, errors.New(\"resolver error\"))\n\n\t\t\t\t\treturn &graphql.Response{\n\t\t\t\t\t\tData: []byte(`null`),\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase ast.Mutation:\n\t\t\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"mutations are not supported\"))\n\t\t\tcase ast.Subscription:\n\t\t\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"subscription are not supported\"))\n\t\t\tdefault:\n\t\t\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t\t\t}\n\t\t},\n\t\tSchemaFunc: func() *ast.Schema {\n\t\t\treturn schema\n\t\t},\n\t\tComplexityFunc: func(ctx context.Context, typeName string, fieldName string, childComplexity int, args map[string]any) (i int, b bool) {\n\t\t\treturn exec.complexity, true\n\t\t},\n\t}\n\n\texec.Executor = executor.New(exec.schema)\n\treturn exec\n}\n\ntype TestExecutor struct {\n\t*executor.Executor\n\tschema     graphql.ExecutableSchema\n\tnext       chan struct{}\n\tcomplexity int\n}\n\nfunc (e *TestExecutor) Schema() graphql.ExecutableSchema {\n\treturn e.schema\n}\n\nfunc (e *TestExecutor) SendNextSubscriptionMessage() {\n\tselect {\n\tcase e.next <- struct{}{}:\n\tcase <-time.After(1 * time.Second):\n\t\tfmt.Println(\"WARNING: no active subscription\")\n\t}\n}\n\nfunc (e *TestExecutor) SetCalculatedComplexity(complexity int) {\n\te.complexity = complexity\n}\n"
  },
  {
    "path": "graphql/fieldset.go",
    "content": "package graphql\n\nimport (\n\t\"context\"\n\t\"io\"\n\t\"sync\"\n)\n\ntype FieldSet struct {\n\tfields   []CollectedField\n\tValues   []Marshaler\n\tInvalids uint32\n\tdelayed  []delayedResult\n}\n\ntype delayedResult struct {\n\ti int\n\tf func(context.Context) Marshaler\n}\n\nfunc NewFieldSet(fields []CollectedField) *FieldSet {\n\treturn &FieldSet{\n\t\tfields: fields,\n\t\tValues: make([]Marshaler, len(fields)),\n\t}\n}\n\nfunc (m *FieldSet) AddField(field CollectedField) {\n\tm.fields = append(m.fields, field)\n\tm.Values = append(m.Values, nil)\n}\n\nfunc (m *FieldSet) Concurrently(i int, f func(context.Context) Marshaler) {\n\tm.delayed = append(m.delayed, delayedResult{i: i, f: f})\n}\n\nfunc (m *FieldSet) Dispatch(ctx context.Context) {\n\tif len(m.delayed) == 1 {\n\t\t// only one concurrent task, no need to spawn a goroutine or deal create waitgroups\n\t\td := m.delayed[0]\n\t\tm.Values[d.i] = d.f(ctx)\n\t} else if len(m.delayed) > 1 {\n\t\t// more than one concurrent task, use the main goroutine to do one, only spawn goroutines\n\t\t// for the others\n\n\t\tvar wg sync.WaitGroup\n\t\tfor _, d := range m.delayed[1:] {\n\t\t\twg.Add(1)\n\t\t\tgo func(d delayedResult) {\n\t\t\t\tdefer wg.Done()\n\t\t\t\tm.Values[d.i] = d.f(ctx)\n\t\t\t}(d)\n\t\t}\n\n\t\tm.Values[m.delayed[0].i] = m.delayed[0].f(ctx)\n\t\twg.Wait()\n\t}\n}\n\nfunc (m *FieldSet) MarshalGQL(writer io.Writer) {\n\twriter.Write(openBrace)\n\twrittenFields := make(map[string]bool, len(m.fields))\n\tfor i, field := range m.fields {\n\t\tif writtenFields[field.Alias] {\n\t\t\tcontinue\n\t\t}\n\t\tif i != 0 {\n\t\t\twriter.Write(comma)\n\t\t}\n\t\twriteQuotedString(writer, field.Alias)\n\t\twriter.Write(colon)\n\t\tm.Values[i].MarshalGQL(writer)\n\t\twrittenFields[field.Alias] = true\n\t}\n\twriter.Write(closeBrace)\n}\n"
  },
  {
    "path": "graphql/fieldset_test.go",
    "content": "package graphql\n\nimport (\n\t\"bytes\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\nfunc TestFieldSet_MarshalGQL(t *testing.T) {\n\tt.Run(\"Should_Deduplicate_Keys\", func(t *testing.T) {\n\t\tfs := NewFieldSet([]CollectedField{\n\t\t\t{Field: &ast.Field{Alias: \"__typename\"}},\n\t\t\t{Field: &ast.Field{Alias: \"__typename\"}},\n\t\t})\n\t\tfs.Values[0] = MarshalString(\"A\")\n\t\tfs.Values[1] = MarshalString(\"A\")\n\n\t\tb := bytes.NewBuffer(nil)\n\t\tfs.MarshalGQL(b)\n\n\t\tassert.JSONEq(t, \"{\\\"__typename\\\":\\\"A\\\"}\", b.String())\n\t})\n}\n"
  },
  {
    "path": "graphql/float.go",
    "content": "package graphql\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"strconv\"\n)\n\nfunc MarshalFloat(f float64) Marshaler {\n\treturn WriterFunc(func(w io.Writer) {\n\t\tfmt.Fprintf(w, \"%g\", f)\n\t})\n}\n\nfunc UnmarshalFloat(v any) (float64, error) {\n\tswitch v := v.(type) {\n\tcase string:\n\t\treturn strconv.ParseFloat(v, 64)\n\tcase int:\n\t\treturn float64(v), nil\n\tcase int64:\n\t\treturn float64(v), nil\n\tcase float64:\n\t\treturn v, nil\n\tcase json.Number:\n\t\treturn strconv.ParseFloat(string(v), 64)\n\tcase nil:\n\t\treturn 0, nil\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"%T is not an float\", v)\n\t}\n}\n\nfunc MarshalFloatContext(f float64) ContextMarshaler {\n\treturn ContextWriterFunc(func(ctx context.Context, w io.Writer) error {\n\t\tif math.IsInf(f, 0) || math.IsNaN(f) {\n\t\t\treturn errors.New(\"cannot marshal infinite no NaN float values\")\n\t\t}\n\t\tfmt.Fprintf(w, \"%g\", f)\n\t\treturn nil\n\t})\n}\n\nfunc UnmarshalFloatContext(ctx context.Context, v any) (float64, error) {\n\treturn UnmarshalFloat(v)\n}\n"
  },
  {
    "path": "graphql/float_test.go",
    "content": "package graphql\n\nimport (\n\t\"bytes\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc TestFloat(t *testing.T) {\n\tassert.Equal(t, \"123\", m2s(MarshalFloat(123)))\n\tassert.Equal(t, \"1.2345678901\", m2s(MarshalFloat(1.2345678901)))\n\tassert.Equal(t, \"1.2345678901234567\", m2s(MarshalFloat(1.234567890123456789)))\n\tassert.Equal(t, \"1.2e+20\", m2s(MarshalFloat(1.2e+20)))\n\tassert.Equal(t, \"1.2e-20\", m2s(MarshalFloat(1.2e-20)))\n}\n\nfunc m2s(m Marshaler) string {\n\tvar b bytes.Buffer\n\tm.MarshalGQL(&b)\n\treturn b.String()\n}\n"
  },
  {
    "path": "graphql/handler/apollofederatedtracingv1/generated/apollo_trace.pb.go",
    "content": "// Code generated by protoc-gen-go. DO NOT EDIT.\n// versions:\n// \tprotoc-gen-go v1.28.0\n// \tprotoc        v3.19.4\n// source: apollo_trace.proto\n\npackage generated\n\nimport (\n\treflect \"reflect\"\n\tsync \"sync\"\n\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n\tprotoimpl \"google.golang.org/protobuf/runtime/protoimpl\"\n\ttimestamppb \"google.golang.org/protobuf/types/known/timestamppb\"\n)\n\nconst (\n\t// Verify that this generated code is sufficiently up-to-date.\n\t_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)\n\t// Verify that runtime/protoimpl is sufficiently up-to-date.\n\t_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)\n)\n\ntype Trace_CachePolicy_Scope int32\n\nconst (\n\tTrace_CachePolicy_UNKNOWN Trace_CachePolicy_Scope = 0\n\tTrace_CachePolicy_PUBLIC  Trace_CachePolicy_Scope = 1\n\tTrace_CachePolicy_PRIVATE Trace_CachePolicy_Scope = 2\n)\n\n// Enum value maps for Trace_CachePolicy_Scope.\nvar (\n\tTrace_CachePolicy_Scope_name = map[int32]string{\n\t\t0: \"UNKNOWN\",\n\t\t1: \"PUBLIC\",\n\t\t2: \"PRIVATE\",\n\t}\n\tTrace_CachePolicy_Scope_value = map[string]int32{\n\t\t\"UNKNOWN\": 0,\n\t\t\"PUBLIC\":  1,\n\t\t\"PRIVATE\": 2,\n\t}\n)\n\nfunc (x Trace_CachePolicy_Scope) Enum() *Trace_CachePolicy_Scope {\n\tp := new(Trace_CachePolicy_Scope)\n\t*p = x\n\treturn p\n}\n\nfunc (x Trace_CachePolicy_Scope) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (Trace_CachePolicy_Scope) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_apollo_trace_proto_enumTypes[0].Descriptor()\n}\n\nfunc (Trace_CachePolicy_Scope) Type() protoreflect.EnumType {\n\treturn &file_apollo_trace_proto_enumTypes[0]\n}\n\nfunc (x Trace_CachePolicy_Scope) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Use Trace_CachePolicy_Scope.Descriptor instead.\nfunc (Trace_CachePolicy_Scope) EnumDescriptor() ([]byte, []int) {\n\treturn file_apollo_trace_proto_rawDescGZIP(), []int{0, 0, 0}\n}\n\ntype Trace_HTTP_Method int32\n\nconst (\n\tTrace_HTTP_UNKNOWN Trace_HTTP_Method = 0\n\tTrace_HTTP_OPTIONS Trace_HTTP_Method = 1\n\tTrace_HTTP_GET     Trace_HTTP_Method = 2\n\tTrace_HTTP_HEAD    Trace_HTTP_Method = 3\n\tTrace_HTTP_POST    Trace_HTTP_Method = 4\n\tTrace_HTTP_PUT     Trace_HTTP_Method = 5\n\tTrace_HTTP_DELETE  Trace_HTTP_Method = 6\n\tTrace_HTTP_TRACE   Trace_HTTP_Method = 7\n\tTrace_HTTP_CONNECT Trace_HTTP_Method = 8\n\tTrace_HTTP_PATCH   Trace_HTTP_Method = 9\n)\n\n// Enum value maps for Trace_HTTP_Method.\nvar (\n\tTrace_HTTP_Method_name = map[int32]string{\n\t\t0: \"UNKNOWN\",\n\t\t1: \"OPTIONS\",\n\t\t2: \"GET\",\n\t\t3: \"HEAD\",\n\t\t4: \"POST\",\n\t\t5: \"PUT\",\n\t\t6: \"DELETE\",\n\t\t7: \"TRACE\",\n\t\t8: \"CONNECT\",\n\t\t9: \"PATCH\",\n\t}\n\tTrace_HTTP_Method_value = map[string]int32{\n\t\t\"UNKNOWN\": 0,\n\t\t\"OPTIONS\": 1,\n\t\t\"GET\":     2,\n\t\t\"HEAD\":    3,\n\t\t\"POST\":    4,\n\t\t\"PUT\":     5,\n\t\t\"DELETE\":  6,\n\t\t\"TRACE\":   7,\n\t\t\"CONNECT\": 8,\n\t\t\"PATCH\":   9,\n\t}\n)\n\nfunc (x Trace_HTTP_Method) Enum() *Trace_HTTP_Method {\n\tp := new(Trace_HTTP_Method)\n\t*p = x\n\treturn p\n}\n\nfunc (x Trace_HTTP_Method) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (Trace_HTTP_Method) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_apollo_trace_proto_enumTypes[1].Descriptor()\n}\n\nfunc (Trace_HTTP_Method) Type() protoreflect.EnumType {\n\treturn &file_apollo_trace_proto_enumTypes[1]\n}\n\nfunc (x Trace_HTTP_Method) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Use Trace_HTTP_Method.Descriptor instead.\nfunc (Trace_HTTP_Method) EnumDescriptor() ([]byte, []int) {\n\treturn file_apollo_trace_proto_rawDescGZIP(), []int{0, 3, 0}\n}\n\ntype Trace struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Wallclock time when the trace began.\n\tStartTime *timestamppb.Timestamp `protobuf:\"bytes,4,opt,name=start_time,json=startTime,proto3\" json:\"start_time,omitempty\"` // required\n\t// Wallclock time when the trace ended.\n\tEndTime *timestamppb.Timestamp `protobuf:\"bytes,3,opt,name=end_time,json=endTime,proto3\" json:\"end_time,omitempty\"` // required\n\t// High precision duration of the trace; may not equal end_time-start_time\n\t// (eg, if your machine's clock changed during the trace).\n\tDurationNs uint64 `protobuf:\"varint,11,opt,name=duration_ns,json=durationNs,proto3\" json:\"duration_ns,omitempty\"` // required\n\t// A tree containing information about all resolvers run directly by this\n\t// service, including errors.\n\tRoot *Trace_Node `protobuf:\"bytes,14,opt,name=root,proto3\" json:\"root,omitempty\"`\n\t// In addition to details.raw_query, we include a \"signature\" of the query,\n\t// which can be normalized: for example, you may want to discard aliases, drop\n\t// unused operations and fragments, sort fields, etc. The most important thing\n\t// here is that the signature match the signature in StatsReports. In\n\t// StatsReports signatures show up as the key in the per_query map (with the\n\t// operation name prepended).  The signature should be a valid GraphQL query.\n\t// All traces must have a signature; if this Trace is in a FullTracesReport\n\t// that signature is in the key of traces_per_query rather than in this field.\n\t// Engineproxy provides the signature in legacy_signature_needs_resigning\n\t// instead.\n\tSignature string `protobuf:\"bytes,19,opt,name=signature,proto3\" json:\"signature,omitempty\"`\n\t// Optional: when GraphQL parsing or validation against the GraphQL schema fails, these fields\n\t// can include reference to the operation being sent for users to dig into the set of operations\n\t// that are failing validation.\n\tUnexecutedOperationBody string             `protobuf:\"bytes,27,opt,name=unexecutedOperationBody,proto3\" json:\"unexecutedOperationBody,omitempty\"`\n\tUnexecutedOperationName string             `protobuf:\"bytes,28,opt,name=unexecutedOperationName,proto3\" json:\"unexecutedOperationName,omitempty\"`\n\tDetails                 *Trace_Details     `protobuf:\"bytes,6,opt,name=details,proto3\" json:\"details,omitempty\"`\n\tClientName              string             `protobuf:\"bytes,7,opt,name=client_name,json=clientName,proto3\" json:\"client_name,omitempty\"`\n\tClientVersion           string             `protobuf:\"bytes,8,opt,name=client_version,json=clientVersion,proto3\" json:\"client_version,omitempty\"`\n\tHttp                    *Trace_HTTP        `protobuf:\"bytes,10,opt,name=http,proto3\" json:\"http,omitempty\"`\n\tCachePolicy             *Trace_CachePolicy `protobuf:\"bytes,18,opt,name=cache_policy,json=cachePolicy,proto3\" json:\"cache_policy,omitempty\"`\n\t// If this Trace was created by a gateway, this is the query plan, including\n\t// sub-Traces for federated services. Note that the 'root' tree on the\n\t// top-level Trace won't contain any resolvers (though it could contain errors\n\t// that occurred in the gateway itself).\n\tQueryPlan *Trace_QueryPlanNode `protobuf:\"bytes,26,opt,name=query_plan,json=queryPlan,proto3\" json:\"query_plan,omitempty\"`\n\t// Was this response served from a full query response cache?  (In that case\n\t// the node tree will have no resolvers.)\n\tFullQueryCacheHit bool `protobuf:\"varint,20,opt,name=full_query_cache_hit,json=fullQueryCacheHit,proto3\" json:\"full_query_cache_hit,omitempty\"`\n\t// Was this query specified successfully as a persisted query hash?\n\tPersistedQueryHit bool `protobuf:\"varint,21,opt,name=persisted_query_hit,json=persistedQueryHit,proto3\" json:\"persisted_query_hit,omitempty\"`\n\t// Did this query contain both a full query string and a persisted query hash?\n\t// (This typically means that a previous request was rejected as an unknown\n\t// persisted query.)\n\tPersistedQueryRegister bool `protobuf:\"varint,22,opt,name=persisted_query_register,json=persistedQueryRegister,proto3\" json:\"persisted_query_register,omitempty\"`\n\t// Was this operation registered and a part of the safelist?\n\tRegisteredOperation bool `protobuf:\"varint,24,opt,name=registered_operation,json=registeredOperation,proto3\" json:\"registered_operation,omitempty\"`\n\t// Was this operation forbidden due to lack of safelisting?\n\tForbiddenOperation bool `protobuf:\"varint,25,opt,name=forbidden_operation,json=forbiddenOperation,proto3\" json:\"forbidden_operation,omitempty\"`\n\t// Some servers don't do field-level instrumentation for every request and assign\n\t// each request a \"weight\" for each request that they do instrument. When this\n\t// trace is aggregated into field usage stats, it should count as this value\n\t// towards the estimated_execution_count rather than just 1. This value should\n\t// typically be at least 1.\n\t//\n\t// 0 is treated as 1 for backwards compatibility.\n\tFieldExecutionWeight float64 `protobuf:\"fixed64,31,opt,name=field_execution_weight,json=fieldExecutionWeight,proto3\" json:\"field_execution_weight,omitempty\"`\n}\n\nfunc (x *Trace) Reset() {\n\t*x = Trace{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_apollo_trace_proto_msgTypes[0]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Trace) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Trace) ProtoMessage() {}\n\nfunc (x *Trace) ProtoReflect() protoreflect.Message {\n\tmi := &file_apollo_trace_proto_msgTypes[0]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Trace.ProtoReflect.Descriptor instead.\nfunc (*Trace) Descriptor() ([]byte, []int) {\n\treturn file_apollo_trace_proto_rawDescGZIP(), []int{0}\n}\n\nfunc (x *Trace) GetStartTime() *timestamppb.Timestamp {\n\tif x != nil {\n\t\treturn x.StartTime\n\t}\n\treturn nil\n}\n\nfunc (x *Trace) GetEndTime() *timestamppb.Timestamp {\n\tif x != nil {\n\t\treturn x.EndTime\n\t}\n\treturn nil\n}\n\nfunc (x *Trace) GetDurationNs() uint64 {\n\tif x != nil {\n\t\treturn x.DurationNs\n\t}\n\treturn 0\n}\n\nfunc (x *Trace) GetRoot() *Trace_Node {\n\tif x != nil {\n\t\treturn x.Root\n\t}\n\treturn nil\n}\n\nfunc (x *Trace) GetSignature() string {\n\tif x != nil {\n\t\treturn x.Signature\n\t}\n\treturn \"\"\n}\n\nfunc (x *Trace) GetUnexecutedOperationBody() string {\n\tif x != nil {\n\t\treturn x.UnexecutedOperationBody\n\t}\n\treturn \"\"\n}\n\nfunc (x *Trace) GetUnexecutedOperationName() string {\n\tif x != nil {\n\t\treturn x.UnexecutedOperationName\n\t}\n\treturn \"\"\n}\n\nfunc (x *Trace) GetDetails() *Trace_Details {\n\tif x != nil {\n\t\treturn x.Details\n\t}\n\treturn nil\n}\n\nfunc (x *Trace) GetClientName() string {\n\tif x != nil {\n\t\treturn x.ClientName\n\t}\n\treturn \"\"\n}\n\nfunc (x *Trace) GetClientVersion() string {\n\tif x != nil {\n\t\treturn x.ClientVersion\n\t}\n\treturn \"\"\n}\n\nfunc (x *Trace) GetHttp() *Trace_HTTP {\n\tif x != nil {\n\t\treturn x.Http\n\t}\n\treturn nil\n}\n\nfunc (x *Trace) GetCachePolicy() *Trace_CachePolicy {\n\tif x != nil {\n\t\treturn x.CachePolicy\n\t}\n\treturn nil\n}\n\nfunc (x *Trace) GetQueryPlan() *Trace_QueryPlanNode {\n\tif x != nil {\n\t\treturn x.QueryPlan\n\t}\n\treturn nil\n}\n\nfunc (x *Trace) GetFullQueryCacheHit() bool {\n\tif x != nil {\n\t\treturn x.FullQueryCacheHit\n\t}\n\treturn false\n}\n\nfunc (x *Trace) GetPersistedQueryHit() bool {\n\tif x != nil {\n\t\treturn x.PersistedQueryHit\n\t}\n\treturn false\n}\n\nfunc (x *Trace) GetPersistedQueryRegister() bool {\n\tif x != nil {\n\t\treturn x.PersistedQueryRegister\n\t}\n\treturn false\n}\n\nfunc (x *Trace) GetRegisteredOperation() bool {\n\tif x != nil {\n\t\treturn x.RegisteredOperation\n\t}\n\treturn false\n}\n\nfunc (x *Trace) GetForbiddenOperation() bool {\n\tif x != nil {\n\t\treturn x.ForbiddenOperation\n\t}\n\treturn false\n}\n\nfunc (x *Trace) GetFieldExecutionWeight() float64 {\n\tif x != nil {\n\t\treturn x.FieldExecutionWeight\n\t}\n\treturn 0\n}\n\n// The `service` value embedded within the header key is not guaranteed to contain an actual service,\n// and, in most cases, the service information is trusted to come from upstream processing. If the\n// service _is_ specified in this header, then it is checked to match the context that is reporting it.\n// Otherwise, the service information is deduced from the token context of the reporter and then sent\n// along via other mechanisms (in Kafka, the `ReportKafkaKey). The other information (hostname,\n// agent_version, etc.) is sent by the Apollo Engine Reporting agent, but we do not currently save that\n// information to any of our persistent storage.\ntype ReportHeader struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// eg \"mygraph@myvariant\"\n\tGraphRef string `protobuf:\"bytes,12,opt,name=graph_ref,json=graphRef,proto3\" json:\"graph_ref,omitempty\"`\n\t// eg \"host-01.example.com\"\n\tHostname string `protobuf:\"bytes,5,opt,name=hostname,proto3\" json:\"hostname,omitempty\"`\n\t// eg \"engineproxy 0.1.0\"\n\tAgentVersion string `protobuf:\"bytes,6,opt,name=agent_version,json=agentVersion,proto3\" json:\"agent_version,omitempty\"` // required\n\t// eg \"prod-4279-20160804T065423Z-5-g3cf0aa8\" (taken from `git describe --tags`)\n\tServiceVersion string `protobuf:\"bytes,7,opt,name=service_version,json=serviceVersion,proto3\" json:\"service_version,omitempty\"`\n\t// eg \"node v4.6.0\"\n\tRuntimeVersion string `protobuf:\"bytes,8,opt,name=runtime_version,json=runtimeVersion,proto3\" json:\"runtime_version,omitempty\"`\n\t// eg \"Linux box 4.6.5-1-ec2 #1 SMP Mon Aug 1 02:31:38 PDT 2016 x86_64 GNU/Linux\"\n\tUname string `protobuf:\"bytes,9,opt,name=uname,proto3\" json:\"uname,omitempty\"`\n\t// An id that is used to represent the schema to Apollo Graph Manager\n\t// Using this in place of what used to be schema_hash, since that is no longer\n\t// attached to a schema in the backend.\n\tExecutableSchemaId string `protobuf:\"bytes,11,opt,name=executable_schema_id,json=executableSchemaId,proto3\" json:\"executable_schema_id,omitempty\"`\n}\n\nfunc (x *ReportHeader) Reset() {\n\t*x = ReportHeader{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_apollo_trace_proto_msgTypes[1]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ReportHeader) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ReportHeader) ProtoMessage() {}\n\nfunc (x *ReportHeader) ProtoReflect() protoreflect.Message {\n\tmi := &file_apollo_trace_proto_msgTypes[1]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ReportHeader.ProtoReflect.Descriptor instead.\nfunc (*ReportHeader) Descriptor() ([]byte, []int) {\n\treturn file_apollo_trace_proto_rawDescGZIP(), []int{1}\n}\n\nfunc (x *ReportHeader) GetGraphRef() string {\n\tif x != nil {\n\t\treturn x.GraphRef\n\t}\n\treturn \"\"\n}\n\nfunc (x *ReportHeader) GetHostname() string {\n\tif x != nil {\n\t\treturn x.Hostname\n\t}\n\treturn \"\"\n}\n\nfunc (x *ReportHeader) GetAgentVersion() string {\n\tif x != nil {\n\t\treturn x.AgentVersion\n\t}\n\treturn \"\"\n}\n\nfunc (x *ReportHeader) GetServiceVersion() string {\n\tif x != nil {\n\t\treturn x.ServiceVersion\n\t}\n\treturn \"\"\n}\n\nfunc (x *ReportHeader) GetRuntimeVersion() string {\n\tif x != nil {\n\t\treturn x.RuntimeVersion\n\t}\n\treturn \"\"\n}\n\nfunc (x *ReportHeader) GetUname() string {\n\tif x != nil {\n\t\treturn x.Uname\n\t}\n\treturn \"\"\n}\n\nfunc (x *ReportHeader) GetExecutableSchemaId() string {\n\tif x != nil {\n\t\treturn x.ExecutableSchemaId\n\t}\n\treturn \"\"\n}\n\ntype PathErrorStats struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tChildren                map[string]*PathErrorStats `protobuf:\"bytes,1,rep,name=children,proto3\" json:\"children,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\tErrorsCount             uint64                     `protobuf:\"varint,4,opt,name=errors_count,json=errorsCount,proto3\" json:\"errors_count,omitempty\"`\n\tRequestsWithErrorsCount uint64                     `protobuf:\"varint,5,opt,name=requests_with_errors_count,json=requestsWithErrorsCount,proto3\" json:\"requests_with_errors_count,omitempty\"`\n}\n\nfunc (x *PathErrorStats) Reset() {\n\t*x = PathErrorStats{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_apollo_trace_proto_msgTypes[2]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *PathErrorStats) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*PathErrorStats) ProtoMessage() {}\n\nfunc (x *PathErrorStats) ProtoReflect() protoreflect.Message {\n\tmi := &file_apollo_trace_proto_msgTypes[2]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use PathErrorStats.ProtoReflect.Descriptor instead.\nfunc (*PathErrorStats) Descriptor() ([]byte, []int) {\n\treturn file_apollo_trace_proto_rawDescGZIP(), []int{2}\n}\n\nfunc (x *PathErrorStats) GetChildren() map[string]*PathErrorStats {\n\tif x != nil {\n\t\treturn x.Children\n\t}\n\treturn nil\n}\n\nfunc (x *PathErrorStats) GetErrorsCount() uint64 {\n\tif x != nil {\n\t\treturn x.ErrorsCount\n\t}\n\treturn 0\n}\n\nfunc (x *PathErrorStats) GetRequestsWithErrorsCount() uint64 {\n\tif x != nil {\n\t\treturn x.RequestsWithErrorsCount\n\t}\n\treturn 0\n}\n\ntype QueryLatencyStats struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tLatencyCount             []int64         `protobuf:\"zigzag64,13,rep,packed,name=latency_count,json=latencyCount,proto3\" json:\"latency_count,omitempty\"`\n\tRequestCount             uint64          `protobuf:\"varint,2,opt,name=request_count,json=requestCount,proto3\" json:\"request_count,omitempty\"`\n\tCacheHits                uint64          `protobuf:\"varint,3,opt,name=cache_hits,json=cacheHits,proto3\" json:\"cache_hits,omitempty\"`\n\tPersistedQueryHits       uint64          `protobuf:\"varint,4,opt,name=persisted_query_hits,json=persistedQueryHits,proto3\" json:\"persisted_query_hits,omitempty\"`\n\tPersistedQueryMisses     uint64          `protobuf:\"varint,5,opt,name=persisted_query_misses,json=persistedQueryMisses,proto3\" json:\"persisted_query_misses,omitempty\"`\n\tCacheLatencyCount        []int64         `protobuf:\"zigzag64,14,rep,packed,name=cache_latency_count,json=cacheLatencyCount,proto3\" json:\"cache_latency_count,omitempty\"`\n\tRootErrorStats           *PathErrorStats `protobuf:\"bytes,7,opt,name=root_error_stats,json=rootErrorStats,proto3\" json:\"root_error_stats,omitempty\"`\n\tRequestsWithErrorsCount  uint64          `protobuf:\"varint,8,opt,name=requests_with_errors_count,json=requestsWithErrorsCount,proto3\" json:\"requests_with_errors_count,omitempty\"`\n\tPublicCacheTtlCount      []int64         `protobuf:\"zigzag64,15,rep,packed,name=public_cache_ttl_count,json=publicCacheTtlCount,proto3\" json:\"public_cache_ttl_count,omitempty\"`\n\tPrivateCacheTtlCount     []int64         `protobuf:\"zigzag64,16,rep,packed,name=private_cache_ttl_count,json=privateCacheTtlCount,proto3\" json:\"private_cache_ttl_count,omitempty\"`\n\tRegisteredOperationCount uint64          `protobuf:\"varint,11,opt,name=registered_operation_count,json=registeredOperationCount,proto3\" json:\"registered_operation_count,omitempty\"`\n\tForbiddenOperationCount  uint64          `protobuf:\"varint,12,opt,name=forbidden_operation_count,json=forbiddenOperationCount,proto3\" json:\"forbidden_operation_count,omitempty\"`\n\t// The number of requests that were executed without field-level\n\t// instrumentation (and thus do not contribute to `observed_execution_count`\n\t// fields on this message's cousin-twice-removed FieldStats).\n\tRequestsWithoutFieldInstrumentation uint64 `protobuf:\"varint,17,opt,name=requests_without_field_instrumentation,json=requestsWithoutFieldInstrumentation,proto3\" json:\"requests_without_field_instrumentation,omitempty\"`\n}\n\nfunc (x *QueryLatencyStats) Reset() {\n\t*x = QueryLatencyStats{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_apollo_trace_proto_msgTypes[3]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *QueryLatencyStats) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*QueryLatencyStats) ProtoMessage() {}\n\nfunc (x *QueryLatencyStats) ProtoReflect() protoreflect.Message {\n\tmi := &file_apollo_trace_proto_msgTypes[3]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use QueryLatencyStats.ProtoReflect.Descriptor instead.\nfunc (*QueryLatencyStats) Descriptor() ([]byte, []int) {\n\treturn file_apollo_trace_proto_rawDescGZIP(), []int{3}\n}\n\nfunc (x *QueryLatencyStats) GetLatencyCount() []int64 {\n\tif x != nil {\n\t\treturn x.LatencyCount\n\t}\n\treturn nil\n}\n\nfunc (x *QueryLatencyStats) GetRequestCount() uint64 {\n\tif x != nil {\n\t\treturn x.RequestCount\n\t}\n\treturn 0\n}\n\nfunc (x *QueryLatencyStats) GetCacheHits() uint64 {\n\tif x != nil {\n\t\treturn x.CacheHits\n\t}\n\treturn 0\n}\n\nfunc (x *QueryLatencyStats) GetPersistedQueryHits() uint64 {\n\tif x != nil {\n\t\treturn x.PersistedQueryHits\n\t}\n\treturn 0\n}\n\nfunc (x *QueryLatencyStats) GetPersistedQueryMisses() uint64 {\n\tif x != nil {\n\t\treturn x.PersistedQueryMisses\n\t}\n\treturn 0\n}\n\nfunc (x *QueryLatencyStats) GetCacheLatencyCount() []int64 {\n\tif x != nil {\n\t\treturn x.CacheLatencyCount\n\t}\n\treturn nil\n}\n\nfunc (x *QueryLatencyStats) GetRootErrorStats() *PathErrorStats {\n\tif x != nil {\n\t\treturn x.RootErrorStats\n\t}\n\treturn nil\n}\n\nfunc (x *QueryLatencyStats) GetRequestsWithErrorsCount() uint64 {\n\tif x != nil {\n\t\treturn x.RequestsWithErrorsCount\n\t}\n\treturn 0\n}\n\nfunc (x *QueryLatencyStats) GetPublicCacheTtlCount() []int64 {\n\tif x != nil {\n\t\treturn x.PublicCacheTtlCount\n\t}\n\treturn nil\n}\n\nfunc (x *QueryLatencyStats) GetPrivateCacheTtlCount() []int64 {\n\tif x != nil {\n\t\treturn x.PrivateCacheTtlCount\n\t}\n\treturn nil\n}\n\nfunc (x *QueryLatencyStats) GetRegisteredOperationCount() uint64 {\n\tif x != nil {\n\t\treturn x.RegisteredOperationCount\n\t}\n\treturn 0\n}\n\nfunc (x *QueryLatencyStats) GetForbiddenOperationCount() uint64 {\n\tif x != nil {\n\t\treturn x.ForbiddenOperationCount\n\t}\n\treturn 0\n}\n\nfunc (x *QueryLatencyStats) GetRequestsWithoutFieldInstrumentation() uint64 {\n\tif x != nil {\n\t\treturn x.RequestsWithoutFieldInstrumentation\n\t}\n\treturn 0\n}\n\ntype StatsContext struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tClientName    string `protobuf:\"bytes,2,opt,name=client_name,json=clientName,proto3\" json:\"client_name,omitempty\"`\n\tClientVersion string `protobuf:\"bytes,3,opt,name=client_version,json=clientVersion,proto3\" json:\"client_version,omitempty\"`\n}\n\nfunc (x *StatsContext) Reset() {\n\t*x = StatsContext{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_apollo_trace_proto_msgTypes[4]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *StatsContext) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*StatsContext) ProtoMessage() {}\n\nfunc (x *StatsContext) ProtoReflect() protoreflect.Message {\n\tmi := &file_apollo_trace_proto_msgTypes[4]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use StatsContext.ProtoReflect.Descriptor instead.\nfunc (*StatsContext) Descriptor() ([]byte, []int) {\n\treturn file_apollo_trace_proto_rawDescGZIP(), []int{4}\n}\n\nfunc (x *StatsContext) GetClientName() string {\n\tif x != nil {\n\t\treturn x.ClientName\n\t}\n\treturn \"\"\n}\n\nfunc (x *StatsContext) GetClientVersion() string {\n\tif x != nil {\n\t\treturn x.ClientVersion\n\t}\n\treturn \"\"\n}\n\ntype ContextualizedQueryLatencyStats struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tQueryLatencyStats *QueryLatencyStats `protobuf:\"bytes,1,opt,name=query_latency_stats,json=queryLatencyStats,proto3\" json:\"query_latency_stats,omitempty\"`\n\tContext           *StatsContext      `protobuf:\"bytes,2,opt,name=context,proto3\" json:\"context,omitempty\"`\n}\n\nfunc (x *ContextualizedQueryLatencyStats) Reset() {\n\t*x = ContextualizedQueryLatencyStats{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_apollo_trace_proto_msgTypes[5]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ContextualizedQueryLatencyStats) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ContextualizedQueryLatencyStats) ProtoMessage() {}\n\nfunc (x *ContextualizedQueryLatencyStats) ProtoReflect() protoreflect.Message {\n\tmi := &file_apollo_trace_proto_msgTypes[5]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ContextualizedQueryLatencyStats.ProtoReflect.Descriptor instead.\nfunc (*ContextualizedQueryLatencyStats) Descriptor() ([]byte, []int) {\n\treturn file_apollo_trace_proto_rawDescGZIP(), []int{5}\n}\n\nfunc (x *ContextualizedQueryLatencyStats) GetQueryLatencyStats() *QueryLatencyStats {\n\tif x != nil {\n\t\treturn x.QueryLatencyStats\n\t}\n\treturn nil\n}\n\nfunc (x *ContextualizedQueryLatencyStats) GetContext() *StatsContext {\n\tif x != nil {\n\t\treturn x.Context\n\t}\n\treturn nil\n}\n\ntype ContextualizedTypeStats struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tContext     *StatsContext        `protobuf:\"bytes,1,opt,name=context,proto3\" json:\"context,omitempty\"`\n\tPerTypeStat map[string]*TypeStat `protobuf:\"bytes,2,rep,name=per_type_stat,json=perTypeStat,proto3\" json:\"per_type_stat,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n}\n\nfunc (x *ContextualizedTypeStats) Reset() {\n\t*x = ContextualizedTypeStats{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_apollo_trace_proto_msgTypes[6]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ContextualizedTypeStats) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ContextualizedTypeStats) ProtoMessage() {}\n\nfunc (x *ContextualizedTypeStats) ProtoReflect() protoreflect.Message {\n\tmi := &file_apollo_trace_proto_msgTypes[6]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ContextualizedTypeStats.ProtoReflect.Descriptor instead.\nfunc (*ContextualizedTypeStats) Descriptor() ([]byte, []int) {\n\treturn file_apollo_trace_proto_rawDescGZIP(), []int{6}\n}\n\nfunc (x *ContextualizedTypeStats) GetContext() *StatsContext {\n\tif x != nil {\n\t\treturn x.Context\n\t}\n\treturn nil\n}\n\nfunc (x *ContextualizedTypeStats) GetPerTypeStat() map[string]*TypeStat {\n\tif x != nil {\n\t\treturn x.PerTypeStat\n\t}\n\treturn nil\n}\n\ntype FieldStat struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tReturnType string `protobuf:\"bytes,3,opt,name=return_type,json=returnType,proto3\" json:\"return_type,omitempty\"` // required; eg \"String!\" for User.email:String!\n\t// Number of errors whose path is this field. Note that we assume that error\n\t// tracking does *not* require field-level instrumentation so this *will*\n\t// include errors from requests that don't contribute to the\n\t// `observed_execution_count` field (and does not need to be scaled by\n\t// field_execution_weight).\n\tErrorsCount uint64 `protobuf:\"varint,4,opt,name=errors_count,json=errorsCount,proto3\" json:\"errors_count,omitempty\"`\n\t// Number of times that the resolver for this field is directly observed being\n\t// executed.\n\tObservedExecutionCount uint64 `protobuf:\"varint,5,opt,name=observed_execution_count,json=observedExecutionCount,proto3\" json:\"observed_execution_count,omitempty\"`\n\t// Same as `count` but potentially scaled upwards if the server was only\n\t// performing field-level instrumentation on a sampling of operations.  For\n\t// example, if the server randomly instruments 1% of requests for this\n\t// operation, this number will be 100 times greater than\n\t// `observed_execution_count`. (When aggregating a Trace into FieldStats,\n\t// this number goes up by the trace's `field_execution_weight` for each\n\t// observed field execution, while `observed_execution_count` above goes\n\t// up by 1.)\n\tEstimatedExecutionCount uint64 `protobuf:\"varint,10,opt,name=estimated_execution_count,json=estimatedExecutionCount,proto3\" json:\"estimated_execution_count,omitempty\"`\n\t// Number of times the resolver for this field is executed that resulted in\n\t// at least one error. \"Request\" is a misnomer here as this corresponds to\n\t// resolver calls, not overall operations. Like `errors_count` above, this\n\t// includes all requests rather than just requests with field-level\n\t// instrumentation.\n\tRequestsWithErrorsCount uint64 `protobuf:\"varint,6,opt,name=requests_with_errors_count,json=requestsWithErrorsCount,proto3\" json:\"requests_with_errors_count,omitempty\"`\n\t// Duration histogram for the latency of this field. Note that it is scaled in\n\t// the same way as estimated_execution_count so its \"total count\" might be\n\t// greater than `observed_execution_count` and may not exactly equal\n\t// `estimated_execution_count` due to rounding.\n\tLatencyCount []int64 `protobuf:\"zigzag64,9,rep,packed,name=latency_count,json=latencyCount,proto3\" json:\"latency_count,omitempty\"`\n}\n\nfunc (x *FieldStat) Reset() {\n\t*x = FieldStat{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_apollo_trace_proto_msgTypes[7]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *FieldStat) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*FieldStat) ProtoMessage() {}\n\nfunc (x *FieldStat) ProtoReflect() protoreflect.Message {\n\tmi := &file_apollo_trace_proto_msgTypes[7]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use FieldStat.ProtoReflect.Descriptor instead.\nfunc (*FieldStat) Descriptor() ([]byte, []int) {\n\treturn file_apollo_trace_proto_rawDescGZIP(), []int{7}\n}\n\nfunc (x *FieldStat) GetReturnType() string {\n\tif x != nil {\n\t\treturn x.ReturnType\n\t}\n\treturn \"\"\n}\n\nfunc (x *FieldStat) GetErrorsCount() uint64 {\n\tif x != nil {\n\t\treturn x.ErrorsCount\n\t}\n\treturn 0\n}\n\nfunc (x *FieldStat) GetObservedExecutionCount() uint64 {\n\tif x != nil {\n\t\treturn x.ObservedExecutionCount\n\t}\n\treturn 0\n}\n\nfunc (x *FieldStat) GetEstimatedExecutionCount() uint64 {\n\tif x != nil {\n\t\treturn x.EstimatedExecutionCount\n\t}\n\treturn 0\n}\n\nfunc (x *FieldStat) GetRequestsWithErrorsCount() uint64 {\n\tif x != nil {\n\t\treturn x.RequestsWithErrorsCount\n\t}\n\treturn 0\n}\n\nfunc (x *FieldStat) GetLatencyCount() []int64 {\n\tif x != nil {\n\t\treturn x.LatencyCount\n\t}\n\treturn nil\n}\n\ntype TypeStat struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Key is (eg) \"email\" for User.email:String!\n\tPerFieldStat map[string]*FieldStat `protobuf:\"bytes,3,rep,name=per_field_stat,json=perFieldStat,proto3\" json:\"per_field_stat,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n}\n\nfunc (x *TypeStat) Reset() {\n\t*x = TypeStat{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_apollo_trace_proto_msgTypes[8]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *TypeStat) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*TypeStat) ProtoMessage() {}\n\nfunc (x *TypeStat) ProtoReflect() protoreflect.Message {\n\tmi := &file_apollo_trace_proto_msgTypes[8]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use TypeStat.ProtoReflect.Descriptor instead.\nfunc (*TypeStat) Descriptor() ([]byte, []int) {\n\treturn file_apollo_trace_proto_rawDescGZIP(), []int{8}\n}\n\nfunc (x *TypeStat) GetPerFieldStat() map[string]*FieldStat {\n\tif x != nil {\n\t\treturn x.PerFieldStat\n\t}\n\treturn nil\n}\n\ntype ReferencedFieldsForType struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Contains (eg) \"email\" for User.email:String!\n\tFieldNames []string `protobuf:\"bytes,1,rep,name=field_names,json=fieldNames,proto3\" json:\"field_names,omitempty\"`\n\t// True if this type is an interface.\n\tIsInterface bool `protobuf:\"varint,2,opt,name=is_interface,json=isInterface,proto3\" json:\"is_interface,omitempty\"`\n}\n\nfunc (x *ReferencedFieldsForType) Reset() {\n\t*x = ReferencedFieldsForType{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_apollo_trace_proto_msgTypes[9]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ReferencedFieldsForType) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ReferencedFieldsForType) ProtoMessage() {}\n\nfunc (x *ReferencedFieldsForType) ProtoReflect() protoreflect.Message {\n\tmi := &file_apollo_trace_proto_msgTypes[9]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ReferencedFieldsForType.ProtoReflect.Descriptor instead.\nfunc (*ReferencedFieldsForType) Descriptor() ([]byte, []int) {\n\treturn file_apollo_trace_proto_rawDescGZIP(), []int{9}\n}\n\nfunc (x *ReferencedFieldsForType) GetFieldNames() []string {\n\tif x != nil {\n\t\treturn x.FieldNames\n\t}\n\treturn nil\n}\n\nfunc (x *ReferencedFieldsForType) GetIsInterface() bool {\n\tif x != nil {\n\t\treturn x.IsInterface\n\t}\n\treturn false\n}\n\n// This is the top-level message used by the new traces ingress. This\n// is designed for the apollo-engine-reporting TypeScript agent and will\n// eventually be documented as a public ingress API. This message consists\n// solely of traces; the equivalent of the StatsReport is automatically\n// generated server-side from this message. Agent should either send a trace or include it in the stats\n// for every request in this report. Generally, buffering up until a large\n// size has been reached (say, 4MB) or 5-10 seconds has passed is appropriate.\n// This message used to be know as FullTracesReport, but got renamed since it isn't just for traces anymore\ntype Report struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tHeader *ReportHeader `protobuf:\"bytes,1,opt,name=header,proto3\" json:\"header,omitempty\"`\n\t// key is statsReportKey (# operationName\\nsignature) Note that the nested\n\t// traces will *not* have a signature or details.operationName (because the\n\t// key is adequate).\n\t//\n\t// We also assume that traces don't have\n\t// legacy_per_query_implicit_operation_name, and we don't require them to have\n\t// details.raw_query (which would consume a lot of space and has privacy/data\n\t// access issues, and isn't currently exposed by our app anyway).\n\tTracesPerQuery map[string]*TracesAndStats `protobuf:\"bytes,5,rep,name=traces_per_query,json=tracesPerQuery,proto3\" json:\"traces_per_query,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\t// This is the time that the requests in this trace are considered to have taken place\n\t// If this field is not present the max of the end_time of each trace will be used instead.\n\t// If there are no traces and no end_time present the report will not be able to be processed.\n\t// Note: This will override the end_time from traces.\n\tEndTime *timestamppb.Timestamp `protobuf:\"bytes,2,opt,name=end_time,json=endTime,proto3\" json:\"end_time,omitempty\"` // required if no traces in this message\n\t// Total number of operations processed during this period.\n\tOperationCount uint64 `protobuf:\"varint,6,opt,name=operation_count,json=operationCount,proto3\" json:\"operation_count,omitempty\"`\n}\n\nfunc (x *Report) Reset() {\n\t*x = Report{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_apollo_trace_proto_msgTypes[10]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Report) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Report) ProtoMessage() {}\n\nfunc (x *Report) ProtoReflect() protoreflect.Message {\n\tmi := &file_apollo_trace_proto_msgTypes[10]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Report.ProtoReflect.Descriptor instead.\nfunc (*Report) Descriptor() ([]byte, []int) {\n\treturn file_apollo_trace_proto_rawDescGZIP(), []int{10}\n}\n\nfunc (x *Report) GetHeader() *ReportHeader {\n\tif x != nil {\n\t\treturn x.Header\n\t}\n\treturn nil\n}\n\nfunc (x *Report) GetTracesPerQuery() map[string]*TracesAndStats {\n\tif x != nil {\n\t\treturn x.TracesPerQuery\n\t}\n\treturn nil\n}\n\nfunc (x *Report) GetEndTime() *timestamppb.Timestamp {\n\tif x != nil {\n\t\treturn x.EndTime\n\t}\n\treturn nil\n}\n\nfunc (x *Report) GetOperationCount() uint64 {\n\tif x != nil {\n\t\treturn x.OperationCount\n\t}\n\treturn 0\n}\n\ntype ContextualizedStats struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tContext           *StatsContext      `protobuf:\"bytes,1,opt,name=context,proto3\" json:\"context,omitempty\"`\n\tQueryLatencyStats *QueryLatencyStats `protobuf:\"bytes,2,opt,name=query_latency_stats,json=queryLatencyStats,proto3\" json:\"query_latency_stats,omitempty\"`\n\t// Key is type name. This structure provides data for the count and latency of individual\n\t// field executions and thus only reflects operations for which field-level tracing occurred.\n\tPerTypeStat map[string]*TypeStat `protobuf:\"bytes,3,rep,name=per_type_stat,json=perTypeStat,proto3\" json:\"per_type_stat,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n}\n\nfunc (x *ContextualizedStats) Reset() {\n\t*x = ContextualizedStats{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_apollo_trace_proto_msgTypes[11]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ContextualizedStats) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ContextualizedStats) ProtoMessage() {}\n\nfunc (x *ContextualizedStats) ProtoReflect() protoreflect.Message {\n\tmi := &file_apollo_trace_proto_msgTypes[11]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ContextualizedStats.ProtoReflect.Descriptor instead.\nfunc (*ContextualizedStats) Descriptor() ([]byte, []int) {\n\treturn file_apollo_trace_proto_rawDescGZIP(), []int{11}\n}\n\nfunc (x *ContextualizedStats) GetContext() *StatsContext {\n\tif x != nil {\n\t\treturn x.Context\n\t}\n\treturn nil\n}\n\nfunc (x *ContextualizedStats) GetQueryLatencyStats() *QueryLatencyStats {\n\tif x != nil {\n\t\treturn x.QueryLatencyStats\n\t}\n\treturn nil\n}\n\nfunc (x *ContextualizedStats) GetPerTypeStat() map[string]*TypeStat {\n\tif x != nil {\n\t\treturn x.PerTypeStat\n\t}\n\treturn nil\n}\n\n// A sequence of traces and stats. An individual operation should either be described as a trace\n// or as part of stats, but not both.\ntype TracesAndStats struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tTrace            []*Trace               `protobuf:\"bytes,1,rep,name=trace,proto3\" json:\"trace,omitempty\"`\n\tStatsWithContext []*ContextualizedStats `protobuf:\"bytes,2,rep,name=stats_with_context,json=statsWithContext,proto3\" json:\"stats_with_context,omitempty\"`\n\t// This describes the fields referenced in the operation. Note that this may\n\t// include fields that don't show up in FieldStats (due to being interface fields,\n\t// being nested under null fields or empty lists or non-matching fragments or\n\t// `@include` or `@skip`, etc). It also may be missing fields that show up in FieldStats\n\t// (as FieldStats will include the concrete object type for fields referenced\n\t// via an interface type).\n\tReferencedFieldsByType map[string]*ReferencedFieldsForType `protobuf:\"bytes,4,rep,name=referenced_fields_by_type,json=referencedFieldsByType,proto3\" json:\"referenced_fields_by_type,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\t// This field is used to validate that the algorithm used to construct `stats_with_context`\n\t// matches similar algorithms in Apollo's servers. It is otherwise ignored and should not\n\t// be included in reports.\n\tInternalTracesContributingToStats []*Trace `protobuf:\"bytes,3,rep,name=internal_traces_contributing_to_stats,json=internalTracesContributingToStats,proto3\" json:\"internal_traces_contributing_to_stats,omitempty\"`\n}\n\nfunc (x *TracesAndStats) Reset() {\n\t*x = TracesAndStats{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_apollo_trace_proto_msgTypes[12]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *TracesAndStats) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*TracesAndStats) ProtoMessage() {}\n\nfunc (x *TracesAndStats) ProtoReflect() protoreflect.Message {\n\tmi := &file_apollo_trace_proto_msgTypes[12]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use TracesAndStats.ProtoReflect.Descriptor instead.\nfunc (*TracesAndStats) Descriptor() ([]byte, []int) {\n\treturn file_apollo_trace_proto_rawDescGZIP(), []int{12}\n}\n\nfunc (x *TracesAndStats) GetTrace() []*Trace {\n\tif x != nil {\n\t\treturn x.Trace\n\t}\n\treturn nil\n}\n\nfunc (x *TracesAndStats) GetStatsWithContext() []*ContextualizedStats {\n\tif x != nil {\n\t\treturn x.StatsWithContext\n\t}\n\treturn nil\n}\n\nfunc (x *TracesAndStats) GetReferencedFieldsByType() map[string]*ReferencedFieldsForType {\n\tif x != nil {\n\t\treturn x.ReferencedFieldsByType\n\t}\n\treturn nil\n}\n\nfunc (x *TracesAndStats) GetInternalTracesContributingToStats() []*Trace {\n\tif x != nil {\n\t\treturn x.InternalTracesContributingToStats\n\t}\n\treturn nil\n}\n\ntype Trace_CachePolicy struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tScope    Trace_CachePolicy_Scope `protobuf:\"varint,1,opt,name=scope,proto3,enum=Trace_CachePolicy_Scope\" json:\"scope,omitempty\"`\n\tMaxAgeNs int64                   `protobuf:\"varint,2,opt,name=max_age_ns,json=maxAgeNs,proto3\" json:\"max_age_ns,omitempty\"` // use 0 for absent, -1 for 0\n}\n\nfunc (x *Trace_CachePolicy) Reset() {\n\t*x = Trace_CachePolicy{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_apollo_trace_proto_msgTypes[13]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Trace_CachePolicy) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Trace_CachePolicy) ProtoMessage() {}\n\nfunc (x *Trace_CachePolicy) ProtoReflect() protoreflect.Message {\n\tmi := &file_apollo_trace_proto_msgTypes[13]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Trace_CachePolicy.ProtoReflect.Descriptor instead.\nfunc (*Trace_CachePolicy) Descriptor() ([]byte, []int) {\n\treturn file_apollo_trace_proto_rawDescGZIP(), []int{0, 0}\n}\n\nfunc (x *Trace_CachePolicy) GetScope() Trace_CachePolicy_Scope {\n\tif x != nil {\n\t\treturn x.Scope\n\t}\n\treturn Trace_CachePolicy_UNKNOWN\n}\n\nfunc (x *Trace_CachePolicy) GetMaxAgeNs() int64 {\n\tif x != nil {\n\t\treturn x.MaxAgeNs\n\t}\n\treturn 0\n}\n\ntype Trace_Details struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// The variables associated with this query (unless the reporting agent is\n\t// configured to keep them all private). Values are JSON: ie, strings are\n\t// enclosed in double quotes, etc.  The value of a private variable is\n\t// the empty string.\n\tVariablesJson map[string]string `protobuf:\"bytes,4,rep,name=variables_json,json=variablesJson,proto3\" json:\"variables_json,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\t// This is deprecated and only used for legacy applications\n\t// don't include this in traces inside a FullTracesReport; the operation\n\t// name for these traces comes from the key of the traces_per_query map.\n\tOperationName string `protobuf:\"bytes,3,opt,name=operation_name,json=operationName,proto3\" json:\"operation_name,omitempty\"`\n}\n\nfunc (x *Trace_Details) Reset() {\n\t*x = Trace_Details{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_apollo_trace_proto_msgTypes[14]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Trace_Details) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Trace_Details) ProtoMessage() {}\n\nfunc (x *Trace_Details) ProtoReflect() protoreflect.Message {\n\tmi := &file_apollo_trace_proto_msgTypes[14]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Trace_Details.ProtoReflect.Descriptor instead.\nfunc (*Trace_Details) Descriptor() ([]byte, []int) {\n\treturn file_apollo_trace_proto_rawDescGZIP(), []int{0, 1}\n}\n\nfunc (x *Trace_Details) GetVariablesJson() map[string]string {\n\tif x != nil {\n\t\treturn x.VariablesJson\n\t}\n\treturn nil\n}\n\nfunc (x *Trace_Details) GetOperationName() string {\n\tif x != nil {\n\t\treturn x.OperationName\n\t}\n\treturn \"\"\n}\n\ntype Trace_Error struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tMessage  string            `protobuf:\"bytes,1,opt,name=message,proto3\" json:\"message,omitempty\"` // required\n\tLocation []*Trace_Location `protobuf:\"bytes,2,rep,name=location,proto3\" json:\"location,omitempty\"`\n\tTimeNs   uint64            `protobuf:\"varint,3,opt,name=time_ns,json=timeNs,proto3\" json:\"time_ns,omitempty\"`\n\tJson     string            `protobuf:\"bytes,4,opt,name=json,proto3\" json:\"json,omitempty\"`\n}\n\nfunc (x *Trace_Error) Reset() {\n\t*x = Trace_Error{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_apollo_trace_proto_msgTypes[15]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Trace_Error) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Trace_Error) ProtoMessage() {}\n\nfunc (x *Trace_Error) ProtoReflect() protoreflect.Message {\n\tmi := &file_apollo_trace_proto_msgTypes[15]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Trace_Error.ProtoReflect.Descriptor instead.\nfunc (*Trace_Error) Descriptor() ([]byte, []int) {\n\treturn file_apollo_trace_proto_rawDescGZIP(), []int{0, 2}\n}\n\nfunc (x *Trace_Error) GetMessage() string {\n\tif x != nil {\n\t\treturn x.Message\n\t}\n\treturn \"\"\n}\n\nfunc (x *Trace_Error) GetLocation() []*Trace_Location {\n\tif x != nil {\n\t\treturn x.Location\n\t}\n\treturn nil\n}\n\nfunc (x *Trace_Error) GetTimeNs() uint64 {\n\tif x != nil {\n\t\treturn x.TimeNs\n\t}\n\treturn 0\n}\n\nfunc (x *Trace_Error) GetJson() string {\n\tif x != nil {\n\t\treturn x.Json\n\t}\n\treturn \"\"\n}\n\ntype Trace_HTTP struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tMethod Trace_HTTP_Method `protobuf:\"varint,1,opt,name=method,proto3,enum=Trace_HTTP_Method\" json:\"method,omitempty\"`\n\tHost   string            `protobuf:\"bytes,2,opt,name=host,proto3\" json:\"host,omitempty\"`\n\tPath   string            `protobuf:\"bytes,3,opt,name=path,proto3\" json:\"path,omitempty\"`\n\t// Should exclude manual blacklist (\"Auth\" by default)\n\tRequestHeaders  map[string]*Trace_HTTP_Values `protobuf:\"bytes,4,rep,name=request_headers,json=requestHeaders,proto3\" json:\"request_headers,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\tResponseHeaders map[string]*Trace_HTTP_Values `protobuf:\"bytes,5,rep,name=response_headers,json=responseHeaders,proto3\" json:\"response_headers,omitempty\" protobuf_key:\"bytes,1,opt,name=key,proto3\" protobuf_val:\"bytes,2,opt,name=value,proto3\"`\n\tStatusCode      uint32                        `protobuf:\"varint,6,opt,name=status_code,json=statusCode,proto3\" json:\"status_code,omitempty\"`\n\tSecure          bool                          `protobuf:\"varint,8,opt,name=secure,proto3\" json:\"secure,omitempty\"`    // TLS was used\n\tProtocol        string                        `protobuf:\"bytes,9,opt,name=protocol,proto3\" json:\"protocol,omitempty\"` // by convention \"HTTP/1.0\", \"HTTP/1.1\", \"HTTP/2\" or \"h2\"\n}\n\nfunc (x *Trace_HTTP) Reset() {\n\t*x = Trace_HTTP{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_apollo_trace_proto_msgTypes[16]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Trace_HTTP) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Trace_HTTP) ProtoMessage() {}\n\nfunc (x *Trace_HTTP) ProtoReflect() protoreflect.Message {\n\tmi := &file_apollo_trace_proto_msgTypes[16]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Trace_HTTP.ProtoReflect.Descriptor instead.\nfunc (*Trace_HTTP) Descriptor() ([]byte, []int) {\n\treturn file_apollo_trace_proto_rawDescGZIP(), []int{0, 3}\n}\n\nfunc (x *Trace_HTTP) GetMethod() Trace_HTTP_Method {\n\tif x != nil {\n\t\treturn x.Method\n\t}\n\treturn Trace_HTTP_UNKNOWN\n}\n\nfunc (x *Trace_HTTP) GetHost() string {\n\tif x != nil {\n\t\treturn x.Host\n\t}\n\treturn \"\"\n}\n\nfunc (x *Trace_HTTP) GetPath() string {\n\tif x != nil {\n\t\treturn x.Path\n\t}\n\treturn \"\"\n}\n\nfunc (x *Trace_HTTP) GetRequestHeaders() map[string]*Trace_HTTP_Values {\n\tif x != nil {\n\t\treturn x.RequestHeaders\n\t}\n\treturn nil\n}\n\nfunc (x *Trace_HTTP) GetResponseHeaders() map[string]*Trace_HTTP_Values {\n\tif x != nil {\n\t\treturn x.ResponseHeaders\n\t}\n\treturn nil\n}\n\nfunc (x *Trace_HTTP) GetStatusCode() uint32 {\n\tif x != nil {\n\t\treturn x.StatusCode\n\t}\n\treturn 0\n}\n\nfunc (x *Trace_HTTP) GetSecure() bool {\n\tif x != nil {\n\t\treturn x.Secure\n\t}\n\treturn false\n}\n\nfunc (x *Trace_HTTP) GetProtocol() string {\n\tif x != nil {\n\t\treturn x.Protocol\n\t}\n\treturn \"\"\n}\n\ntype Trace_Location struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tLine   uint32 `protobuf:\"varint,1,opt,name=line,proto3\" json:\"line,omitempty\"`\n\tColumn uint32 `protobuf:\"varint,2,opt,name=column,proto3\" json:\"column,omitempty\"`\n}\n\nfunc (x *Trace_Location) Reset() {\n\t*x = Trace_Location{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_apollo_trace_proto_msgTypes[17]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Trace_Location) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Trace_Location) ProtoMessage() {}\n\nfunc (x *Trace_Location) ProtoReflect() protoreflect.Message {\n\tmi := &file_apollo_trace_proto_msgTypes[17]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Trace_Location.ProtoReflect.Descriptor instead.\nfunc (*Trace_Location) Descriptor() ([]byte, []int) {\n\treturn file_apollo_trace_proto_rawDescGZIP(), []int{0, 4}\n}\n\nfunc (x *Trace_Location) GetLine() uint32 {\n\tif x != nil {\n\t\treturn x.Line\n\t}\n\treturn 0\n}\n\nfunc (x *Trace_Location) GetColumn() uint32 {\n\tif x != nil {\n\t\treturn x.Column\n\t}\n\treturn 0\n}\n\n// We store information on each resolver execution as a Node on a tree.\n// The structure of the tree corresponds to the structure of the GraphQL\n// response; it does not indicate the order in which resolvers were\n// invoked.  Note that nodes representing indexes (and the root node)\n// don't contain all Node fields (eg types and times).\ntype Trace_Node struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// The name of the field (for Nodes representing a resolver call) or the\n\t// index in a list (for intermediate Nodes representing elements of a list).\n\t// field_name is the name of the field as it appears in the GraphQL\n\t// response: ie, it may be an alias.  (In that case, the original_field_name\n\t// field holds the actual field name from the schema.) In any context where\n\t// we're building up a path, we use the response_name rather than the\n\t// original_field_name.\n\t//\n\t// Types that are assignable to Id:\n\t//\t*Trace_Node_ResponseName\n\t//\t*Trace_Node_Index\n\tId                isTrace_Node_Id `protobuf_oneof:\"id\"`\n\tOriginalFieldName string          `protobuf:\"bytes,14,opt,name=original_field_name,json=originalFieldName,proto3\" json:\"original_field_name,omitempty\"`\n\t// The field's return type; e.g. \"String!\" for User.email:String!\n\tType string `protobuf:\"bytes,3,opt,name=type,proto3\" json:\"type,omitempty\"`\n\t// The field's parent type; e.g. \"User\" for User.email:String!\n\tParentType  string             `protobuf:\"bytes,13,opt,name=parent_type,json=parentType,proto3\" json:\"parent_type,omitempty\"`\n\tCachePolicy *Trace_CachePolicy `protobuf:\"bytes,5,opt,name=cache_policy,json=cachePolicy,proto3\" json:\"cache_policy,omitempty\"`\n\t// relative to the trace's start_time, in ns\n\tStartTime uint64 `protobuf:\"varint,8,opt,name=start_time,json=startTime,proto3\" json:\"start_time,omitempty\"`\n\t// relative to the trace's start_time, in ns\n\tEndTime uint64         `protobuf:\"varint,9,opt,name=end_time,json=endTime,proto3\" json:\"end_time,omitempty\"`\n\tError   []*Trace_Error `protobuf:\"bytes,11,rep,name=error,proto3\" json:\"error,omitempty\"`\n\tChild   []*Trace_Node  `protobuf:\"bytes,12,rep,name=child,proto3\" json:\"child,omitempty\"`\n}\n\nfunc (x *Trace_Node) Reset() {\n\t*x = Trace_Node{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_apollo_trace_proto_msgTypes[18]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Trace_Node) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Trace_Node) ProtoMessage() {}\n\nfunc (x *Trace_Node) ProtoReflect() protoreflect.Message {\n\tmi := &file_apollo_trace_proto_msgTypes[18]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Trace_Node.ProtoReflect.Descriptor instead.\nfunc (*Trace_Node) Descriptor() ([]byte, []int) {\n\treturn file_apollo_trace_proto_rawDescGZIP(), []int{0, 5}\n}\n\nfunc (m *Trace_Node) GetId() isTrace_Node_Id {\n\tif m != nil {\n\t\treturn m.Id\n\t}\n\treturn nil\n}\n\nfunc (x *Trace_Node) GetResponseName() string {\n\tif x, ok := x.GetId().(*Trace_Node_ResponseName); ok {\n\t\treturn x.ResponseName\n\t}\n\treturn \"\"\n}\n\nfunc (x *Trace_Node) GetIndex() uint32 {\n\tif x, ok := x.GetId().(*Trace_Node_Index); ok {\n\t\treturn x.Index\n\t}\n\treturn 0\n}\n\nfunc (x *Trace_Node) GetOriginalFieldName() string {\n\tif x != nil {\n\t\treturn x.OriginalFieldName\n\t}\n\treturn \"\"\n}\n\nfunc (x *Trace_Node) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *Trace_Node) GetParentType() string {\n\tif x != nil {\n\t\treturn x.ParentType\n\t}\n\treturn \"\"\n}\n\nfunc (x *Trace_Node) GetCachePolicy() *Trace_CachePolicy {\n\tif x != nil {\n\t\treturn x.CachePolicy\n\t}\n\treturn nil\n}\n\nfunc (x *Trace_Node) GetStartTime() uint64 {\n\tif x != nil {\n\t\treturn x.StartTime\n\t}\n\treturn 0\n}\n\nfunc (x *Trace_Node) GetEndTime() uint64 {\n\tif x != nil {\n\t\treturn x.EndTime\n\t}\n\treturn 0\n}\n\nfunc (x *Trace_Node) GetError() []*Trace_Error {\n\tif x != nil {\n\t\treturn x.Error\n\t}\n\treturn nil\n}\n\nfunc (x *Trace_Node) GetChild() []*Trace_Node {\n\tif x != nil {\n\t\treturn x.Child\n\t}\n\treturn nil\n}\n\ntype isTrace_Node_Id interface {\n\tisTrace_Node_Id()\n}\n\ntype Trace_Node_ResponseName struct {\n\tResponseName string `protobuf:\"bytes,1,opt,name=response_name,json=responseName,proto3,oneof\"`\n}\n\ntype Trace_Node_Index struct {\n\tIndex uint32 `protobuf:\"varint,2,opt,name=index,proto3,oneof\"`\n}\n\nfunc (*Trace_Node_ResponseName) isTrace_Node_Id() {}\n\nfunc (*Trace_Node_Index) isTrace_Node_Id() {}\n\n// represents a node in the query plan, under which there is a trace tree for that service fetch.\n// In particular, each fetch node represents a call to an implementing service, and calls to implementing\n// services may not be unique. See https://github.com/apollographql/apollo-server/blob/main/packages/apollo-gateway/src/QueryPlan.ts\n// for more information and details.\ntype Trace_QueryPlanNode struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Node:\n\t//\t*Trace_QueryPlanNode_Sequence\n\t//\t*Trace_QueryPlanNode_Parallel\n\t//\t*Trace_QueryPlanNode_Fetch\n\t//\t*Trace_QueryPlanNode_Flatten\n\tNode isTrace_QueryPlanNode_Node `protobuf_oneof:\"node\"`\n}\n\nfunc (x *Trace_QueryPlanNode) Reset() {\n\t*x = Trace_QueryPlanNode{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_apollo_trace_proto_msgTypes[19]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Trace_QueryPlanNode) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Trace_QueryPlanNode) ProtoMessage() {}\n\nfunc (x *Trace_QueryPlanNode) ProtoReflect() protoreflect.Message {\n\tmi := &file_apollo_trace_proto_msgTypes[19]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Trace_QueryPlanNode.ProtoReflect.Descriptor instead.\nfunc (*Trace_QueryPlanNode) Descriptor() ([]byte, []int) {\n\treturn file_apollo_trace_proto_rawDescGZIP(), []int{0, 6}\n}\n\nfunc (m *Trace_QueryPlanNode) GetNode() isTrace_QueryPlanNode_Node {\n\tif m != nil {\n\t\treturn m.Node\n\t}\n\treturn nil\n}\n\nfunc (x *Trace_QueryPlanNode) GetSequence() *Trace_QueryPlanNode_SequenceNode {\n\tif x, ok := x.GetNode().(*Trace_QueryPlanNode_Sequence); ok {\n\t\treturn x.Sequence\n\t}\n\treturn nil\n}\n\nfunc (x *Trace_QueryPlanNode) GetParallel() *Trace_QueryPlanNode_ParallelNode {\n\tif x, ok := x.GetNode().(*Trace_QueryPlanNode_Parallel); ok {\n\t\treturn x.Parallel\n\t}\n\treturn nil\n}\n\nfunc (x *Trace_QueryPlanNode) GetFetch() *Trace_QueryPlanNode_FetchNode {\n\tif x, ok := x.GetNode().(*Trace_QueryPlanNode_Fetch); ok {\n\t\treturn x.Fetch\n\t}\n\treturn nil\n}\n\nfunc (x *Trace_QueryPlanNode) GetFlatten() *Trace_QueryPlanNode_FlattenNode {\n\tif x, ok := x.GetNode().(*Trace_QueryPlanNode_Flatten); ok {\n\t\treturn x.Flatten\n\t}\n\treturn nil\n}\n\ntype isTrace_QueryPlanNode_Node interface {\n\tisTrace_QueryPlanNode_Node()\n}\n\ntype Trace_QueryPlanNode_Sequence struct {\n\tSequence *Trace_QueryPlanNode_SequenceNode `protobuf:\"bytes,1,opt,name=sequence,proto3,oneof\"`\n}\n\ntype Trace_QueryPlanNode_Parallel struct {\n\tParallel *Trace_QueryPlanNode_ParallelNode `protobuf:\"bytes,2,opt,name=parallel,proto3,oneof\"`\n}\n\ntype Trace_QueryPlanNode_Fetch struct {\n\tFetch *Trace_QueryPlanNode_FetchNode `protobuf:\"bytes,3,opt,name=fetch,proto3,oneof\"`\n}\n\ntype Trace_QueryPlanNode_Flatten struct {\n\tFlatten *Trace_QueryPlanNode_FlattenNode `protobuf:\"bytes,4,opt,name=flatten,proto3,oneof\"`\n}\n\nfunc (*Trace_QueryPlanNode_Sequence) isTrace_QueryPlanNode_Node() {}\n\nfunc (*Trace_QueryPlanNode_Parallel) isTrace_QueryPlanNode_Node() {}\n\nfunc (*Trace_QueryPlanNode_Fetch) isTrace_QueryPlanNode_Node() {}\n\nfunc (*Trace_QueryPlanNode_Flatten) isTrace_QueryPlanNode_Node() {}\n\ntype Trace_HTTP_Values struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tValue []string `protobuf:\"bytes,1,rep,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *Trace_HTTP_Values) Reset() {\n\t*x = Trace_HTTP_Values{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_apollo_trace_proto_msgTypes[21]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Trace_HTTP_Values) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Trace_HTTP_Values) ProtoMessage() {}\n\nfunc (x *Trace_HTTP_Values) ProtoReflect() protoreflect.Message {\n\tmi := &file_apollo_trace_proto_msgTypes[21]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Trace_HTTP_Values.ProtoReflect.Descriptor instead.\nfunc (*Trace_HTTP_Values) Descriptor() ([]byte, []int) {\n\treturn file_apollo_trace_proto_rawDescGZIP(), []int{0, 3, 0}\n}\n\nfunc (x *Trace_HTTP_Values) GetValue() []string {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// This represents a set of nodes to be executed sequentially by the Gateway executor\ntype Trace_QueryPlanNode_SequenceNode struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tNodes []*Trace_QueryPlanNode `protobuf:\"bytes,1,rep,name=nodes,proto3\" json:\"nodes,omitempty\"`\n}\n\nfunc (x *Trace_QueryPlanNode_SequenceNode) Reset() {\n\t*x = Trace_QueryPlanNode_SequenceNode{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_apollo_trace_proto_msgTypes[24]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Trace_QueryPlanNode_SequenceNode) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Trace_QueryPlanNode_SequenceNode) ProtoMessage() {}\n\nfunc (x *Trace_QueryPlanNode_SequenceNode) ProtoReflect() protoreflect.Message {\n\tmi := &file_apollo_trace_proto_msgTypes[24]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Trace_QueryPlanNode_SequenceNode.ProtoReflect.Descriptor instead.\nfunc (*Trace_QueryPlanNode_SequenceNode) Descriptor() ([]byte, []int) {\n\treturn file_apollo_trace_proto_rawDescGZIP(), []int{0, 6, 0}\n}\n\nfunc (x *Trace_QueryPlanNode_SequenceNode) GetNodes() []*Trace_QueryPlanNode {\n\tif x != nil {\n\t\treturn x.Nodes\n\t}\n\treturn nil\n}\n\n// This represents a set of nodes to be executed in parallel by the Gateway executor\ntype Trace_QueryPlanNode_ParallelNode struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tNodes []*Trace_QueryPlanNode `protobuf:\"bytes,1,rep,name=nodes,proto3\" json:\"nodes,omitempty\"`\n}\n\nfunc (x *Trace_QueryPlanNode_ParallelNode) Reset() {\n\t*x = Trace_QueryPlanNode_ParallelNode{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_apollo_trace_proto_msgTypes[25]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Trace_QueryPlanNode_ParallelNode) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Trace_QueryPlanNode_ParallelNode) ProtoMessage() {}\n\nfunc (x *Trace_QueryPlanNode_ParallelNode) ProtoReflect() protoreflect.Message {\n\tmi := &file_apollo_trace_proto_msgTypes[25]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Trace_QueryPlanNode_ParallelNode.ProtoReflect.Descriptor instead.\nfunc (*Trace_QueryPlanNode_ParallelNode) Descriptor() ([]byte, []int) {\n\treturn file_apollo_trace_proto_rawDescGZIP(), []int{0, 6, 1}\n}\n\nfunc (x *Trace_QueryPlanNode_ParallelNode) GetNodes() []*Trace_QueryPlanNode {\n\tif x != nil {\n\t\treturn x.Nodes\n\t}\n\treturn nil\n}\n\n// This represents a node to send an operation to an implementing service\ntype Trace_QueryPlanNode_FetchNode struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// XXX When we want to include more details about the sub-operation that was\n\t// executed against this service, we should include that here in each fetch node.\n\t// This might include an operation signature, requires directive, reference resolutions, etc.\n\tServiceName        string `protobuf:\"bytes,1,opt,name=service_name,json=serviceName,proto3\" json:\"service_name,omitempty\"`\n\tTraceParsingFailed bool   `protobuf:\"varint,2,opt,name=trace_parsing_failed,json=traceParsingFailed,proto3\" json:\"trace_parsing_failed,omitempty\"`\n\t// This Trace only contains start_time, end_time, duration_ns, and root;\n\t// all timings were calculated **on the federated service**, and clock skew\n\t// will be handled by the ingress server.\n\tTrace *Trace `protobuf:\"bytes,3,opt,name=trace,proto3\" json:\"trace,omitempty\"`\n\t// relative to the outer trace's start_time, in ns, measured in the gateway.\n\tSentTimeOffset uint64 `protobuf:\"varint,4,opt,name=sent_time_offset,json=sentTimeOffset,proto3\" json:\"sent_time_offset,omitempty\"`\n\t// Wallclock times measured in the gateway for when this operation was\n\t// sent and received.\n\tSentTime     *timestamppb.Timestamp `protobuf:\"bytes,5,opt,name=sent_time,json=sentTime,proto3\" json:\"sent_time,omitempty\"`\n\tReceivedTime *timestamppb.Timestamp `protobuf:\"bytes,6,opt,name=received_time,json=receivedTime,proto3\" json:\"received_time,omitempty\"`\n}\n\nfunc (x *Trace_QueryPlanNode_FetchNode) Reset() {\n\t*x = Trace_QueryPlanNode_FetchNode{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_apollo_trace_proto_msgTypes[26]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Trace_QueryPlanNode_FetchNode) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Trace_QueryPlanNode_FetchNode) ProtoMessage() {}\n\nfunc (x *Trace_QueryPlanNode_FetchNode) ProtoReflect() protoreflect.Message {\n\tmi := &file_apollo_trace_proto_msgTypes[26]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Trace_QueryPlanNode_FetchNode.ProtoReflect.Descriptor instead.\nfunc (*Trace_QueryPlanNode_FetchNode) Descriptor() ([]byte, []int) {\n\treturn file_apollo_trace_proto_rawDescGZIP(), []int{0, 6, 2}\n}\n\nfunc (x *Trace_QueryPlanNode_FetchNode) GetServiceName() string {\n\tif x != nil {\n\t\treturn x.ServiceName\n\t}\n\treturn \"\"\n}\n\nfunc (x *Trace_QueryPlanNode_FetchNode) GetTraceParsingFailed() bool {\n\tif x != nil {\n\t\treturn x.TraceParsingFailed\n\t}\n\treturn false\n}\n\nfunc (x *Trace_QueryPlanNode_FetchNode) GetTrace() *Trace {\n\tif x != nil {\n\t\treturn x.Trace\n\t}\n\treturn nil\n}\n\nfunc (x *Trace_QueryPlanNode_FetchNode) GetSentTimeOffset() uint64 {\n\tif x != nil {\n\t\treturn x.SentTimeOffset\n\t}\n\treturn 0\n}\n\nfunc (x *Trace_QueryPlanNode_FetchNode) GetSentTime() *timestamppb.Timestamp {\n\tif x != nil {\n\t\treturn x.SentTime\n\t}\n\treturn nil\n}\n\nfunc (x *Trace_QueryPlanNode_FetchNode) GetReceivedTime() *timestamppb.Timestamp {\n\tif x != nil {\n\t\treturn x.ReceivedTime\n\t}\n\treturn nil\n}\n\n// This node represents a way to reach into the response path and attach related entities.\n// XXX Flatten is really not the right name and this node may be renamed in the query planner.\ntype Trace_QueryPlanNode_FlattenNode struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tResponsePath []*Trace_QueryPlanNode_ResponsePathElement `protobuf:\"bytes,1,rep,name=response_path,json=responsePath,proto3\" json:\"response_path,omitempty\"`\n\tNode         *Trace_QueryPlanNode                       `protobuf:\"bytes,2,opt,name=node,proto3\" json:\"node,omitempty\"`\n}\n\nfunc (x *Trace_QueryPlanNode_FlattenNode) Reset() {\n\t*x = Trace_QueryPlanNode_FlattenNode{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_apollo_trace_proto_msgTypes[27]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Trace_QueryPlanNode_FlattenNode) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Trace_QueryPlanNode_FlattenNode) ProtoMessage() {}\n\nfunc (x *Trace_QueryPlanNode_FlattenNode) ProtoReflect() protoreflect.Message {\n\tmi := &file_apollo_trace_proto_msgTypes[27]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Trace_QueryPlanNode_FlattenNode.ProtoReflect.Descriptor instead.\nfunc (*Trace_QueryPlanNode_FlattenNode) Descriptor() ([]byte, []int) {\n\treturn file_apollo_trace_proto_rawDescGZIP(), []int{0, 6, 3}\n}\n\nfunc (x *Trace_QueryPlanNode_FlattenNode) GetResponsePath() []*Trace_QueryPlanNode_ResponsePathElement {\n\tif x != nil {\n\t\treturn x.ResponsePath\n\t}\n\treturn nil\n}\n\nfunc (x *Trace_QueryPlanNode_FlattenNode) GetNode() *Trace_QueryPlanNode {\n\tif x != nil {\n\t\treturn x.Node\n\t}\n\treturn nil\n}\n\ntype Trace_QueryPlanNode_ResponsePathElement struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Id:\n\t//\t*Trace_QueryPlanNode_ResponsePathElement_FieldName\n\t//\t*Trace_QueryPlanNode_ResponsePathElement_Index\n\tId isTrace_QueryPlanNode_ResponsePathElement_Id `protobuf_oneof:\"id\"`\n}\n\nfunc (x *Trace_QueryPlanNode_ResponsePathElement) Reset() {\n\t*x = Trace_QueryPlanNode_ResponsePathElement{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_apollo_trace_proto_msgTypes[28]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Trace_QueryPlanNode_ResponsePathElement) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Trace_QueryPlanNode_ResponsePathElement) ProtoMessage() {}\n\nfunc (x *Trace_QueryPlanNode_ResponsePathElement) ProtoReflect() protoreflect.Message {\n\tmi := &file_apollo_trace_proto_msgTypes[28]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Trace_QueryPlanNode_ResponsePathElement.ProtoReflect.Descriptor instead.\nfunc (*Trace_QueryPlanNode_ResponsePathElement) Descriptor() ([]byte, []int) {\n\treturn file_apollo_trace_proto_rawDescGZIP(), []int{0, 6, 4}\n}\n\nfunc (m *Trace_QueryPlanNode_ResponsePathElement) GetId() isTrace_QueryPlanNode_ResponsePathElement_Id {\n\tif m != nil {\n\t\treturn m.Id\n\t}\n\treturn nil\n}\n\nfunc (x *Trace_QueryPlanNode_ResponsePathElement) GetFieldName() string {\n\tif x, ok := x.GetId().(*Trace_QueryPlanNode_ResponsePathElement_FieldName); ok {\n\t\treturn x.FieldName\n\t}\n\treturn \"\"\n}\n\nfunc (x *Trace_QueryPlanNode_ResponsePathElement) GetIndex() uint32 {\n\tif x, ok := x.GetId().(*Trace_QueryPlanNode_ResponsePathElement_Index); ok {\n\t\treturn x.Index\n\t}\n\treturn 0\n}\n\ntype isTrace_QueryPlanNode_ResponsePathElement_Id interface {\n\tisTrace_QueryPlanNode_ResponsePathElement_Id()\n}\n\ntype Trace_QueryPlanNode_ResponsePathElement_FieldName struct {\n\tFieldName string `protobuf:\"bytes,1,opt,name=field_name,json=fieldName,proto3,oneof\"`\n}\n\ntype Trace_QueryPlanNode_ResponsePathElement_Index struct {\n\tIndex uint32 `protobuf:\"varint,2,opt,name=index,proto3,oneof\"`\n}\n\nfunc (*Trace_QueryPlanNode_ResponsePathElement_FieldName) isTrace_QueryPlanNode_ResponsePathElement_Id() {\n}\n\nfunc (*Trace_QueryPlanNode_ResponsePathElement_Index) isTrace_QueryPlanNode_ResponsePathElement_Id() {\n}\n\nvar File_apollo_trace_proto protoreflect.FileDescriptor\n\nvar file_apollo_trace_proto_rawDesc = []byte{\n\t0x0a, 0x12, 0x61, 0x70, 0x6f, 0x6c, 0x6c, 0x6f, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x70,\n\t0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f,\n\t0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e,\n\t0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb6, 0x1a, 0x0a, 0x05, 0x54, 0x72, 0x61, 0x63, 0x65, 0x12,\n\t0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20,\n\t0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,\n\t0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52,\n\t0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e,\n\t0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,\n\t0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,\n\t0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d,\n\t0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x73,\n\t0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,\n\t0x4e, 0x73, 0x12, 0x1f, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b,\n\t0x32, 0x0b, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x72,\n\t0x6f, 0x6f, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65,\n\t0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72,\n\t0x65, 0x12, 0x38, 0x0a, 0x17, 0x75, 0x6e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x4f,\n\t0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x64, 0x79, 0x18, 0x1b, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x17, 0x75, 0x6e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x4f, 0x70,\n\t0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x38, 0x0a, 0x17, 0x75,\n\t0x6e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69,\n\t0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x75, 0x6e,\n\t0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f,\n\t0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73,\n\t0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x44,\n\t0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12,\n\t0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65,\n\t0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69,\n\t0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,\n\t0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x04, 0x68, 0x74, 0x74, 0x70, 0x18,\n\t0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x48, 0x54,\n\t0x54, 0x50, 0x52, 0x04, 0x68, 0x74, 0x74, 0x70, 0x12, 0x35, 0x0a, 0x0c, 0x63, 0x61, 0x63, 0x68,\n\t0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,\n\t0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69,\n\t0x63, 0x79, 0x52, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12,\n\t0x33, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x1a, 0x20,\n\t0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72,\n\t0x79, 0x50, 0x6c, 0x61, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79,\n\t0x50, 0x6c, 0x61, 0x6e, 0x12, 0x2f, 0x0a, 0x14, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x71, 0x75, 0x65,\n\t0x72, 0x79, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x14, 0x20, 0x01,\n\t0x28, 0x08, 0x52, 0x11, 0x66, 0x75, 0x6c, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x61, 0x63,\n\t0x68, 0x65, 0x48, 0x69, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74,\n\t0x65, 0x64, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x15, 0x20, 0x01,\n\t0x28, 0x08, 0x52, 0x11, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x51, 0x75, 0x65,\n\t0x72, 0x79, 0x48, 0x69, 0x74, 0x12, 0x38, 0x0a, 0x18, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74,\n\t0x65, 0x64, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65,\n\t0x72, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74,\n\t0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12,\n\t0x31, 0x0a, 0x14, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x6f, 0x70,\n\t0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x72,\n\t0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69,\n\t0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x13, 0x66, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f,\n\t0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52,\n\t0x12, 0x66, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74,\n\t0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x16, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x65,\n\t0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x1f, 0x20,\n\t0x01, 0x28, 0x01, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74,\n\t0x69, 0x6f, 0x6e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x1a, 0x8a, 0x01, 0x0a, 0x0b, 0x43, 0x61,\n\t0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x73, 0x63, 0x6f,\n\t0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65,\n\t0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x53, 0x63, 0x6f,\n\t0x70, 0x65, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x0a, 0x6d, 0x61, 0x78,\n\t0x5f, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d,\n\t0x61, 0x78, 0x41, 0x67, 0x65, 0x4e, 0x73, 0x22, 0x2d, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x70, 0x65,\n\t0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a,\n\t0x06, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x49,\n\t0x56, 0x41, 0x54, 0x45, 0x10, 0x02, 0x1a, 0xbc, 0x01, 0x0a, 0x07, 0x44, 0x65, 0x74, 0x61, 0x69,\n\t0x6c, 0x73, 0x12, 0x48, 0x0a, 0x0e, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x5f,\n\t0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x54, 0x72, 0x61,\n\t0x63, 0x65, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61,\n\t0x62, 0x6c, 0x65, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x76,\n\t0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e,\n\t0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e,\n\t0x61, 0x6d, 0x65, 0x1a, 0x40, 0x0a, 0x12, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73,\n\t0x4a, 0x73, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,\n\t0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,\n\t0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,\n\t0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x7b, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x18,\n\t0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61,\n\t0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x54, 0x72, 0x61,\n\t0x63, 0x65, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63,\n\t0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6e, 0x73,\n\t0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x74, 0x69, 0x6d, 0x65, 0x4e, 0x73, 0x12, 0x12,\n\t0x0a, 0x04, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6a, 0x73,\n\t0x6f, 0x6e, 0x1a, 0x8e, 0x05, 0x0a, 0x04, 0x48, 0x54, 0x54, 0x50, 0x12, 0x2a, 0x0a, 0x06, 0x6d,\n\t0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x54, 0x72,\n\t0x61, 0x63, 0x65, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52,\n\t0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18,\n\t0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70,\n\t0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12,\n\t0x48, 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65,\n\t0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65,\n\t0x2e, 0x48, 0x54, 0x54, 0x50, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61,\n\t0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x65,\n\t0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x4b, 0x0a, 0x10, 0x72, 0x65, 0x73,\n\t0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20,\n\t0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x48, 0x54, 0x54, 0x50,\n\t0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73,\n\t0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48,\n\t0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,\n\t0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x74, 0x61,\n\t0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x75, 0x72,\n\t0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x12,\n\t0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28,\n\t0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x1a, 0x1e, 0x0a, 0x06, 0x56,\n\t0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01,\n\t0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x55, 0x0a, 0x13, 0x52,\n\t0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74,\n\t0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x03, 0x6b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,\n\t0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x48, 0x54, 0x54, 0x50,\n\t0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,\n\t0x38, 0x01, 0x1a, 0x56, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65,\n\t0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,\n\t0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x05,\n\t0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x54, 0x72,\n\t0x61, 0x63, 0x65, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52,\n\t0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x77, 0x0a, 0x06, 0x4d, 0x65,\n\t0x74, 0x68, 0x6f, 0x64, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10,\n\t0x00, 0x12, 0x0b, 0x0a, 0x07, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0x01, 0x12, 0x07,\n\t0x0a, 0x03, 0x47, 0x45, 0x54, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x45, 0x41, 0x44, 0x10,\n\t0x03, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x4f, 0x53, 0x54, 0x10, 0x04, 0x12, 0x07, 0x0a, 0x03, 0x50,\n\t0x55, 0x54, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x06,\n\t0x12, 0x09, 0x0a, 0x05, 0x54, 0x52, 0x41, 0x43, 0x45, 0x10, 0x07, 0x12, 0x0b, 0x0a, 0x07, 0x43,\n\t0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x10, 0x08, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x41, 0x54, 0x43,\n\t0x48, 0x10, 0x09, 0x1a, 0x36, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,\n\t0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6c,\n\t0x69, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x02, 0x20,\n\t0x01, 0x28, 0x0d, 0x52, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x1a, 0xee, 0x02, 0x0a, 0x04,\n\t0x4e, 0x6f, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,\n\t0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x72,\n\t0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x69,\n\t0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x69, 0x6e,\n\t0x64, 0x65, 0x78, 0x12, 0x2e, 0x0a, 0x13, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f,\n\t0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09,\n\t0x52, 0x11, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e,\n\t0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,\n\t0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e,\n\t0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61,\n\t0x72, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x35, 0x0a, 0x0c, 0x63, 0x61, 0x63, 0x68,\n\t0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,\n\t0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69,\n\t0x63, 0x79, 0x52, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12,\n\t0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20,\n\t0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19,\n\t0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04,\n\t0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x05, 0x65, 0x72, 0x72,\n\t0x6f, 0x72, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65,\n\t0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x21, 0x0a,\n\t0x05, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x54,\n\t0x72, 0x61, 0x63, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64,\n\t0x42, 0x04, 0x0a, 0x02, 0x69, 0x64, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x1a, 0x8b, 0x07, 0x0a,\n\t0x0d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x3f,\n\t0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,\n\t0x32, 0x21, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c,\n\t0x61, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e,\n\t0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12,\n\t0x3f, 0x0a, 0x08, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28,\n\t0x0b, 0x32, 0x21, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50,\n\t0x6c, 0x61, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c,\n\t0x4e, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x08, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c,\n\t0x12, 0x36, 0x0a, 0x05, 0x66, 0x65, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x1e, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61,\n\t0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x48,\n\t0x00, 0x52, 0x05, 0x66, 0x65, 0x74, 0x63, 0x68, 0x12, 0x3c, 0x0a, 0x07, 0x66, 0x6c, 0x61, 0x74,\n\t0x74, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x54, 0x72, 0x61, 0x63,\n\t0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x2e,\n\t0x46, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x07, 0x66,\n\t0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x1a, 0x3a, 0x0a, 0x0c, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e,\n\t0x63, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18,\n\t0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x51, 0x75,\n\t0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x64,\n\t0x65, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x50, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x4e, 0x6f,\n\t0x64, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,\n\t0x0b, 0x32, 0x14, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50,\n\t0x6c, 0x61, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x1a, 0xa2,\n\t0x02, 0x0a, 0x09, 0x46, 0x65, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x0c,\n\t0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12,\n\t0x30, 0x0a, 0x14, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67,\n\t0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x74,\n\t0x72, 0x61, 0x63, 0x65, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x69, 0x6c, 0x65,\n\t0x64, 0x12, 0x1c, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,\n\t0x32, 0x06, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x05, 0x74, 0x72, 0x61, 0x63, 0x65, 0x12,\n\t0x28, 0x0a, 0x10, 0x73, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6f, 0x66, 0x66,\n\t0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x73, 0x65, 0x6e, 0x74, 0x54,\n\t0x69, 0x6d, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x37, 0x0a, 0x09, 0x73, 0x65, 0x6e,\n\t0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,\n\t0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,\n\t0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x73, 0x65, 0x6e, 0x74, 0x54, 0x69,\n\t0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x74,\n\t0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,\n\t0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65,\n\t0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x54,\n\t0x69, 0x6d, 0x65, 0x1a, 0x86, 0x01, 0x0a, 0x0b, 0x46, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x4e,\n\t0x6f, 0x64, 0x65, 0x12, 0x4d, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f,\n\t0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x54, 0x72, 0x61,\n\t0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x4e, 0x6f, 0x64, 0x65,\n\t0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x74, 0x68, 0x45, 0x6c, 0x65,\n\t0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61,\n\t0x74, 0x68, 0x12, 0x28, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,\n\t0x32, 0x14, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c,\n\t0x61, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x1a, 0x54, 0x0a, 0x13,\n\t0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x74, 0x68, 0x45, 0x6c, 0x65, 0x6d,\n\t0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d,\n\t0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64,\n\t0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20,\n\t0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x04, 0x0a, 0x02,\n\t0x69, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02,\n\t0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x4a, 0x04, 0x08, 0x0c,\n\t0x10, 0x0d, 0x4a, 0x04, 0x08, 0x0d, 0x10, 0x0e, 0x4a, 0x04, 0x08, 0x17, 0x10, 0x18, 0x22, 0x8c,\n\t0x02, 0x0a, 0x0c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12,\n\t0x1b, 0x0a, 0x09, 0x67, 0x72, 0x61, 0x70, 0x68, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x0c, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x61, 0x70, 0x68, 0x52, 0x65, 0x66, 0x12, 0x1a, 0x0a, 0x08,\n\t0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,\n\t0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x67, 0x65, 0x6e,\n\t0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x0c, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a,\n\t0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,\n\t0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x56,\n\t0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d,\n\t0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x0e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12,\n\t0x14, 0x0a, 0x05, 0x75, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,\n\t0x75, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61,\n\t0x62, 0x6c, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20,\n\t0x01, 0x28, 0x09, 0x52, 0x12, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x53,\n\t0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x64, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0xf9, 0x01,\n\t0x0a, 0x0e, 0x50, 0x61, 0x74, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73,\n\t0x12, 0x39, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x03,\n\t0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x74,\n\t0x61, 0x74, 0x73, 0x2e, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x45, 0x6e, 0x74, 0x72,\n\t0x79, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x65,\n\t0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28,\n\t0x04, 0x52, 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3b,\n\t0x0a, 0x1a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f,\n\t0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01,\n\t0x28, 0x04, 0x52, 0x17, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68,\n\t0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x4c, 0x0a, 0x0d, 0x43,\n\t0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,\n\t0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x25,\n\t0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e,\n\t0x50, 0x61, 0x74, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05,\n\t0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xdf, 0x05, 0x0a, 0x11, 0x51, 0x75,\n\t0x65, 0x72, 0x79, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12,\n\t0x23, 0x0a, 0x0d, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74,\n\t0x18, 0x0d, 0x20, 0x03, 0x28, 0x12, 0x52, 0x0c, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x43,\n\t0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f,\n\t0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x72, 0x65, 0x71,\n\t0x75, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x61, 0x63,\n\t0x68, 0x65, 0x5f, 0x68, 0x69, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63,\n\t0x61, 0x63, 0x68, 0x65, 0x48, 0x69, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x65, 0x72, 0x73,\n\t0x69, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x68, 0x69, 0x74, 0x73,\n\t0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65,\n\t0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x69, 0x74, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x65,\n\t0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6d, 0x69,\n\t0x73, 0x73, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x70, 0x65, 0x72, 0x73,\n\t0x69, 0x73, 0x74, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x69, 0x73, 0x73, 0x65, 0x73,\n\t0x12, 0x2e, 0x0a, 0x13, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63,\n\t0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x12, 0x52, 0x11, 0x63,\n\t0x61, 0x63, 0x68, 0x65, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74,\n\t0x12, 0x39, 0x0a, 0x10, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73,\n\t0x74, 0x61, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x50, 0x61, 0x74,\n\t0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x0e, 0x72, 0x6f, 0x6f,\n\t0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x3b, 0x0a, 0x1a, 0x72,\n\t0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72,\n\t0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52,\n\t0x17, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, 0x45, 0x72, 0x72,\n\t0x6f, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x33, 0x0a, 0x16, 0x70, 0x75, 0x62, 0x6c,\n\t0x69, 0x63, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x63, 0x6f, 0x75,\n\t0x6e, 0x74, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x12, 0x52, 0x13, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63,\n\t0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x74, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x35, 0x0a,\n\t0x17, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x74,\n\t0x74, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x10, 0x20, 0x03, 0x28, 0x12, 0x52, 0x14,\n\t0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x74, 0x6c, 0x43,\n\t0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x1a, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72,\n\t0x65, 0x64, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75,\n\t0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x18, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74,\n\t0x65, 0x72, 0x65, 0x64, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75,\n\t0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x19, 0x66, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f,\n\t0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,\n\t0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x66, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e,\n\t0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x53,\n\t0x0a, 0x26, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x6f,\n\t0x75, 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d,\n\t0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x23,\n\t0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x46,\n\t0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74,\n\t0x69, 0x6f, 0x6e, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x4a,\n\t0x04, 0x08, 0x09, 0x10, 0x0a, 0x4a, 0x04, 0x08, 0x0a, 0x10, 0x0b, 0x22, 0x5c, 0x0a, 0x0c, 0x53,\n\t0x74, 0x61, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x63,\n\t0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,\n\t0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e,\n\t0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73,\n\t0x69, 0x6f, 0x6e, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x22, 0x8e, 0x01, 0x0a, 0x1f, 0x43, 0x6f,\n\t0x6e, 0x74, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72,\n\t0x79, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x42, 0x0a,\n\t0x13, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x73,\n\t0x74, 0x61, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x51, 0x75, 0x65,\n\t0x72, 0x79, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x11,\n\t0x71, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74,\n\t0x73, 0x12, 0x27, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78,\n\t0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0xdc, 0x01, 0x0a, 0x17, 0x43,\n\t0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x79, 0x70,\n\t0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78,\n\t0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x43,\n\t0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12,\n\t0x4d, 0x0a, 0x0d, 0x70, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74,\n\t0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74,\n\t0x75, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73,\n\t0x2e, 0x50, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72,\n\t0x79, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x1a, 0x49,\n\t0x0a, 0x10, 0x50, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x45, 0x6e, 0x74,\n\t0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x03, 0x6b, 0x65, 0x79, 0x12, 0x1f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,\n\t0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x52, 0x05,\n\t0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xbf, 0x02, 0x0a, 0x09, 0x46, 0x69,\n\t0x65, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x74, 0x75, 0x72,\n\t0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65,\n\t0x74, 0x75, 0x72, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x72, 0x72, 0x6f,\n\t0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b,\n\t0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x18, 0x6f,\n\t0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f,\n\t0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x6f,\n\t0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,\n\t0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x19, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74,\n\t0x65, 0x64, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75,\n\t0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61,\n\t0x74, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e,\n\t0x74, 0x12, 0x3b, 0x0a, 0x1a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x77, 0x69,\n\t0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,\n\t0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x57,\n\t0x69, 0x74, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23,\n\t0x0a, 0x0d, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,\n\t0x09, 0x20, 0x03, 0x28, 0x12, 0x52, 0x0c, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f,\n\t0x75, 0x6e, 0x74, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a,\n\t0x04, 0x08, 0x07, 0x10, 0x08, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x22, 0xa6, 0x01, 0x0a, 0x08,\n\t0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x12, 0x41, 0x0a, 0x0e, 0x70, 0x65, 0x72, 0x5f,\n\t0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b,\n\t0x32, 0x1b, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x2e, 0x50, 0x65, 0x72, 0x46,\n\t0x69, 0x65, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x70,\n\t0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x1a, 0x4b, 0x0a, 0x11, 0x50,\n\t0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79,\n\t0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,\n\t0x65, 0x79, 0x12, 0x20, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,\n\t0x0b, 0x32, 0x0a, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x52, 0x05, 0x76,\n\t0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x4a, 0x04,\n\t0x08, 0x02, 0x10, 0x03, 0x22, 0x5d, 0x0a, 0x17, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,\n\t0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x46, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12,\n\t0x1f, 0x0a, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01,\n\t0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73,\n\t0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,\n\t0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66,\n\t0x61, 0x63, 0x65, 0x22, 0xaa, 0x02, 0x0a, 0x06, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x25,\n\t0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d,\n\t0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68,\n\t0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x45, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x63, 0x65, 0x73, 0x5f,\n\t0x70, 0x65, 0x72, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32,\n\t0x1b, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x73, 0x50,\n\t0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x74, 0x72,\n\t0x61, 0x63, 0x65, 0x73, 0x50, 0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x35, 0x0a, 0x08,\n\t0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,\n\t0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,\n\t0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54,\n\t0x69, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,\n\t0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6f, 0x70,\n\t0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x52, 0x0a, 0x13,\n\t0x54, 0x72, 0x61, 0x63, 0x65, 0x73, 0x50, 0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x6e,\n\t0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,\n\t0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,\n\t0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x73, 0x41, 0x6e, 0x64,\n\t0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,\n\t0x22, 0x98, 0x02, 0x0a, 0x13, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x69,\n\t0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74,\n\t0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x53, 0x74, 0x61, 0x74,\n\t0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78,\n\t0x74, 0x12, 0x42, 0x0a, 0x13, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e,\n\t0x63, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,\n\t0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x74, 0x61,\n\t0x74, 0x73, 0x52, 0x11, 0x71, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79,\n\t0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x49, 0x0a, 0x0d, 0x70, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70,\n\t0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x43,\n\t0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61,\n\t0x74, 0x73, 0x2e, 0x50, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x45, 0x6e,\n\t0x74, 0x72, 0x79, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74,\n\t0x1a, 0x49, 0x0a, 0x10, 0x50, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x45,\n\t0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,\n\t0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,\n\t0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74,\n\t0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x99, 0x03, 0x0a, 0x0e,\n\t0x54, 0x72, 0x61, 0x63, 0x65, 0x73, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x1c,\n\t0x0a, 0x05, 0x74, 0x72, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x06, 0x2e,\n\t0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x05, 0x74, 0x72, 0x61, 0x63, 0x65, 0x12, 0x42, 0x0a, 0x12,\n\t0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65,\n\t0x78, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65,\n\t0x78, 0x74, 0x75, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x10,\n\t0x73, 0x74, 0x61, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74,\n\t0x12, 0x66, 0x0a, 0x19, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x66,\n\t0x69, 0x65, 0x6c, 0x64, 0x73, 0x5f, 0x62, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20,\n\t0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x73, 0x41, 0x6e, 0x64, 0x53,\n\t0x74, 0x61, 0x74, 0x73, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x46,\n\t0x69, 0x65, 0x6c, 0x64, 0x73, 0x42, 0x79, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79,\n\t0x52, 0x16, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c,\n\t0x64, 0x73, 0x42, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, 0x25, 0x69, 0x6e, 0x74, 0x65,\n\t0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74,\n\t0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x74,\n\t0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52,\n\t0x21, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x54, 0x72, 0x61, 0x63, 0x65, 0x73, 0x43,\n\t0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x53, 0x74, 0x61,\n\t0x74, 0x73, 0x1a, 0x63, 0x0a, 0x1b, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64,\n\t0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x42, 0x79, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, 0x74, 0x72,\n\t0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,\n\t0x6b, 0x65, 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x18, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x46,\n\t0x69, 0x65, 0x6c, 0x64, 0x73, 0x46, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x76, 0x61,\n\t0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x16, 0x5a, 0x14, 0x2e, 0x2f, 0x61, 0x70, 0x6f,\n\t0x6c, 0x6c, 0x6f, 0x74, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x74, 0x76, 0x31, 0x62,\n\t0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,\n}\n\nvar (\n\tfile_apollo_trace_proto_rawDescOnce sync.Once\n\tfile_apollo_trace_proto_rawDescData = file_apollo_trace_proto_rawDesc\n)\n\nfunc file_apollo_trace_proto_rawDescGZIP() []byte {\n\tfile_apollo_trace_proto_rawDescOnce.Do(func() {\n\t\tfile_apollo_trace_proto_rawDescData = protoimpl.X.CompressGZIP(file_apollo_trace_proto_rawDescData)\n\t})\n\treturn file_apollo_trace_proto_rawDescData\n}\n\nvar file_apollo_trace_proto_enumTypes = make([]protoimpl.EnumInfo, 2)\nvar file_apollo_trace_proto_msgTypes = make([]protoimpl.MessageInfo, 35)\nvar file_apollo_trace_proto_goTypes = []any{\n\t(Trace_CachePolicy_Scope)(0),                    // 0: Trace.CachePolicy.Scope\n\t(Trace_HTTP_Method)(0),                          // 1: Trace.HTTP.Method\n\t(*Trace)(nil),                                   // 2: Trace\n\t(*ReportHeader)(nil),                            // 3: ReportHeader\n\t(*PathErrorStats)(nil),                          // 4: PathErrorStats\n\t(*QueryLatencyStats)(nil),                       // 5: QueryLatencyStats\n\t(*StatsContext)(nil),                            // 6: StatsContext\n\t(*ContextualizedQueryLatencyStats)(nil),         // 7: ContextualizedQueryLatencyStats\n\t(*ContextualizedTypeStats)(nil),                 // 8: ContextualizedTypeStats\n\t(*FieldStat)(nil),                               // 9: FieldStat\n\t(*TypeStat)(nil),                                // 10: TypeStat\n\t(*ReferencedFieldsForType)(nil),                 // 11: ReferencedFieldsForType\n\t(*Report)(nil),                                  // 12: Report\n\t(*ContextualizedStats)(nil),                     // 13: ContextualizedStats\n\t(*TracesAndStats)(nil),                          // 14: TracesAndStats\n\t(*Trace_CachePolicy)(nil),                       // 15: Trace.CachePolicy\n\t(*Trace_Details)(nil),                           // 16: Trace.Details\n\t(*Trace_Error)(nil),                             // 17: Trace.Error\n\t(*Trace_HTTP)(nil),                              // 18: Trace.HTTP\n\t(*Trace_Location)(nil),                          // 19: Trace.Location\n\t(*Trace_Node)(nil),                              // 20: Trace.Node\n\t(*Trace_QueryPlanNode)(nil),                     // 21: Trace.QueryPlanNode\n\tnil,                                             // 22: Trace.Details.VariablesJsonEntry\n\t(*Trace_HTTP_Values)(nil),                       // 23: Trace.HTTP.Values\n\tnil,                                             // 24: Trace.HTTP.RequestHeadersEntry\n\tnil,                                             // 25: Trace.HTTP.ResponseHeadersEntry\n\t(*Trace_QueryPlanNode_SequenceNode)(nil),        // 26: Trace.QueryPlanNode.SequenceNode\n\t(*Trace_QueryPlanNode_ParallelNode)(nil),        // 27: Trace.QueryPlanNode.ParallelNode\n\t(*Trace_QueryPlanNode_FetchNode)(nil),           // 28: Trace.QueryPlanNode.FetchNode\n\t(*Trace_QueryPlanNode_FlattenNode)(nil),         // 29: Trace.QueryPlanNode.FlattenNode\n\t(*Trace_QueryPlanNode_ResponsePathElement)(nil), // 30: Trace.QueryPlanNode.ResponsePathElement\n\tnil,                           // 31: PathErrorStats.ChildrenEntry\n\tnil,                           // 32: ContextualizedTypeStats.PerTypeStatEntry\n\tnil,                           // 33: TypeStat.PerFieldStatEntry\n\tnil,                           // 34: Report.TracesPerQueryEntry\n\tnil,                           // 35: ContextualizedStats.PerTypeStatEntry\n\tnil,                           // 36: TracesAndStats.ReferencedFieldsByTypeEntry\n\t(*timestamppb.Timestamp)(nil), // 37: google.protobuf.Timestamp\n}\nvar file_apollo_trace_proto_depIdxs = []int32{\n\t37, // 0: Trace.start_time:type_name -> google.protobuf.Timestamp\n\t37, // 1: Trace.end_time:type_name -> google.protobuf.Timestamp\n\t20, // 2: Trace.root:type_name -> Trace.Node\n\t16, // 3: Trace.details:type_name -> Trace.Details\n\t18, // 4: Trace.http:type_name -> Trace.HTTP\n\t15, // 5: Trace.cache_policy:type_name -> Trace.CachePolicy\n\t21, // 6: Trace.query_plan:type_name -> Trace.QueryPlanNode\n\t31, // 7: PathErrorStats.children:type_name -> PathErrorStats.ChildrenEntry\n\t4,  // 8: QueryLatencyStats.root_error_stats:type_name -> PathErrorStats\n\t5,  // 9: ContextualizedQueryLatencyStats.query_latency_stats:type_name -> QueryLatencyStats\n\t6,  // 10: ContextualizedQueryLatencyStats.context:type_name -> StatsContext\n\t6,  // 11: ContextualizedTypeStats.context:type_name -> StatsContext\n\t32, // 12: ContextualizedTypeStats.per_type_stat:type_name -> ContextualizedTypeStats.PerTypeStatEntry\n\t33, // 13: TypeStat.per_field_stat:type_name -> TypeStat.PerFieldStatEntry\n\t3,  // 14: Report.header:type_name -> ReportHeader\n\t34, // 15: Report.traces_per_query:type_name -> Report.TracesPerQueryEntry\n\t37, // 16: Report.end_time:type_name -> google.protobuf.Timestamp\n\t6,  // 17: ContextualizedStats.context:type_name -> StatsContext\n\t5,  // 18: ContextualizedStats.query_latency_stats:type_name -> QueryLatencyStats\n\t35, // 19: ContextualizedStats.per_type_stat:type_name -> ContextualizedStats.PerTypeStatEntry\n\t2,  // 20: TracesAndStats.trace:type_name -> Trace\n\t13, // 21: TracesAndStats.stats_with_context:type_name -> ContextualizedStats\n\t36, // 22: TracesAndStats.referenced_fields_by_type:type_name -> TracesAndStats.ReferencedFieldsByTypeEntry\n\t2,  // 23: TracesAndStats.internal_traces_contributing_to_stats:type_name -> Trace\n\t0,  // 24: Trace.CachePolicy.scope:type_name -> Trace.CachePolicy.Scope\n\t22, // 25: Trace.Details.variables_json:type_name -> Trace.Details.VariablesJsonEntry\n\t19, // 26: Trace.Error.location:type_name -> Trace.Location\n\t1,  // 27: Trace.HTTP.method:type_name -> Trace.HTTP.Method\n\t24, // 28: Trace.HTTP.request_headers:type_name -> Trace.HTTP.RequestHeadersEntry\n\t25, // 29: Trace.HTTP.response_headers:type_name -> Trace.HTTP.ResponseHeadersEntry\n\t15, // 30: Trace.Node.cache_policy:type_name -> Trace.CachePolicy\n\t17, // 31: Trace.Node.error:type_name -> Trace.Error\n\t20, // 32: Trace.Node.child:type_name -> Trace.Node\n\t26, // 33: Trace.QueryPlanNode.sequence:type_name -> Trace.QueryPlanNode.SequenceNode\n\t27, // 34: Trace.QueryPlanNode.parallel:type_name -> Trace.QueryPlanNode.ParallelNode\n\t28, // 35: Trace.QueryPlanNode.fetch:type_name -> Trace.QueryPlanNode.FetchNode\n\t29, // 36: Trace.QueryPlanNode.flatten:type_name -> Trace.QueryPlanNode.FlattenNode\n\t23, // 37: Trace.HTTP.RequestHeadersEntry.value:type_name -> Trace.HTTP.Values\n\t23, // 38: Trace.HTTP.ResponseHeadersEntry.value:type_name -> Trace.HTTP.Values\n\t21, // 39: Trace.QueryPlanNode.SequenceNode.nodes:type_name -> Trace.QueryPlanNode\n\t21, // 40: Trace.QueryPlanNode.ParallelNode.nodes:type_name -> Trace.QueryPlanNode\n\t2,  // 41: Trace.QueryPlanNode.FetchNode.trace:type_name -> Trace\n\t37, // 42: Trace.QueryPlanNode.FetchNode.sent_time:type_name -> google.protobuf.Timestamp\n\t37, // 43: Trace.QueryPlanNode.FetchNode.received_time:type_name -> google.protobuf.Timestamp\n\t30, // 44: Trace.QueryPlanNode.FlattenNode.response_path:type_name -> Trace.QueryPlanNode.ResponsePathElement\n\t21, // 45: Trace.QueryPlanNode.FlattenNode.node:type_name -> Trace.QueryPlanNode\n\t4,  // 46: PathErrorStats.ChildrenEntry.value:type_name -> PathErrorStats\n\t10, // 47: ContextualizedTypeStats.PerTypeStatEntry.value:type_name -> TypeStat\n\t9,  // 48: TypeStat.PerFieldStatEntry.value:type_name -> FieldStat\n\t14, // 49: Report.TracesPerQueryEntry.value:type_name -> TracesAndStats\n\t10, // 50: ContextualizedStats.PerTypeStatEntry.value:type_name -> TypeStat\n\t11, // 51: TracesAndStats.ReferencedFieldsByTypeEntry.value:type_name -> ReferencedFieldsForType\n\t52, // [52:52] is the sub-list for method output_type\n\t52, // [52:52] is the sub-list for method input_type\n\t52, // [52:52] is the sub-list for extension type_name\n\t52, // [52:52] is the sub-list for extension extendee\n\t0,  // [0:52] is the sub-list for field type_name\n}\n\nfunc init() { file_apollo_trace_proto_init() }\nfunc file_apollo_trace_proto_init() {\n\tif File_apollo_trace_proto != nil {\n\t\treturn\n\t}\n\tif !protoimpl.UnsafeEnabled {\n\t\tfile_apollo_trace_proto_msgTypes[0].Exporter = func(v any, i int) any {\n\t\t\tswitch v := v.(*Trace); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_apollo_trace_proto_msgTypes[1].Exporter = func(v any, i int) any {\n\t\t\tswitch v := v.(*ReportHeader); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_apollo_trace_proto_msgTypes[2].Exporter = func(v any, i int) any {\n\t\t\tswitch v := v.(*PathErrorStats); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_apollo_trace_proto_msgTypes[3].Exporter = func(v any, i int) any {\n\t\t\tswitch v := v.(*QueryLatencyStats); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_apollo_trace_proto_msgTypes[4].Exporter = func(v any, i int) any {\n\t\t\tswitch v := v.(*StatsContext); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_apollo_trace_proto_msgTypes[5].Exporter = func(v any, i int) any {\n\t\t\tswitch v := v.(*ContextualizedQueryLatencyStats); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_apollo_trace_proto_msgTypes[6].Exporter = func(v any, i int) any {\n\t\t\tswitch v := v.(*ContextualizedTypeStats); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_apollo_trace_proto_msgTypes[7].Exporter = func(v any, i int) any {\n\t\t\tswitch v := v.(*FieldStat); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_apollo_trace_proto_msgTypes[8].Exporter = func(v any, i int) any {\n\t\t\tswitch v := v.(*TypeStat); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_apollo_trace_proto_msgTypes[9].Exporter = func(v any, i int) any {\n\t\t\tswitch v := v.(*ReferencedFieldsForType); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_apollo_trace_proto_msgTypes[10].Exporter = func(v any, i int) any {\n\t\t\tswitch v := v.(*Report); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_apollo_trace_proto_msgTypes[11].Exporter = func(v any, i int) any {\n\t\t\tswitch v := v.(*ContextualizedStats); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_apollo_trace_proto_msgTypes[12].Exporter = func(v any, i int) any {\n\t\t\tswitch v := v.(*TracesAndStats); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_apollo_trace_proto_msgTypes[13].Exporter = func(v any, i int) any {\n\t\t\tswitch v := v.(*Trace_CachePolicy); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_apollo_trace_proto_msgTypes[14].Exporter = func(v any, i int) any {\n\t\t\tswitch v := v.(*Trace_Details); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_apollo_trace_proto_msgTypes[15].Exporter = func(v any, i int) any {\n\t\t\tswitch v := v.(*Trace_Error); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_apollo_trace_proto_msgTypes[16].Exporter = func(v any, i int) any {\n\t\t\tswitch v := v.(*Trace_HTTP); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_apollo_trace_proto_msgTypes[17].Exporter = func(v any, i int) any {\n\t\t\tswitch v := v.(*Trace_Location); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_apollo_trace_proto_msgTypes[18].Exporter = func(v any, i int) any {\n\t\t\tswitch v := v.(*Trace_Node); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_apollo_trace_proto_msgTypes[19].Exporter = func(v any, i int) any {\n\t\t\tswitch v := v.(*Trace_QueryPlanNode); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_apollo_trace_proto_msgTypes[21].Exporter = func(v any, i int) any {\n\t\t\tswitch v := v.(*Trace_HTTP_Values); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_apollo_trace_proto_msgTypes[24].Exporter = func(v any, i int) any {\n\t\t\tswitch v := v.(*Trace_QueryPlanNode_SequenceNode); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_apollo_trace_proto_msgTypes[25].Exporter = func(v any, i int) any {\n\t\t\tswitch v := v.(*Trace_QueryPlanNode_ParallelNode); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_apollo_trace_proto_msgTypes[26].Exporter = func(v any, i int) any {\n\t\t\tswitch v := v.(*Trace_QueryPlanNode_FetchNode); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_apollo_trace_proto_msgTypes[27].Exporter = func(v any, i int) any {\n\t\t\tswitch v := v.(*Trace_QueryPlanNode_FlattenNode); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_apollo_trace_proto_msgTypes[28].Exporter = func(v any, i int) any {\n\t\t\tswitch v := v.(*Trace_QueryPlanNode_ResponsePathElement); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t}\n\tfile_apollo_trace_proto_msgTypes[18].OneofWrappers = []any{\n\t\t(*Trace_Node_ResponseName)(nil),\n\t\t(*Trace_Node_Index)(nil),\n\t}\n\tfile_apollo_trace_proto_msgTypes[19].OneofWrappers = []any{\n\t\t(*Trace_QueryPlanNode_Sequence)(nil),\n\t\t(*Trace_QueryPlanNode_Parallel)(nil),\n\t\t(*Trace_QueryPlanNode_Fetch)(nil),\n\t\t(*Trace_QueryPlanNode_Flatten)(nil),\n\t}\n\tfile_apollo_trace_proto_msgTypes[28].OneofWrappers = []any{\n\t\t(*Trace_QueryPlanNode_ResponsePathElement_FieldName)(nil),\n\t\t(*Trace_QueryPlanNode_ResponsePathElement_Index)(nil),\n\t}\n\ttype x struct{}\n\tout := protoimpl.TypeBuilder{\n\t\tFile: protoimpl.DescBuilder{\n\t\t\tGoPackagePath: reflect.TypeOf(x{}).PkgPath(),\n\t\t\tRawDescriptor: file_apollo_trace_proto_rawDesc,\n\t\t\tNumEnums:      2,\n\t\t\tNumMessages:   35,\n\t\t\tNumExtensions: 0,\n\t\t\tNumServices:   0,\n\t\t},\n\t\tGoTypes:           file_apollo_trace_proto_goTypes,\n\t\tDependencyIndexes: file_apollo_trace_proto_depIdxs,\n\t\tEnumInfos:         file_apollo_trace_proto_enumTypes,\n\t\tMessageInfos:      file_apollo_trace_proto_msgTypes,\n\t}.Build()\n\tFile_apollo_trace_proto = out.File\n\tfile_apollo_trace_proto_rawDesc = nil\n\tfile_apollo_trace_proto_goTypes = nil\n\tfile_apollo_trace_proto_depIdxs = nil\n}\n"
  },
  {
    "path": "graphql/handler/apollofederatedtracingv1/generated/apollo_trace.proto",
    "content": "syntax = \"proto3\";\noption go_package = \"./generated\";\n\nimport \"google/protobuf/timestamp.proto\";\n\nmessage Trace {\n  message CachePolicy {\n    enum Scope {\n      UNKNOWN = 0;\n      PUBLIC = 1;\n      PRIVATE = 2;\n    }\n\n    Scope scope = 1;\n    int64 max_age_ns = 2; // use 0 for absent, -1 for 0\n  }\n\n  message Details {\n    // The variables associated with this query (unless the reporting agent is\n    // configured to keep them all private). Values are JSON: ie, strings are\n    // enclosed in double quotes, etc.  The value of a private variable is\n    // the empty string.\n    map<string, string> variables_json = 4;\n\n\n    // This is deprecated and only used for legacy applications\n    // don't include this in traces inside a FullTracesReport; the operation\n    // name for these traces comes from the key of the traces_per_query map.\n    string operation_name = 3;\n  }\n\n  message Error {\n    string message = 1; // required\n    repeated Location location = 2;\n    uint64 time_ns = 3;\n    string json = 4;\n  }\n\n  message HTTP {\n    message Values {\n      repeated string value = 1;\n    }\n\n    enum Method {\n      UNKNOWN = 0;\n      OPTIONS = 1;\n      GET = 2;\n      HEAD = 3;\n      POST = 4;\n      PUT = 5;\n      DELETE = 6;\n      TRACE = 7;\n      CONNECT = 8;\n      PATCH = 9;\n    }\n    Method method = 1;\n    string host = 2;\n    string path = 3;\n\n    // Should exclude manual blacklist (\"Auth\" by default)\n    map<string, Values> request_headers = 4;\n    map<string, Values> response_headers = 5;\n\n    uint32 status_code = 6;\n\n    bool secure = 8; // TLS was used\n    string protocol = 9; // by convention \"HTTP/1.0\", \"HTTP/1.1\", \"HTTP/2\" or \"h2\"\n  }\n\n  message Location {\n    uint32 line = 1;\n    uint32 column = 2;\n  }\n\n  // We store information on each resolver execution as a Node on a tree.\n  // The structure of the tree corresponds to the structure of the GraphQL\n  // response; it does not indicate the order in which resolvers were\n  // invoked.  Note that nodes representing indexes (and the root node)\n  // don't contain all Node fields (eg types and times).\n  message Node {\n    // The name of the field (for Nodes representing a resolver call) or the\n    // index in a list (for intermediate Nodes representing elements of a list).\n    // field_name is the name of the field as it appears in the GraphQL\n    // response: ie, it may be an alias.  (In that case, the original_field_name\n    // field holds the actual field name from the schema.) In any context where\n    // we're building up a path, we use the response_name rather than the\n    // original_field_name.\n    oneof id {\n      string response_name = 1;\n      uint32 index = 2;\n    }\n\n    string original_field_name = 14;\n\n    // The field's return type; e.g. \"String!\" for User.email:String!\n    string type = 3;\n\n    // The field's parent type; e.g. \"User\" for User.email:String!\n    string parent_type = 13;\n\n    CachePolicy cache_policy = 5;\n\n    // relative to the trace's start_time, in ns\n    uint64 start_time = 8;\n    // relative to the trace's start_time, in ns\n    uint64 end_time = 9;\n\n    repeated Error error = 11;\n    repeated Node child = 12;\n\n    reserved 4;\n  }\n\n  // represents a node in the query plan, under which there is a trace tree for that service fetch.\n  // In particular, each fetch node represents a call to an implementing service, and calls to implementing\n  // services may not be unique. See https://github.com/apollographql/apollo-server/blob/main/packages/apollo-gateway/src/QueryPlan.ts\n  // for more information and details.\n  message QueryPlanNode {\n    // This represents a set of nodes to be executed sequentially by the Gateway executor\n    message SequenceNode {\n      repeated QueryPlanNode nodes = 1;\n    }\n    // This represents a set of nodes to be executed in parallel by the Gateway executor\n    message ParallelNode {\n      repeated QueryPlanNode nodes = 1;\n    }\n    // This represents a node to send an operation to an implementing service\n    message FetchNode {\n      // XXX When we want to include more details about the sub-operation that was\n      // executed against this service, we should include that here in each fetch node.\n      // This might include an operation signature, requires directive, reference resolutions, etc.\n      string service_name = 1;\n\n      bool trace_parsing_failed = 2;\n\n      // This Trace only contains start_time, end_time, duration_ns, and root;\n      // all timings were calculated **on the federated service**, and clock skew\n      // will be handled by the ingress server.\n      Trace trace = 3;\n\n      // relative to the outer trace's start_time, in ns, measured in the gateway.\n      uint64 sent_time_offset = 4;\n\n      // Wallclock times measured in the gateway for when this operation was\n      // sent and received.\n      google.protobuf.Timestamp sent_time = 5;\n      google.protobuf.Timestamp received_time = 6;\n    }\n\n    // This node represents a way to reach into the response path and attach related entities.\n    // XXX Flatten is really not the right name and this node may be renamed in the query planner.\n    message FlattenNode {\n      repeated ResponsePathElement response_path = 1;\n      QueryPlanNode node = 2;\n    }\n    message ResponsePathElement {\n      oneof id {\n        string field_name = 1;\n        uint32 index = 2;\n      }\n    }\n    oneof node {\n      SequenceNode sequence = 1;\n      ParallelNode parallel = 2;\n      FetchNode fetch = 3;\n      FlattenNode flatten = 4;\n    }\n  }\n\n  // Wallclock time when the trace began.\n  google.protobuf.Timestamp start_time = 4; // required\n  // Wallclock time when the trace ended.\n  google.protobuf.Timestamp end_time = 3; // required\n  // High precision duration of the trace; may not equal end_time-start_time\n  // (eg, if your machine's clock changed during the trace).\n  uint64 duration_ns = 11; // required\n  // A tree containing information about all resolvers run directly by this\n  // service, including errors.\n  Node root = 14;\n\n  // -------------------------------------------------------------------------\n  // Fields below this line are *not* included in federated traces (the traces\n  // sent from federated services to the gateway).\n\n  // In addition to details.raw_query, we include a \"signature\" of the query,\n  // which can be normalized: for example, you may want to discard aliases, drop\n  // unused operations and fragments, sort fields, etc. The most important thing\n  // here is that the signature match the signature in StatsReports. In\n  // StatsReports signatures show up as the key in the per_query map (with the\n  // operation name prepended).  The signature should be a valid GraphQL query.\n  // All traces must have a signature; if this Trace is in a FullTracesReport\n  // that signature is in the key of traces_per_query rather than in this field.\n  // Engineproxy provides the signature in legacy_signature_needs_resigning\n  // instead.\n  string signature = 19;\n\n  // Optional: when GraphQL parsing or validation against the GraphQL schema fails, these fields\n  // can include reference to the operation being sent for users to dig into the set of operations\n  // that are failing validation.\n  string unexecutedOperationBody = 27;\n  string unexecutedOperationName = 28;\n\n  Details details = 6;\n\n  string client_name = 7;\n  string client_version = 8;\n\n  HTTP http = 10;\n\n  CachePolicy cache_policy = 18;\n\n  // If this Trace was created by a gateway, this is the query plan, including\n  // sub-Traces for federated services. Note that the 'root' tree on the\n  // top-level Trace won't contain any resolvers (though it could contain errors\n  // that occurred in the gateway itself).\n  QueryPlanNode query_plan = 26;\n\n  // Was this response served from a full query response cache?  (In that case\n  // the node tree will have no resolvers.)\n  bool full_query_cache_hit = 20;\n\n  // Was this query specified successfully as a persisted query hash?\n  bool persisted_query_hit = 21;\n  // Did this query contain both a full query string and a persisted query hash?\n  // (This typically means that a previous request was rejected as an unknown\n  // persisted query.)\n  bool persisted_query_register = 22;\n\n  // Was this operation registered and a part of the safelist?\n  bool registered_operation = 24;\n\n  // Was this operation forbidden due to lack of safelisting?\n  bool forbidden_operation = 25;\n\n  // Some servers don't do field-level instrumentation for every request and assign\n  // each request a \"weight\" for each request that they do instrument. When this\n  // trace is aggregated into field usage stats, it should count as this value\n  // towards the estimated_execution_count rather than just 1. This value should\n  // typically be at least 1.\n  //\n  // 0 is treated as 1 for backwards compatibility.\n  double field_execution_weight = 31;\n\n\n\n  // removed: Node parse = 12; Node validate = 13;\n  //          Id128 server_id = 1; Id128 client_id = 2;\n\t//          String client_reference_id = 23; String client_address = 9;\n  reserved 1, 2, 9, 12, 13, 23;\n}\n\n// The `service` value embedded within the header key is not guaranteed to contain an actual service,\n// and, in most cases, the service information is trusted to come from upstream processing. If the\n// service _is_ specified in this header, then it is checked to match the context that is reporting it.\n// Otherwise, the service information is deduced from the token context of the reporter and then sent\n// along via other mechanisms (in Kafka, the `ReportKafkaKey). The other information (hostname,\n// agent_version, etc.) is sent by the Apollo Engine Reporting agent, but we do not currently save that\n// information to any of our persistent storage.\nmessage ReportHeader {\n  // eg \"mygraph@myvariant\"\n  string graph_ref = 12;\n\n  // eg \"host-01.example.com\"\n  string hostname = 5;\n\n  // eg \"engineproxy 0.1.0\"\n  string agent_version = 6; // required\n  // eg \"prod-4279-20160804T065423Z-5-g3cf0aa8\" (taken from `git describe --tags`)\n  string service_version = 7;\n  // eg \"node v4.6.0\"\n  string runtime_version = 8;\n  // eg \"Linux box 4.6.5-1-ec2 #1 SMP Mon Aug 1 02:31:38 PDT 2016 x86_64 GNU/Linux\"\n  string uname = 9;\n  // An id that is used to represent the schema to Apollo Graph Manager\n  // Using this in place of what used to be schema_hash, since that is no longer\n  // attached to a schema in the backend.\n  string executable_schema_id = 11;\n\n  reserved 3; // removed string service = 3;\n}\n\nmessage PathErrorStats {\n  map<string, PathErrorStats> children = 1;\n  uint64 errors_count = 4;\n  uint64 requests_with_errors_count = 5;\n}\n\nmessage QueryLatencyStats {\n  repeated sint64 latency_count = 13;\n  uint64 request_count = 2;\n  uint64 cache_hits = 3;\n  uint64 persisted_query_hits = 4;\n  uint64 persisted_query_misses = 5;\n  repeated sint64 cache_latency_count = 14;\n  PathErrorStats root_error_stats = 7;\n  uint64 requests_with_errors_count = 8;\n  repeated sint64 public_cache_ttl_count = 15;\n  repeated sint64 private_cache_ttl_count = 16;\n  uint64 registered_operation_count = 11;\n  uint64 forbidden_operation_count = 12;\n  // The number of requests that were executed without field-level\n  // instrumentation (and thus do not contribute to `observed_execution_count`\n  // fields on this message's cousin-twice-removed FieldStats).\n  uint64 requests_without_field_instrumentation = 17;\n  // 1, 6, 9, and 10 were old int64 histograms\n  reserved 1, 6, 9, 10;\n}\n\nmessage StatsContext {\n  // string client_reference_id = 1;\n  reserved 1;\n  string client_name = 2;\n  string client_version = 3;\n}\n\nmessage ContextualizedQueryLatencyStats {\n  QueryLatencyStats query_latency_stats = 1;\n  StatsContext context = 2;\n}\n\nmessage ContextualizedTypeStats {\n  StatsContext context = 1;\n  map<string, TypeStat> per_type_stat = 2;\n}\n\nmessage FieldStat {\n  string return_type = 3; // required; eg \"String!\" for User.email:String!\n  // Number of errors whose path is this field. Note that we assume that error\n  // tracking does *not* require field-level instrumentation so this *will*\n  // include errors from requests that don't contribute to the\n  // `observed_execution_count` field (and does not need to be scaled by\n  // field_execution_weight).\n  uint64 errors_count = 4;\n  // Number of times that the resolver for this field is directly observed being\n  // executed.\n  uint64 observed_execution_count = 5;\n  // Same as `count` but potentially scaled upwards if the server was only\n  // performing field-level instrumentation on a sampling of operations.  For\n  // example, if the server randomly instruments 1% of requests for this\n  // operation, this number will be 100 times greater than\n  // `observed_execution_count`. (When aggregating a Trace into FieldStats,\n  // this number goes up by the trace's `field_execution_weight` for each\n  // observed field execution, while `observed_execution_count` above goes\n  // up by 1.)\n  uint64 estimated_execution_count = 10;\n  // Number of times the resolver for this field is executed that resulted in\n  // at least one error. \"Request\" is a misnomer here as this corresponds to\n  // resolver calls, not overall operations. Like `errors_count` above, this\n  // includes all requests rather than just requests with field-level\n  // instrumentation.\n  uint64 requests_with_errors_count = 6;\n  // Duration histogram for the latency of this field. Note that it is scaled in\n  // the same way as estimated_execution_count so its \"total count\" might be\n  // greater than `observed_execution_count` and may not exactly equal\n  // `estimated_execution_count` due to rounding.\n  repeated sint64 latency_count = 9;\n  reserved 1, 2, 7, 8;\n}\n\nmessage TypeStat {\n  // Key is (eg) \"email\" for User.email:String!\n  map<string, FieldStat> per_field_stat = 3;\n  reserved 1, 2;\n}\n\nmessage ReferencedFieldsForType {\n  // Contains (eg) \"email\" for User.email:String!\n  repeated string field_names = 1;\n  // True if this type is an interface.\n  bool is_interface = 2;\n}\n\n\n\n// This is the top-level message used by the new traces ingress. This\n// is designed for the apollo-engine-reporting TypeScript agent and will\n// eventually be documented as a public ingress API. This message consists\n// solely of traces; the equivalent of the StatsReport is automatically\n// generated server-side from this message. Agent should either send a trace or include it in the stats\n// for every request in this report. Generally, buffering up until a large\n// size has been reached (say, 4MB) or 5-10 seconds has passed is appropriate.\n// This message used to be know as FullTracesReport, but got renamed since it isn't just for traces anymore\nmessage Report {\n  ReportHeader header = 1;\n\n  // key is statsReportKey (# operationName\\nsignature) Note that the nested\n  // traces will *not* have a signature or details.operationName (because the\n  // key is adequate).\n  //\n  // We also assume that traces don't have\n  // legacy_per_query_implicit_operation_name, and we don't require them to have\n  // details.raw_query (which would consume a lot of space and has privacy/data\n  // access issues, and isn't currently exposed by our app anyway).\n  map<string, TracesAndStats> traces_per_query = 5;\n\n  // This is the time that the requests in this trace are considered to have taken place\n  // If this field is not present the max of the end_time of each trace will be used instead.\n  // If there are no traces and no end_time present the report will not be able to be processed.\n  // Note: This will override the end_time from traces.\n  google.protobuf.Timestamp end_time = 2; // required if no traces in this message\n\n  // Total number of operations processed during this period.\n  uint64 operation_count = 6;\n}\n\nmessage ContextualizedStats {\n  StatsContext context = 1;\n  QueryLatencyStats query_latency_stats = 2;\n  // Key is type name. This structure provides data for the count and latency of individual\n  // field executions and thus only reflects operations for which field-level tracing occurred.\n  map<string, TypeStat> per_type_stat = 3;\n\n}\n\n// A sequence of traces and stats. An individual operation should either be described as a trace\n// or as part of stats, but not both.\nmessage TracesAndStats {\n  repeated Trace trace = 1;\n  repeated ContextualizedStats stats_with_context = 2;\n  // This describes the fields referenced in the operation. Note that this may\n  // include fields that don't show up in FieldStats (due to being interface fields,\n  // being nested under null fields or empty lists or non-matching fragments or\n  // `@include` or `@skip`, etc). It also may be missing fields that show up in FieldStats\n  // (as FieldStats will include the concrete object type for fields referenced\n  // via an interface type).\n  map<string, ReferencedFieldsForType> referenced_fields_by_type = 4;\n  // This field is used to validate that the algorithm used to construct `stats_with_context`\n  // matches similar algorithms in Apollo's servers. It is otherwise ignored and should not\n  // be included in reports.\n  repeated Trace internal_traces_contributing_to_stats = 3;\n}"
  },
  {
    "path": "graphql/handler/apollofederatedtracingv1/logger/logger.go",
    "content": "package logger\n\nimport \"log\"\n\n// Logger is an interface that can be implemented to log errors that occur during the tracing\n// process\n// This can use the default Go logger or a custom logger (e.g. logrus or zap)\ntype Logger interface {\n\tPrint(args any)\n\tPrintln(args any)\n\tPrintf(format string, args any)\n}\n\nfunc NewNoopLogger() *NoopLogger {\n\treturn &NoopLogger{\n\t\tlog.New(NullWriter(1), \"\", log.LstdFlags),\n\t}\n}\n\ntype NullWriter int\n\nfunc (NullWriter) Write([]byte) (int, error) { return 0, nil }\n\ntype NoopLogger struct {\n\t*log.Logger\n}\n\nfunc (l *NoopLogger) Print(args any) {}\n\nfunc (l *NoopLogger) Printf(format string, args any) {}\n\nfunc (l *NoopLogger) Println(v any) {}\n"
  },
  {
    "path": "graphql/handler/apollofederatedtracingv1/logger/logger_test.go",
    "content": "package logger_test\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\n\t\"github.com/99designs/gqlgen/graphql/handler/apollofederatedtracingv1/logger\"\n)\n\nfunc TestNoopLogger_Print(t *testing.T) {\n\tl := logger.NewNoopLogger()\n\tassert.NotPanics(t, func() {\n\t\tl.Print(\"test\")\n\t})\n}\n\nfunc TestNoopLogger_Printf(t *testing.T) {\n\tl := logger.NewNoopLogger()\n\tassert.NotPanics(t, func() {\n\t\tl.Printf(\"test %s\", \"formatted\")\n\t})\n}\n\nfunc TestNoopLogger_Println(t *testing.T) {\n\tl := logger.NewNoopLogger()\n\tassert.NotPanics(t, func() {\n\t\tl.Println(\"test\")\n\t})\n}\n"
  },
  {
    "path": "graphql/handler/apollofederatedtracingv1/tracing.go",
    "content": "package apollofederatedtracingv1\n\nimport (\n\t\"context\"\n\t\"encoding/base64\"\n\t\"fmt\"\n\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n\t\"google.golang.org/protobuf/proto\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\ttracing_logger \"github.com/99designs/gqlgen/graphql/handler/apollofederatedtracingv1/logger\"\n)\n\nconst (\n\tERROR_MASKED     = \"masked\"\n\tERROR_UNMODIFIED = \"all\"\n\tERROR_TRANSFORM  = \"transform\"\n)\n\ntype (\n\tTracer struct {\n\t\tClientName   string\n\t\tVersion      string\n\t\tHostname     string\n\t\tErrorOptions *ErrorOptions\n\n\t\t// Logger is used to log errors that occur during the tracing process; if nil, no logging\n\t\t// will occur\n\t\t// This can use the default Go logger or a custom logger (e.g. logrus or zap)\n\t\tLogger tracing_logger.Logger\n\t}\n\n\ttreeBuilderKey string\n)\n\ntype ErrorOptions struct {\n\t// ErrorOptions is the option to handle errors in the trace, it can be one of the following:\n\t// - \"masked\": masks all errors\n\t// - \"all\": includes all errors\n\t// - \"transform\": includes all errors but transforms them using TransformFunction, which can\n\t// allow users to redact sensitive information\n\tErrorOption       string\n\tTransformFunction func(g *gqlerror.Error) *gqlerror.Error\n}\n\nconst (\n\tkey = treeBuilderKey(\"treeBuilder\")\n)\n\nvar _ interface {\n\tgraphql.HandlerExtension\n\tgraphql.ResponseInterceptor\n\tgraphql.FieldInterceptor\n\tgraphql.OperationInterceptor\n} = &Tracer{}\n\n// ExtensionName returns the name of the extension\nfunc (Tracer) ExtensionName() string {\n\treturn \"ApolloFederatedTracingV1\"\n}\n\n// Validate returns errors based on the schema; since this extension doesn't require validation, we\n// return nil\nfunc (Tracer) Validate(graphql.ExecutableSchema) error {\n\treturn nil\n}\n\nfunc (t *Tracer) shouldTrace(ctx context.Context) bool {\n\treturn graphql.HasOperationContext(ctx) &&\n\t\tgraphql.GetOperationContext(ctx).Headers.Get(\"apollo-federation-include-trace\") == \"ftv1\"\n}\n\nfunc (t *Tracer) getTreeBuilder(ctx context.Context) *TreeBuilder {\n\tval := ctx.Value(key)\n\tif val == nil {\n\t\treturn nil\n\t}\n\tif tb, ok := val.(*TreeBuilder); ok {\n\t\treturn tb\n\t}\n\treturn nil\n}\n\n// InterceptOperation acts on each Graph operation; on each operation, start a tree builder and\n// start the tree's timer for tracing\nfunc (t *Tracer) InterceptOperation(\n\tctx context.Context,\n\tnext graphql.OperationHandler,\n) graphql.ResponseHandler {\n\tif !t.shouldTrace(ctx) {\n\t\treturn next(ctx)\n\t}\n\n\treturn next(context.WithValue(ctx, key, NewTreeBuilder(t.ErrorOptions, t.Logger)))\n}\n\n// InterceptField is called on each field's resolution, including information about the path and\n// parent node.\n// This information is then used to build the relevant Node Tree used in the FTV1 tracing format\nfunc (t *Tracer) InterceptField(ctx context.Context, next graphql.Resolver) (any, error) {\n\tif !t.shouldTrace(ctx) {\n\t\treturn next(ctx)\n\t}\n\tif tb := t.getTreeBuilder(ctx); tb != nil {\n\t\tstop := tb.WillResolveField(ctx)\n\t\tif stop != nil {\n\t\t\tdefer stop()\n\t\t}\n\t}\n\n\treturn next(ctx)\n}\n\n// InterceptResponse is called before the overall response is sent, but before each field resolves;\n// as a result\n// the final marshaling is deferred to happen at the end of the operation\nfunc (t *Tracer) InterceptResponse(\n\tctx context.Context,\n\tnext graphql.ResponseHandler,\n) *graphql.Response {\n\tif !t.shouldTrace(ctx) {\n\t\treturn next(ctx)\n\t}\n\ttb := t.getTreeBuilder(ctx)\n\tif tb == nil {\n\t\treturn next(ctx)\n\t}\n\n\ttb.StartTimer(ctx)\n\n\tval := new(string)\n\tgraphql.RegisterExtension(ctx, \"ftv1\", val)\n\n\t// now that fields have finished resolving, it stops the timer to calculate trace duration\n\tdefer func(val *string) {\n\t\terrors := graphql.GetErrors(ctx)\n\t\tif len(errors) > 0 {\n\t\t\ttb.DidEncounterErrors(ctx, errors)\n\t\t}\n\n\t\ttb.StopTimer(ctx)\n\t\t// marshal the protobuf ...\n\t\tp, err := proto.Marshal(tb.Trace)\n\t\tif err != nil {\n\t\t\tfmt.Print(err)\n\t\t}\n\n\t\t// ... then set the previously instantiated string as the base64 formatted string as\n\t\t// required\n\t\t*val = base64.StdEncoding.EncodeToString(p)\n\t}(val)\n\tresp := next(ctx)\n\treturn resp\n}\n"
  },
  {
    "path": "graphql/handler/apollofederatedtracingv1/tracing_test.go",
    "content": "package apollofederatedtracingv1_test\n\nimport (\n\t\"context\"\n\t\"encoding/base64\"\n\t\"encoding/json\"\n\t\"io\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"strings\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n\t\"google.golang.org/protobuf/proto\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/handler/apollofederatedtracingv1\"\n\t\"github.com/99designs/gqlgen/graphql/handler/apollofederatedtracingv1/generated\"\n\t\"github.com/99designs/gqlgen/graphql/handler/extension\"\n\t\"github.com/99designs/gqlgen/graphql/handler/lru\"\n\t\"github.com/99designs/gqlgen/graphql/handler/testserver\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\ntype alwaysError struct{}\n\nfunc (a *alwaysError) Read(p []byte) (int, error) {\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nfunc TestApolloTracing(t *testing.T) {\n\th := testserver.New()\n\th.AddTransport(transport.POST{})\n\th.Use(&apollofederatedtracingv1.Tracer{})\n\th.Use(&delayMiddleware{})\n\n\tresp := doRequest(h, http.MethodPost, \"/graphql\", `{\"query\":\"{ name }\"}`)\n\tassert.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\tvar respData struct {\n\t\tExtensions struct {\n\t\t\tFTV1 string `json:\"ftv1\"`\n\t\t} `json:\"extensions\"`\n\t}\n\trequire.NoError(t, json.Unmarshal(resp.Body.Bytes(), &respData))\n\n\ttracing := respData.Extensions.FTV1\n\tpbuf, err := base64.StdEncoding.DecodeString(tracing)\n\trequire.NoError(t, err)\n\n\tftv1 := &generated.Trace{}\n\terr = proto.Unmarshal(pbuf, ftv1)\n\trequire.NoError(t, err)\n\n\trequire.NotZero(t, ftv1.StartTime.Nanos)\n\trequire.Less(t, ftv1.StartTime.Nanos, ftv1.EndTime.Nanos)\n\trequire.EqualValues(t, ftv1.EndTime.Nanos-ftv1.StartTime.Nanos, ftv1.DurationNs)\n\n\tt.Logf(\"%#v\\n\", resp.Body.String())\n\trequire.Equal(t, \"Query\", ftv1.Root.Child[0].ParentType)\n\trequire.Equal(t, \"name\", ftv1.Root.Child[0].GetResponseName())\n\trequire.Equal(t, \"String!\", ftv1.Root.Child[0].Type)\n}\n\nfunc TestApolloTracing_Concurrent(t *testing.T) {\n\th := testserver.New()\n\th.AddTransport(transport.POST{})\n\th.Use(&apollofederatedtracingv1.Tracer{})\n\tfor range 2 {\n\t\tgo func() {\n\t\t\tresp := doRequest(h, http.MethodPost, \"/graphql\", `{\"query\":\"{ name }\"}`)\n\t\t\tassert.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\t\t\tvar respData struct {\n\t\t\t\tExtensions struct {\n\t\t\t\t\tFTV1 string `json:\"ftv1\"`\n\t\t\t\t} `json:\"extensions\"`\n\t\t\t}\n\n\t\t\terr := json.Unmarshal(resp.Body.Bytes(), &respData)\n\t\t\tif !assert.NoError(t, err) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\ttracing := respData.Extensions.FTV1\n\t\t\tpbuf, err := base64.StdEncoding.DecodeString(tracing)\n\t\t\tif !assert.NoError(t, err) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tftv1 := &generated.Trace{}\n\t\t\terr = proto.Unmarshal(pbuf, ftv1)\n\t\t\tif assert.NoError(t, err) {\n\t\t\t\tassert.NotZero(t, ftv1.StartTime.Nanos)\n\t\t\t}\n\t\t}()\n\t}\n}\n\nfunc TestApolloTracing_withFail(t *testing.T) {\n\th := testserver.New()\n\th.AddTransport(transport.POST{})\n\th.Use(extension.AutomaticPersistedQuery{Cache: lru.New[string](100)})\n\th.Use(&apollofederatedtracingv1.Tracer{})\n\n\tresp := doRequest(\n\t\th,\n\t\thttp.MethodPost,\n\t\t\"/graphql\",\n\t\t`{\"operationName\":\"A\",\"extensions\":{\"persistedQuery\":{\"version\":1,\"sha256Hash\":\"338bbc16ac780daf81845339fbf0342061c1e9d2b702c96d3958a13a557083a6\"}}}`,\n\t)\n\tassert.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\tb := resp.Body.Bytes()\n\tvar respData struct {\n\t\tErrors gqlerror.List\n\t}\n\trequire.NoError(t, json.Unmarshal(b, &respData))\n\trequire.Len(t, respData.Errors, 1)\n\trequire.Equal(t, \"PersistedQueryNotFound\", respData.Errors[0].Message)\n}\n\n// This tests that the tracing extension does not panic when the request\n// can't be processed for some reason. The specific cause is not\n// important, the scenario being tested is the response interceptor\n// being run to process the error response when no other interceptor\n// has been run, due to (for example) a problem creating the OperationContext.\nfunc TestApolloTracing_withMissingOp(t *testing.T) {\n\th := testserver.New()\n\th.AddTransport(transport.POST{})\n\th.Use(extension.AutomaticPersistedQuery{Cache: lru.New[string](100)})\n\th.Use(&apollofederatedtracingv1.Tracer{})\n\n\tresp := doRequest(h, http.MethodPost, \"/graphql\", `{}`)\n\tassert.Equal(t, http.StatusUnprocessableEntity, resp.Code, resp.Body.String())\n\tb := resp.Body.Bytes()\n\tt.Log(string(b))\n\tvar respData struct {\n\t\tErrors gqlerror.List\n\t}\n\trequire.NoError(t, json.Unmarshal(b, &respData))\n\trequire.Len(t, respData.Errors, 1)\n\trequire.Equal(t, \"no operation provided\", respData.Errors[0].Message)\n}\n\nfunc TestApolloTracing_withUnexpectedEOF(t *testing.T) {\n\th := testserver.New()\n\th.AddTransport(transport.POST{})\n\th.Use(&apollofederatedtracingv1.Tracer{})\n\n\tresp := doRequestWithReader(h, http.MethodPost, \"/graphql\", &alwaysError{})\n\tassert.Equal(t, http.StatusOK, resp.Code)\n}\n\n//nolint:unparam // expected to always get POST for GraphQL\nfunc doRequest(handler http.Handler, method, target, body string) *httptest.ResponseRecorder {\n\treturn doRequestWithReader(handler, method, target, strings.NewReader(body))\n}\n\nfunc doRequestWithReader(handler http.Handler, method string, target string,\n\treader io.Reader,\n) *httptest.ResponseRecorder {\n\tr := httptest.NewRequest(method, target, reader)\n\tr.Header.Set(\"Content-Type\", \"application/json\")\n\tr.Header.Set(\"apollo-federation-include-trace\", \"ftv1\")\n\tw := httptest.NewRecorder()\n\n\thandler.ServeHTTP(w, r)\n\treturn w\n}\n\ntype delayMiddleware struct{}\n\nfunc (*delayMiddleware) InterceptOperation(\n\tctx context.Context,\n\tnext graphql.OperationHandler,\n) graphql.ResponseHandler {\n\ttime.Sleep(time.Millisecond)\n\treturn next(ctx)\n}\n\nfunc (*delayMiddleware) ExtensionName() string {\n\treturn \"delay\"\n}\n\nfunc (*delayMiddleware) Validate(schema graphql.ExecutableSchema) error {\n\treturn nil\n}\n"
  },
  {
    "path": "graphql/handler/apollofederatedtracingv1/tree_builder.go",
    "content": "package apollofederatedtracingv1\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n\t\"google.golang.org/protobuf/types/known/timestamppb\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/handler/apollofederatedtracingv1/generated\"\n\ttracing_logger \"github.com/99designs/gqlgen/graphql/handler/apollofederatedtracingv1/logger\"\n)\n\ntype TreeBuilder struct {\n\tTrace    *generated.Trace\n\trootNode generated.Trace_Node\n\tnodes    map[string]NodeMap // nodes is used to store a pointer map using the node path (e.g. todo[0].id) to itself as well as it's parent\n\n\tstartTime *time.Time\n\tstopped   bool\n\tmu        sync.Mutex\n\n\terrorOptions *ErrorOptions\n\tlogger       tracing_logger.Logger\n}\n\ntype NodeMap struct {\n\tself   *generated.Trace_Node\n\tparent *generated.Trace_Node\n}\n\n// NewTreeBuilder is used to start the node tree with a default root node, along with the related\n// tree nodes map entry\nfunc NewTreeBuilder(errorOptions *ErrorOptions, logger tracing_logger.Logger) *TreeBuilder {\n\tif errorOptions == nil {\n\t\terrorOptions = &ErrorOptions{\n\t\t\tErrorOption:       ERROR_MASKED,\n\t\t\tTransformFunction: defaultErrorTransform,\n\t\t}\n\t}\n\n\tif logger == nil {\n\t\t// defaults to a noop logger\n\t\tlogger = tracing_logger.NewNoopLogger()\n\t}\n\n\tswitch errorOptions.ErrorOption {\n\tcase ERROR_MASKED:\n\t\terrorOptions.TransformFunction = defaultErrorTransform\n\tcase ERROR_UNMODIFIED:\n\t\terrorOptions.TransformFunction = nil\n\tcase ERROR_TRANSFORM:\n\t\tif errorOptions.TransformFunction == nil {\n\t\t\terrorOptions.TransformFunction = defaultErrorTransform\n\t\t}\n\tdefault:\n\t\terrorOptions = &ErrorOptions{\n\t\t\tErrorOption:       ERROR_MASKED,\n\t\t\tTransformFunction: defaultErrorTransform,\n\t\t}\n\t}\n\n\ttb := TreeBuilder{\n\t\trootNode:     generated.Trace_Node{},\n\t\terrorOptions: errorOptions,\n\t\tlogger:       logger,\n\t}\n\n\tt := generated.Trace{\n\t\tRoot: &tb.rootNode,\n\t}\n\ttb.nodes = make(map[string]NodeMap)\n\ttb.nodes[\"\"] = NodeMap{self: &tb.rootNode, parent: nil}\n\n\ttb.Trace = &t\n\n\treturn &tb\n}\n\n// StartTimer marks the time using protobuf timestamp format for use in timing calculations\nfunc (tb *TreeBuilder) StartTimer(ctx context.Context) {\n\tif tb.startTime != nil {\n\t\ttb.logger.Println(errors.New(\"StartTimer called twice\"))\n\t}\n\tif tb.stopped {\n\t\ttb.logger.Println(errors.New(\"StartTimer called after StopTimer\"))\n\t}\n\n\topCtx := graphql.GetOperationContext(ctx)\n\tstart := opCtx.Stats.OperationStart\n\n\ttb.Trace.StartTime = timestamppb.New(start)\n\ttb.startTime = &start\n}\n\n// StopTimer marks the end of the timer, along with setting the related fields in the protobuf\n// representation\nfunc (tb *TreeBuilder) StopTimer(ctx context.Context) {\n\ttb.logger.Print(\"StopTimer called\")\n\tif tb.startTime == nil {\n\t\ttb.logger.Println(errors.New(\"StopTimer called before StartTimer\"))\n\t}\n\tif tb.stopped {\n\t\ttb.logger.Println(errors.New(\"StopTimer called twice\"))\n\t}\n\n\tts := graphql.Now().UTC()\n\ttb.Trace.DurationNs = uint64(ts.Sub(*tb.startTime).Nanoseconds())\n\ttb.Trace.EndTime = timestamppb.New(ts)\n\ttb.stopped = true\n}\n\n// On each field, it calculates the time started at as now - tree.StartTime, as well as a deferred\n// function upon full resolution of the field as (now - tree.StartTime); these are used by Apollo to\n// calculate how fields are being resolved in the AST\nfunc (tb *TreeBuilder) WillResolveField(ctx context.Context) func() {\n\tif tb.startTime == nil {\n\t\ttb.logger.Println(errors.New(\"WillResolveField called before StartTimer\"))\n\t\treturn nil\n\t}\n\tif tb.stopped {\n\t\ttb.logger.Println(errors.New(\"WillResolveField called after StopTimer\"))\n\t\treturn nil\n\t}\n\tfc := graphql.GetFieldContext(ctx)\n\n\tnode := tb.newNode(fc)\n\tnode.StartTime = uint64(graphql.Now().Sub(*tb.startTime).Nanoseconds())\n\tnode.Type = fc.Field.Definition.Type.String()\n\tnode.ParentType = fc.Object\n\n\treturn func() {\n\t\tnode.EndTime = uint64(graphql.Now().Sub(*tb.startTime).Nanoseconds())\n\t}\n}\n\nfunc (tb *TreeBuilder) DidEncounterErrors(ctx context.Context, gqlErrors gqlerror.List) {\n\tif tb.startTime == nil {\n\t\ttb.logger.Println(errors.New(\"DidEncounterErrors called before StartTimer\"))\n\t\treturn\n\t}\n\tif tb.stopped {\n\t\ttb.logger.Println(errors.New(\"DidEncounterErrors called after StopTimer\"))\n\t\treturn\n\t}\n\n\tfor _, err := range gqlErrors {\n\t\tif err != nil {\n\t\t\ttb.addProtobufError(err)\n\t\t}\n\t}\n}\n\n// newNode is called on each new node within the AST and sets related values such as the entry in\n// the tree.node map and ID attribute\nfunc (tb *TreeBuilder) newNode(path *graphql.FieldContext) *generated.Trace_Node {\n\t// if the path is empty, it is the root node of the operation\n\tif path.Path().String() == \"\" {\n\t\treturn &tb.rootNode\n\t}\n\n\tself := &generated.Trace_Node{}\n\tpn := tb.ensureParentNode(path)\n\n\tif path.Index != nil {\n\t\tself.Id = &generated.Trace_Node_Index{Index: uint32(*path.Index)}\n\t} else {\n\t\tself.Id = &generated.Trace_Node_ResponseName{ResponseName: path.Field.Name}\n\t}\n\n\t// lock the map from being read/written concurrently to avoid panics\n\ttb.mu.Lock()\n\tnodeRef := tb.nodes[path.Path().String()]\n\t// set the values for the node references to help build the tree\n\tnodeRef.parent = pn\n\tnodeRef.self = self\n\n\t// since they are references, we point the parent to it's children nodes\n\tnodeRef.parent.Child = append(nodeRef.parent.Child, self)\n\tnodeRef.self = self\n\ttb.nodes[path.Path().String()] = nodeRef\n\ttb.mu.Unlock()\n\n\treturn self\n}\n\n// ensureParentNode ensures the node isn't orphaned\nfunc (tb *TreeBuilder) ensureParentNode(path *graphql.FieldContext) *generated.Trace_Node {\n\t// lock to read briefly, then unlock to avoid r/w issues\n\ttb.mu.Lock()\n\tnodeRef := tb.nodes[path.Parent.Path().String()]\n\ttb.mu.Unlock()\n\n\tif nodeRef.self != nil {\n\t\treturn nodeRef.self\n\t}\n\n\treturn tb.newNode(path.Parent)\n}\n\nfunc (tb *TreeBuilder) addProtobufError(\n\tgqlError *gqlerror.Error,\n) {\n\tif tb.startTime == nil {\n\t\ttb.logger.Println(errors.New(\"addProtobufError called before StartTimer\"))\n\t\treturn\n\t}\n\tif tb.stopped {\n\t\ttb.logger.Println(errors.New(\"addProtobufError called after StopTimer\"))\n\t\treturn\n\t}\n\ttb.mu.Lock()\n\tvar nodeRef *generated.Trace_Node\n\n\tif tb.nodes[gqlError.Path.String()].self != nil {\n\t\tnodeRef = tb.nodes[gqlError.Path.String()].self\n\t} else {\n\t\ttb.logger.Println(\"Error: Path not found in node map\")\n\t\ttb.mu.Unlock()\n\t\treturn\n\t}\n\n\tif tb.errorOptions.ErrorOption != ERROR_UNMODIFIED && tb.errorOptions.TransformFunction != nil {\n\t\tgqlError = tb.errorOptions.TransformFunction(gqlError)\n\t}\n\n\terrorLocations := make([]*generated.Trace_Location, len(gqlError.Locations))\n\tfor i, loc := range gqlError.Locations {\n\t\terrorLocations[i] = &generated.Trace_Location{\n\t\t\tLine:   uint32(loc.Line),\n\t\t\tColumn: uint32(loc.Column),\n\t\t}\n\t}\n\n\tgqlJson, err := json.Marshal(gqlError)\n\tif err != nil {\n\t\ttb.logger.Println(err)\n\t\ttb.mu.Unlock()\n\t\treturn\n\t}\n\n\tnodeRef.Error = append(nodeRef.Error, &generated.Trace_Error{\n\t\tMessage:  gqlError.Message,\n\t\tLocation: errorLocations,\n\t\tJson:     string(gqlJson),\n\t})\n\ttb.mu.Unlock()\n}\n\nfunc defaultErrorTransform(_ *gqlerror.Error) *gqlerror.Error {\n\treturn gqlerror.Errorf(\"<masked>\")\n}\n"
  },
  {
    "path": "graphql/handler/apollotracing/tracer.go",
    "content": "package apollotracing\n\nimport (\n\t\"context\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\ntype (\n\tTracer struct{}\n\n\tTracingExtension struct {\n\t\tmu         sync.Mutex\n\t\tVersion    int           `json:\"version\"`\n\t\tStartTime  time.Time     `json:\"startTime\"`\n\t\tEndTime    time.Time     `json:\"endTime\"`\n\t\tDuration   time.Duration `json:\"duration\"`\n\t\tParsing    Span          `json:\"parsing\"`\n\t\tValidation Span          `json:\"validation\"`\n\t\tExecution  struct {\n\t\t\tResolvers []*ResolverExecution `json:\"resolvers\"`\n\t\t} `json:\"execution\"`\n\t}\n\n\tSpan struct {\n\t\tStartOffset time.Duration `json:\"startOffset\"`\n\t\tDuration    time.Duration `json:\"duration\"`\n\t}\n\n\tResolverExecution struct {\n\t\tPath        ast.Path      `json:\"path\"`\n\t\tParentType  string        `json:\"parentType\"`\n\t\tFieldName   string        `json:\"fieldName\"`\n\t\tReturnType  string        `json:\"returnType\"`\n\t\tStartOffset time.Duration `json:\"startOffset\"`\n\t\tDuration    time.Duration `json:\"duration\"`\n\t}\n)\n\nvar _ interface {\n\tgraphql.HandlerExtension\n\tgraphql.ResponseInterceptor\n\tgraphql.FieldInterceptor\n} = Tracer{}\n\nfunc (Tracer) ExtensionName() string {\n\treturn \"ApolloTracing\"\n}\n\nfunc (Tracer) Validate(graphql.ExecutableSchema) error {\n\treturn nil\n}\n\nfunc (Tracer) InterceptField(ctx context.Context, next graphql.Resolver) (any, error) {\n\ttd, ok := graphql.GetExtension(ctx, \"tracing\").(*TracingExtension)\n\tif !ok {\n\t\treturn next(ctx)\n\t}\n\n\tstart := graphql.Now()\n\n\tdefer func() {\n\t\tend := graphql.Now()\n\n\t\topCtx := graphql.GetOperationContext(ctx)\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tresolver := &ResolverExecution{\n\t\t\tPath:        fc.Path(),\n\t\t\tParentType:  fc.Object,\n\t\t\tFieldName:   fc.Field.Name,\n\t\t\tReturnType:  fc.Field.Definition.Type.String(),\n\t\t\tStartOffset: start.Sub(opCtx.Stats.OperationStart),\n\t\t\tDuration:    end.Sub(start),\n\t\t}\n\n\t\ttd.mu.Lock()\n\t\ttd.Execution.Resolvers = append(td.Execution.Resolvers, resolver)\n\t\ttd.mu.Unlock()\n\t}()\n\n\treturn next(ctx)\n}\n\nfunc (Tracer) InterceptResponse(\n\tctx context.Context,\n\tnext graphql.ResponseHandler,\n) *graphql.Response {\n\tif !graphql.HasOperationContext(ctx) {\n\t\treturn next(ctx)\n\t}\n\n\topCtx := graphql.GetOperationContext(ctx)\n\n\tstart := opCtx.Stats.OperationStart\n\n\ttd := &TracingExtension{\n\t\tVersion:   1,\n\t\tStartTime: start,\n\t\tParsing: Span{\n\t\t\tStartOffset: opCtx.Stats.Parsing.Start.Sub(start),\n\t\t\tDuration:    opCtx.Stats.Parsing.End.Sub(opCtx.Stats.Parsing.Start),\n\t\t},\n\n\t\tValidation: Span{\n\t\t\tStartOffset: opCtx.Stats.Validation.Start.Sub(start),\n\t\t\tDuration:    opCtx.Stats.Validation.End.Sub(opCtx.Stats.Validation.Start),\n\t\t},\n\t}\n\n\tgraphql.RegisterExtension(ctx, \"tracing\", td)\n\tresp := next(ctx)\n\n\tend := graphql.Now()\n\ttd.EndTime = end\n\ttd.Duration = end.Sub(start)\n\n\treturn resp\n}\n"
  },
  {
    "path": "graphql/handler/apollotracing/tracer_test.go",
    "content": "package apollotracing_test\n\nimport (\n\t\"encoding/json\"\n\t\"io\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"strings\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/handler/apollotracing\"\n\t\"github.com/99designs/gqlgen/graphql/handler/extension\"\n\t\"github.com/99designs/gqlgen/graphql/handler/lru\"\n\t\"github.com/99designs/gqlgen/graphql/handler/testserver\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\ntype alwaysError struct{}\n\nfunc (a *alwaysError) Read(p []byte) (int, error) {\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nfunc TestApolloTracing(t *testing.T) {\n\tnow := time.Unix(0, 0)\n\n\tgraphql.Now = func() time.Time {\n\t\tdefer func() {\n\t\t\tnow = now.Add(100 * time.Nanosecond)\n\t\t}()\n\t\treturn now\n\t}\n\n\th := testserver.New()\n\th.AddTransport(transport.POST{})\n\th.Use(apollotracing.Tracer{})\n\n\tresp := doRequest(h, http.MethodPost, \"/graphql\", `{\"query\":\"{ name }\"}`)\n\tassert.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\tvar respData struct {\n\t\tExtensions struct {\n\t\t\tTracing apollotracing.TracingExtension `json:\"tracing\"`\n\t\t} `json:\"extensions\"`\n\t}\n\trequire.NoError(t, json.Unmarshal(resp.Body.Bytes(), &respData))\n\n\ttracing := &respData.Extensions.Tracing\n\n\trequire.EqualValues(t, 1, tracing.Version)\n\n\trequire.Zero(t, tracing.StartTime.UnixNano())\n\trequire.EqualValues(t, 900, tracing.EndTime.UnixNano())\n\trequire.EqualValues(t, 900, tracing.Duration)\n\n\trequire.EqualValues(t, 300, tracing.Parsing.StartOffset)\n\trequire.EqualValues(t, 100, tracing.Parsing.Duration)\n\n\trequire.EqualValues(t, 500, tracing.Validation.StartOffset)\n\trequire.EqualValues(t, 100, tracing.Validation.Duration)\n\n\trequire.EqualValues(t, 700, tracing.Execution.Resolvers[0].StartOffset)\n\trequire.EqualValues(t, 100, tracing.Execution.Resolvers[0].Duration)\n\trequire.EqualValues(t, ast.Path{ast.PathName(\"name\")}, tracing.Execution.Resolvers[0].Path)\n\trequire.Equal(t, \"Query\", tracing.Execution.Resolvers[0].ParentType)\n\trequire.Equal(t, \"name\", tracing.Execution.Resolvers[0].FieldName)\n\trequire.Equal(t, \"String!\", tracing.Execution.Resolvers[0].ReturnType)\n}\n\nfunc TestApolloTracing_withFail(t *testing.T) {\n\tnow := time.Unix(0, 0)\n\n\tgraphql.Now = func() time.Time {\n\t\tdefer func() {\n\t\t\tnow = now.Add(100 * time.Nanosecond)\n\t\t}()\n\t\treturn now\n\t}\n\n\th := testserver.New()\n\th.AddTransport(transport.POST{})\n\th.Use(extension.AutomaticPersistedQuery{Cache: lru.New[string](100)})\n\th.Use(apollotracing.Tracer{})\n\n\tresp := doRequest(\n\t\th,\n\t\thttp.MethodPost,\n\t\t\"/graphql\",\n\t\t`{\"operationName\":\"A\",\"extensions\":{\"persistedQuery\":{\"version\":1,\"sha256Hash\":\"338bbc16ac780daf81845339fbf0342061c1e9d2b702c96d3958a13a557083a6\"}}}`,\n\t)\n\tassert.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\tb := resp.Body.Bytes()\n\tt.Log(string(b))\n\tvar respData struct {\n\t\tErrors gqlerror.List\n\t}\n\trequire.NoError(t, json.Unmarshal(b, &respData))\n\trequire.Len(t, respData.Errors, 1)\n\trequire.Equal(t, \"PersistedQueryNotFound\", respData.Errors[0].Message)\n}\n\nfunc TestApolloTracing_withUnexpectedEOF(t *testing.T) {\n\th := testserver.New()\n\th.AddTransport(transport.POST{})\n\th.Use(apollotracing.Tracer{})\n\n\tresp := doRequestWithReader(h, http.MethodPost, \"/graphql\", &alwaysError{})\n\tassert.Equal(t, http.StatusOK, resp.Code)\n}\n\nfunc doRequest(handler http.Handler, method, target, body string) *httptest.ResponseRecorder {\n\treturn doRequestWithReader(handler, method, target, strings.NewReader(body))\n}\n\nfunc doRequestWithReader(handler http.Handler, method string, target string,\n\treader io.Reader,\n) *httptest.ResponseRecorder {\n\tr := httptest.NewRequest(method, target, reader)\n\tr.Header.Set(\"Content-Type\", \"application/json\")\n\tw := httptest.NewRecorder()\n\n\thandler.ServeHTTP(w, r)\n\treturn w\n}\n"
  },
  {
    "path": "graphql/handler/debug/tracer.go",
    "content": "package debug\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"strings\"\n\n\t\"github.com/logrusorgru/aurora/v4\"\n\t\"github.com/mattn/go-colorable\"\n\t\"github.com/mattn/go-isatty\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\ntype Tracer struct {\n\tDisableColor bool\n\tau           *aurora.Aurora\n\tout          io.Writer\n}\n\nvar _ interface {\n\tgraphql.HandlerExtension\n\tgraphql.ResponseInterceptor\n} = &Tracer{}\n\nfunc (a Tracer) ExtensionName() string {\n\treturn \"ApolloTracing\"\n}\n\nfunc (a *Tracer) Validate(schema graphql.ExecutableSchema) error {\n\tisTTY := isatty.IsTerminal(os.Stdout.Fd())\n\n\ta.au = aurora.New(aurora.WithColors(!a.DisableColor && isTTY))\n\ta.out = colorable.NewColorableStdout()\n\n\treturn nil\n}\n\nfunc stringify(value any) string {\n\tvalueJson, err := json.MarshalIndent(value, \"  \", \"  \")\n\tif err == nil {\n\t\treturn string(valueJson)\n\t}\n\n\treturn fmt.Sprint(value)\n}\n\nfunc (a Tracer) InterceptResponse(\n\tctx context.Context,\n\tnext graphql.ResponseHandler,\n) *graphql.Response {\n\topCtx := graphql.GetOperationContext(ctx)\n\n\t_, _ = fmt.Fprintln(a.out, \"GraphQL Request {\")\n\tfor line := range strings.SplitSeq(opCtx.RawQuery, \"\\n\") {\n\t\t_, _ = fmt.Fprintln(a.out, \" \", aurora.Cyan(line))\n\t}\n\tfor name, value := range opCtx.Variables {\n\t\t_, _ = fmt.Fprintf(a.out, \"  var %s = %s\\n\", name, aurora.Yellow(stringify(value)))\n\t}\n\tresp := next(ctx)\n\n\t_, _ = fmt.Fprintln(a.out, \"  resp:\", aurora.Green(stringify(resp)))\n\tif resp != nil {\n\t\tfor _, err := range resp.Errors {\n\t\t\t_, _ = fmt.Fprintln(\n\t\t\t\ta.out,\n\t\t\t\t\"  error:\",\n\t\t\t\taurora.Bold(err.Path.String()+\":\"),\n\t\t\t\taurora.Red(err.Message),\n\t\t\t)\n\t\t}\n\t}\n\n\t_, _ = fmt.Fprintln(a.out, \"}\")\n\t_, _ = fmt.Fprintln(a.out)\n\treturn resp\n}\n"
  },
  {
    "path": "graphql/handler/extension/apq.go",
    "content": "package extension\n\nimport (\n\t\"context\"\n\t\"crypto/sha256\"\n\t\"encoding/hex\"\n\t\"errors\"\n\n\t\"github.com/go-viper/mapstructure/v2\"\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/errcode\"\n)\n\nconst (\n\terrPersistedQueryNotFound     = \"PersistedQueryNotFound\"\n\terrPersistedQueryNotFoundCode = \"PERSISTED_QUERY_NOT_FOUND\"\n)\n\n// AutomaticPersistedQuery saves client upload by optimistically sending only the hashes of queries,\n// if the server does not yet know what the query is for the hash it will respond telling the client\n// to send the query along with the\n// hash in the next request.\n// see https://github.com/apollographql/apollo-link-persisted-queries\ntype AutomaticPersistedQuery struct {\n\tCache graphql.Cache[string]\n}\n\ntype ApqStats struct {\n\t// The hash of the incoming query\n\tHash string\n\n\t// SentQuery is true if the incoming request sent the full query\n\tSentQuery bool\n}\n\nconst apqExtension = \"APQ\"\n\nvar _ interface {\n\tgraphql.OperationParameterMutator\n\tgraphql.HandlerExtension\n} = AutomaticPersistedQuery{}\n\nfunc (a AutomaticPersistedQuery) ExtensionName() string {\n\treturn \"AutomaticPersistedQuery\"\n}\n\nfunc (a AutomaticPersistedQuery) Validate(schema graphql.ExecutableSchema) error {\n\tif a.Cache == nil {\n\t\treturn errors.New(\"AutomaticPersistedQuery.Cache can not be nil\")\n\t}\n\treturn nil\n}\n\nfunc (a AutomaticPersistedQuery) MutateOperationParameters(\n\tctx context.Context,\n\trawParams *graphql.RawParams,\n) *gqlerror.Error {\n\tif rawParams.Extensions[\"persistedQuery\"] == nil {\n\t\treturn nil\n\t}\n\n\tvar extension struct {\n\t\tSha256  string `mapstructure:\"sha256Hash\"`\n\t\tVersion int64  `mapstructure:\"version\"`\n\t}\n\n\tif err := mapstructure.Decode(rawParams.Extensions[\"persistedQuery\"], &extension); err != nil {\n\t\treturn gqlerror.Errorf(\"invalid APQ extension data\")\n\t}\n\n\tif extension.Version != 1 {\n\t\treturn gqlerror.Errorf(\"unsupported APQ version\")\n\t}\n\n\tfullQuery := false\n\tif rawParams.Query == \"\" {\n\t\tvar ok bool\n\t\t// client sent optimistic query hash without query string, get it from the cache\n\t\trawParams.Query, ok = a.Cache.Get(ctx, extension.Sha256)\n\t\tif !ok {\n\t\t\terr := gqlerror.Errorf(errPersistedQueryNotFound)\n\t\t\terrcode.Set(err, errPersistedQueryNotFoundCode)\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\t// client sent optimistic query hash with query string, verify and store it\n\t\tif computeQueryHash(rawParams.Query) != extension.Sha256 {\n\t\t\treturn gqlerror.Errorf(\"provided APQ hash does not match query\")\n\t\t}\n\t\ta.Cache.Add(ctx, extension.Sha256, rawParams.Query)\n\t\tfullQuery = true\n\t}\n\n\tgraphql.GetOperationContext(ctx).Stats.SetExtension(apqExtension, &ApqStats{\n\t\tHash:      extension.Sha256,\n\t\tSentQuery: fullQuery,\n\t})\n\n\treturn nil\n}\n\nfunc GetApqStats(ctx context.Context) *ApqStats {\n\topCtx := graphql.GetOperationContext(ctx)\n\tif opCtx == nil {\n\t\treturn nil\n\t}\n\n\ts, _ := opCtx.Stats.GetExtension(apqExtension).(*ApqStats)\n\treturn s\n}\n\nfunc computeQueryHash(query string) string {\n\tb := sha256.Sum256([]byte(query))\n\treturn hex.EncodeToString(b[:])\n}\n"
  },
  {
    "path": "graphql/handler/extension/apq_test.go",
    "content": "package extension_test\n\nimport (\n\t\"context\"\n\t\"net/http\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/handler/extension\"\n\t\"github.com/99designs/gqlgen/graphql/handler/testserver\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestAPQIntegration(t *testing.T) {\n\th := testserver.New()\n\th.Use(&extension.AutomaticPersistedQuery{Cache: graphql.MapCache[string]{}})\n\th.AddTransport(&transport.POST{})\n\n\tvar stats *extension.ApqStats\n\th.AroundResponses(func(ctx context.Context, next graphql.ResponseHandler) *graphql.Response {\n\t\tstats = extension.GetApqStats(ctx)\n\t\treturn next(ctx)\n\t})\n\n\tresp := doRequest(\n\t\th,\n\t\thttp.MethodPost,\n\t\t\"/graphql\",\n\t\t`{\"query\":\"{ name }\",\"extensions\":{\"persistedQuery\":{\"version\":1,\"sha256Hash\":\"30166fc3298853f22709fce1e4a00e98f1b6a3160eaaaf9cb3b7db6a16073b07\"}}}`,\n\t)\n\trequire.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\trequire.JSONEq(t, `{\"data\":{\"name\":\"test\"}}`, resp.Body.String())\n\n\trequire.NotNil(t, stats)\n\trequire.True(t, stats.SentQuery)\n\trequire.Equal(t, \"30166fc3298853f22709fce1e4a00e98f1b6a3160eaaaf9cb3b7db6a16073b07\", stats.Hash)\n}\n\nfunc TestAPQ(t *testing.T) {\n\tconst query = \"{ me { name } }\"\n\tconst hash = \"b8d9506e34c83b0e53c2aa463624fcea354713bc38f95276e6f0bd893ffb5b88\"\n\n\tt.Run(\"with query and no hash\", func(t *testing.T) {\n\t\tctx := newOC()\n\t\tparams := &graphql.RawParams{\n\t\t\tQuery: \"original query\",\n\t\t}\n\n\t\terr := extension.AutomaticPersistedQuery{\n\t\t\tCache: graphql.MapCache[string]{},\n\t\t}.MutateOperationParameters(\n\t\t\tctx,\n\t\t\tparams,\n\t\t)\n\n\t\trequire.Equal(t, (*gqlerror.Error)(nil), err)\n\t\trequire.Equal(t, \"original query\", params.Query)\n\t})\n\n\tt.Run(\"with hash miss and no query\", func(t *testing.T) {\n\t\tctx := newOC()\n\t\tparams := &graphql.RawParams{\n\t\t\tExtensions: map[string]any{\n\t\t\t\t\"persistedQuery\": map[string]any{\n\t\t\t\t\t\"sha256Hash\": hash,\n\t\t\t\t\t\"version\":    1,\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\terr := extension.AutomaticPersistedQuery{\n\t\t\tCache: graphql.MapCache[string]{},\n\t\t}.MutateOperationParameters(\n\t\t\tctx,\n\t\t\tparams,\n\t\t)\n\t\trequire.Equal(t, \"PersistedQueryNotFound\", err.Message)\n\t})\n\n\tt.Run(\"with hash miss and query\", func(t *testing.T) {\n\t\tctx := newOC()\n\t\tparams := &graphql.RawParams{\n\t\t\tQuery: query,\n\t\t\tExtensions: map[string]any{\n\t\t\t\t\"persistedQuery\": map[string]any{\n\t\t\t\t\t\"sha256Hash\": hash,\n\t\t\t\t\t\"version\":    1,\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\t\tcache := graphql.MapCache[string]{}\n\t\terr := extension.AutomaticPersistedQuery{\n\t\t\tCache: cache,\n\t\t}.MutateOperationParameters(\n\t\t\tctx,\n\t\t\tparams,\n\t\t)\n\n\t\trequire.Equal(t, (*gqlerror.Error)(nil), err)\n\t\trequire.Equal(t, \"{ me { name } }\", params.Query)\n\t\trequire.Equal(t, \"{ me { name } }\", cache[hash])\n\t})\n\n\tt.Run(\"with hash miss and query\", func(t *testing.T) {\n\t\tctx := newOC()\n\t\tparams := &graphql.RawParams{\n\t\t\tQuery: query,\n\t\t\tExtensions: map[string]any{\n\t\t\t\t\"persistedQuery\": map[string]any{\n\t\t\t\t\t\"sha256Hash\": hash,\n\t\t\t\t\t\"version\":    1,\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\t\tcache := graphql.MapCache[string]{}\n\t\terr := extension.AutomaticPersistedQuery{cache}.MutateOperationParameters(ctx, params)\n\t\trequire.Equal(t, (*gqlerror.Error)(nil), err)\n\n\t\trequire.Equal(t, \"{ me { name } }\", params.Query)\n\t\trequire.Equal(t, \"{ me { name } }\", cache[hash])\n\t})\n\n\tt.Run(\"with hash hit and no query\", func(t *testing.T) {\n\t\tctx := newOC()\n\t\tparams := &graphql.RawParams{\n\t\t\tExtensions: map[string]any{\n\t\t\t\t\"persistedQuery\": map[string]any{\n\t\t\t\t\t\"sha256Hash\": hash,\n\t\t\t\t\t\"version\":    1,\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\t\tcache := graphql.MapCache[string]{\n\t\t\thash: query,\n\t\t}\n\t\terr := extension.AutomaticPersistedQuery{cache}.MutateOperationParameters(ctx, params)\n\n\t\trequire.Equal(t, (*gqlerror.Error)(nil), err)\n\t\trequire.Equal(t, \"{ me { name } }\", params.Query)\n\t})\n\n\tt.Run(\"with malformed extension payload\", func(t *testing.T) {\n\t\tctx := newOC()\n\t\tparams := &graphql.RawParams{\n\t\t\tExtensions: map[string]any{\n\t\t\t\t\"persistedQuery\": \"asdf\",\n\t\t\t},\n\t\t}\n\n\t\terr := extension.AutomaticPersistedQuery{\n\t\t\tgraphql.MapCache[string]{},\n\t\t}.MutateOperationParameters(\n\t\t\tctx,\n\t\t\tparams,\n\t\t)\n\t\trequire.Equal(t, \"invalid APQ extension data\", err.Message)\n\t})\n\n\tt.Run(\"with invalid extension version\", func(t *testing.T) {\n\t\tctx := newOC()\n\t\tparams := &graphql.RawParams{\n\t\t\tExtensions: map[string]any{\n\t\t\t\t\"persistedQuery\": map[string]any{\n\t\t\t\t\t\"version\": 2,\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\t\terr := extension.AutomaticPersistedQuery{\n\t\t\tgraphql.MapCache[string]{},\n\t\t}.MutateOperationParameters(\n\t\t\tctx,\n\t\t\tparams,\n\t\t)\n\t\trequire.Equal(t, \"unsupported APQ version\", err.Message)\n\t})\n\n\tt.Run(\"with hash mismatch\", func(t *testing.T) {\n\t\tctx := newOC()\n\t\tparams := &graphql.RawParams{\n\t\t\tQuery: query,\n\t\t\tExtensions: map[string]any{\n\t\t\t\t\"persistedQuery\": map[string]any{\n\t\t\t\t\t\"sha256Hash\": \"badhash\",\n\t\t\t\t\t\"version\":    1,\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\terr := extension.AutomaticPersistedQuery{\n\t\t\tgraphql.MapCache[string]{},\n\t\t}.MutateOperationParameters(\n\t\t\tctx,\n\t\t\tparams,\n\t\t)\n\t\trequire.Equal(t, \"provided APQ hash does not match query\", err.Message)\n\t})\n}\n\nfunc newOC() context.Context {\n\toc := &graphql.OperationContext{}\n\treturn graphql.WithOperationContext(context.Background(), oc)\n}\n"
  },
  {
    "path": "graphql/handler/extension/complexity.go",
    "content": "package extension\n\nimport (\n\t\"context\"\n\t\"errors\"\n\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n\n\t\"github.com/99designs/gqlgen/complexity\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/errcode\"\n)\n\nconst errComplexityLimit = \"COMPLEXITY_LIMIT_EXCEEDED\"\n\n// ComplexityLimit allows you to define a limit on query complexity\n//\n// If a query is submitted that exceeds the limit, a 422 status code will be returned.\ntype ComplexityLimit struct {\n\tFunc func(ctx context.Context, opCtx *graphql.OperationContext) int\n\n\tes   graphql.ExecutableSchema\n\topts []complexity.Option\n}\n\nvar _ interface {\n\tgraphql.OperationContextMutator\n\tgraphql.HandlerExtension\n} = &ComplexityLimit{}\n\nconst complexityExtension = \"ComplexityLimit\"\n\ntype ComplexityStats struct {\n\t// The calculated complexity for this request\n\tComplexity int\n\n\t// The complexity limit for this request returned by the extension func\n\tComplexityLimit int\n}\n\n// FixedComplexityLimit sets a complexity limit that does not change\nfunc FixedComplexityLimit(limit int, opts ...complexity.Option) *ComplexityLimit {\n\treturn &ComplexityLimit{\n\t\tFunc: func(ctx context.Context, opCtx *graphql.OperationContext) int {\n\t\t\treturn limit\n\t\t},\n\t\topts: opts,\n\t}\n}\n\nfunc (c ComplexityLimit) ExtensionName() string {\n\treturn complexityExtension\n}\n\nfunc (c *ComplexityLimit) Validate(schema graphql.ExecutableSchema) error {\n\tif c.Func == nil {\n\t\treturn errors.New(\"ComplexityLimit func can not be nil\")\n\t}\n\tc.es = schema\n\treturn nil\n}\n\nfunc (c ComplexityLimit) MutateOperationContext(\n\tctx context.Context,\n\topCtx *graphql.OperationContext,\n) *gqlerror.Error {\n\top := opCtx.Doc.Operations.ForName(opCtx.OperationName)\n\tcomplexityCalcs := complexity.Calculate(ctx, c.es, op, opCtx.Variables, c.opts...)\n\n\tlimit := c.Func(ctx, opCtx)\n\n\topCtx.Stats.SetExtension(complexityExtension, &ComplexityStats{\n\t\tComplexity:      complexityCalcs,\n\t\tComplexityLimit: limit,\n\t})\n\n\tif complexityCalcs > limit {\n\t\terr := gqlerror.Errorf(\n\t\t\t\"operation has complexity %d, which exceeds the limit of %d\",\n\t\t\tcomplexityCalcs,\n\t\t\tlimit,\n\t\t)\n\t\terrcode.Set(err, errComplexityLimit)\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc GetComplexityStats(ctx context.Context) *ComplexityStats {\n\topCtx := graphql.GetOperationContext(ctx)\n\tif opCtx == nil {\n\t\treturn nil\n\t}\n\n\ts, _ := opCtx.Stats.GetExtension(complexityExtension).(*ComplexityStats)\n\treturn s\n}\n"
  },
  {
    "path": "graphql/handler/extension/complexity_test.go",
    "content": "package extension_test\n\nimport (\n\t\"context\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/handler/extension\"\n\t\"github.com/99designs/gqlgen/graphql/handler/testserver\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestHandlerComplexity(t *testing.T) {\n\th := testserver.New()\n\th.Use(&extension.ComplexityLimit{\n\t\tFunc: func(ctx context.Context, opCtx *graphql.OperationContext) int {\n\t\t\tif opCtx.RawQuery == \"{ ok: name }\" {\n\t\t\t\treturn 4\n\t\t\t}\n\t\t\treturn 2\n\t\t},\n\t})\n\th.AddTransport(&transport.POST{})\n\tvar stats *extension.ComplexityStats\n\th.AroundResponses(func(ctx context.Context, next graphql.ResponseHandler) *graphql.Response {\n\t\tstats = extension.GetComplexityStats(ctx)\n\t\treturn next(ctx)\n\t})\n\n\tt.Run(\"below complexity limit\", func(t *testing.T) {\n\t\tstats = nil\n\t\th.SetCalculatedComplexity(2)\n\t\tresp := doRequest(h, http.MethodPost, \"/graphql\", `{\"query\":\"{ name }\"}`)\n\t\trequire.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\t\trequire.JSONEq(t, `{\"data\":{\"name\":\"test\"}}`, resp.Body.String())\n\n\t\trequire.Equal(t, 2, stats.ComplexityLimit)\n\t\trequire.Equal(t, 2, stats.Complexity)\n\t})\n\n\tt.Run(\"above complexity limit\", func(t *testing.T) {\n\t\tstats = nil\n\t\th.SetCalculatedComplexity(4)\n\t\tresp := doRequest(h, http.MethodPost, \"/graphql\", `{\"query\":\"{ name }\"}`)\n\t\trequire.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\t\trequire.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"operation has complexity 4, which exceeds the limit of 2\",\"extensions\":{\"code\":\"COMPLEXITY_LIMIT_EXCEEDED\"}}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\n\t\trequire.Equal(t, 2, stats.ComplexityLimit)\n\t\trequire.Equal(t, 4, stats.Complexity)\n\t})\n\n\tt.Run(\"within dynamic complexity limit\", func(t *testing.T) {\n\t\tstats = nil\n\t\th.SetCalculatedComplexity(4)\n\t\tresp := doRequest(h, http.MethodPost, \"/graphql\", `{\"query\":\"{ ok: name }\"}`)\n\t\trequire.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\t\trequire.JSONEq(t, `{\"data\":{\"name\":\"test\"}}`, resp.Body.String())\n\n\t\trequire.Equal(t, 4, stats.ComplexityLimit)\n\t\trequire.Equal(t, 4, stats.Complexity)\n\t})\n}\n\nfunc TestFixedComplexity(t *testing.T) {\n\th := testserver.New()\n\th.Use(extension.FixedComplexityLimit(2))\n\th.AddTransport(&transport.POST{})\n\n\tvar stats *extension.ComplexityStats\n\th.AroundResponses(func(ctx context.Context, next graphql.ResponseHandler) *graphql.Response {\n\t\tstats = extension.GetComplexityStats(ctx)\n\t\treturn next(ctx)\n\t})\n\n\tt.Run(\"below complexity limit\", func(t *testing.T) {\n\t\th.SetCalculatedComplexity(2)\n\t\tresp := doRequest(h, http.MethodPost, \"/graphql\", `{\"query\":\"{ name }\"}`)\n\t\trequire.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\t\trequire.JSONEq(t, `{\"data\":{\"name\":\"test\"}}`, resp.Body.String())\n\n\t\trequire.Equal(t, 2, stats.ComplexityLimit)\n\t\trequire.Equal(t, 2, stats.Complexity)\n\t})\n\n\tt.Run(\"above complexity limit\", func(t *testing.T) {\n\t\th.SetCalculatedComplexity(4)\n\t\tresp := doRequest(h, http.MethodPost, \"/graphql\", `{\"query\":\"{ name }\"}`)\n\t\trequire.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\t\trequire.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"operation has complexity 4, which exceeds the limit of 2\",\"extensions\":{\"code\":\"COMPLEXITY_LIMIT_EXCEEDED\"}}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\n\t\trequire.Equal(t, 2, stats.ComplexityLimit)\n\t\trequire.Equal(t, 4, stats.Complexity)\n\t})\n\n\tt.Run(\"bypass __schema field\", func(t *testing.T) {\n\t\th.SetCalculatedComplexity(4)\n\t\tresp := doRequest(\n\t\t\th,\n\t\t\thttp.MethodPost,\n\t\t\t\"/graphql\",\n\t\t\t`{ \"operationName\":\"IntrospectionQuery\", \"query\":\"query IntrospectionQuery { __schema { queryType { name } mutationType { name }}}\"}`,\n\t\t)\n\t\trequire.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\t\trequire.JSONEq(t, `{\"data\":{\"name\":\"test\"}}`, resp.Body.String())\n\n\t\trequire.Equal(t, 2, stats.ComplexityLimit)\n\t\trequire.Equal(t, 0, stats.Complexity)\n\t})\n}\n\n//nolint:unparam // expected to always get POST for GraphQL\nfunc doRequest(handler http.Handler, method, target, body string) *httptest.ResponseRecorder {\n\tr := httptest.NewRequest(method, target, strings.NewReader(body))\n\tr.Header.Set(\"Content-Type\", \"application/json\")\n\tw := httptest.NewRecorder()\n\n\thandler.ServeHTTP(w, r)\n\treturn w\n}\n"
  },
  {
    "path": "graphql/handler/extension/introspection.go",
    "content": "package extension\n\nimport (\n\t\"context\"\n\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\n// EnableIntrospection enables clients to reflect all of the types available on the graph.\ntype Introspection struct{}\n\nvar _ interface {\n\tgraphql.OperationContextMutator\n\tgraphql.HandlerExtension\n} = Introspection{}\n\nfunc (c Introspection) ExtensionName() string {\n\treturn \"Introspection\"\n}\n\nfunc (c Introspection) Validate(schema graphql.ExecutableSchema) error {\n\treturn nil\n}\n\nfunc (c Introspection) MutateOperationContext(\n\tctx context.Context,\n\topCtx *graphql.OperationContext,\n) *gqlerror.Error {\n\topCtx.DisableIntrospection = false\n\treturn nil\n}\n"
  },
  {
    "path": "graphql/handler/extension/introspection_test.go",
    "content": "package extension\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\nfunc TestIntrospection(t *testing.T) {\n\topCtx := &graphql.OperationContext{\n\t\tDisableIntrospection: true,\n\t}\n\terr := Introspection{}.MutateOperationContext(context.Background(), opCtx)\n\trequire.Equal(t, (*gqlerror.Error)(nil), err)\n\trequire.False(t, opCtx.DisableIntrospection)\n}\n"
  },
  {
    "path": "graphql/handler/lru/lru.go",
    "content": "package lru\n\nimport (\n\t\"context\"\n\n\tlru \"github.com/hashicorp/golang-lru/v2\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\ntype LRU[T any] struct {\n\tlru *lru.Cache[string, T]\n}\n\nvar _ graphql.Cache[any] = &LRU[any]{}\n\nfunc New[T any](size int) *LRU[T] {\n\tcache, err := lru.New[string, T](size)\n\tif err != nil {\n\t\t// An error is only returned for non-positive cache size\n\t\t// and we already checked for that.\n\t\tpanic(\"unexpected error creating cache: \" + err.Error())\n\t}\n\treturn &LRU[T]{cache}\n}\n\nfunc (l LRU[T]) Get(ctx context.Context, key string) (value T, ok bool) {\n\treturn l.lru.Get(key)\n}\n\nfunc (l LRU[T]) Add(ctx context.Context, key string, value T) {\n\tl.lru.Add(key, value)\n}\n"
  },
  {
    "path": "graphql/handler/server.go",
    "content": "package handler\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"time\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n\t\"github.com/vektah/gqlparser/v2/validator/rules\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/executor\"\n\t\"github.com/99designs/gqlgen/graphql/handler/extension\"\n\t\"github.com/99designs/gqlgen/graphql/handler/lru\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\ntype (\n\tServer struct {\n\t\ttransports []graphql.Transport\n\t\texec       *executor.Executor\n\t}\n)\n\n// New returns a new Server for the given executable schema. The Server is not\n// ready for use until the transports you require are added and configured with\n// Server.AddTransport. See the implementation of [NewDefaultServer] for an\n// example.\nfunc New(es graphql.ExecutableSchema) *Server {\n\treturn &Server{\n\t\texec: executor.New(es),\n\t}\n}\n\n// NewDefaultServer returns a Server for the given executable schema which is\n// only suitable for use in examples.\n//\n// Deprecated:\n// The Server returned by NewDefaultServer is not suitable for production use.\n// Use [New] instead and add transports configured for your use case,\n// appropriate caches, and introspection if required. See the implementation of\n// NewDefaultServer for an example of starting point to construct a Server.\n//\n// SSE is not supported using this example. SSE when used over HTTP/1.1 (but not\n// HTTP/2 or HTTP/3) suffers from a severe limitation to the maximum number of\n// open connections of 6 per browser, see [Using server-sent events].\n//\n// [Using server-sent events]:\n// https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#sect1\nfunc NewDefaultServer(es graphql.ExecutableSchema) *Server {\n\tsrv := New(es)\n\n\tsrv.AddTransport(transport.Websocket{\n\t\tKeepAlivePingInterval: 10 * time.Second,\n\t})\n\tsrv.AddTransport(transport.Options{})\n\tsrv.AddTransport(transport.GET{})\n\tsrv.AddTransport(transport.POST{})\n\tsrv.AddTransport(transport.MultipartForm{})\n\n\tsrv.SetQueryCache(lru.New[*ast.QueryDocument](1000))\n\n\tsrv.Use(extension.Introspection{})\n\tsrv.Use(extension.AutomaticPersistedQuery{\n\t\tCache: lru.New[string](100),\n\t})\n\n\treturn srv\n}\n\n// AddTransport adds a transport to the Server. The server picks the first\n// supported transport. Adding a transport which has already been added has no\n// effect.\nfunc (s *Server) AddTransport(transport graphql.Transport) {\n\ts.transports = append(s.transports, transport)\n}\n\nfunc (s *Server) SetErrorPresenter(f graphql.ErrorPresenterFunc) {\n\ts.exec.SetErrorPresenter(f)\n}\n\nfunc (s *Server) SetRecoverFunc(f graphql.RecoverFunc) {\n\ts.exec.SetRecoverFunc(f)\n}\n\nfunc (s *Server) SetQueryCache(cache graphql.Cache[*ast.QueryDocument]) {\n\ts.exec.SetQueryCache(cache)\n}\n\nfunc (s *Server) SetParserTokenLimit(limit int) {\n\ts.exec.SetParserTokenLimit(limit)\n}\n\nfunc (s *Server) SetDisableSuggestion(value bool) {\n\ts.exec.SetDisableSuggestion(value)\n}\n\n// Use adds the given extension middleware to the server. Extensions are run in\n// order from first to last added.\nfunc (s *Server) Use(extension graphql.HandlerExtension) {\n\ts.exec.Use(extension)\n}\n\n// AroundFields is a convenience method for creating an extension that only implements field\n// middleware\nfunc (s *Server) AroundFields(f graphql.FieldMiddleware) {\n\ts.exec.AroundFields(f)\n}\n\n// AroundRootFields is a convenience method for creating an extension that only implements field\n// middleware\nfunc (s *Server) AroundRootFields(f graphql.RootFieldMiddleware) {\n\ts.exec.AroundRootFields(f)\n}\n\n// AroundOperations is a convenience method for creating an extension that only implements operation\n// middleware\nfunc (s *Server) AroundOperations(f graphql.OperationMiddleware) {\n\ts.exec.AroundOperations(f)\n}\n\n// AroundResponses is a convenience method for creating an extension that only implements response\n// middleware\nfunc (s *Server) AroundResponses(f graphql.ResponseMiddleware) {\n\ts.exec.AroundResponses(f)\n}\n\nfunc (s *Server) getTransport(r *http.Request) graphql.Transport {\n\tfor _, t := range s.transports {\n\t\tif t.Supports(r) {\n\t\t\treturn t\n\t\t}\n\t}\n\treturn nil\n}\n\n// SetValidationRulesFn is to customize the Default GraphQL Validation Rules\nfunc (s *Server) SetValidationRulesFn(f func() *rules.Rules) {\n\ts.exec.SetDefaultRulesFn(f)\n}\n\nfunc (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\tdefer func() {\n\t\tif err := recover(); err != nil {\n\t\t\terr := s.exec.PresentRecoveredError(r.Context(), err)\n\t\t\tgqlErr, _ := err.(*gqlerror.Error)\n\t\t\tresp := &graphql.Response{Errors: []*gqlerror.Error{gqlErr}}\n\t\t\tb, _ := json.Marshal(resp)\n\t\t\tw.WriteHeader(http.StatusUnprocessableEntity)\n\t\t\t_, _ = w.Write(b)\n\t\t}\n\t}()\n\n\tr = r.WithContext(graphql.StartOperationTrace(r.Context()))\n\n\ttransport := s.getTransport(r)\n\tif transport == nil {\n\t\tsendErrorf(w, http.StatusBadRequest, \"transport not supported\")\n\t\treturn\n\t}\n\n\ttransport.Do(w, r, s.exec)\n}\n\nfunc sendError(w http.ResponseWriter, code int, errors ...*gqlerror.Error) {\n\tw.WriteHeader(code)\n\tb, err := json.Marshal(&graphql.Response{Errors: errors})\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\t_, _ = w.Write(b)\n}\n\nfunc sendErrorf(w http.ResponseWriter, code int, format string, args ...any) {\n\tsendError(w, code, &gqlerror.Error{Message: fmt.Sprintf(format, args...)})\n}\n\ntype OperationFunc func(ctx context.Context, next graphql.OperationHandler) graphql.ResponseHandler\n\nfunc (r OperationFunc) ExtensionName() string {\n\treturn \"InlineOperationFunc\"\n}\n\nfunc (r OperationFunc) Validate(schema graphql.ExecutableSchema) error {\n\tif r == nil {\n\t\treturn errors.New(\"OperationFunc can not be nil\")\n\t}\n\treturn nil\n}\n\nfunc (r OperationFunc) InterceptOperation(\n\tctx context.Context,\n\tnext graphql.OperationHandler,\n) graphql.ResponseHandler {\n\treturn r(ctx, next)\n}\n\ntype ResponseFunc func(ctx context.Context, next graphql.ResponseHandler) *graphql.Response\n\nfunc (r ResponseFunc) ExtensionName() string {\n\treturn \"InlineResponseFunc\"\n}\n\nfunc (r ResponseFunc) Validate(schema graphql.ExecutableSchema) error {\n\tif r == nil {\n\t\treturn errors.New(\"ResponseFunc can not be nil\")\n\t}\n\treturn nil\n}\n\nfunc (r ResponseFunc) InterceptResponse(\n\tctx context.Context,\n\tnext graphql.ResponseHandler,\n) *graphql.Response {\n\treturn r(ctx, next)\n}\n\ntype FieldFunc func(ctx context.Context, next graphql.Resolver) (res any, err error)\n\nfunc (f FieldFunc) ExtensionName() string {\n\treturn \"InlineFieldFunc\"\n}\n\nfunc (f FieldFunc) Validate(schema graphql.ExecutableSchema) error {\n\tif f == nil {\n\t\treturn errors.New(\"FieldFunc can not be nil\")\n\t}\n\treturn nil\n}\n\nfunc (f FieldFunc) InterceptField(ctx context.Context, next graphql.Resolver) (res any, err error) {\n\treturn f(ctx, next)\n}\n"
  },
  {
    "path": "graphql/handler/server_test.go",
    "content": "package handler_test\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"net/url\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n\t\"github.com/vektah/gqlparser/v2/parser\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/handler/testserver\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestServer(t *testing.T) {\n\tsrv := testserver.New()\n\tsrv.AddTransport(&transport.GET{})\n\n\tt.Run(\"returns an error if no transport matches\", func(t *testing.T) {\n\t\tresp := post(srv, \"/foo\", \"application/json\")\n\t\tassert.Equal(t, http.StatusBadRequest, resp.Code)\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"transport not supported\"}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"calls query on executable schema\", func(t *testing.T) {\n\t\tresp := get(srv, \"/foo?query={name}\")\n\t\tassert.Equal(t, http.StatusOK, resp.Code)\n\t\tassert.JSONEq(t, `{\"data\":{\"name\":\"test\"}}`, resp.Body.String())\n\t})\n\n\tt.Run(\"mutations are forbidden\", func(t *testing.T) {\n\t\tresp := get(srv, \"/foo?query=mutation{name}\")\n\t\tassert.Equal(t, http.StatusNotAcceptable, resp.Code)\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"GET requests only allow query operations\"}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"subscriptions are forbidden\", func(t *testing.T) {\n\t\tresp := get(srv, \"/foo?query=subscription{name}\")\n\t\tassert.Equal(t, http.StatusNotAcceptable, resp.Code)\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"GET requests only allow query operations\"}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"invokes operation middleware in order\", func(t *testing.T) {\n\t\tvar calls []string\n\t\tsrv.AroundOperations(\n\t\t\tfunc(ctx context.Context, next graphql.OperationHandler) graphql.ResponseHandler {\n\t\t\t\tcalls = append(calls, \"first\")\n\t\t\t\treturn next(ctx)\n\t\t\t},\n\t\t)\n\t\tsrv.AroundOperations(\n\t\t\tfunc(ctx context.Context, next graphql.OperationHandler) graphql.ResponseHandler {\n\t\t\t\tcalls = append(calls, \"second\")\n\t\t\t\treturn next(ctx)\n\t\t\t},\n\t\t)\n\n\t\tresp := get(srv, \"/foo?query={name}\")\n\t\tassert.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\t\tassert.Equal(t, []string{\"first\", \"second\"}, calls)\n\t})\n\n\tt.Run(\"invokes response middleware in order\", func(t *testing.T) {\n\t\tvar calls []string\n\t\tsrv.AroundResponses(\n\t\t\tfunc(ctx context.Context, next graphql.ResponseHandler) *graphql.Response {\n\t\t\t\tcalls = append(calls, \"first\")\n\t\t\t\treturn next(ctx)\n\t\t\t},\n\t\t)\n\t\tsrv.AroundResponses(\n\t\t\tfunc(ctx context.Context, next graphql.ResponseHandler) *graphql.Response {\n\t\t\t\tcalls = append(calls, \"second\")\n\t\t\t\treturn next(ctx)\n\t\t\t},\n\t\t)\n\n\t\tresp := get(srv, \"/foo?query={name}\")\n\t\tassert.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\t\tassert.Equal(t, []string{\"first\", \"second\"}, calls)\n\t})\n\n\tt.Run(\"invokes field middleware in order\", func(t *testing.T) {\n\t\tvar calls []string\n\t\tsrv.AroundFields(func(ctx context.Context, next graphql.Resolver) (res any, err error) {\n\t\t\tcalls = append(calls, \"first\")\n\t\t\treturn next(ctx)\n\t\t})\n\t\tsrv.AroundFields(func(ctx context.Context, next graphql.Resolver) (res any, err error) {\n\t\t\tcalls = append(calls, \"second\")\n\t\t\treturn next(ctx)\n\t\t})\n\n\t\tresp := get(srv, \"/foo?query={name}\")\n\t\tassert.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\t\tassert.Equal(t, []string{\"first\", \"second\"}, calls)\n\t})\n\n\tt.Run(\"get query parse error in AroundResponses\", func(t *testing.T) {\n\t\tvar errors1 gqlerror.List\n\t\tvar errors2 gqlerror.List\n\t\tsrv.AroundResponses(\n\t\t\tfunc(ctx context.Context, next graphql.ResponseHandler) *graphql.Response {\n\t\t\t\tresp := next(ctx)\n\t\t\t\terrors1 = graphql.GetErrors(ctx)\n\t\t\t\terrors2 = resp.Errors\n\t\t\t\treturn resp\n\t\t\t},\n\t\t)\n\n\t\tresp := get(srv, \"/foo?query=invalid\")\n\t\tassert.Equal(t, http.StatusUnprocessableEntity, resp.Code, resp.Body.String())\n\t\tassert.Len(t, errors1, 1)\n\t\tassert.Len(t, errors2, 1)\n\t})\n\n\tt.Run(\"query caching\", func(t *testing.T) {\n\t\tctx := context.Background()\n\t\tcache := &graphql.MapCache[*ast.QueryDocument]{}\n\t\tsrv.SetQueryCache(cache)\n\t\tqry := `query Foo {name}`\n\n\t\tt.Run(\"cache miss populates cache\", func(t *testing.T) {\n\t\t\tresp := get(srv, \"/foo?query=\"+url.QueryEscape(qry))\n\t\t\tassert.Equal(t, http.StatusOK, resp.Code)\n\t\t\tassert.JSONEq(t, `{\"data\":{\"name\":\"test\"}}`, resp.Body.String())\n\n\t\t\tcacheDoc, ok := cache.Get(ctx, qry)\n\t\t\trequire.True(t, ok)\n\t\t\trequire.Equal(t, \"Foo\", cacheDoc.Operations[0].Name)\n\t\t})\n\n\t\tt.Run(\"cache hits use document from cache\", func(t *testing.T) {\n\t\t\tdoc, err := parser.ParseQuery(&ast.Source{Input: `query Bar {name}`})\n\t\t\trequire.NoError(t, err)\n\t\t\tcache.Add(ctx, qry, doc)\n\n\t\t\tresp := get(srv, \"/foo?query=\"+url.QueryEscape(qry))\n\t\t\tassert.Equal(t, http.StatusOK, resp.Code)\n\t\t\tassert.JSONEq(t, `{\"data\":{\"name\":\"test\"}}`, resp.Body.String())\n\n\t\t\tcacheDoc, ok := cache.Get(ctx, qry)\n\t\t\trequire.True(t, ok)\n\t\t\trequire.Equal(t, \"Bar\", cacheDoc.Operations[0].Name)\n\t\t})\n\t})\n}\n\nfunc TestErrorServer(t *testing.T) {\n\tsrv := testserver.NewError()\n\tsrv.AddTransport(&transport.GET{})\n\n\tt.Run(\"get resolver error in AroundResponses\", func(t *testing.T) {\n\t\tvar errors1 gqlerror.List\n\t\tvar errors2 gqlerror.List\n\t\tsrv.AroundResponses(\n\t\t\tfunc(ctx context.Context, next graphql.ResponseHandler) *graphql.Response {\n\t\t\t\tresp := next(ctx)\n\t\t\t\terrors1 = graphql.GetErrors(ctx)\n\t\t\t\terrors2 = resp.Errors\n\t\t\t\treturn resp\n\t\t\t},\n\t\t)\n\n\t\tresp := get(srv, \"/foo?query={name}\")\n\t\tassert.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\t\tassert.Len(t, errors1, 1)\n\t\tassert.Len(t, errors2, 1)\n\t})\n}\n\ntype panicTransport struct{}\n\nfunc (t panicTransport) Supports(r *http.Request) bool {\n\treturn true\n}\n\nfunc (t panicTransport) Do(w http.ResponseWriter, r *http.Request, exec graphql.GraphExecutor) {\n\tpanic(errors.New(\"panic in transport\"))\n}\n\nfunc TestRecover(t *testing.T) {\n\tsrv := testserver.New()\n\tsrv.AddTransport(&panicTransport{})\n\n\tt.Run(\"recover from panic\", func(t *testing.T) {\n\t\tresp := get(srv, \"/foo?query={name}\")\n\n\t\tassert.Equal(t, http.StatusUnprocessableEntity, resp.Code, resp.Body.String())\n\t})\n}\n\nfunc get(handler http.Handler, target string) *httptest.ResponseRecorder {\n\tr := httptest.NewRequest(http.MethodGet, target, http.NoBody)\n\tw := httptest.NewRecorder()\n\n\thandler.ServeHTTP(w, r)\n\treturn w\n}\n\nfunc post(handler http.Handler, target, contentType string) *httptest.ResponseRecorder {\n\tr := httptest.NewRequest(http.MethodPost, target, http.NoBody)\n\tr.Header.Set(\"Content-Type\", contentType)\n\tw := httptest.NewRecorder()\n\n\thandler.ServeHTTP(w, r)\n\treturn w\n}\n"
  },
  {
    "path": "graphql/handler/testserver/testserver.go",
    "content": "package testserver\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n)\n\n// New provides a server for use in tests that isn't relying on generated code. It isnt a perfect\n// reproduction of a generated server, but it aims to be good enough to test the handler package\n// without relying on codegen.\nfunc New() *TestServer {\n\tnext := make(chan struct{})\n\tcompleteSubscription := make(chan struct{})\n\n\tschema := gqlparser.MustLoadSchema(&ast.Source{Input: `\n\t\ttype Query {\n\t\t\tname: String!\n\t\t\tfind(id: Int!): String!\n\t\t}\n\t\ttype Mutation {\n\t\t\tname: String!\n\t\t}\n\t\ttype Subscription {\n\t\t\tname: String!\n\t\t}\n\t`})\n\n\tsrv := &TestServer{\n\t\tnext:                 next,\n\t\tcompleteSubscription: completeSubscription,\n\t}\n\n\tsrv.Server = handler.New(&graphql.ExecutableSchemaMock{\n\t\tExecFunc: func(ctx context.Context) graphql.ResponseHandler {\n\t\t\topCtx := graphql.GetOperationContext(ctx)\n\t\t\tswitch opCtx.Operation.Operation {\n\t\t\tcase ast.Query:\n\t\t\t\tran := false\n\t\t\t\t// If the query contains @defer, we will mimic a deferred response.\n\t\t\t\tif strings.Contains(opCtx.RawQuery, \"@defer\") {\n\t\t\t\t\tinitialResponse := true\n\t\t\t\t\treturn func(context context.Context) *graphql.Response {\n\t\t\t\t\t\tselect {\n\t\t\t\t\t\tcase <-ctx.Done():\n\t\t\t\t\t\t\treturn nil\n\t\t\t\t\t\tcase <-next:\n\t\t\t\t\t\t\tif initialResponse {\n\t\t\t\t\t\t\t\tinitialResponse = false\n\t\t\t\t\t\t\t\thasNext := true\n\t\t\t\t\t\t\t\treturn &graphql.Response{\n\t\t\t\t\t\t\t\t\tData:    []byte(`{\"name\":null}`),\n\t\t\t\t\t\t\t\t\tHasNext: &hasNext,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thasNext := false\n\t\t\t\t\t\t\treturn &graphql.Response{\n\t\t\t\t\t\t\t\tData:    []byte(`{\"name\":\"test\"}`),\n\t\t\t\t\t\t\t\tHasNext: &hasNext,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\tcase <-completeSubscription:\n\t\t\t\t\t\t\treturn nil\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\t\t\tif ran {\n\t\t\t\t\t\treturn nil\n\t\t\t\t\t}\n\t\t\t\t\tran = true\n\t\t\t\t\t// Field execution happens inside the generated code, lets simulate some of it.\n\t\t\t\t\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\t\t\t\t\tObject: \"Query\",\n\t\t\t\t\t\tField: graphql.CollectedField{\n\t\t\t\t\t\t\tField: &ast.Field{\n\t\t\t\t\t\t\t\tName:       \"name\",\n\t\t\t\t\t\t\t\tAlias:      \"name\",\n\t\t\t\t\t\t\t\tDefinition: schema.Types[\"Query\"].Fields.ForName(\"name\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t\tres, err := graphql.GetOperationContext(ctx).\n\t\t\t\t\t\tResolverMiddleware(ctx, func(ctx context.Context) (any, error) {\n\t\t\t\t\t\t\treturn &graphql.Response{Data: []byte(`{\"name\":\"test\"}`)}, nil\n\t\t\t\t\t\t})\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\tpanic(err)\n\t\t\t\t\t}\n\t\t\t\t\treturn res.(*graphql.Response)\n\t\t\t\t}\n\t\t\tcase ast.Mutation:\n\t\t\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"mutations are not supported\"))\n\t\t\tcase ast.Subscription:\n\t\t\t\treturn func(context context.Context) *graphql.Response {\n\t\t\t\t\tselect {\n\t\t\t\t\tcase <-ctx.Done():\n\t\t\t\t\t\treturn nil\n\t\t\t\t\tcase <-next:\n\t\t\t\t\t\treturn &graphql.Response{\n\t\t\t\t\t\t\tData: []byte(`{\"name\":\"test\"}`),\n\t\t\t\t\t\t}\n\t\t\t\t\tcase <-completeSubscription:\n\t\t\t\t\t\treturn nil\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t\t\t}\n\t\t},\n\t\tSchemaFunc: func() *ast.Schema {\n\t\t\treturn schema\n\t\t},\n\t\tComplexityFunc: func(ctx context.Context, typeName string, fieldName string, childComplexity int, args map[string]any) (i int, b bool) {\n\t\t\treturn srv.complexity, true\n\t\t},\n\t})\n\treturn srv\n}\n\n// NewError provides a server for use in resolver error tests that isn't relying on generated code.\n// It isnt a perfect reproduction of a generated server, but it aims to be good enough to test the\n// handler package without relying on codegen.\nfunc NewError() *TestServer {\n\tnext := make(chan struct{})\n\n\tschema := gqlparser.MustLoadSchema(&ast.Source{Input: `\n\t\ttype Query {\n\t\t\tname: String!\n\t\t}\n\t`})\n\n\tsrv := &TestServer{\n\t\tnext: next,\n\t}\n\n\tsrv.Server = handler.New(&graphql.ExecutableSchemaMock{\n\t\tExecFunc: func(ctx context.Context) graphql.ResponseHandler {\n\t\t\topCtx := graphql.GetOperationContext(ctx)\n\t\t\tswitch opCtx.Operation.Operation {\n\t\t\tcase ast.Query:\n\t\t\t\tran := false\n\t\t\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\t\t\tif ran {\n\t\t\t\t\t\treturn nil\n\t\t\t\t\t}\n\t\t\t\t\tran = true\n\n\t\t\t\t\tgraphql.AddError(ctx, errors.New(\"resolver error\"))\n\n\t\t\t\t\treturn &graphql.Response{\n\t\t\t\t\t\tData: []byte(`null`),\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase ast.Mutation:\n\t\t\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"mutations are not supported\"))\n\t\t\tcase ast.Subscription:\n\t\t\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"subscription are not supported\"))\n\t\t\tdefault:\n\t\t\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t\t\t}\n\t\t},\n\t\tSchemaFunc: func() *ast.Schema {\n\t\t\treturn schema\n\t\t},\n\t\tComplexityFunc: func(ctx context.Context, typeName string, fieldName string, childComplexity int, args map[string]any) (i int, b bool) {\n\t\t\treturn srv.complexity, true\n\t\t},\n\t})\n\treturn srv\n}\n\ntype TestServer struct {\n\t*handler.Server\n\tnext                 chan struct{}\n\tcompleteSubscription chan struct{}\n\tcomplexity           int\n}\n\nfunc (s *TestServer) SendNextSubscriptionMessage() {\n\tselect {\n\tcase s.next <- struct{}{}:\n\tcase <-time.After(1 * time.Second):\n\t\tfmt.Println(\"WARNING: no active subscription\")\n\t}\n}\n\nfunc (s *TestServer) SendCompleteSubscriptionMessage() {\n\tselect {\n\tcase s.completeSubscription <- struct{}{}:\n\tcase <-time.After(1 * time.Second):\n\t\tfmt.Println(\"WARNING: no active subscription\")\n\t}\n}\n\nfunc (s *TestServer) SetCalculatedComplexity(complexity int) {\n\ts.complexity = complexity\n}\n"
  },
  {
    "path": "graphql/handler/transport/error.go",
    "content": "package transport\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/http\"\n\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\n// SendError sends a best effort error to a raw response writer. It assumes the client can\n// understand the standard\n// json error response\nfunc SendError(w http.ResponseWriter, code int, errors ...*gqlerror.Error) {\n\tw.WriteHeader(code)\n\tb, err := json.Marshal(&graphql.Response{Errors: errors})\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\t_, _ = w.Write(b)\n}\n\n// SendErrorf wraps SendError to add formatted messages\nfunc SendErrorf(w http.ResponseWriter, code int, format string, args ...any) {\n\tSendError(w, code, &gqlerror.Error{Message: fmt.Sprintf(format, args...)})\n}\n"
  },
  {
    "path": "graphql/handler/transport/headers.go",
    "content": "package transport\n\nimport (\n\t\"maps\"\n\t\"mime\"\n\t\"net/http\"\n\t\"strings\"\n)\n\nconst (\n\tacceptApplicationJson                = \"application/json\"\n\tacceptApplicationGraphqlResponseJson = \"application/graphql-response+json\"\n)\n\nfunc determineResponseContentType(\n\texplicitHeaders map[string][]string,\n\tr *http.Request,\n\tuseGrapQLResponseJsonByDefault bool,\n) string {\n\tfor k, v := range explicitHeaders {\n\t\tif strings.EqualFold(k, \"Content-Type\") {\n\t\t\treturn v[0]\n\t\t}\n\t}\n\n\taccept := r.Header.Get(\"Accept\")\n\tif accept == \"\" {\n\t\tif useGrapQLResponseJsonByDefault {\n\t\t\treturn acceptApplicationGraphqlResponseJson\n\t\t}\n\t\treturn acceptApplicationJson\n\t}\n\n\tfor acceptPart := range strings.SplitSeq(accept, \",\") {\n\t\tmediaType, _, err := mime.ParseMediaType(strings.TrimSpace(acceptPart))\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\t\tswitch mediaType {\n\t\tcase \"*/*\", \"application/*\":\n\t\t\tif useGrapQLResponseJsonByDefault {\n\t\t\t\treturn acceptApplicationGraphqlResponseJson\n\t\t\t}\n\t\t\treturn acceptApplicationJson\n\t\tcase \"application/json\":\n\t\t\treturn acceptApplicationJson\n\t\tcase \"application/graphql-response+json\":\n\t\t\treturn acceptApplicationGraphqlResponseJson\n\t\t}\n\t}\n\n\treturn acceptApplicationGraphqlResponseJson\n}\n\nfunc writeHeaders(w http.ResponseWriter, headers map[string][]string) {\n\tif len(headers) == 0 {\n\t\theaders = map[string][]string{\n\t\t\t// Stay with application/json (not application/graphql-response+json)\n\t\t\t// as it is not an actively supported protocol for now\n\t\t\t\"Content-Type\": {\"application/json\"},\n\t\t}\n\t}\n\n\tfor key, values := range headers {\n\t\tfor _, value := range values {\n\t\t\tw.Header().Add(key, value)\n\t\t}\n\t}\n}\n\nfunc mergeHeaders(baseHeaders, additionalHeaders map[string][]string) map[string][]string {\n\tresult := make(map[string][]string)\n\tmaps.Copy(result, baseHeaders)\n\tmaps.Copy(result, additionalHeaders)\n\treturn result\n}\n"
  },
  {
    "path": "graphql/handler/transport/headers_test.go",
    "content": "package transport_test\n\nimport (\n\t\"context\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/testserver\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestHeadersWithPOST(t *testing.T) {\n\tt.Run(\"Headers not set\", func(t *testing.T) {\n\t\th := testserver.New()\n\t\th.AddTransport(transport.POST{})\n\n\t\tresp := doRequest(\n\t\t\th,\n\t\t\thttp.MethodPost,\n\t\t\t\"/graphql\",\n\t\t\t`{\"query\":\"{ name }\"}`,\n\t\t\t\"\",\n\t\t\t\"application/json\",\n\t\t)\n\t\tassert.Equal(t, http.StatusOK, resp.Code)\n\t\tassert.Len(t, resp.Header(), 1)\n\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t})\n\n\tt.Run(\"Headers set\", func(t *testing.T) {\n\t\theaders := map[string][]string{\n\t\t\t\"Content-Type\": {\"application/json; charset: utf8\"},\n\t\t\t\"Other-Header\": {\"dummy-post\", \"another-one\"},\n\t\t}\n\n\t\th := testserver.New()\n\t\th.AddTransport(transport.POST{ResponseHeaders: headers})\n\n\t\tresp := doRequest(\n\t\t\th,\n\t\t\thttp.MethodPost,\n\t\t\t\"/graphql\",\n\t\t\t`{\"query\":\"{ name }\"}`,\n\t\t\t\"\",\n\t\t\t\"application/json\",\n\t\t)\n\t\tassert.Equal(t, http.StatusOK, resp.Code)\n\t\tassert.Len(t, resp.Header(), 2)\n\t\tassert.Equal(t, \"application/json; charset: utf8\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.Equal(t, \"dummy-post\", resp.Header().Get(\"Other-Header\"))\n\t\tassert.Equal(t, \"another-one\", resp.Header().Values(\"Other-Header\")[1])\n\t})\n}\n\nfunc TestHeadersWithGET(t *testing.T) {\n\tt.Run(\"Headers not set\", func(t *testing.T) {\n\t\th := testserver.New()\n\t\th.AddTransport(transport.GET{})\n\n\t\tresp := doRequest(h, \"GET\", \"/graphql?query={name}\", \"\", \"\", \"application/json\")\n\t\tassert.Equal(t, http.StatusOK, resp.Code)\n\t\tassert.Len(t, resp.Header(), 1)\n\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t})\n\n\tt.Run(\"Headers set\", func(t *testing.T) {\n\t\theaders := map[string][]string{\n\t\t\t\"Content-Type\": {\"application/json; charset: utf8\"},\n\t\t\t\"Other-Header\": {\"dummy-get\"},\n\t\t}\n\n\t\th := testserver.New()\n\t\th.AddTransport(transport.GET{ResponseHeaders: headers})\n\n\t\tresp := doRequest(h, \"GET\", \"/graphql?query={name}\", \"\", \"\", \"application/json\")\n\t\tassert.Equal(t, http.StatusOK, resp.Code)\n\t\tassert.Len(t, resp.Header(), 2)\n\t\tassert.Equal(t, \"application/json; charset: utf8\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.Equal(t, \"dummy-get\", resp.Header().Get(\"Other-Header\"))\n\t})\n}\n\nfunc TestHeadersWithGRAPHQL(t *testing.T) {\n\tt.Run(\"Headers not set\", func(t *testing.T) {\n\t\th := testserver.New()\n\t\th.AddTransport(transport.GRAPHQL{})\n\n\t\tresp := doRequest(h, http.MethodPost, \"/graphql\", `{ name }`, \"\", \"application/graphql\")\n\t\tassert.Equal(t, http.StatusOK, resp.Code)\n\t\tassert.Len(t, resp.Header(), 1)\n\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t})\n\n\tt.Run(\"Headers set\", func(t *testing.T) {\n\t\theaders := map[string][]string{\n\t\t\t\"Content-Type\": {\"application/json; charset: utf8\"},\n\t\t\t\"Other-Header\": {\"dummy-get-qraphql\"},\n\t\t}\n\n\t\th := testserver.New()\n\t\th.AddTransport(transport.GRAPHQL{ResponseHeaders: headers})\n\n\t\tresp := doRequest(h, http.MethodPost, \"/graphql\", `{ name }`, \"\", \"application/graphql\")\n\t\tassert.Equal(t, http.StatusOK, resp.Code)\n\t\tassert.Len(t, resp.Header(), 2)\n\t\tassert.Equal(t, \"application/json; charset: utf8\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.Equal(t, \"dummy-get-qraphql\", resp.Header().Get(\"Other-Header\"))\n\t})\n}\n\nfunc TestHeadersWithFormUrlEncoded(t *testing.T) {\n\tt.Run(\"Headers not set\", func(t *testing.T) {\n\t\th := testserver.New()\n\t\th.AddTransport(transport.UrlEncodedForm{})\n\n\t\tresp := doRequest(\n\t\t\th,\n\t\t\thttp.MethodPost,\n\t\t\t\"/graphql\",\n\t\t\t`{ name }`,\n\t\t\t\"\",\n\t\t\t\"application/x-www-form-urlencoded\",\n\t\t)\n\t\tassert.Equal(t, http.StatusOK, resp.Code)\n\t\tassert.Len(t, resp.Header(), 1)\n\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t})\n\n\tt.Run(\"Headers set\", func(t *testing.T) {\n\t\theaders := map[string][]string{\n\t\t\t\"Content-Type\": {\"application/json; charset: utf8\"},\n\t\t\t\"Other-Header\": {\"dummy-get-urlencoded-form\"},\n\t\t}\n\n\t\th := testserver.New()\n\t\th.AddTransport(transport.UrlEncodedForm{ResponseHeaders: headers})\n\n\t\tresp := doRequest(\n\t\t\th,\n\t\t\thttp.MethodPost,\n\t\t\t\"/graphql\",\n\t\t\t`{ name }`,\n\t\t\t\"\",\n\t\t\t\"application/x-www-form-urlencoded\",\n\t\t)\n\t\tassert.Equal(t, http.StatusOK, resp.Code)\n\t\tassert.Len(t, resp.Header(), 2)\n\t\tassert.Equal(t, \"application/json; charset: utf8\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.Equal(t, \"dummy-get-urlencoded-form\", resp.Header().Get(\"Other-Header\"))\n\t})\n}\n\nfunc TestHeadersWithMULTIPART(t *testing.T) {\n\tt.Run(\"Headers not set\", func(t *testing.T) {\n\t\tes := &graphql.ExecutableSchemaMock{\n\t\t\tExecFunc: func(ctx context.Context) graphql.ResponseHandler {\n\t\t\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"not implemented\"))\n\t\t\t},\n\t\t\tSchemaFunc: func() *ast.Schema {\n\t\t\t\treturn gqlparser.MustLoadSchema(&ast.Source{Input: `\n\t\t\t\t\ttype Mutation {\n\t\t\t\t\t\tsingleUpload(file: Upload!): String!\n\t\t\t\t\t}\n\t\t\t\t\tscalar Upload\n\t\t\t\t`})\n\t\t\t},\n\t\t}\n\n\t\th := handler.New(es)\n\t\th.AddTransport(transport.MultipartForm{})\n\n\t\tes.ExecFunc = func(ctx context.Context) graphql.ResponseHandler {\n\t\t\treturn graphql.OneShot(&graphql.Response{Data: []byte(`{\"singleUpload\":\"test\"}`)})\n\t\t}\n\n\t\toperations := `{ \"query\": \"mutation ($file: Upload!) { singleUpload(file: $file) }\", \"variables\": { \"file\": null } }`\n\t\tmapData := `{ \"0\": [\"variables.file\"] }`\n\t\tfiles := []file{\n\t\t\t{\n\t\t\t\tmapKey:      \"0\",\n\t\t\t\tname:        \"a.txt\",\n\t\t\t\tcontent:     \"test1\",\n\t\t\t\tcontentType: \"text/plain\",\n\t\t\t},\n\t\t}\n\t\treq := createUploadRequest(t, operations, mapData, files)\n\n\t\tresp := httptest.NewRecorder()\n\t\th.ServeHTTP(resp, req)\n\t\trequire.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\t\tassert.Len(t, resp.Header(), 1)\n\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t})\n\n\tt.Run(\"Headers set\", func(t *testing.T) {\n\t\tes := &graphql.ExecutableSchemaMock{\n\t\t\tExecFunc: func(ctx context.Context) graphql.ResponseHandler {\n\t\t\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"not implemented\"))\n\t\t\t},\n\t\t\tSchemaFunc: func() *ast.Schema {\n\t\t\t\treturn gqlparser.MustLoadSchema(&ast.Source{Input: `\n\t\t\t\t\ttype Mutation {\n\t\t\t\t\t\tsingleUpload(file: Upload!): String!\n\t\t\t\t\t}\n\t\t\t\t\tscalar Upload\n\t\t\t\t`})\n\t\t\t},\n\t\t}\n\n\t\th := handler.New(es)\n\t\theaders := map[string][]string{\n\t\t\t\"Content-Type\": {\"application/json; charset: utf8\"},\n\t\t\t\"Other-Header\": {\"dummy-multipart\"},\n\t\t}\n\t\th.AddTransport(transport.MultipartForm{ResponseHeaders: headers})\n\n\t\tes.ExecFunc = func(ctx context.Context) graphql.ResponseHandler {\n\t\t\treturn graphql.OneShot(&graphql.Response{Data: []byte(`{\"singleUpload\":\"test\"}`)})\n\t\t}\n\n\t\toperations := `{ \"query\": \"mutation ($file: Upload!) { singleUpload(file: $file) }\", \"variables\": { \"file\": null } }`\n\t\tmapData := `{ \"0\": [\"variables.file\"] }`\n\t\tfiles := []file{\n\t\t\t{\n\t\t\t\tmapKey:      \"0\",\n\t\t\t\tname:        \"a.txt\",\n\t\t\t\tcontent:     \"test1\",\n\t\t\t\tcontentType: \"text/plain\",\n\t\t\t},\n\t\t}\n\t\treq := createUploadRequest(t, operations, mapData, files)\n\n\t\tresp := httptest.NewRecorder()\n\t\th.ServeHTTP(resp, req)\n\t\trequire.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\t\tassert.Len(t, resp.Header(), 2)\n\t\tassert.Equal(t, \"application/json; charset: utf8\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.Equal(t, \"dummy-multipart\", resp.Header().Get(\"Other-Header\"))\n\t})\n}\n"
  },
  {
    "path": "graphql/handler/transport/http_form_multipart.go",
    "content": "package transport\n\nimport (\n\t\"encoding/json\"\n\t\"io\"\n\t\"mime\"\n\t\"net/http\"\n\t\"os\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\n// MultipartForm the Multipart request spec\n// https://github.com/jaydenseric/graphql-multipart-request-spec\ntype MultipartForm struct {\n\t// MaxUploadSize sets the maximum number of bytes used to parse a request body\n\t// as multipart/form-data.\n\tMaxUploadSize int64\n\n\t// MaxMemory defines the maximum number of bytes used to parse a request body\n\t// as multipart/form-data in memory, with the remainder stored on disk in\n\t// temporary files.\n\tMaxMemory int64\n\n\t// Map of all headers that are added to graphql response. If not\n\t// set, only one header: Content-Type: application/json will be set.\n\tResponseHeaders map[string][]string\n}\n\nvar _ graphql.Transport = MultipartForm{}\n\nfunc (f MultipartForm) Supports(r *http.Request) bool {\n\tif r.Header.Get(\"Upgrade\") != \"\" {\n\t\treturn false\n\t}\n\n\tmediaType, _, err := mime.ParseMediaType(r.Header.Get(\"Content-Type\"))\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn r.Method == http.MethodPost && mediaType == \"multipart/form-data\"\n}\n\nfunc (f MultipartForm) maxUploadSize() int64 {\n\tif f.MaxUploadSize == 0 {\n\t\treturn 32 << 20\n\t}\n\treturn f.MaxUploadSize\n}\n\nfunc (f MultipartForm) maxMemory() int64 {\n\tif f.MaxMemory == 0 {\n\t\treturn 32 << 20\n\t}\n\treturn f.MaxMemory\n}\n\nfunc (f MultipartForm) Do(w http.ResponseWriter, r *http.Request, exec graphql.GraphExecutor) {\n\twriteHeaders(w, f.ResponseHeaders)\n\n\tstart := graphql.Now()\n\n\tvar err error\n\tif r.ContentLength > f.maxUploadSize() {\n\t\twriteJsonError(w, \"failed to parse multipart form, request body too large\")\n\t\treturn\n\t}\n\tr.Body = http.MaxBytesReader(w, r.Body, f.maxUploadSize())\n\tdefer r.Body.Close()\n\n\tmr, err := r.MultipartReader()\n\tif err != nil {\n\t\tw.WriteHeader(http.StatusUnprocessableEntity)\n\t\twriteJsonError(w, \"failed to parse multipart form\")\n\t\treturn\n\t}\n\n\tpart, err := mr.NextPart()\n\tif err != nil || part.FormName() != \"operations\" {\n\t\tw.WriteHeader(http.StatusUnprocessableEntity)\n\t\twriteJsonError(w, \"first part must be operations\")\n\t\treturn\n\t}\n\n\tvar params graphql.RawParams\n\tif err = jsonDecode(part, &params); err != nil {\n\t\tw.WriteHeader(http.StatusUnprocessableEntity)\n\t\twriteJsonError(w, \"operations form field could not be decoded\")\n\t\treturn\n\t}\n\n\tpart, err = mr.NextPart()\n\tif err != nil || part.FormName() != \"map\" {\n\t\tw.WriteHeader(http.StatusUnprocessableEntity)\n\t\twriteJsonError(w, \"second part must be map\")\n\t\treturn\n\t}\n\n\tuploadsMap := map[string][]string{}\n\tif err = json.NewDecoder(part).Decode(&uploadsMap); err != nil {\n\t\tw.WriteHeader(http.StatusUnprocessableEntity)\n\t\twriteJsonError(w, \"map form field could not be decoded\")\n\t\treturn\n\t}\n\n\tfor {\n\t\tpart, err = mr.NextPart()\n\t\tif err == io.EOF {\n\t\t\tbreak\n\t\t} else if err != nil {\n\t\t\tw.WriteHeader(http.StatusUnprocessableEntity)\n\t\t\twriteJsonErrorf(w, \"failed to parse part\")\n\t\t\treturn\n\t\t}\n\n\t\tkey := part.FormName()\n\t\tfilename := part.FileName()\n\t\tcontentType := part.Header.Get(\"Content-Type\")\n\n\t\tpaths := uploadsMap[key]\n\t\tif len(paths) == 0 {\n\t\t\tw.WriteHeader(http.StatusUnprocessableEntity)\n\t\t\twriteJsonErrorf(w, \"invalid empty operations paths list for key %s\", key)\n\t\t\treturn\n\t\t}\n\t\tdelete(uploadsMap, key)\n\n\t\tvar upload graphql.Upload\n\t\tif r.ContentLength < f.maxMemory() {\n\t\t\tfileBytes, err := io.ReadAll(part)\n\t\t\tif err != nil {\n\t\t\t\tw.WriteHeader(http.StatusUnprocessableEntity)\n\t\t\t\twriteJsonErrorf(w, \"failed to read file for key %s\", key)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tfor _, path := range paths {\n\t\t\t\tupload = graphql.Upload{\n\t\t\t\t\tFile:        &bytesReader{s: &fileBytes, i: 0},\n\t\t\t\t\tSize:        int64(len(fileBytes)),\n\t\t\t\t\tFilename:    filename,\n\t\t\t\t\tContentType: contentType,\n\t\t\t\t}\n\n\t\t\t\tif err := params.AddUpload(upload, key, path); err != nil {\n\t\t\t\t\tw.WriteHeader(http.StatusUnprocessableEntity)\n\t\t\t\t\twriteJsonGraphqlError(w, err)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\ttmpFile, err := os.CreateTemp(os.TempDir(), \"gqlgen-\")\n\t\t\tif err != nil {\n\t\t\t\tw.WriteHeader(http.StatusUnprocessableEntity)\n\t\t\t\twriteJsonErrorf(w, \"failed to create temp file for key %s\", key)\n\t\t\t\treturn\n\t\t\t}\n\t\t\ttmpName := tmpFile.Name()\n\t\t\tdefer func() {\n\t\t\t\t_ = os.Remove(tmpName)\n\t\t\t}()\n\t\t\tfileSize, err := io.Copy(tmpFile, part)\n\t\t\tif err != nil {\n\t\t\t\tw.WriteHeader(http.StatusUnprocessableEntity)\n\t\t\t\tif err := tmpFile.Close(); err != nil {\n\t\t\t\t\twriteJsonErrorf(\n\t\t\t\t\t\tw,\n\t\t\t\t\t\t\"failed to copy to temp file and close temp file for key %s\",\n\t\t\t\t\t\tkey,\n\t\t\t\t\t)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\twriteJsonErrorf(w, \"failed to copy to temp file for key %s\", key)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif err := tmpFile.Close(); err != nil {\n\t\t\t\tw.WriteHeader(http.StatusUnprocessableEntity)\n\t\t\t\twriteJsonErrorf(w, \"failed to close temp file for key %s\", key)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tfor _, path := range paths {\n\t\t\t\tpathTmpFile, err := os.Open(tmpName)\n\t\t\t\tif err != nil {\n\t\t\t\t\tw.WriteHeader(http.StatusUnprocessableEntity)\n\t\t\t\t\twriteJsonErrorf(w, \"failed to open temp file for key %s\", key)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tdefer pathTmpFile.Close()\n\t\t\t\tupload = graphql.Upload{\n\t\t\t\t\tFile:        pathTmpFile,\n\t\t\t\t\tSize:        fileSize,\n\t\t\t\t\tFilename:    filename,\n\t\t\t\t\tContentType: contentType,\n\t\t\t\t}\n\n\t\t\t\tif err := params.AddUpload(upload, key, path); err != nil {\n\t\t\t\t\tw.WriteHeader(http.StatusUnprocessableEntity)\n\t\t\t\t\twriteJsonGraphqlError(w, err)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfor key := range uploadsMap {\n\t\tw.WriteHeader(http.StatusUnprocessableEntity)\n\t\twriteJsonErrorf(w, \"failed to get key %s from form\", key)\n\t\treturn\n\t}\n\n\tparams.Headers = r.Header\n\n\tparams.ReadTime = graphql.TraceTiming{\n\t\tStart: start,\n\t\tEnd:   graphql.Now(),\n\t}\n\n\trc, gerr := exec.CreateOperationContext(r.Context(), &params)\n\tif gerr != nil {\n\t\tresp := exec.DispatchError(graphql.WithOperationContext(r.Context(), rc), gerr)\n\t\tw.WriteHeader(statusFor(gerr))\n\t\twriteJson(w, resp)\n\t\treturn\n\t}\n\tresponses, ctx := exec.DispatchOperation(r.Context(), rc)\n\twriteJson(w, responses(ctx))\n}\n"
  },
  {
    "path": "graphql/handler/transport/http_form_multipart_test.go",
    "content": "package transport_test\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"fmt\"\n\t\"io\"\n\t\"mime/multipart\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"net/textproto\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestFileUpload(t *testing.T) {\n\tes := &graphql.ExecutableSchemaMock{\n\t\tExecFunc: func(ctx context.Context) graphql.ResponseHandler {\n\t\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"not implemented\"))\n\t\t},\n\t\tSchemaFunc: func() *ast.Schema {\n\t\t\treturn gqlparser.MustLoadSchema(&ast.Source{Input: `\n\t\t\t\ttype Mutation {\n\t\t\t\t\tsingleUpload(file: Upload!): String!\n\t\t\t\t\tsingleUploadWithPayload(req: UploadFile!): String!\n\t\t\t\t\tmultipleUpload(files: [Upload!]!): String!\n\t\t\t\t\tmultipleUploadWithPayload(req: [UploadFile!]!): String!\n\t\t\t\t}\n\t\t\t\tscalar Upload\n\t\t\t\tscalar UploadFile\n\t\t\t`})\n\t\t},\n\t}\n\n\th := handler.New(es)\n\tmultipartForm := transport.MultipartForm{}\n\th.AddTransport(&multipartForm)\n\n\tt.Run(\"valid single file upload\", func(t *testing.T) {\n\t\tes.ExecFunc = func(ctx context.Context) graphql.ResponseHandler {\n\t\t\top := graphql.GetOperationContext(ctx).Operation\n\t\t\trequire.Len(t, op.VariableDefinitions, 1)\n\t\t\trequire.Equal(t, \"file\", op.VariableDefinitions[0].Variable)\n\t\t\treturn graphql.OneShot(&graphql.Response{Data: []byte(`{\"singleUpload\":\"test\"}`)})\n\t\t}\n\n\t\toperations := `{ \"query\": \"mutation ($file: Upload!) { singleUpload(file: $file) }\", \"variables\": { \"file\": null } }`\n\t\tmapData := `{ \"0\": [\"variables.file\"] }`\n\t\tfiles := []file{\n\t\t\t{\n\t\t\t\tmapKey:      \"0\",\n\t\t\t\tname:        \"a.txt\",\n\t\t\t\tcontent:     \"test1\",\n\t\t\t\tcontentType: \"text/plain\",\n\t\t\t},\n\t\t}\n\t\treq := createUploadRequest(t, operations, mapData, files)\n\n\t\tresp := httptest.NewRecorder()\n\t\th.ServeHTTP(resp, req)\n\t\trequire.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\t\trequire.JSONEq(t, `{\"data\":{\"singleUpload\":\"test\"}}`, resp.Body.String())\n\t})\n\n\tt.Run(\"valid single file upload with payload\", func(t *testing.T) {\n\t\tes.ExecFunc = func(ctx context.Context) graphql.ResponseHandler {\n\t\t\top := graphql.GetOperationContext(ctx).Operation\n\t\t\trequire.Len(t, op.VariableDefinitions, 1)\n\t\t\trequire.Equal(t, \"req\", op.VariableDefinitions[0].Variable)\n\t\t\treturn graphql.OneShot(\n\t\t\t\t&graphql.Response{Data: []byte(`{\"singleUploadWithPayload\":\"test\"}`)},\n\t\t\t)\n\t\t}\n\n\t\toperations := `{ \"query\": \"mutation ($req: UploadFile!) { singleUploadWithPayload(req: $req) }\", \"variables\": { \"req\": {\"file\": null, \"id\": 1 } } }`\n\t\tmapData := `{ \"0\": [\"variables.req.file\"] }`\n\t\tfiles := []file{\n\t\t\t{\n\t\t\t\tmapKey:      \"0\",\n\t\t\t\tname:        \"a.txt\",\n\t\t\t\tcontent:     \"test1\",\n\t\t\t\tcontentType: \"text/plain\",\n\t\t\t},\n\t\t}\n\t\treq := createUploadRequest(t, operations, mapData, files)\n\n\t\tresp := httptest.NewRecorder()\n\t\th.ServeHTTP(resp, req)\n\t\trequire.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\t\trequire.JSONEq(t, `{\"data\":{\"singleUploadWithPayload\":\"test\"}}`, resp.Body.String())\n\t})\n\n\tt.Run(\"valid file list upload\", func(t *testing.T) {\n\t\tes.ExecFunc = func(ctx context.Context) graphql.ResponseHandler {\n\t\t\top := graphql.GetOperationContext(ctx).Operation\n\t\t\trequire.Len(t, op.VariableDefinitions, 1)\n\t\t\trequire.Equal(t, \"files\", op.VariableDefinitions[0].Variable)\n\t\t\treturn graphql.OneShot(\n\t\t\t\t&graphql.Response{Data: []byte(`{\"multipleUpload\":[{\"id\":1},{\"id\":2}]}`)},\n\t\t\t)\n\t\t}\n\n\t\toperations := `{ \"query\": \"mutation($files: [Upload!]!) { multipleUpload(files: $files) }\", \"variables\": { \"files\": [null, null] } }`\n\t\tmapData := `{ \"0\": [\"variables.files.0\"], \"1\": [\"variables.files.1\"] }`\n\t\tfiles := []file{\n\t\t\t{\n\t\t\t\tmapKey:      \"0\",\n\t\t\t\tname:        \"a.txt\",\n\t\t\t\tcontent:     \"test1\",\n\t\t\t\tcontentType: \"text/plain\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tmapKey:      \"1\",\n\t\t\t\tname:        \"b.txt\",\n\t\t\t\tcontent:     \"test2\",\n\t\t\t\tcontentType: \"text/plain\",\n\t\t\t},\n\t\t}\n\t\treq := createUploadRequest(t, operations, mapData, files)\n\n\t\tresp := httptest.NewRecorder()\n\t\th.ServeHTTP(resp, req)\n\t\trequire.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\t\trequire.JSONEq(t, `{\"data\":{\"multipleUpload\":[{\"id\":1},{\"id\":2}]}}`, resp.Body.String())\n\t})\n\n\tt.Run(\"valid file list upload with payload\", func(t *testing.T) {\n\t\tes.ExecFunc = func(ctx context.Context) graphql.ResponseHandler {\n\t\t\top := graphql.GetOperationContext(ctx).Operation\n\t\t\trequire.Len(t, op.VariableDefinitions, 1)\n\t\t\trequire.Equal(t, \"req\", op.VariableDefinitions[0].Variable)\n\t\t\treturn graphql.OneShot(\n\t\t\t\t&graphql.Response{\n\t\t\t\t\tData: []byte(`{\"multipleUploadWithPayload\":[{\"id\":1},{\"id\":2}]}`),\n\t\t\t\t},\n\t\t\t)\n\t\t}\n\n\t\toperations := `{ \"query\": \"mutation($req: [UploadFile!]!) { multipleUploadWithPayload(req: $req) }\", \"variables\": { \"req\": [ { \"id\": 1, \"file\": null }, { \"id\": 2, \"file\": null } ] } }`\n\t\tmapData := `{ \"0\": [\"variables.req.0.file\"], \"1\": [\"variables.req.1.file\"] }`\n\t\tfiles := []file{\n\t\t\t{\n\t\t\t\tmapKey:      \"0\",\n\t\t\t\tname:        \"a.txt\",\n\t\t\t\tcontent:     \"test1\",\n\t\t\t\tcontentType: \"text/plain\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tmapKey:      \"1\",\n\t\t\t\tname:        \"b.txt\",\n\t\t\t\tcontent:     \"test2\",\n\t\t\t\tcontentType: \"text/plain\",\n\t\t\t},\n\t\t}\n\t\treq := createUploadRequest(t, operations, mapData, files)\n\n\t\tresp := httptest.NewRecorder()\n\t\th.ServeHTTP(resp, req)\n\t\trequire.Equal(t, http.StatusOK, resp.Code)\n\t\trequire.JSONEq(\n\t\t\tt,\n\t\t\t`{\"data\":{\"multipleUploadWithPayload\":[{\"id\":1},{\"id\":2}]}}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"valid file list upload with payload and file reuse\", func(t *testing.T) {\n\t\ttest := func(uploadMaxMemory int64) {\n\t\t\tes.ExecFunc = func(ctx context.Context) graphql.ResponseHandler {\n\t\t\t\top := graphql.GetOperationContext(ctx).Operation\n\t\t\t\trequire.Len(t, op.VariableDefinitions, 1)\n\t\t\t\trequire.Equal(t, \"req\", op.VariableDefinitions[0].Variable)\n\t\t\t\treturn graphql.OneShot(\n\t\t\t\t\t&graphql.Response{\n\t\t\t\t\t\tData: []byte(`{\"multipleUploadWithPayload\":[{\"id\":1},{\"id\":2}]}`),\n\t\t\t\t\t},\n\t\t\t\t)\n\t\t\t}\n\t\t\tmultipartForm.MaxMemory = uploadMaxMemory\n\n\t\t\toperations := `{ \"query\": \"mutation($req: [UploadFile!]!) { multipleUploadWithPayload(req: $req) }\", \"variables\": { \"req\": [ { \"id\": 1, \"file\": null }, { \"id\": 2, \"file\": null } ] } }`\n\t\t\tmapData := `{ \"0\": [\"variables.req.0.file\", \"variables.req.1.file\"] }`\n\t\t\tfiles := []file{\n\t\t\t\t{\n\t\t\t\t\tmapKey:      \"0\",\n\t\t\t\t\tname:        \"a.txt\",\n\t\t\t\t\tcontent:     \"test1\",\n\t\t\t\t\tcontentType: \"text/plain\",\n\t\t\t\t},\n\t\t\t}\n\t\t\treq := createUploadRequest(t, operations, mapData, files)\n\n\t\t\tresp := httptest.NewRecorder()\n\t\t\th.ServeHTTP(resp, req)\n\t\t\trequire.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\t\t\trequire.JSONEq(\n\t\t\t\tt,\n\t\t\t\t`{\"data\":{\"multipleUploadWithPayload\":[{\"id\":1},{\"id\":2}]}}`,\n\t\t\t\tresp.Body.String(),\n\t\t\t)\n\t\t}\n\n\t\tt.Run(\"payload smaller than UploadMaxMemory, stored in memory\", func(t *testing.T) {\n\t\t\ttest(5000)\n\t\t})\n\n\t\tt.Run(\"payload bigger than UploadMaxMemory, persisted to disk\", func(t *testing.T) {\n\t\t\ttest(2)\n\t\t})\n\t})\n\n\tvalidOperations := `{ \"query\": \"mutation ($file: Upload!) { singleUpload(file: $file) }\", \"variables\": { \"file\": null } }`\n\tvalidMap := `{ \"0\": [\"variables.file\"] }`\n\tvalidFiles := []file{\n\t\t{\n\t\t\tmapKey:      \"0\",\n\t\t\tname:        \"a.txt\",\n\t\t\tcontent:     \"test1\",\n\t\t\tcontentType: \"text/plain\",\n\t\t},\n\t}\n\n\tt.Run(\"failed invalid multipart\", func(t *testing.T) {\n\t\treq := &http.Request{\n\t\t\tMethod: http.MethodPost,\n\t\t\tHeader: http.Header{\"Content-Type\": {`multipart/form-data; boundary=\"foo123\"`}},\n\t\t\tBody:   io.NopCloser(new(bytes.Buffer)),\n\t\t}\n\t\tresp := httptest.NewRecorder()\n\t\th.ServeHTTP(resp, req)\n\t\trequire.Equal(t, http.StatusUnprocessableEntity, resp.Code, resp.Body.String())\n\t\trequire.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"first part must be operations\"}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"fail parse operation\", func(t *testing.T) {\n\t\toperations := `invalid operation`\n\t\treq := createUploadRequest(t, operations, validMap, validFiles)\n\n\t\tresp := httptest.NewRecorder()\n\t\th.ServeHTTP(resp, req)\n\t\trequire.Equal(t, http.StatusUnprocessableEntity, resp.Code, resp.Body.String())\n\t\trequire.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"operations form field could not be decoded\"}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"fail parse map\", func(t *testing.T) {\n\t\tmapData := `invalid map`\n\t\treq := createUploadRequest(t, validOperations, mapData, validFiles)\n\n\t\tresp := httptest.NewRecorder()\n\t\th.ServeHTTP(resp, req)\n\t\trequire.Equal(t, http.StatusUnprocessableEntity, resp.Code, resp.Body.String())\n\t\trequire.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"map form field could not be decoded\"}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"fail missing file\", func(t *testing.T) {\n\t\tvar files []file\n\t\treq := createUploadRequest(t, validOperations, validMap, files)\n\n\t\tresp := httptest.NewRecorder()\n\t\th.ServeHTTP(resp, req)\n\t\trequire.Equal(t, http.StatusUnprocessableEntity, resp.Code, resp.Body.String())\n\t\trequire.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"failed to get key 0 from form\"}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"fail map entry with invalid operations paths prefix\", func(t *testing.T) {\n\t\tmapData := `{ \"0\": [\"var.file\"] }`\n\t\treq := createUploadRequest(t, validOperations, mapData, validFiles)\n\n\t\tresp := httptest.NewRecorder()\n\t\th.ServeHTTP(resp, req)\n\t\trequire.Equal(t, http.StatusUnprocessableEntity, resp.Code, resp.Body.String())\n\t\trequire.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"invalid operations paths for key 0\"}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"fail parse request big body\", func(t *testing.T) {\n\t\tmultipartForm.MaxUploadSize = 2\n\t\treq := createUploadRequest(t, validOperations, validMap, validFiles)\n\n\t\tresp := httptest.NewRecorder()\n\t\th.ServeHTTP(resp, req)\n\t\trequire.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\t\trequire.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"failed to parse multipart form, request body too large\"}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n}\n\ntype file struct {\n\tmapKey      string\n\tname        string\n\tcontent     string\n\tcontentType string\n}\n\nfunc createUploadRequest(t *testing.T, operations, mapData string, files []file) *http.Request {\n\tbodyBuf := &bytes.Buffer{}\n\tbodyWriter := multipart.NewWriter(bodyBuf)\n\n\terr := bodyWriter.WriteField(\"operations\", operations)\n\trequire.NoError(t, err)\n\n\terr = bodyWriter.WriteField(\"map\", mapData)\n\trequire.NoError(t, err)\n\n\tfor i := range files {\n\t\th := make(textproto.MIMEHeader)\n\t\th.Set(\n\t\t\t\"Content-Disposition\",\n\t\t\tfmt.Sprintf(`form-data; name=\"%s\"; filename=\"%s\"`, files[i].mapKey, files[i].name),\n\t\t)\n\t\th.Set(\"Content-Type\", files[i].contentType)\n\t\tff, err := bodyWriter.CreatePart(h)\n\t\trequire.NoError(t, err)\n\t\t_, err = ff.Write([]byte(files[i].content))\n\t\trequire.NoError(t, err)\n\t}\n\terr = bodyWriter.Close()\n\trequire.NoError(t, err)\n\n\treq, err := http.NewRequest(http.MethodPost, \"/graphql\", bodyBuf)\n\trequire.NoError(t, err)\n\n\treq.Header.Set(\"Content-Type\", bodyWriter.FormDataContentType())\n\treturn req\n}\n"
  },
  {
    "path": "graphql/handler/transport/http_form_urlencode_test.go",
    "content": "package transport_test\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\n\t\"github.com/99designs/gqlgen/graphql/handler/testserver\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestUrlEncodedForm(t *testing.T) {\n\th := testserver.New()\n\th.AddTransport(transport.UrlEncodedForm{})\n\n\tt.Run(\"success json\", func(t *testing.T) {\n\t\tresp := doRequest(\n\t\t\th,\n\t\t\thttp.MethodPost,\n\t\t\t\"/graphql\",\n\t\t\t`{\"query\":\"{ name }\"}`,\n\t\t\t\"\",\n\t\t\t\"application/x-www-form-urlencoded\",\n\t\t)\n\t\tassert.Equal(t, http.StatusOK, resp.Code)\n\t\tassert.JSONEq(t, `{\"data\":{\"name\":\"test\"}}`, resp.Body.String())\n\t})\n\n\tt.Run(\"success urlencoded\", func(t *testing.T) {\n\t\tresp := doRequest(\n\t\t\th,\n\t\t\thttp.MethodPost,\n\t\t\t\"/graphql\",\n\t\t\t`query=%7B%20name%20%7D`,\n\t\t\t\"\",\n\t\t\t\"application/x-www-form-urlencoded\",\n\t\t)\n\t\tassert.Equal(t, http.StatusOK, resp.Code)\n\t\tassert.JSONEq(t, `{\"data\":{\"name\":\"test\"}}`, resp.Body.String())\n\t})\n\n\tt.Run(\"success plain\", func(t *testing.T) {\n\t\tresp := doRequest(\n\t\t\th,\n\t\t\thttp.MethodPost,\n\t\t\t\"/graphql\",\n\t\t\t`query={ name }`,\n\t\t\t\"\",\n\t\t\t\"application/x-www-form-urlencoded\",\n\t\t)\n\t\tassert.Equal(t, http.StatusOK, resp.Code)\n\t\tassert.JSONEq(t, `{\"data\":{\"name\":\"test\"}}`, resp.Body.String())\n\t})\n\n\tt.Run(\"decode failure json\", func(t *testing.T) {\n\t\tresp := doRequest(\n\t\t\th,\n\t\t\thttp.MethodPost,\n\t\t\t\"/graphql\",\n\t\t\t\"notjson\",\n\t\t\t\"\",\n\t\t\t\"application/x-www-form-urlencoded\",\n\t\t)\n\t\tassert.Equal(t, http.StatusUnprocessableEntity, resp.Code, resp.Body.String())\n\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"Unexpected Name \\\"notjson\\\"\",\"locations\":[{\"line\":1,\"column\":1}],\"extensions\":{\"code\":\"GRAPHQL_PARSE_FAILED\"}}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"decode failure urlencoded\", func(t *testing.T) {\n\t\tresp := doRequest(\n\t\t\th,\n\t\t\thttp.MethodPost,\n\t\t\t\"/graphql\",\n\t\t\t\"query=%7Bnot-good\",\n\t\t\t\"\",\n\t\t\t\"application/x-www-form-urlencoded\",\n\t\t)\n\t\tassert.Equal(t, http.StatusUnprocessableEntity, resp.Code, resp.Body.String())\n\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"Expected Name, found \\u003cInvalid\\u003e\",\"locations\":[{\"line\":1,\"column\":6}],\"extensions\":{\"code\":\"GRAPHQL_PARSE_FAILED\"}}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"parse query failure\", func(t *testing.T) {\n\t\tresp := doRequest(\n\t\t\th,\n\t\t\thttp.MethodPost,\n\t\t\t\"/graphql\",\n\t\t\t`{\"query\":{\"wrong\": \"format\"}}`,\n\t\t\t\"\",\n\t\t\t\"application/x-www-form-urlencoded\",\n\t\t)\n\t\tassert.Equal(t, http.StatusUnprocessableEntity, resp.Code, resp.Body.String())\n\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"could not cleanup body: json: cannot unmarshal object into Go struct field RawParams.query of type string\"}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"validate content type\", func(t *testing.T) {\n\t\tdoReq := func(handler http.Handler, method string, target string, body string, contentType string) *httptest.ResponseRecorder {\n\t\t\tr := httptest.NewRequest(method, target, strings.NewReader(body))\n\t\t\tif contentType != \"\" {\n\t\t\t\tr.Header.Set(\"Content-Type\", contentType)\n\t\t\t}\n\t\t\tw := httptest.NewRecorder()\n\n\t\t\thandler.ServeHTTP(w, r)\n\t\t\treturn w\n\t\t}\n\n\t\tvalidContentTypes := []string{\n\t\t\t\"application/x-www-form-urlencoded\",\n\t\t}\n\n\t\tfor _, contentType := range validContentTypes {\n\t\t\tt.Run(fmt.Sprintf(\"allow for content type %s\", contentType), func(t *testing.T) {\n\t\t\t\tresp := doReq(h, http.MethodPost, \"/graphql\", `{\"query\":\"{ name }\"}`, contentType)\n\t\t\t\tassert.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\t\t\t\tassert.JSONEq(t, `{\"data\":{\"name\":\"test\"}}`, resp.Body.String())\n\t\t\t})\n\t\t}\n\n\t\tinvalidContentTypes := []string{\n\t\t\t\"\",\n\t\t\t\"text/plain\",\n\t\t}\n\n\t\tfor _, tc := range invalidContentTypes {\n\t\t\tt.Run(fmt.Sprintf(\"reject for content type %s\", tc), func(t *testing.T) {\n\t\t\t\tresp := doReq(h, http.MethodPost, \"/graphql\", `{\"query\":\"{ name }\"}`, tc)\n\t\t\t\tassert.Equal(t, http.StatusBadRequest, resp.Code, resp.Body.String())\n\t\t\t\tassert.JSONEq(\n\t\t\t\t\tt,\n\t\t\t\t\tfmt.Sprintf(\n\t\t\t\t\t\t`{\"errors\":[{\"message\":\"%s\"}],\"data\":null}`,\n\t\t\t\t\t\t\"transport not supported\",\n\t\t\t\t\t),\n\t\t\t\t\tresp.Body.String(),\n\t\t\t\t)\n\t\t\t})\n\t\t}\n\t})\n}\n"
  },
  {
    "path": "graphql/handler/transport/http_form_urlencoded.go",
    "content": "package transport\n\nimport (\n\t\"io\"\n\t\"mime\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"strings\"\n\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\n// FORM implements the application/x-www-form-urlencoded side of the default HTTP transport\ntype UrlEncodedForm struct {\n\t// Map of all headers that are added to graphql response. If not\n\t// set, only one header: Content-Type: application/json will be set.\n\tResponseHeaders map[string][]string\n}\n\nvar _ graphql.Transport = UrlEncodedForm{}\n\nfunc (h UrlEncodedForm) Supports(r *http.Request) bool {\n\tif r.Header.Get(\"Upgrade\") != \"\" {\n\t\treturn false\n\t}\n\n\tmediaType, _, err := mime.ParseMediaType(r.Header.Get(\"Content-Type\"))\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn r.Method == http.MethodPost && mediaType == \"application/x-www-form-urlencoded\"\n}\n\nfunc (h UrlEncodedForm) Do(w http.ResponseWriter, r *http.Request, exec graphql.GraphExecutor) {\n\tctx := r.Context()\n\twriteHeaders(w, h.ResponseHeaders)\n\tparams := &graphql.RawParams{}\n\tstart := graphql.Now()\n\tparams.Headers = r.Header\n\tparams.ReadTime = graphql.TraceTiming{\n\t\tStart: start,\n\t\tEnd:   graphql.Now(),\n\t}\n\n\tbodyString, err := getRequestBody(r)\n\tif err != nil {\n\t\tw.WriteHeader(http.StatusBadRequest)\n\t\tgqlErr := gqlerror.Errorf(\"could not get form body: %+v\", err)\n\t\tresp := exec.DispatchError(ctx, gqlerror.List{gqlErr})\n\t\twriteJson(w, resp)\n\t\treturn\n\t}\n\n\tparams, err = h.parseBody(bodyString)\n\tif err != nil {\n\t\tw.WriteHeader(http.StatusUnprocessableEntity)\n\t\tgqlErr := gqlerror.Errorf(\"could not cleanup body: %+v\", err)\n\t\tresp := exec.DispatchError(ctx, gqlerror.List{gqlErr})\n\t\twriteJson(w, resp)\n\t\treturn\n\t}\n\n\trc, opErr := exec.CreateOperationContext(ctx, params)\n\tif opErr != nil {\n\t\tw.WriteHeader(statusFor(opErr))\n\t\tresp := exec.DispatchError(graphql.WithOperationContext(ctx, rc), opErr)\n\t\twriteJson(w, resp)\n\t\treturn\n\t}\n\n\tvar responses graphql.ResponseHandler\n\tresponses, ctx = exec.DispatchOperation(ctx, rc)\n\twriteJson(w, responses(ctx))\n}\n\nfunc (h UrlEncodedForm) parseBody(bodyString string) (*graphql.RawParams, error) {\n\tswitch {\n\tcase strings.Contains(bodyString, \"\\\"query\\\":\"):\n\t\t// body is json\n\t\treturn h.parseJson(bodyString)\n\tcase strings.HasPrefix(bodyString, \"query=%7B\"):\n\t\t// body is urlencoded\n\t\treturn h.parseEncoded(bodyString)\n\tdefault:\n\t\t// body is plain text\n\t\tparams := &graphql.RawParams{}\n\t\tparams.Query = strings.TrimPrefix(bodyString, \"query=\")\n\n\t\treturn params, nil\n\t}\n}\n\nfunc (h UrlEncodedForm) parseEncoded(bodyString string) (*graphql.RawParams, error) {\n\tparams := &graphql.RawParams{}\n\n\tquery, err := url.QueryUnescape(bodyString)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tparams.Query = strings.TrimPrefix(query, \"query=\")\n\n\treturn params, nil\n}\n\nfunc (h UrlEncodedForm) parseJson(bodyString string) (*graphql.RawParams, error) {\n\tparams := &graphql.RawParams{}\n\tbodyReader := io.NopCloser(strings.NewReader(bodyString))\n\n\terr := jsonDecode(bodyReader, &params)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn params, nil\n}\n"
  },
  {
    "path": "graphql/handler/transport/http_get.go",
    "content": "package transport\n\nimport (\n\t\"encoding/json\"\n\t\"io\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"strings\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/errcode\"\n)\n\n// GET implements the GET side of the default HTTP transport\n// defined in https://github.com/APIs-guru/graphql-over-http#get\ntype GET struct {\n\t// Map of all headers that are added to graphql response. If not\n\t// set, only one header: Content-Type: application/graphql-response+json will be set.\n\tResponseHeaders map[string][]string\n\t// UseGrapQLResponseJsonByDefault determines whether to use 'application/graphql-response+json'\n\t// as the response content type\n\t// when the Accept header is empty or 'application/*' or '*/*'.\n\tUseGrapQLResponseJsonByDefault bool\n}\n\nvar _ graphql.Transport = GET{}\n\nfunc (h GET) Supports(r *http.Request) bool {\n\tif r.Header.Get(\"Upgrade\") != \"\" {\n\t\treturn false\n\t}\n\n\treturn r.Method == http.MethodGet\n}\n\nfunc (h GET) Do(w http.ResponseWriter, r *http.Request, exec graphql.GraphExecutor) {\n\tquery, err := url.ParseQuery(r.URL.RawQuery)\n\tif err != nil {\n\t\tw.WriteHeader(http.StatusBadRequest)\n\t\twriteJsonError(w, err.Error())\n\t\treturn\n\t}\n\tcontentType := determineResponseContentType(\n\t\th.ResponseHeaders,\n\t\tr,\n\t\th.UseGrapQLResponseJsonByDefault,\n\t)\n\tresponseHeaders := mergeHeaders(\n\t\tmap[string][]string{\n\t\t\t\"Content-Type\": {contentType},\n\t\t},\n\t\th.ResponseHeaders,\n\t)\n\twriteHeaders(w, responseHeaders)\n\n\traw := &graphql.RawParams{\n\t\tQuery:         query.Get(\"query\"),\n\t\tOperationName: query.Get(\"operationName\"),\n\t\tHeaders:       r.Header,\n\t}\n\traw.ReadTime.Start = graphql.Now()\n\n\tif variables := query.Get(\"variables\"); variables != \"\" {\n\t\tif err := jsonDecode(strings.NewReader(variables), &raw.Variables); err != nil {\n\t\t\tw.WriteHeader(http.StatusBadRequest)\n\t\t\twriteJsonError(w, \"variables could not be decoded\")\n\t\t\treturn\n\t\t}\n\t}\n\n\tif extensions := query.Get(\"extensions\"); extensions != \"\" {\n\t\tif err := jsonDecode(strings.NewReader(extensions), &raw.Extensions); err != nil {\n\t\t\tw.WriteHeader(http.StatusBadRequest)\n\t\t\twriteJsonError(w, \"extensions could not be decoded\")\n\t\t\treturn\n\t\t}\n\t}\n\n\traw.ReadTime.End = graphql.Now()\n\n\topCtx, gqlError := exec.CreateOperationContext(r.Context(), raw)\n\tif gqlError != nil {\n\t\tif contentType == acceptApplicationGraphqlResponseJson {\n\t\t\tw.WriteHeader(statusForGraphQLResponse(gqlError))\n\t\t} else {\n\t\t\tw.WriteHeader(statusFor(gqlError))\n\t\t}\n\t\tresp := exec.DispatchError(graphql.WithOperationContext(r.Context(), opCtx), gqlError)\n\t\twriteJson(w, resp)\n\t\treturn\n\t}\n\top := opCtx.Doc.Operations.ForName(opCtx.OperationName)\n\tif op.Operation != ast.Query {\n\t\tw.WriteHeader(http.StatusNotAcceptable)\n\t\twriteJsonError(w, \"GET requests only allow query operations\")\n\t\treturn\n\t}\n\n\tresponses, ctx := exec.DispatchOperation(r.Context(), opCtx)\n\twriteJson(w, responses(ctx))\n}\n\nfunc jsonDecode(r io.Reader, val any) error {\n\tdec := json.NewDecoder(r)\n\tdec.UseNumber()\n\treturn dec.Decode(val)\n}\n\nfunc statusFor(errs gqlerror.List) int {\n\tswitch errcode.GetErrorKind(errs) {\n\tcase errcode.KindProtocol:\n\t\treturn http.StatusUnprocessableEntity\n\tdefault:\n\t\treturn http.StatusOK\n\t}\n}\n\nfunc statusForGraphQLResponse(errs gqlerror.List) int {\n\t// https://graphql.github.io/graphql-over-http/draft/#sec-application-graphql-response-json\n\tswitch errcode.GetErrorKind(errs) {\n\tcase errcode.KindProtocol:\n\t\treturn http.StatusBadRequest\n\tdefault:\n\t\treturn http.StatusOK\n\t}\n}\n"
  },
  {
    "path": "graphql/handler/transport/http_get_test.go",
    "content": "package transport_test\n\nimport (\n\t\"net/http\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\n\t\"github.com/99designs/gqlgen/graphql/handler/testserver\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestGET(t *testing.T) {\n\th := testserver.New()\n\th.AddTransport(transport.GET{})\n\n\tgraphqlResponseH := testserver.New()\n\tgraphqlResponseH.AddTransport(transport.GET{UseGrapQLResponseJsonByDefault: true})\n\n\tjsonH := testserver.New()\n\tjsonH.AddTransport(transport.GET{\n\t\tResponseHeaders: map[string][]string{\n\t\t\t\"Content-Type\": {\"application/json\"},\n\t\t},\n\t})\n\n\tt.Run(\"success with accept application/json\", func(t *testing.T) {\n\t\tresp := doRequest(\n\t\t\th,\n\t\t\t\"GET\",\n\t\t\t\"/graphql?query={name}\",\n\t\t\t``,\n\t\t\t\"application/json\",\n\t\t\t\"application/json\",\n\t\t)\n\t\tassert.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.JSONEq(t, `{\"data\":{\"name\":\"test\"}}`, resp.Body.String())\n\t})\n\n\tt.Run(\"success with accept is empty with enabling graphql response json\", func(t *testing.T) {\n\t\tresp := doRequest(\n\t\t\tgraphqlResponseH,\n\t\t\t\"GET\",\n\t\t\t\"/graphql?query={name}\",\n\t\t\t``,\n\t\t\t\"\",\n\t\t\t\"application/json\",\n\t\t)\n\t\tassert.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\t\tassert.Equal(t, \"application/graphql-response+json\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.JSONEq(t, `{\"data\":{\"name\":\"test\"}}`, resp.Body.String())\n\t})\n\n\tt.Run(\n\t\t\"success with accept is empty without enabling graphql response json\",\n\t\tfunc(t *testing.T) {\n\t\t\tresp := doRequest(h, \"GET\", \"/graphql?query={name}\", ``, \"\", \"application/json\")\n\t\t\tassert.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\t\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t\t\tassert.JSONEq(t, `{\"data\":{\"name\":\"test\"}}`, resp.Body.String())\n\t\t},\n\t)\n\n\tt.Run(\"success with accept application/graphql-response+json\", func(t *testing.T) {\n\t\tresp := doRequest(\n\t\t\th,\n\t\t\t\"GET\",\n\t\t\t\"/graphql?query={name}\",\n\t\t\t``,\n\t\t\t\"application/graphql-response+json\",\n\t\t\t\"application/json\",\n\t\t)\n\t\tassert.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\t\tassert.Equal(t, \"application/graphql-response+json\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.JSONEq(t, `{\"data\":{\"name\":\"test\"}}`, resp.Body.String())\n\t})\n\n\tt.Run(\n\t\t\"success with wildcard with enabling application/graphql-response+json\",\n\t\tfunc(t *testing.T) {\n\t\t\tresp := doRequest(\n\t\t\t\tgraphqlResponseH,\n\t\t\t\t\"GET\",\n\t\t\t\t\"/graphql?query={name}\",\n\t\t\t\t``,\n\t\t\t\t\"*/*\",\n\t\t\t\t\"application/json\",\n\t\t\t)\n\t\t\tassert.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\t\t\tassert.Equal(t, \"application/graphql-response+json\", resp.Header().Get(\"Content-Type\"))\n\t\t\tassert.JSONEq(t, `{\"data\":{\"name\":\"test\"}}`, resp.Body.String())\n\t\t},\n\t)\n\n\tt.Run(\n\t\t\"success with wildcard without enabling application/graphql-response+json\",\n\t\tfunc(t *testing.T) {\n\t\t\tresp := doRequest(h, \"GET\", \"/graphql?query={name}\", ``, \"*/*\", \"application/json\")\n\t\t\tassert.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\t\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t\t\tassert.JSONEq(t, `{\"data\":{\"name\":\"test\"}}`, resp.Body.String())\n\t\t},\n\t)\n\n\tt.Run(\"has json content-type header\", func(t *testing.T) {\n\t\tresp := doRequest(\n\t\t\th,\n\t\t\t\"GET\",\n\t\t\t\"/graphql?query={name}\",\n\t\t\t``,\n\t\t\t\"application/json\",\n\t\t\t\"application/json\",\n\t\t)\n\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t})\n\n\tt.Run(\"decode failure\", func(t *testing.T) {\n\t\tresp := doRequest(\n\t\t\th,\n\t\t\t\"GET\",\n\t\t\t\"/graphql?query={name}&variables=notjson\",\n\t\t\t\"\",\n\t\t\t\"application/json\",\n\t\t\t\"application/json\",\n\t\t)\n\t\tassert.Equal(t, http.StatusBadRequest, resp.Code, resp.Body.String())\n\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"variables could not be decoded\"}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"invalid variable\", func(t *testing.T) {\n\t\tresp := doRequest(\n\t\t\th,\n\t\t\t\"GET\",\n\t\t\t`/graphql?query=query($id:Int!){find(id:$id)}&variables={\"id\":false}`,\n\t\t\t\"\",\n\t\t\t\"\",\n\t\t\t\"application/json\",\n\t\t)\n\t\tassert.Equal(t, http.StatusUnprocessableEntity, resp.Code, resp.Body.String())\n\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"cannot use bool as Int\",\"path\":[\"variable\",\"id\"],\"extensions\":{\"code\":\"GRAPHQL_VALIDATION_FAILED\"}}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"invalid variable with json only\", func(t *testing.T) {\n\t\tresp := doRequest(\n\t\t\tjsonH,\n\t\t\t\"GET\",\n\t\t\t`/graphql?query=query($id:Int!){find(id:$id)}&variables={\"id\":false}`,\n\t\t\t\"\",\n\t\t\t\"\",\n\t\t\t\"application/json\",\n\t\t)\n\t\tassert.Equal(t, http.StatusUnprocessableEntity, resp.Code, resp.Body.String())\n\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"cannot use bool as Int\",\"path\":[\"variable\",\"id\"],\"extensions\":{\"code\":\"GRAPHQL_VALIDATION_FAILED\"}}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"parse failure\", func(t *testing.T) {\n\t\tresp := doRequest(h, \"GET\", \"/graphql?query=!\", \"\", \"\", \"application/json\")\n\t\tassert.Equal(t, http.StatusUnprocessableEntity, resp.Code, resp.Body.String())\n\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"Unexpected !\",\"locations\":[{\"line\":1,\"column\":1}],\"extensions\":{\"code\":\"GRAPHQL_PARSE_FAILED\"}}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"parse failure with json only\", func(t *testing.T) {\n\t\tresp := doRequest(jsonH, \"GET\", \"/graphql?query=!\", \"\", \"\", \"application/json\")\n\t\tassert.Equal(t, http.StatusUnprocessableEntity, resp.Code, resp.Body.String())\n\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"Unexpected !\",\"locations\":[{\"line\":1,\"column\":1}],\"extensions\":{\"code\":\"GRAPHQL_PARSE_FAILED\"}}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"no mutations\", func(t *testing.T) {\n\t\tresp := doRequest(h, \"GET\", \"/graphql?query=mutation{name}\", \"\", \"\", \"application/json\")\n\t\tassert.Equal(t, http.StatusNotAcceptable, resp.Code, resp.Body.String())\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"GET requests only allow query operations\"}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n}\n"
  },
  {
    "path": "graphql/handler/transport/http_graphql.go",
    "content": "package transport\n\nimport (\n\t\"mime\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"strings\"\n\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\n// GRAPHQL implements the application/graphql side of the HTTP transport\n// see: https://graphql.org/learn/serving-over-http/#post-request\n// If the \"application/graphql\" Content-Type header is present, treat\n// the HTTP POST body contents as the GraphQL query string.\ntype GRAPHQL struct {\n\t// Map of all headers that are added to graphql response. If not\n\t// set, only one header: Content-Type: application/json will be set.\n\tResponseHeaders map[string][]string\n}\n\nvar _ graphql.Transport = GRAPHQL{}\n\nfunc (h GRAPHQL) Supports(r *http.Request) bool {\n\tif r.Header.Get(\"Upgrade\") != \"\" {\n\t\treturn false\n\t}\n\n\tmediaType, _, err := mime.ParseMediaType(r.Header.Get(\"Content-Type\"))\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn r.Method == http.MethodPost && mediaType == \"application/graphql\"\n}\n\nfunc (h GRAPHQL) Do(w http.ResponseWriter, r *http.Request, exec graphql.GraphExecutor) {\n\tctx := r.Context()\n\twriteHeaders(w, h.ResponseHeaders)\n\tparams := &graphql.RawParams{}\n\tstart := graphql.Now()\n\tparams.Headers = r.Header\n\tparams.ReadTime = graphql.TraceTiming{\n\t\tStart: start,\n\t\tEnd:   graphql.Now(),\n\t}\n\n\tbodyString, err := getRequestBody(r)\n\tif err != nil {\n\t\tgqlErr := gqlerror.Errorf(\"could not get request body: %+v\", err)\n\t\tresp := exec.DispatchError(ctx, gqlerror.List{gqlErr})\n\t\twriteJson(w, resp)\n\t\treturn\n\t}\n\n\tparams.Query, err = cleanupBody(bodyString)\n\tif err != nil {\n\t\tw.WriteHeader(http.StatusUnprocessableEntity)\n\t\tgqlErr := gqlerror.Errorf(\"could not cleanup body: %+v\", err)\n\t\tresp := exec.DispatchError(ctx, gqlerror.List{gqlErr})\n\t\twriteJson(w, resp)\n\t\treturn\n\t}\n\n\trc, opErr := exec.CreateOperationContext(ctx, params)\n\tif opErr != nil {\n\t\tw.WriteHeader(statusFor(opErr))\n\t\tresp := exec.DispatchError(graphql.WithOperationContext(ctx, rc), opErr)\n\t\twriteJson(w, resp)\n\t\treturn\n\t}\n\n\tvar responses graphql.ResponseHandler\n\tresponses, ctx = exec.DispatchOperation(ctx, rc)\n\twriteJson(w, responses(ctx))\n}\n\n// Makes sure we strip \"query=\" keyword from body and\n// that body is not url escaped\nfunc cleanupBody(body string) (out string, err error) {\n\t// Some clients send 'query=' at the start of body payload. Let's remove\n\t// it to get GQL query only.\n\tbody = strings.TrimPrefix(body, \"query=\")\n\n\t// Body payload can be url encoded or not. We check if %7B - \"{\" character\n\t// is where query starts. If it is, query is url encoded.\n\tif strings.HasPrefix(body, \"%7B\") {\n\t\tbody, err = url.QueryUnescape(body)\n\t\tif err != nil {\n\t\t\treturn body, err\n\t\t}\n\t}\n\n\treturn body, err\n}\n"
  },
  {
    "path": "graphql/handler/transport/http_graphql_test.go",
    "content": "package transport_test\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\n\t\"github.com/99designs/gqlgen/graphql/handler/testserver\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestGRAPHQL(t *testing.T) {\n\th := testserver.New()\n\th.AddTransport(transport.GRAPHQL{})\n\n\tt.Run(\"success\", func(t *testing.T) {\n\t\tresp := doGraphqlRequest(h, http.MethodPost, \"/graphql\", `{ name }`)\n\t\tassert.Equal(t, http.StatusOK, resp.Code)\n\t\tassert.JSONEq(t, `{\"data\":{\"name\":\"test\"}}`, resp.Body.String())\n\t})\n\n\tt.Run(\"success even if url encoded\", func(t *testing.T) {\n\t\tresp := doGraphqlRequest(h, http.MethodPost, \"/graphql\", `%7B%20name%20%7D`)\n\t\tassert.Equal(t, http.StatusOK, resp.Code)\n\t\tassert.JSONEq(t, `{\"data\":{\"name\":\"test\"}}`, resp.Body.String())\n\t})\n\n\tt.Run(\"parse failure\", func(t *testing.T) {\n\t\tresp := doGraphqlRequest(h, http.MethodPost, \"/graphql\", `{\"!\"}`)\n\t\tassert.Equal(t, http.StatusUnprocessableEntity, resp.Code, resp.Body.String())\n\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"Expected Name, found String\",\"locations\":[{\"line\":1,\"column\":3}],\"extensions\":{\"code\":\"GRAPHQL_PARSE_FAILED\"}}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"parse query failure\", func(t *testing.T) {\n\t\tresp := doGraphqlRequest(h, http.MethodPost, \"/graphql\", `%7B%H7U6Z`)\n\t\tassert.Equal(t, http.StatusUnprocessableEntity, resp.Code, resp.Body.String())\n\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"could not cleanup body: invalid URL escape \\\"%H7\\\"\"}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"validation failure\", func(t *testing.T) {\n\t\tresp := doGraphqlRequest(h, http.MethodPost, \"/graphql\", `{ title }`)\n\t\tassert.Equal(t, http.StatusUnprocessableEntity, resp.Code, resp.Body.String())\n\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"Cannot query field \\\"title\\\" on type \\\"Query\\\".\",\"locations\":[{\"line\":1,\"column\":3}],\"extensions\":{\"code\":\"GRAPHQL_VALIDATION_FAILED\"}}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"execution failure\", func(t *testing.T) {\n\t\tresp := doGraphqlRequest(h, http.MethodPost, \"/graphql\", `mutation { name }`)\n\t\tassert.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"mutations are not supported\"}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"validate content type\", func(t *testing.T) {\n\t\tdoReq := func(handler http.Handler, method string, target string, body string, contentType string) *httptest.ResponseRecorder {\n\t\t\tr := httptest.NewRequest(method, target, strings.NewReader(body))\n\t\t\tif contentType != \"\" {\n\t\t\t\tr.Header.Set(\"Content-Type\", contentType)\n\t\t\t}\n\t\t\tw := httptest.NewRecorder()\n\n\t\t\thandler.ServeHTTP(w, r)\n\t\t\treturn w\n\t\t}\n\n\t\tvalidContentTypes := []string{\n\t\t\t\"application/graphql\",\n\t\t\t\"application/graphql; charset=utf-8\",\n\t\t}\n\n\t\tfor _, contentType := range validContentTypes {\n\t\t\tt.Run(fmt.Sprintf(\"allow for content type %s\", contentType), func(t *testing.T) {\n\t\t\t\tresp := doReq(h, http.MethodPost, \"/graphql\", `{ name }`, contentType)\n\t\t\t\tassert.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\t\t\t\tassert.JSONEq(t, `{\"data\":{\"name\":\"test\"}}`, resp.Body.String())\n\t\t\t})\n\t\t}\n\n\t\tinvalidContentTypes := []string{\n\t\t\t\"\",\n\t\t\t\"text/plain\",\n\t\t}\n\n\t\tfor _, tc := range invalidContentTypes {\n\t\t\tt.Run(fmt.Sprintf(\"reject for content type %s\", tc), func(t *testing.T) {\n\t\t\t\tresp := doReq(h, http.MethodPost, \"/graphql\", `{\"query\":\"{ name }\"}`, tc)\n\t\t\t\tassert.Equal(t, http.StatusBadRequest, resp.Code, resp.Body.String())\n\t\t\t\tassert.JSONEq(\n\t\t\t\t\tt,\n\t\t\t\t\tfmt.Sprintf(\n\t\t\t\t\t\t`{\"errors\":[{\"message\":\"%s\"}],\"data\":null}`,\n\t\t\t\t\t\t\"transport not supported\",\n\t\t\t\t\t),\n\t\t\t\t\tresp.Body.String(),\n\t\t\t\t)\n\t\t\t})\n\t\t}\n\t})\n}\n\nfunc doGraphqlRequest(\n\thandler http.Handler,\n\tmethod, target, body string, //nolint:unparam // expected to always get POST for GraphQL\n) *httptest.ResponseRecorder {\n\tr := httptest.NewRequest(method, target, strings.NewReader(body))\n\tr.Header.Set(\"Content-Type\", \"application/graphql\")\n\tw := httptest.NewRecorder()\n\n\thandler.ServeHTTP(w, r)\n\treturn w\n}\n"
  },
  {
    "path": "graphql/handler/transport/http_multipart_mixed.go",
    "content": "package transport\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"mime\"\n\t\"net/http\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\n// MultipartMixed is a transport that supports the multipart/mixed spec\ntype MultipartMixed struct {\n\tBoundary        string\n\tDeliveryTimeout time.Duration\n}\n\nvar _ graphql.Transport = MultipartMixed{}\n\n// Supports checks if the request supports the multipart/mixed spec\n// Might be worth check the spec required, but Apollo Client mislabel the spec in the headers.\nfunc (t MultipartMixed) Supports(r *http.Request) bool {\n\tif !strings.Contains(r.Header.Get(\"Accept\"), \"multipart/mixed\") {\n\t\treturn false\n\t}\n\tmediaType, _, err := mime.ParseMediaType(r.Header.Get(\"Content-Type\"))\n\tif err != nil {\n\t\treturn false\n\t}\n\treturn r.Method == http.MethodPost && mediaType == \"application/json\"\n}\n\n// Do implements the multipart/mixed spec as a multipart/mixed response\nfunc (t MultipartMixed) Do(w http.ResponseWriter, r *http.Request, exec graphql.GraphExecutor) {\n\t// Implements the multipart/mixed spec as a multipart/mixed response:\n\t// *\n\t// https://github.com/graphql/graphql-wg/blob/e4ef5f9d5997815d9de6681655c152b6b7838b4c/rfcs/DeferStream.md\n\t//   2022/08/23 as implemented by gqlgen.\n\t// *\n\t// https://github.com/graphql/graphql-wg/blob/f22ea7748c6ebdf88fdbf770a8d9e41984ebd429/rfcs/DeferStream.md\n\t// June 2023 Spec for the\n\t//   `incremental` field\n\t// * https://github.com/graphql/graphql-over-http/blob/main/rfcs/IncrementalDelivery.md\n\t//   multipart specification\n\t// Follows the format that is used in the Apollo Client tests:\n\t// https://github.com/apollographql/apollo-client/blob/v3.11.8/src/link/http/__tests__/responseIterator.ts#L68\n\t// Apollo Client, despite mentioning in its requests that they require the 2022 spec, it wants\n\t// the `incremental` field to be an array of responses, not a single response. Theoretically we\n\t// could\n\t// batch responses in the `incremental` field, if we wanted to optimize this code.\n\tctx := r.Context()\n\tflusher, ok := w.(http.Flusher)\n\tif !ok {\n\t\tSendErrorf(w, http.StatusInternalServerError, \"streaming unsupported\")\n\t\treturn\n\t}\n\tdefer flusher.Flush()\n\n\tw.Header().Set(\"Cache-Control\", \"no-cache\")\n\tw.Header().Set(\"Connection\", \"keep-alive\")\n\t// This header will be replaced below, but it's required in case we return errors.\n\tw.Header().Set(\"Content-Type\", \"application/json\")\n\n\tboundary := t.Boundary\n\tif boundary == \"\" {\n\t\tboundary = \"-\"\n\t}\n\ttimeout := t.DeliveryTimeout\n\tif timeout.Milliseconds() < 1 {\n\t\t// If the timeout is less than 1ms, we'll set it to 1ms to avoid a busy loop\n\t\ttimeout = 1 * time.Millisecond\n\t}\n\n\tparams := &graphql.RawParams{}\n\tstart := graphql.Now()\n\tparams.Headers = r.Header\n\tparams.ReadTime = graphql.TraceTiming{\n\t\tStart: start,\n\t\tEnd:   graphql.Now(),\n\t}\n\n\tbodyString, err := getRequestBody(r)\n\tif err != nil {\n\t\tgqlErr := gqlerror.Errorf(\"could not get json request body: %+v\", err)\n\t\tresp := exec.DispatchError(ctx, gqlerror.List{gqlErr})\n\t\tlog.Printf(\"could not get json request body: %+v\", err.Error())\n\t\twriteJson(w, resp)\n\t\treturn\n\t}\n\n\tbodyReader := io.NopCloser(strings.NewReader(bodyString))\n\tif err = jsonDecode(bodyReader, &params); err != nil {\n\t\tw.WriteHeader(http.StatusBadRequest)\n\t\tgqlErr := gqlerror.Errorf(\n\t\t\t\"json request body could not be decoded: %+v body:%s\",\n\t\t\terr,\n\t\t\tbodyString,\n\t\t)\n\t\tresp := exec.DispatchError(ctx, gqlerror.List{gqlErr})\n\t\tlog.Printf(\"decoding error: %+v body:%s\", err.Error(), bodyString)\n\t\twriteJson(w, resp)\n\t\treturn\n\t}\n\n\trc, opErr := exec.CreateOperationContext(ctx, params)\n\tctx = graphql.WithOperationContext(ctx, rc)\n\tif opErr != nil {\n\t\tw.WriteHeader(statusFor(opErr))\n\n\t\tresp := exec.DispatchError(ctx, opErr)\n\t\twriteJson(w, resp)\n\t\treturn\n\t}\n\n\t// Example of the response format (note the new lines and boundaries are important!):\n\t// https://github.com/graphql/graphql-over-http/blob/main/rfcs/IncrementalDelivery.md\n\t// --graphql\n\t// Content-Type: application/json\n\t//\n\t// {\"data\":{\"apps\":{\"apps\":[ .. ],\"totalNumApps\":161,\"__typename\":\"AppsOutput\"}},\"hasNext\":true}\n\t// --graphql\n\t// Content-Type: application/json\n\t//\n\t// {\"incremental\":[{\"data\":{\"groupAccessCount\":0},\"label\":\"test\",\"path\":[\"apps\",\"apps\",7],\"hasNext\":true}],\"hasNext\":true}\n\t// --graphql\n\t// ...\n\t// --graphql--\n\t// Last boundary is a closing boundary with two dashes at the end.\n\n\tw.Header().Set(\n\t\t\"Content-Type\",\n\t\tfmt.Sprintf(`multipart/mixed;boundary=\"%s\";deferSpec=20220824`, boundary),\n\t)\n\n\ta := newMultipartResponseAggregator(w, boundary, timeout)\n\tdefer a.Done(w)\n\n\tresponses, ctx := exec.DispatchOperation(ctx, rc)\n\tinitialResponse := true\n\tfor {\n\t\tresponse := responses(ctx)\n\t\tif response == nil {\n\t\t\tbreak\n\t\t}\n\n\t\ta.Add(response, initialResponse)\n\t\tinitialResponse = false\n\t}\n}\n\nfunc writeIncrementalJson(w io.Writer, responses []*graphql.Response, hasNext bool) {\n\t// TODO: Remove this wrapper on response once gqlgen supports the 2023 spec\n\tb, err := json.Marshal(struct {\n\t\tIncremental []*graphql.Response `json:\"incremental\"`\n\t\tHasNext     bool                `json:\"hasNext\"`\n\t}{\n\t\tIncremental: responses,\n\t\tHasNext:     hasNext,\n\t})\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tw.Write(b)\n}\n\nfunc writeBoundary(w io.Writer, boundary string, finalResponse bool) {\n\tif finalResponse {\n\t\tfmt.Fprintf(w, \"--%s--\\r\\n\", boundary)\n\t\treturn\n\t}\n\tfmt.Fprintf(w, \"--%s\\r\\n\", boundary)\n}\n\nfunc writeContentTypeHeader(w io.Writer) {\n\tfmt.Fprintf(w, \"Content-Type: application/json\\r\\n\\r\\n\")\n}\n\n// multipartResponseAggregator helps us reduce the number of responses sent to the frontend by\n// batching all the\n// incremental responses together.\ntype multipartResponseAggregator struct {\n\tmu              sync.Mutex\n\tboundary        string\n\tinitialResponse *graphql.Response\n\tdeferResponses  []*graphql.Response\n\tdone            chan bool\n}\n\n// newMultipartResponseAggregator creates a new multipartResponseAggregator\n// The aggregator will flush responses to the client every `tickerDuration` (default 1ms) so that\n// multiple incremental responses are batched together.\nfunc newMultipartResponseAggregator(\n\tw http.ResponseWriter,\n\tboundary string,\n\ttickerDuration time.Duration,\n) *multipartResponseAggregator {\n\ta := &multipartResponseAggregator{\n\t\tboundary: boundary,\n\t\tdone:     make(chan bool, 1),\n\t}\n\tgo func() {\n\t\tticker := time.NewTicker(tickerDuration)\n\t\tdefer ticker.Stop()\n\t\tfor {\n\t\t\tselect {\n\t\t\tcase <-a.done:\n\t\t\t\treturn\n\t\t\tcase <-ticker.C:\n\t\t\t\ta.flush(w)\n\t\t\t}\n\t\t}\n\t}()\n\treturn a\n}\n\n// Done flushes the remaining responses\nfunc (a *multipartResponseAggregator) Done(w http.ResponseWriter) {\n\ta.done <- true\n\ta.flush(w)\n}\n\n// Add accumulates the responses\nfunc (a *multipartResponseAggregator) Add(resp *graphql.Response, initialResponse bool) {\n\ta.mu.Lock()\n\tdefer a.mu.Unlock()\n\tif initialResponse {\n\t\ta.initialResponse = resp\n\t\treturn\n\t}\n\ta.deferResponses = append(a.deferResponses, resp)\n}\n\n// flush sends the accumulated responses to the client\nfunc (a *multipartResponseAggregator) flush(w http.ResponseWriter) {\n\ta.mu.Lock()\n\tdefer a.mu.Unlock()\n\n\t// If we don't have any responses, we can return early\n\tif a.initialResponse == nil && len(a.deferResponses) == 0 {\n\t\treturn\n\t}\n\n\tflusher, ok := w.(http.Flusher)\n\tif !ok {\n\t\t// This should never happen, as we check for this much earlier on\n\t\tpanic(\"response writer does not support flushing\")\n\t}\n\n\thasNext := false\n\tif a.initialResponse != nil {\n\t\t// Initial response will need to begin with the boundary\n\t\twriteBoundary(w, a.boundary, false)\n\t\twriteContentTypeHeader(w)\n\n\t\twriteJson(w, a.initialResponse)\n\t\thasNext = a.initialResponse.HasNext != nil && *a.initialResponse.HasNext\n\n\t\t// Handle when initial is aggregated with deferred responses.\n\t\tif len(a.deferResponses) > 0 {\n\t\t\tfmt.Fprintf(w, \"\\r\\n\")\n\t\t\twriteBoundary(w, a.boundary, false)\n\t\t}\n\n\t\t// Reset the initial response so we don't send it again\n\t\ta.initialResponse = nil\n\t}\n\n\tif len(a.deferResponses) > 0 {\n\t\twriteContentTypeHeader(w)\n\n\t\t// Note: while the 2023 spec that includes \"incremental\" does not\n\t\t// explicitly list the fields that should be included as part of the\n\t\t// incremental object, it shows hasNext only on the response payload\n\t\t// (marking the status of the operation as a whole), and instead the\n\t\t// response payload implements pending and complete fields to mark the\n\t\t// status of the incrementally delivered data.\n\t\t//\n\t\t// TODO: use the \"HasNext\" status of deferResponses items to determine\n\t\t// the operation status and pending / complete fields, but remove from\n\t\t// the incremental (deferResponses) object.\n\t\thasNext = a.deferResponses[len(a.deferResponses)-1].HasNext != nil &&\n\t\t\t*a.deferResponses[len(a.deferResponses)-1].HasNext\n\t\twriteIncrementalJson(w, a.deferResponses, hasNext)\n\n\t\t// Reset the deferResponses so we don't send them again\n\t\ta.deferResponses = nil\n\t}\n\n\t// Make sure to put the delimiter after every request, so that Apollo Client knows that the\n\t// current payload has been sent, and updates the UI. This is particular important for the first\n\t// response and the last response, which may either hang or never get handled.\n\t// Final response will have a closing boundary with two dashes at the end.\n\tfmt.Fprintf(w, \"\\r\\n\")\n\twriteBoundary(w, a.boundary, !hasNext)\n\tflusher.Flush()\n}\n"
  },
  {
    "path": "graphql/handler/transport/http_multipart_mixed_test.go",
    "content": "package transport_test\n\nimport (\n\t\"bufio\"\n\t\"io\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"strings\"\n\t\"sync\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/graphql/handler/testserver\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestMultipartMixed(t *testing.T) {\n\tinitialize := func() *testserver.TestServer {\n\t\th := testserver.New()\n\t\th.AddTransport(transport.MultipartMixed{\n\t\t\tBoundary: \"graphql\",\n\t\t})\n\t\treturn h\n\t}\n\n\tinitializeWithServer := func() (*testserver.TestServer, *httptest.Server) {\n\t\th := initialize()\n\t\treturn h, httptest.NewServer(h)\n\t}\n\n\tcreateHTTPRequest := func(url string, query string) *http.Request {\n\t\treq, err := http.NewRequest(http.MethodPost, url, strings.NewReader(query))\n\t\trequire.NoError(t, err, \"Request threw error -> %s\", err)\n\t\treq.Header.Set(\"Accept\", \"multipart/mixed\")\n\t\treq.Header.Set(\"content-type\", \"application/json; charset=utf-8\")\n\t\treturn req\n\t}\n\n\tdoRequest := func(handler http.Handler, target, body string) *httptest.ResponseRecorder {\n\t\tr := createHTTPRequest(target, body)\n\t\tw := httptest.NewRecorder()\n\n\t\thandler.ServeHTTP(w, r)\n\t\treturn w\n\t}\n\n\tt.Run(\"decode failure\", func(t *testing.T) {\n\t\thandler, srv := initializeWithServer()\n\t\tresp := doRequest(handler, srv.URL, \"notjson\")\n\t\tassert.Equal(t, http.StatusBadRequest, resp.Code, resp.Body.String())\n\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"json request body could not be decoded: invalid character 'o' in literal null (expecting 'u') body:notjson\"}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"parse failure\", func(t *testing.T) {\n\t\thandler, srv := initializeWithServer()\n\t\tresp := doRequest(handler, srv.URL, `{\"query\": \"!\"}`)\n\t\tassert.Equal(t, http.StatusUnprocessableEntity, resp.Code, resp.Body.String())\n\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"Unexpected !\",\"locations\":[{\"line\":1,\"column\":1}],\"extensions\":{\"code\":\"GRAPHQL_PARSE_FAILED\"}}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"validation failure\", func(t *testing.T) {\n\t\thandler, srv := initializeWithServer()\n\t\tresp := doRequest(handler, srv.URL, `{\"query\": \"{ title }\"}`)\n\t\tassert.Equal(t, http.StatusUnprocessableEntity, resp.Code, resp.Body.String())\n\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"Cannot query field \\\"title\\\" on type \\\"Query\\\".\",\"locations\":[{\"line\":1,\"column\":3}],\"extensions\":{\"code\":\"GRAPHQL_VALIDATION_FAILED\"}}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"invalid variable\", func(t *testing.T) {\n\t\thandler, srv := initializeWithServer()\n\t\tresp := doRequest(handler, srv.URL,\n\t\t\t`{\"query\": \"query($id:Int!){find(id:$id)}\",\"variables\":{\"id\":false}}`,\n\t\t)\n\t\tassert.Equal(t, http.StatusUnprocessableEntity, resp.Code, resp.Body.String())\n\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"cannot use bool as Int\",\"path\":[\"variable\",\"id\"],\"extensions\":{\"code\":\"GRAPHQL_VALIDATION_FAILED\"}}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n\n\treadLine := func(br *bufio.Reader) string {\n\t\tbs, err := br.ReadString('\\n')\n\t\trequire.NoError(t, err)\n\t\treturn bs\n\t}\n\n\tt.Run(\"initial and incremental patches un-aggregated\", func(t *testing.T) {\n\t\thandler, srv := initializeWithServer()\n\t\tdefer srv.Close()\n\n\t\tvar wg sync.WaitGroup\n\t\twg.Go(func() {\n\t\t\thandler.SendNextSubscriptionMessage()\n\t\t})\n\n\t\tclient := &http.Client{}\n\t\treq := createHTTPRequest(\n\t\t\tsrv.URL,\n\t\t\t`{\"query\":\"query { ... @defer { name } }\"}`,\n\t\t)\n\t\tres, err := client.Do(req)\n\t\trequire.NoError(t, err, \"Request threw error -> %s\", err)\n\t\tdefer func() {\n\t\t\trequire.NoError(t, res.Body.Close())\n\t\t}()\n\n\t\tassert.Equal(t, 200, res.StatusCode, \"Request return wrong status -> %d\", res.Status)\n\t\tassert.Equal(t, \"keep-alive\", res.Header.Get(\"Connection\"))\n\t\tassert.Contains(t, res.Header.Get(\"Content-Type\"), \"multipart/mixed\")\n\t\tassert.Contains(t, res.Header.Get(\"Content-Type\"), `boundary=\"graphql\"`)\n\n\t\tbr := bufio.NewReader(res.Body)\n\n\t\tassert.Equal(t, \"--graphql\\r\\n\", readLine(br))\n\t\tassert.Equal(t, \"Content-Type: application/json\\r\\n\", readLine(br))\n\t\tassert.Equal(t, \"\\r\\n\", readLine(br))\n\t\tassert.JSONEq(t,\n\t\t\t\"{\\\"data\\\":{\\\"name\\\":null},\\\"hasNext\\\":true}\\r\\n\",\n\t\t\treadLine(br),\n\t\t)\n\n\t\twg.Go(func() {\n\t\t\thandler.SendNextSubscriptionMessage()\n\t\t})\n\n\t\tassert.Equal(t, \"--graphql\\r\\n\", readLine(br))\n\t\tassert.Equal(t, \"Content-Type: application/json\\r\\n\", readLine(br))\n\t\tassert.Equal(t, \"\\r\\n\", readLine(br))\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t\"{\\\"incremental\\\":[{\\\"data\\\":{\\\"name\\\":\\\"test\\\"},\\\"hasNext\\\":false}],\\\"hasNext\\\":false}\\r\\n\",\n\t\t\treadLine(br),\n\t\t)\n\n\t\tassert.Equal(t, \"--graphql--\\r\\n\", readLine(br))\n\n\t\twg.Go(func() {\n\t\t\thandler.SendCompleteSubscriptionMessage()\n\t\t})\n\n\t\t_, err = br.ReadByte()\n\t\tassert.Equal(t, err, io.EOF)\n\n\t\twg.Wait()\n\t})\n\n\tt.Run(\"initial and incremental patches aggregated\", func(t *testing.T) {\n\t\thandler := testserver.New()\n\t\thandler.AddTransport(transport.MultipartMixed{\n\t\t\tBoundary:        \"graphql\",\n\t\t\tDeliveryTimeout: time.Hour,\n\t\t})\n\n\t\tsrv := httptest.NewServer(handler)\n\t\tdefer srv.Close()\n\n\t\tvar err error\n\t\tvar res *http.Response\n\n\t\tvar wg sync.WaitGroup\n\t\twg.Go(func() {\n\t\t\tclient := &http.Client{}\n\t\t\treq := createHTTPRequest(\n\t\t\t\tsrv.URL,\n\t\t\t\t`{\"query\":\"query { ... @defer { name } }\"}`,\n\t\t\t)\n\t\t\tres, err = client.Do(req) //nolint:bodyclose // false positive\n\t\t})\n\n\t\thandler.SendNextSubscriptionMessage()\n\t\thandler.SendNextSubscriptionMessage()\n\t\thandler.SendCompleteSubscriptionMessage()\n\t\twg.Wait()\n\n\t\trequire.NoError(t, err, \"Request threw error -> %s\", err)\n\t\tdefer func() {\n\t\t\trequire.NoError(t, res.Body.Close())\n\t\t}()\n\n\t\tassert.Equal(t, 200, res.StatusCode, \"Request return wrong status -> %d\", res.Status)\n\t\tassert.Equal(t, \"keep-alive\", res.Header.Get(\"Connection\"))\n\t\tassert.Contains(t, res.Header.Get(\"Content-Type\"), \"multipart/mixed\")\n\t\tassert.Contains(t, res.Header.Get(\"Content-Type\"), `boundary=\"graphql\"`)\n\n\t\tbr := bufio.NewReader(res.Body)\n\t\tassert.Equal(t, \"--graphql\\r\\n\", readLine(br))\n\t\tassert.Equal(t, \"Content-Type: application/json\\r\\n\", readLine(br))\n\t\tassert.Equal(t, \"\\r\\n\", readLine(br))\n\t\tassert.JSONEq(t,\n\t\t\t\"{\\\"data\\\":{\\\"name\\\":null},\\\"hasNext\\\":true}\\r\\n\",\n\t\t\treadLine(br),\n\t\t)\n\n\t\tassert.Equal(t, \"--graphql\\r\\n\", readLine(br))\n\t\tassert.Equal(t, \"Content-Type: application/json\\r\\n\", readLine(br))\n\t\tassert.Equal(t, \"\\r\\n\", readLine(br))\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t\"{\\\"incremental\\\":[{\\\"data\\\":{\\\"name\\\":\\\"test\\\"},\\\"hasNext\\\":false}],\\\"hasNext\\\":false}\\r\\n\",\n\t\t\treadLine(br),\n\t\t)\n\n\t\tassert.Equal(t, \"--graphql--\\r\\n\", readLine(br))\n\n\t\t_, err = br.ReadByte()\n\t\tassert.Equal(t, err, io.EOF)\n\t})\n}\n"
  },
  {
    "path": "graphql/handler/transport/http_post.go",
    "content": "package transport\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"mime\"\n\t\"net/http\"\n\t\"sync\"\n\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\n// POST implements the POST side of the default HTTP transport\n// defined in https://github.com/APIs-guru/graphql-over-http#post\ntype POST struct {\n\t// Map of all headers that are added to graphql response. If not\n\t// set, only one header: Content-Type: application/graphql-response+json will be set.\n\tResponseHeaders map[string][]string\n\n\t// UseGrapQLResponseJsonByDefault determines whether to use 'application/graphql-response+json'\n\t// as the response content type\n\t// when the Accept header is empty or 'application/*' or '*/*'.\n\tUseGrapQLResponseJsonByDefault bool\n}\n\nvar _ graphql.Transport = POST{}\n\nfunc (h POST) Supports(r *http.Request) bool {\n\tif r.Header.Get(\"Upgrade\") != \"\" {\n\t\treturn false\n\t}\n\n\tmediaType, _, err := mime.ParseMediaType(r.Header.Get(\"Content-Type\"))\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn r.Method == http.MethodPost && mediaType == \"application/json\"\n}\n\nfunc getRequestBody(r *http.Request) (string, error) {\n\tif r == nil || r.Body == nil {\n\t\treturn \"\", nil\n\t}\n\tbody, err := io.ReadAll(r.Body)\n\tif err != nil {\n\t\treturn \"\", fmt.Errorf(\"unable to get Request Body %w\", err)\n\t}\n\treturn string(body), nil\n}\n\nvar pool = sync.Pool{\n\tNew: func() any {\n\t\treturn &graphql.RawParams{}\n\t},\n}\n\nfunc (h POST) Do(w http.ResponseWriter, r *http.Request, exec graphql.GraphExecutor) {\n\tctx := r.Context()\n\tcontentType := determineResponseContentType(\n\t\th.ResponseHeaders,\n\t\tr,\n\t\th.UseGrapQLResponseJsonByDefault,\n\t)\n\tresponseHeaders := mergeHeaders(\n\t\tmap[string][]string{\n\t\t\t\"Content-Type\": {contentType},\n\t\t},\n\t\th.ResponseHeaders,\n\t)\n\twriteHeaders(w, responseHeaders)\n\tparams := pool.Get().(*graphql.RawParams)\n\tdefer func() {\n\t\tparams.Headers = nil\n\t\tparams.ReadTime = graphql.TraceTiming{}\n\t\tparams.Extensions = nil\n\t\tparams.OperationName = \"\"\n\t\tparams.Query = \"\"\n\t\tparams.Variables = nil\n\n\t\tpool.Put(params)\n\t}()\n\tparams.Headers = r.Header\n\n\tstart := graphql.Now()\n\tparams.ReadTime = graphql.TraceTiming{\n\t\tStart: start,\n\t\tEnd:   graphql.Now(),\n\t}\n\n\tbodyBytes, err := io.ReadAll(r.Body)\n\tif err != nil {\n\t\tgqlErr := gqlerror.Errorf(\"could not read request body: %+v\", err)\n\t\tresp := exec.DispatchError(ctx, gqlerror.List{gqlErr})\n\t\twriteJson(w, resp)\n\t\treturn\n\t}\n\n\tbodyReader := bytes.NewReader(bodyBytes)\n\tif err := jsonDecode(bodyReader, &params); err != nil {\n\t\tw.WriteHeader(http.StatusBadRequest)\n\t\tgqlErr := gqlerror.Errorf(\n\t\t\t\"json request body could not be decoded: %+v body:%s\",\n\t\t\terr,\n\t\t\tstring(bodyBytes),\n\t\t)\n\t\tresp := exec.DispatchError(ctx, gqlerror.List{gqlErr})\n\t\twriteJson(w, resp)\n\t\treturn\n\t}\n\n\trc, opErr := exec.CreateOperationContext(ctx, params)\n\tif opErr != nil {\n\t\tif contentType == acceptApplicationGraphqlResponseJson {\n\t\t\tw.WriteHeader(statusForGraphQLResponse(opErr))\n\t\t} else {\n\t\t\tw.WriteHeader(statusFor(opErr))\n\t\t}\n\t\tresp := exec.DispatchError(graphql.WithOperationContext(ctx, rc), opErr)\n\t\twriteJson(w, resp)\n\t\treturn\n\t}\n\n\tvar responses graphql.ResponseHandler\n\tresponses, ctx = exec.DispatchOperation(ctx, rc)\n\twriteJson(w, responses(ctx))\n}\n"
  },
  {
    "path": "graphql/handler/transport/http_post_test.go",
    "content": "package transport_test\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\n\t\"github.com/99designs/gqlgen/graphql/handler/testserver\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestPOST(t *testing.T) {\n\th := testserver.New()\n\th.AddTransport(transport.POST{})\n\n\tgraphqlResponseH := testserver.New()\n\tgraphqlResponseH.AddTransport(transport.POST{UseGrapQLResponseJsonByDefault: true})\n\n\tjsonH := testserver.New()\n\tjsonH.AddTransport(transport.POST{\n\t\tResponseHeaders: map[string][]string{\n\t\t\t\"Content-Type\": {\"application/json\"},\n\t\t},\n\t})\n\n\tt.Run(\"success with accept application/json\", func(t *testing.T) {\n\t\tresp := doRequest(\n\t\t\th,\n\t\t\thttp.MethodPost,\n\t\t\t\"/graphql\",\n\t\t\t`{\"query\":\"{ name }\"}`,\n\t\t\t\"application/json\",\n\t\t\t\"application/json\",\n\t\t)\n\t\tassert.Equal(t, http.StatusOK, resp.Code)\n\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.JSONEq(t, `{\"data\":{\"name\":\"test\"}}`, resp.Body.String())\n\t})\n\n\tt.Run(\"success with accept application/graphql-response+json\", func(t *testing.T) {\n\t\tresp := doRequest(\n\t\t\th,\n\t\t\thttp.MethodPost,\n\t\t\t\"/graphql\",\n\t\t\t`{\"query\":\"{ name }\"}`,\n\t\t\t\"application/graphql-response+json; charset=utf-8\",\n\t\t\t\"application/json\",\n\t\t)\n\t\tassert.Equal(t, http.StatusOK, resp.Code)\n\t\tassert.Equal(t, \"application/graphql-response+json\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.JSONEq(t, `{\"data\":{\"name\":\"test\"}}`, resp.Body.String())\n\t})\n\n\tt.Run(\n\t\t\"success with accept wildcard with enabling application/graphql-response+json\",\n\t\tfunc(t *testing.T) {\n\t\t\tresp := doRequest(\n\t\t\t\tgraphqlResponseH,\n\t\t\t\thttp.MethodPost,\n\t\t\t\t\"/graphql\",\n\t\t\t\t`{\"query\":\"{ name }\"}`,\n\t\t\t\t\"*/*\",\n\t\t\t\t\"application/json\",\n\t\t\t)\n\t\t\tassert.Equal(t, http.StatusOK, resp.Code)\n\t\t\tassert.Equal(t, \"application/graphql-response+json\", resp.Header().Get(\"Content-Type\"))\n\t\t\tassert.JSONEq(t, `{\"data\":{\"name\":\"test\"}}`, resp.Body.String())\n\t\t},\n\t)\n\n\tt.Run(\n\t\t\"success with accept wildcard without enabling application/graphql-response+json\",\n\t\tfunc(t *testing.T) {\n\t\t\tresp := doRequest(\n\t\t\t\th,\n\t\t\t\thttp.MethodPost,\n\t\t\t\t\"/graphql\",\n\t\t\t\t`{\"query\":\"{ name }\"}`,\n\t\t\t\t\"*/*\",\n\t\t\t\t\"application/json\",\n\t\t\t)\n\t\t\tassert.Equal(t, http.StatusOK, resp.Code)\n\t\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t\t\tassert.JSONEq(t, `{\"data\":{\"name\":\"test\"}}`, resp.Body.String())\n\t\t},\n\t)\n\n\tt.Run(\"success with json only\", func(t *testing.T) {\n\t\tresp := doRequest(\n\t\t\tjsonH,\n\t\t\thttp.MethodPost,\n\t\t\t\"/graphql\",\n\t\t\t`{\"query\":\"{ name }\"}`,\n\t\t\t\"\",\n\t\t\t\"application/json\",\n\t\t)\n\t\tassert.Equal(t, http.StatusOK, resp.Code)\n\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.JSONEq(t, `{\"data\":{\"name\":\"test\"}}`, resp.Body.String())\n\t})\n\n\tt.Run(\"decode failure\", func(t *testing.T) {\n\t\tresp := doRequest(\n\t\t\th,\n\t\t\thttp.MethodPost,\n\t\t\t\"/graphql\",\n\t\t\t\"notjson\",\n\t\t\t\"application/json\",\n\t\t\t\"application/json\",\n\t\t)\n\t\tassert.Equal(t, http.StatusBadRequest, resp.Code, resp.Body.String())\n\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"json request body could not be decoded: invalid character 'o' in literal null (expecting 'u') body:notjson\"}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"parse failure\", func(t *testing.T) {\n\t\tresp := doRequest(h, http.MethodPost, \"/graphql\", `{\"query\": \"!\"}`, \"\", \"application/json\")\n\t\tassert.Equal(t, http.StatusUnprocessableEntity, resp.Code, resp.Body.String())\n\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"Unexpected !\",\"locations\":[{\"line\":1,\"column\":1}],\"extensions\":{\"code\":\"GRAPHQL_PARSE_FAILED\"}}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"parse failure with json only\", func(t *testing.T) {\n\t\tresp := doRequest(\n\t\t\tjsonH,\n\t\t\thttp.MethodPost,\n\t\t\t\"/graphql\",\n\t\t\t`{\"query\": \"!\"}`,\n\t\t\t\"\",\n\t\t\t\"application/json\",\n\t\t)\n\t\tassert.Equal(t, http.StatusUnprocessableEntity, resp.Code, resp.Body.String())\n\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"Unexpected !\",\"locations\":[{\"line\":1,\"column\":1}],\"extensions\":{\"code\":\"GRAPHQL_PARSE_FAILED\"}}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"validation failure\", func(t *testing.T) {\n\t\tresp := doRequest(\n\t\t\th,\n\t\t\thttp.MethodPost,\n\t\t\t\"/graphql\",\n\t\t\t`{\"query\": \"{ title }\"}`,\n\t\t\t\"\",\n\t\t\t\"application/json\",\n\t\t)\n\t\tassert.Equal(t, http.StatusUnprocessableEntity, resp.Code, resp.Body.String())\n\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"Cannot query field \\\"title\\\" on type \\\"Query\\\".\",\"locations\":[{\"line\":1,\"column\":3}],\"extensions\":{\"code\":\"GRAPHQL_VALIDATION_FAILED\"}}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"validation failure with json only\", func(t *testing.T) {\n\t\tresp := doRequest(\n\t\t\tjsonH,\n\t\t\thttp.MethodPost,\n\t\t\t\"/graphql\",\n\t\t\t`{\"query\": \"{ title }\"}`,\n\t\t\t\"\",\n\t\t\t\"application/json\",\n\t\t)\n\t\tassert.Equal(t, http.StatusUnprocessableEntity, resp.Code, resp.Body.String())\n\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"Cannot query field \\\"title\\\" on type \\\"Query\\\".\",\"locations\":[{\"line\":1,\"column\":3}],\"extensions\":{\"code\":\"GRAPHQL_VALIDATION_FAILED\"}}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"invalid variable\", func(t *testing.T) {\n\t\tresp := doRequest(\n\t\t\th,\n\t\t\thttp.MethodPost,\n\t\t\t\"/graphql\",\n\t\t\t`{\"query\": \"query($id:Int!){find(id:$id)}\",\"variables\":{\"id\":false}}`,\n\t\t\t\"\",\n\t\t\t\"application/json\",\n\t\t)\n\t\tassert.Equal(t, http.StatusUnprocessableEntity, resp.Code, resp.Body.String())\n\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"cannot use bool as Int\",\"path\":[\"variable\",\"id\"],\"extensions\":{\"code\":\"GRAPHQL_VALIDATION_FAILED\"}}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"invalid variable with json only\", func(t *testing.T) {\n\t\tresp := doRequest(\n\t\t\tjsonH,\n\t\t\thttp.MethodPost,\n\t\t\t\"/graphql\",\n\t\t\t`{\"query\": \"query($id:Int!){find(id:$id)}\",\"variables\":{\"id\":false}}`,\n\t\t\t\"\",\n\t\t\t\"application/json\",\n\t\t)\n\t\tassert.Equal(t, http.StatusUnprocessableEntity, resp.Code, resp.Body.String())\n\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"cannot use bool as Int\",\"path\":[\"variable\",\"id\"],\"extensions\":{\"code\":\"GRAPHQL_VALIDATION_FAILED\"}}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"execution failure\", func(t *testing.T) {\n\t\tresp := doRequest(\n\t\t\th,\n\t\t\thttp.MethodPost,\n\t\t\t\"/graphql\",\n\t\t\t`{\"query\": \"mutation { name }\"}`,\n\t\t\t\"\",\n\t\t\t\"application/json\",\n\t\t)\n\t\tassert.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"mutations are not supported\"}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"execution failure with json only\", func(t *testing.T) {\n\t\tresp := doRequest(\n\t\t\tjsonH,\n\t\t\thttp.MethodPost,\n\t\t\t\"/graphql\",\n\t\t\t`{\"query\": \"mutation { name }\"}`,\n\t\t\t\"\",\n\t\t\t\"application/json\",\n\t\t)\n\t\tassert.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\t\tassert.Equal(t, \"application/json\", resp.Header().Get(\"Content-Type\"))\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"mutations are not supported\"}],\"data\":null}`,\n\t\t\tresp.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"validate content type\", func(t *testing.T) {\n\t\tdoReq := func(handler http.Handler, method string, target string, body string, contentType string) *httptest.ResponseRecorder {\n\t\t\tr := httptest.NewRequest(method, target, strings.NewReader(body))\n\t\t\tif contentType != \"\" {\n\t\t\t\tr.Header.Set(\"Content-Type\", contentType)\n\t\t\t}\n\t\t\tw := httptest.NewRecorder()\n\n\t\t\thandler.ServeHTTP(w, r)\n\t\t\treturn w\n\t\t}\n\n\t\tvalidContentTypes := []string{\n\t\t\t\"application/json\",\n\t\t\t\"application/json; charset=utf-8\",\n\t\t}\n\n\t\tfor _, contentType := range validContentTypes {\n\t\t\tt.Run(fmt.Sprintf(\"allow for content type %s\", contentType), func(t *testing.T) {\n\t\t\t\tresp := doReq(h, http.MethodPost, \"/graphql\", `{\"query\":\"{ name }\"}`, contentType)\n\t\t\t\tassert.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\t\t\t\tassert.JSONEq(t, `{\"data\":{\"name\":\"test\"}}`, resp.Body.String())\n\t\t\t})\n\t\t}\n\n\t\tinvalidContentTypes := []string{\n\t\t\t\"\",\n\t\t\t\"text/plain\",\n\t\t}\n\n\t\tfor _, tc := range invalidContentTypes {\n\t\t\tt.Run(fmt.Sprintf(\"reject for content type %s\", tc), func(t *testing.T) {\n\t\t\t\tresp := doReq(h, http.MethodPost, \"/graphql\", `{\"query\":\"{ name }\"}`, tc)\n\t\t\t\tassert.Equal(t, http.StatusBadRequest, resp.Code, resp.Body.String())\n\t\t\t\tassert.JSONEq(\n\t\t\t\t\tt,\n\t\t\t\t\tfmt.Sprintf(\n\t\t\t\t\t\t`{\"errors\":[{\"message\":\"%s\"}],\"data\":null}`,\n\t\t\t\t\t\t\"transport not supported\",\n\t\t\t\t\t),\n\t\t\t\t\tresp.Body.String(),\n\t\t\t\t)\n\t\t\t})\n\t\t}\n\t})\n\n\tt.Run(\"validate SSE\", func(t *testing.T) {\n\t\tdoReq := func(handler http.Handler, method string, target string, body string) *httptest.ResponseRecorder {\n\t\t\tr := httptest.NewRequest(method, target, strings.NewReader(body))\n\t\t\tr.Header.Set(\"Content-Type\", \"application/json\")\n\t\t\tr.Header.Set(\"Accept\", \"text/event-stream\")\n\t\t\tw := httptest.NewRecorder()\n\n\t\t\thandler.ServeHTTP(w, r)\n\t\t\treturn w\n\t\t}\n\n\t\tresp := doReq(h, http.MethodPost, \"/graphql\", `{\"query\":\"{ name }\"}`)\n\t\tassert.Equal(t, http.StatusOK, resp.Code, resp.Body.String())\n\t\tassert.JSONEq(t, `{\"data\":{\"name\":\"test\"}}`, resp.Body.String())\n\t})\n}\n\nfunc doRequest(\n\thandler http.Handler,\n\tmethod, target, body, accept, contentType string,\n) *httptest.ResponseRecorder {\n\tr := httptest.NewRequest(method, target, strings.NewReader(body))\n\tif accept != \"\" {\n\t\tr.Header.Set(\"Accept\", accept)\n\t}\n\tr.Header.Set(\"Content-Type\", contentType)\n\tw := httptest.NewRecorder()\n\n\thandler.ServeHTTP(w, r)\n\treturn w\n}\n"
  },
  {
    "path": "graphql/handler/transport/options.go",
    "content": "package transport\n\nimport (\n\t\"net/http\"\n\t\"strings\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\n// Options responds to http OPTIONS and HEAD requests\ntype Options struct {\n\t// AllowedMethods is a list of allowed HTTP methods.\n\tAllowedMethods []string\n}\n\nvar _ graphql.Transport = Options{}\n\nfunc (o Options) Supports(r *http.Request) bool {\n\treturn r.Method == http.MethodHead || r.Method == http.MethodOptions\n}\n\nfunc (o Options) Do(w http.ResponseWriter, r *http.Request, exec graphql.GraphExecutor) {\n\tswitch r.Method {\n\tcase http.MethodOptions:\n\t\tw.Header().Set(\"Allow\", o.allowedMethods())\n\t\tw.WriteHeader(http.StatusOK)\n\tcase http.MethodHead:\n\t\tw.WriteHeader(http.StatusMethodNotAllowed)\n\t}\n}\n\nfunc (o Options) allowedMethods() string {\n\tif len(o.AllowedMethods) == 0 {\n\t\treturn \"OPTIONS, GET, POST\"\n\t}\n\treturn strings.Join(o.AllowedMethods, \", \")\n}\n"
  },
  {
    "path": "graphql/handler/transport/options_test.go",
    "content": "package transport_test\n\nimport (\n\t\"net/http\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\n\t\"github.com/99designs/gqlgen/graphql/handler/testserver\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestOptions(t *testing.T) {\n\tt.Run(\"responds to options requests with default methods\", func(t *testing.T) {\n\t\th := testserver.New()\n\t\th.AddTransport(transport.Options{})\n\t\tresp := doRequest(h, \"OPTIONS\", \"/graphql?query={me{name}}\", ``, \"\", \"application/json\")\n\t\tassert.Equal(t, http.StatusOK, resp.Code)\n\t\tassert.Equal(t, \"OPTIONS, GET, POST\", resp.Header().Get(\"Allow\"))\n\t})\n\n\tt.Run(\"responds to options requests with specified methods\", func(t *testing.T) {\n\t\th := testserver.New()\n\t\th.AddTransport(transport.Options{\n\t\t\tAllowedMethods: []string{http.MethodOptions, http.MethodPost, http.MethodHead},\n\t\t})\n\t\tresp := doRequest(h, \"OPTIONS\", \"/graphql?query={me{name}}\", ``, \"\", \"application/json\")\n\t\tassert.Equal(t, http.StatusOK, resp.Code)\n\t\tassert.Equal(t, \"OPTIONS, POST, HEAD\", resp.Header().Get(\"Allow\"))\n\t})\n\n\tt.Run(\"responds to head requests\", func(t *testing.T) {\n\t\th := testserver.New()\n\t\th.AddTransport(transport.Options{})\n\t\tresp := doRequest(h, \"HEAD\", \"/graphql?query={me{name}}\", ``, \"\", \"application/json\")\n\t\tassert.Equal(t, http.StatusMethodNotAllowed, resp.Code)\n\t})\n}\n"
  },
  {
    "path": "graphql/handler/transport/reader.go",
    "content": "package transport\n\nimport (\n\t\"errors\"\n\t\"io\"\n)\n\ntype bytesReader struct {\n\ts *[]byte\n\ti int64 // current reading index\n}\n\nfunc (r *bytesReader) Read(b []byte) (n int, err error) {\n\tif r.s == nil {\n\t\treturn 0, errors.New(\"byte slice pointer is nil\")\n\t}\n\tif r.i >= int64(len(*r.s)) {\n\t\treturn 0, io.EOF\n\t}\n\tn = copy(b, (*r.s)[r.i:])\n\tr.i += int64(n)\n\treturn n, err\n}\n\nfunc (r *bytesReader) Seek(offset int64, whence int) (int64, error) {\n\tif r.s == nil {\n\t\treturn 0, errors.New(\"byte slice pointer is nil\")\n\t}\n\tvar abs int64\n\tswitch whence {\n\tcase io.SeekStart:\n\t\tabs = offset\n\tcase io.SeekCurrent:\n\t\tabs = r.i + offset\n\tcase io.SeekEnd:\n\t\tabs = int64(len(*r.s)) + offset\n\tdefault:\n\t\treturn 0, errors.New(\"invalid whence\")\n\t}\n\tif abs < 0 {\n\t\treturn 0, errors.New(\"negative position\")\n\t}\n\tr.i = abs\n\treturn abs, nil\n}\n"
  },
  {
    "path": "graphql/handler/transport/reader_test.go",
    "content": "package transport\n\nimport (\n\t\"io\"\n\t\"sync\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestBytesRead(t *testing.T) {\n\tt.Run(\"test concurrency\", func(t *testing.T) {\n\t\t// Test for the race detector, to verify a Read that doesn't yield any bytes\n\t\t// is okay to use from multiple goroutines. This was our historic behavior.\n\t\t// See golang.org/issue/7856\n\t\tr := bytesReader{s: &([]byte{})}\n\t\tvar wg sync.WaitGroup\n\t\tfor range 5 {\n\t\t\twg.Add(2)\n\t\t\tgo func() {\n\t\t\t\tdefer wg.Done()\n\t\t\t\tvar buf [1]byte\n\t\t\t\tr.Read(buf[:])\n\t\t\t}()\n\t\t\tgo func() {\n\t\t\t\tdefer wg.Done()\n\t\t\t\tr.Read(nil)\n\t\t\t}()\n\t\t}\n\t\twg.Wait()\n\t})\n\n\tt.Run(\"fail to read if pointer is nil\", func(t *testing.T) {\n\t\tn, err := (&bytesReader{}).Read(nil)\n\t\trequire.Equal(t, 0, n)\n\t\trequire.EqualError(t, err, \"byte slice pointer is nil\")\n\t})\n\n\tt.Run(\"read using buffer\", func(t *testing.T) {\n\t\tdata := []byte(\"0123456789\")\n\t\tr := bytesReader{s: &data}\n\n\t\tgot := make([]byte, 0, 11)\n\t\tbuf := make([]byte, 1)\n\t\tfor {\n\t\t\tn, err := r.Read(buf)\n\t\t\tif n < 0 {\n\t\t\t\trequire.Fail(t, \"unexpected bytes read size\")\n\t\t\t}\n\t\t\tgot = append(got, buf[:n]...)\n\t\t\tif err != nil {\n\t\t\t\tif err == io.EOF {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\trequire.Fail(t, \"unexpected error while reading\", err.Error())\n\t\t\t}\n\t\t}\n\t\trequire.Equal(t, \"0123456789\", string(got))\n\t})\n\n\tt.Run(\"read updated pointer value\", func(t *testing.T) {\n\t\tdata := []byte(\"0123456789\")\n\t\tpointer := &data\n\t\tr := bytesReader{s: pointer}\n\t\tdata[2] = []byte(\"9\")[0]\n\n\t\tgot := make([]byte, 0, 11)\n\t\tbuf := make([]byte, 1)\n\t\tfor {\n\t\t\tn, err := r.Read(buf)\n\t\t\tif n < 0 {\n\t\t\t\trequire.Fail(t, \"unexpected bytes read size\")\n\t\t\t}\n\t\t\tgot = append(got, buf[:n]...)\n\t\t\tif err != nil {\n\t\t\t\tif err == io.EOF {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\trequire.Fail(t, \"unexpected error while reading\", err.Error())\n\t\t\t}\n\t\t}\n\t\trequire.Equal(t, \"0193456789\", string(got))\n\t})\n\n\tt.Run(\"read using buffer multiple times\", func(t *testing.T) {\n\t\tdata := []byte(\"0123456789\")\n\t\tr := bytesReader{s: &data}\n\n\t\tgot := make([]byte, 0, 11)\n\t\tbuf := make([]byte, 1)\n\t\tfor {\n\t\t\tn, err := r.Read(buf)\n\t\t\tif n < 0 {\n\t\t\t\trequire.Fail(t, \"unexpected bytes read size\")\n\t\t\t}\n\t\t\tgot = append(got, buf[:n]...)\n\t\t\tif err != nil {\n\t\t\t\tif err == io.EOF {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\trequire.Fail(t, \"unexpected error while reading\", err.Error())\n\t\t\t}\n\t\t}\n\t\trequire.Equal(t, \"0123456789\", string(got))\n\n\t\tpos, err := r.Seek(0, io.SeekStart)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, int64(0), pos)\n\n\t\tgot = make([]byte, 0, 11)\n\t\tfor {\n\t\t\tn, err := r.Read(buf)\n\t\t\tif n < 0 {\n\t\t\t\trequire.Fail(t, \"unexpected bytes read size\")\n\t\t\t}\n\t\t\tgot = append(got, buf[:n]...)\n\t\t\tif err != nil {\n\t\t\t\tif err == io.EOF {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\trequire.Fail(t, \"unexpected error while reading\", err.Error())\n\t\t\t}\n\t\t}\n\t\trequire.Equal(t, \"0123456789\", string(got))\n\t})\n}\n"
  },
  {
    "path": "graphql/handler/transport/sse.go",
    "content": "package transport\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"mime\"\n\t\"net/http\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\ntype (\n\tSSE struct {\n\t\tKeepAlivePingInterval time.Duration\n\t}\n\n\tsseConnection struct {\n\t\tctx             context.Context\n\t\tmu              sync.Mutex\n\t\tf               http.Flusher\n\t\tkeepAliveTicker *time.Ticker\n\t}\n)\n\nvar _ graphql.Transport = SSE{}\n\nfunc (t SSE) Supports(r *http.Request) bool {\n\tif !strings.Contains(r.Header.Get(\"Accept\"), \"text/event-stream\") {\n\t\treturn false\n\t}\n\tmediaType, _, err := mime.ParseMediaType(r.Header.Get(\"Content-Type\"))\n\tif err != nil {\n\t\treturn false\n\t}\n\treturn r.Method == http.MethodPost && mediaType == \"application/json\"\n}\n\nfunc (t SSE) Do(w http.ResponseWriter, r *http.Request, exec graphql.GraphExecutor) {\n\tctx := r.Context()\n\tflusher, ok := w.(http.Flusher)\n\tif !ok {\n\t\tSendErrorf(w, http.StatusInternalServerError, \"streaming unsupported\")\n\t\treturn\n\t}\n\n\tc := &sseConnection{\n\t\tctx: ctx,\n\t\tf:   flusher,\n\t}\n\n\tdefer c.flush()\n\n\tw.Header().Set(\"Cache-Control\", \"no-cache\")\n\tw.Header().Set(\"Connection\", \"keep-alive\")\n\tw.Header().Set(\"Content-Type\", \"application/json\")\n\n\tparams := &graphql.RawParams{}\n\tstart := graphql.Now()\n\tparams.Headers = r.Header\n\tparams.ReadTime = graphql.TraceTiming{\n\t\tStart: start,\n\t\tEnd:   graphql.Now(),\n\t}\n\n\tbodyString, err := getRequestBody(r)\n\tif err != nil {\n\t\tgqlErr := gqlerror.Errorf(\"could not get json request body: %+v\", err)\n\t\tresp := exec.DispatchError(ctx, gqlerror.List{gqlErr})\n\t\tlog.Printf(\"could not get json request body: %+v\", err.Error())\n\t\twriteJson(w, resp)\n\t\treturn\n\t}\n\n\tbodyReader := io.NopCloser(strings.NewReader(bodyString))\n\tif err = jsonDecode(bodyReader, &params); err != nil {\n\t\tw.WriteHeader(http.StatusBadRequest)\n\t\tgqlErr := gqlerror.Errorf(\n\t\t\t\"json request body could not be decoded: %+v body:%s\",\n\t\t\terr,\n\t\t\tbodyString,\n\t\t)\n\t\tresp := exec.DispatchError(ctx, gqlerror.List{gqlErr})\n\t\tlog.Printf(\"decoding error: %+v body:%s\", err.Error(), bodyString)\n\t\twriteJson(w, resp)\n\t\treturn\n\t}\n\n\trc, opErr := exec.CreateOperationContext(ctx, params)\n\tctx = graphql.WithOperationContext(ctx, rc)\n\tc.ctx = ctx\n\n\tw.Header().Set(\"Content-Type\", \"text/event-stream\")\n\tfmt.Fprint(w, \":\\n\\n\")\n\tc.flush()\n\n\tif t.KeepAlivePingInterval > 0 {\n\t\tc.mu.Lock()\n\t\tc.keepAliveTicker = time.NewTicker(t.KeepAlivePingInterval)\n\t\tc.mu.Unlock()\n\n\t\tgo c.keepAlive(w)\n\t}\n\n\tif opErr != nil {\n\t\tresp := exec.DispatchError(ctx, opErr)\n\t\twriteJsonWithSSE(w, resp)\n\t} else {\n\t\tresponses, ctx := exec.DispatchOperation(ctx, rc)\n\t\tfor {\n\t\t\tresponse := responses(ctx)\n\t\t\tif response == nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\twriteJsonWithSSE(w, response)\n\t\t\tc.flush()\n\n\t\t\tc.resetTicker(t.KeepAlivePingInterval)\n\t\t}\n\t}\n\n\tfmt.Fprint(w, \"event: complete\\n\\n\")\n}\n\nfunc (c *sseConnection) resetTicker(interval time.Duration) {\n\tif interval != 0 {\n\t\tc.mu.Lock()\n\t\tc.keepAliveTicker.Reset(interval)\n\t\tc.mu.Unlock()\n\t}\n}\n\nfunc (c *sseConnection) keepAlive(w io.Writer) {\n\tfor {\n\t\tselect {\n\t\tcase <-c.ctx.Done():\n\t\t\tc.keepAliveTicker.Stop()\n\t\t\treturn\n\t\tcase <-c.keepAliveTicker.C:\n\t\t\tfmt.Fprintf(w, \": ping\\n\\n\")\n\t\t\tc.flush()\n\t\t}\n\t}\n}\n\nfunc (c *sseConnection) flush() {\n\tc.mu.Lock()\n\tc.f.Flush()\n\tc.mu.Unlock()\n}\n\nfunc writeJsonWithSSE(w io.Writer, response *graphql.Response) {\n\tb, err := json.Marshal(response)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tfmt.Fprintf(w, \"event: next\\ndata: %s\\n\\n\", b)\n}\n"
  },
  {
    "path": "graphql/handler/transport/sse_test.go",
    "content": "package transport_test\n\nimport (\n\t\"bufio\"\n\t\"io\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"strings\"\n\t\"sync\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/graphql/handler/testserver\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\nfunc TestSSE(t *testing.T) {\n\tpingInterval := time.Second * 1\n\n\tinitialize := func() *testserver.TestServer {\n\t\th := testserver.New()\n\t\th.AddTransport(transport.SSE{})\n\t\treturn h\n\t}\n\n\tinitializeWithServer := func() (*testserver.TestServer, *httptest.Server) {\n\t\th := initialize()\n\t\treturn h, httptest.NewServer(h)\n\t}\n\n\tinitializeKeepAliveWithServer := func() (*testserver.TestServer, *httptest.Server) {\n\t\th := testserver.New()\n\t\th.AddTransport(transport.SSE{\n\t\t\tKeepAlivePingInterval: pingInterval,\n\t\t})\n\t\treturn h, httptest.NewServer(h)\n\t}\n\n\tcreateHTTPTestRequest := func(query string) *http.Request {\n\t\treq := httptest.NewRequest(http.MethodPost, \"/graphql\", strings.NewReader(query))\n\t\treq.Header.Set(\"Accept\", \"text/event-stream\")\n\t\treq.Header.Set(\"content-type\", \"application/json; charset=utf-8\")\n\t\treturn req\n\t}\n\n\tcreateHTTPRequest := func(url string, query string) *http.Request {\n\t\treq, err := http.NewRequest(http.MethodPost, url, strings.NewReader(query))\n\t\trequire.NoError(t, err, \"Request threw error -> %s\", err)\n\t\treq.Header.Set(\"Accept\", \"text/event-stream\")\n\t\treq.Header.Set(\"content-type\", \"application/json; charset=utf-8\")\n\t\treturn req\n\t}\n\n\treadLine := func(br *bufio.Reader) string {\n\t\tbs, err := br.ReadString('\\n')\n\t\trequire.NoError(t, err)\n\t\treturn bs\n\t}\n\n\tt.Run(\"stream failure\", func(t *testing.T) {\n\t\th := initialize()\n\t\treq := httptest.NewRequest(\n\t\t\thttp.MethodPost,\n\t\t\t\"/graphql\",\n\t\t\tstrings.NewReader(`{\"query\":\"subscription { name }\"}`),\n\t\t)\n\t\treq.Header.Set(\"content-type\", \"application/json; charset=utf-8\")\n\t\tw := httptest.NewRecorder()\n\t\th.ServeHTTP(w, req)\n\t\tassert.Equal(t, 400, w.Code, \"Request return wrong status -> %d\", w.Code)\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"transport not supported\"}],\"data\":null}`,\n\t\t\tw.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"decode failure\", func(t *testing.T) {\n\t\th := initialize()\n\t\treq := createHTTPTestRequest(\"notjson\")\n\t\tw := httptest.NewRecorder()\n\t\th.ServeHTTP(w, req)\n\t\tassert.Equal(t, 400, w.Code, \"Request return wrong status -> %d\", w.Code)\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t`{\"errors\":[{\"message\":\"json request body could not be decoded: invalid character 'o' in literal null (expecting 'u') body:notjson\"}],\"data\":null}`,\n\t\t\tw.Body.String(),\n\t\t)\n\t})\n\n\tt.Run(\"parse failure\", func(t *testing.T) {\n\t\th := initialize()\n\t\treq := createHTTPTestRequest(`{\"query\":\"subscription {{ name }\"}`)\n\t\tw := httptest.NewRecorder()\n\t\th.ServeHTTP(w, req)\n\n\t\tassert.Equal(t, 200, w.Code, \"Request return wrong status -> %d\", w.Code)\n\t\tassert.Equal(t, \"keep-alive\", w.Header().Get(\"Connection\"))\n\t\tassert.Equal(t, \"text/event-stream\", w.Header().Get(\"Content-Type\"))\n\n\t\tbr := bufio.NewReader(w.Body)\n\n\t\tassert.Equal(t, \":\\n\", readLine(br))\n\t\tassert.Equal(t, \"\\n\", readLine(br))\n\t\tassert.Equal(t, \"event: next\\n\", readLine(br))\n\t\tassert.Equal(\n\t\t\tt,\n\t\t\t\"data: {\\\"errors\\\":[{\\\"message\\\":\\\"Expected Name, found {\\\",\\\"locations\\\":[{\\\"line\\\":1,\\\"column\\\":15}],\\\"extensions\\\":{\\\"code\\\":\\\"GRAPHQL_PARSE_FAILED\\\"}}],\\\"data\\\":null}\\n\",\n\t\t\treadLine(br),\n\t\t)\n\t\tassert.Equal(t, \"\\n\", readLine(br))\n\t\tassert.Equal(t, \"event: complete\\n\", readLine(br))\n\t\tassert.Equal(t, \"\\n\", readLine(br))\n\n\t\t_, err := br.ReadByte()\n\t\tassert.Equal(t, err, io.EOF)\n\t})\n\n\tt.Run(\"subscribe\", func(t *testing.T) {\n\t\thandler, srv := initializeWithServer()\n\t\tdefer srv.Close()\n\n\t\tvar wg sync.WaitGroup\n\t\twg.Go(func() {\n\t\t\thandler.SendNextSubscriptionMessage()\n\t\t})\n\n\t\tclient := &http.Client{}\n\t\treq := createHTTPRequest(srv.URL, `{\"query\":\"subscription { name }\"}`)\n\t\tres, err := client.Do(req)\n\t\trequire.NoError(t, err, \"Request threw error -> %s\", err)\n\t\tdefer func() {\n\t\t\trequire.NoError(t, res.Body.Close())\n\t\t}()\n\n\t\tassert.Equal(t, 200, res.StatusCode, \"Request return wrong status -> %d\", res.Status)\n\t\tassert.Equal(t, \"keep-alive\", res.Header.Get(\"Connection\"))\n\t\tassert.Equal(t, \"text/event-stream\", res.Header.Get(\"Content-Type\"))\n\n\t\tbr := bufio.NewReader(res.Body)\n\n\t\tassert.Equal(t, \":\\n\", readLine(br))\n\t\tassert.Equal(t, \"\\n\", readLine(br))\n\t\tassert.Equal(t, \"event: next\\n\", readLine(br))\n\t\tassert.Equal(t, \"data: {\\\"data\\\":{\\\"name\\\":\\\"test\\\"}}\\n\", readLine(br))\n\t\tassert.Equal(t, \"\\n\", readLine(br))\n\n\t\twg.Go(func() {\n\t\t\thandler.SendNextSubscriptionMessage()\n\t\t})\n\n\t\tassert.Equal(t, \"event: next\\n\", readLine(br))\n\t\tassert.Equal(t, \"data: {\\\"data\\\":{\\\"name\\\":\\\"test\\\"}}\\n\", readLine(br))\n\t\tassert.Equal(t, \"\\n\", readLine(br))\n\n\t\twg.Go(func() {\n\t\t\thandler.SendCompleteSubscriptionMessage()\n\t\t})\n\n\t\tassert.Equal(t, \"event: complete\\n\", readLine(br))\n\t\tassert.Equal(t, \"\\n\", readLine(br))\n\n\t\t_, err = br.ReadByte()\n\t\tassert.Equal(t, err, io.EOF)\n\n\t\twg.Wait()\n\t})\n\n\tt.Run(\"subscribe with keep alive\", func(t *testing.T) {\n\t\thandler, srv := initializeKeepAliveWithServer()\n\t\tdefer srv.Close()\n\n\t\tvar wg sync.WaitGroup\n\t\twg.Go(func() {\n\t\t\t// Wait for ping interval to trigger\n\t\t\ttime.Sleep(pingInterval + time.Millisecond*100)\n\t\t})\n\n\t\tclient := &http.Client{}\n\t\treq := createHTTPRequest(srv.URL, `{\"query\":\"subscription { name }\"}`)\n\t\tres, err := client.Do(req)\n\t\trequire.NoError(t, err, \"Request threw error -> %s\", err)\n\t\tdefer func() {\n\t\t\trequire.NoError(t, res.Body.Close())\n\t\t}()\n\n\t\tassert.Equal(t, 200, res.StatusCode, \"Request return wrong status -> %d\", res.Status)\n\t\tassert.Equal(t, \"keep-alive\", res.Header.Get(\"Connection\"))\n\t\tassert.Equal(t, \"text/event-stream\", res.Header.Get(\"Content-Type\"))\n\n\t\tbr := bufio.NewReader(res.Body)\n\n\t\tassert.Equal(t, \":\\n\", readLine(br))\n\t\tassert.Equal(t, \"\\n\", readLine(br))\n\t\tassert.Equal(t, \": ping\\n\", readLine(br))\n\t\tassert.Equal(t, \"\\n\", readLine(br))\n\n\t\twg.Go(func() {\n\t\t\thandler.SendCompleteSubscriptionMessage()\n\t\t})\n\n\t\tassert.Equal(t, \"event: complete\\n\", readLine(br))\n\t\tassert.Equal(t, \"\\n\", readLine(br))\n\n\t\t_, err = br.ReadByte()\n\t\tassert.Equal(t, err, io.EOF)\n\n\t\twg.Wait()\n\t})\n}\n"
  },
  {
    "path": "graphql/handler/transport/util.go",
    "content": "package transport\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\nfunc writeJson(w io.Writer, response *graphql.Response) {\n\tb, err := json.Marshal(response)\n\tif err != nil {\n\t\tpanic(fmt.Errorf(\"unable to marshal %s: %w\", string(response.Data), err))\n\t}\n\tw.Write(b)\n}\n\nfunc writeJsonError(w io.Writer, msg string) {\n\twriteJson(w, &graphql.Response{Errors: gqlerror.List{{Message: msg}}})\n}\n\nfunc writeJsonErrorf(w io.Writer, format string, args ...any) {\n\twriteJson(w, &graphql.Response{Errors: gqlerror.List{{Message: fmt.Sprintf(format, args...)}}})\n}\n\nfunc writeJsonGraphqlError(w io.Writer, err ...*gqlerror.Error) {\n\twriteJson(w, &graphql.Response{Errors: err})\n}\n"
  },
  {
    "path": "graphql/handler/transport/websocket.go",
    "content": "package transport\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"log\"\n\t\"net\"\n\t\"net/http\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/gorilla/websocket\"\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/errcode\"\n)\n\ntype (\n\tWebsocket struct {\n\t\tUpgrader              websocket.Upgrader\n\t\tInitFunc              WebsocketInitFunc\n\t\tInitTimeout           time.Duration\n\t\tErrorFunc             WebsocketErrorFunc\n\t\tCloseFunc             WebsocketCloseFunc\n\t\tKeepAlivePingInterval time.Duration\n\t\tPongOnlyInterval      time.Duration\n\t\tPingPongInterval      time.Duration\n\t\t/* If PingPongInterval has a non-0 duration, then when the server sends a ping\n\t\t * it sets a ReadDeadline of PingPongInterval*2 and if the client doesn't respond\n\t\t * with pong before that deadline is reached then the connection will die with a\n\t\t * 1006 error code.\n\t\t *\n\t\t * MissingPongOk if true, tells the server to not use a ReadDeadline such that a\n\t\t * missing/slow pong response from the client doesn't kill the connection.\n\t\t */\n\t\tMissingPongOk bool\n\n\t\tdidInjectSubprotocols bool\n\t}\n\twsConnection struct {\n\t\tWebsocket\n\t\tctx             context.Context\n\t\tconn            *websocket.Conn\n\t\tme              messageExchanger\n\t\tactive          map[string]context.CancelFunc\n\t\tmu              sync.Mutex\n\t\tkeepAliveTicker *time.Ticker\n\t\tpongOnlyTicker  *time.Ticker\n\t\tpingPongTicker  *time.Ticker\n\t\treceivedPong    bool\n\t\texec            graphql.GraphExecutor\n\t\tclosed          bool\n\t\theaders         http.Header\n\n\t\tinitPayload InitPayload\n\t}\n\n\tWebsocketInitFunc  func(ctx context.Context, initPayload InitPayload) (context.Context, *InitPayload, error)\n\tWebsocketErrorFunc func(ctx context.Context, err error)\n\n\t// Callback called when websocket is closed.\n\tWebsocketCloseFunc func(ctx context.Context, closeCode int)\n)\n\nvar errReadTimeout = errors.New(\"read timeout\")\n\ntype WebsocketError struct {\n\tErr error\n\n\t// IsReadError flags whether the error occurred on read or write to the websocket\n\tIsReadError bool\n}\n\nfunc (e WebsocketError) Error() string {\n\tif e.IsReadError {\n\t\treturn fmt.Sprintf(\"websocket read: %v\", e.Err)\n\t}\n\treturn fmt.Sprintf(\"websocket write: %v\", e.Err)\n}\n\nvar (\n\t_ graphql.Transport = Websocket{}\n\t_ error             = WebsocketError{}\n)\n\nfunc (t Websocket) Supports(r *http.Request) bool {\n\treturn r.Header.Get(\"Upgrade\") != \"\"\n}\n\nfunc (t Websocket) Do(w http.ResponseWriter, r *http.Request, exec graphql.GraphExecutor) {\n\tt.injectGraphQLWSSubprotocols()\n\tws, err := t.Upgrader.Upgrade(w, r, http.Header{})\n\tif err != nil {\n\t\tlog.Printf(\"unable to upgrade %T to websocket %s: \", w, err.Error())\n\t\tSendErrorf(w, http.StatusBadRequest, \"unable to upgrade\")\n\t\treturn\n\t}\n\n\tvar me messageExchanger\n\tswitch ws.Subprotocol() {\n\tdefault:\n\t\tmsg := websocket.FormatCloseMessage(\n\t\t\twebsocket.CloseProtocolError,\n\t\t\tfmt.Sprintf(\"unsupported negotiated subprotocol %s\", ws.Subprotocol()),\n\t\t)\n\t\t_ = ws.WriteMessage(websocket.CloseMessage, msg)\n\t\treturn\n\tcase graphqlwsSubprotocol, \"\":\n\t\t// clients are required to send a subprotocol, to be backward compatible with the previous\n\t\t// implementation we select\n\t\t// \"graphql-ws\" by default\n\t\tme = graphqlwsMessageExchanger{c: ws}\n\tcase graphqltransportwsSubprotocol:\n\t\tme = graphqltransportwsMessageExchanger{c: ws}\n\t}\n\n\tconn := wsConnection{\n\t\tactive:    map[string]context.CancelFunc{},\n\t\tconn:      ws,\n\t\tctx:       r.Context(),\n\t\texec:      exec,\n\t\tme:        me,\n\t\theaders:   r.Header,\n\t\tWebsocket: t,\n\t}\n\n\tif !conn.init() {\n\t\treturn\n\t}\n\n\tconn.run()\n}\n\nfunc (c *wsConnection) handlePossibleError(err error, isReadError bool) {\n\tif c.ErrorFunc != nil && err != nil {\n\t\tc.ErrorFunc(c.ctx, WebsocketError{\n\t\t\tErr:         err,\n\t\t\tIsReadError: isReadError,\n\t\t})\n\t}\n}\n\nfunc (c *wsConnection) nextMessageWithTimeout(timeout time.Duration) (message, error) {\n\tmessages, errs := make(chan message, 1), make(chan error, 1)\n\n\tgo func() {\n\t\tif m, err := c.me.NextMessage(); err != nil {\n\t\t\terrs <- err\n\t\t} else {\n\t\t\tmessages <- m\n\t\t}\n\t}()\n\n\tselect {\n\tcase m := <-messages:\n\t\treturn m, nil\n\tcase err := <-errs:\n\t\treturn message{}, err\n\tcase <-time.After(timeout):\n\t\treturn message{}, errReadTimeout\n\t}\n}\n\nfunc (c *wsConnection) init() bool {\n\tvar m message\n\tvar err error\n\n\tif c.InitTimeout != 0 {\n\t\tm, err = c.nextMessageWithTimeout(c.InitTimeout)\n\t} else {\n\t\tm, err = c.me.NextMessage()\n\t}\n\n\tif err != nil {\n\t\tif err == errReadTimeout {\n\t\t\tc.close(websocket.CloseProtocolError, \"connection initialisation timeout\")\n\t\t\treturn false\n\t\t}\n\n\t\tif err == errInvalidMsg {\n\t\t\tc.sendConnectionError(\"invalid json\")\n\t\t}\n\n\t\tc.close(websocket.CloseProtocolError, \"decoding error\")\n\t\treturn false\n\t}\n\n\tswitch m.t {\n\tcase initMessageType:\n\t\tif len(m.payload) > 0 {\n\t\t\tc.initPayload = make(InitPayload)\n\t\t\terr := json.Unmarshal(m.payload, &c.initPayload)\n\t\t\tif err != nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tvar initAckPayload *InitPayload\n\t\tif c.InitFunc != nil {\n\t\t\tvar ctx context.Context\n\t\t\tctx, initAckPayload, err = c.InitFunc(c.ctx, c.initPayload)\n\t\t\tif err != nil {\n\t\t\t\tc.sendConnectionError(\"%s\", err.Error())\n\t\t\t\tc.close(websocket.CloseNormalClosure, \"terminated\")\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tc.ctx = ctx\n\t\t}\n\n\t\tif initAckPayload != nil {\n\t\t\tinitJsonAckPayload, err := json.Marshal(*initAckPayload)\n\t\t\tif err != nil {\n\t\t\t\tpanic(err)\n\t\t\t}\n\t\t\tc.write(&message{t: connectionAckMessageType, payload: initJsonAckPayload})\n\t\t} else {\n\t\t\tc.write(&message{t: connectionAckMessageType})\n\t\t}\n\t\tc.write(&message{t: keepAliveMessageType})\n\tcase connectionCloseMessageType:\n\t\tc.close(websocket.CloseNormalClosure, \"terminated\")\n\t\treturn false\n\tdefault:\n\t\tc.sendConnectionError(\"unexpected message %s\", m.t)\n\t\tc.close(websocket.CloseProtocolError, \"unexpected message\")\n\t\treturn false\n\t}\n\n\treturn true\n}\n\nfunc (c *wsConnection) write(msg *message) {\n\tc.mu.Lock()\n\tc.handlePossibleError(c.me.Send(msg), false)\n\tc.mu.Unlock()\n}\n\nfunc (c *wsConnection) run() {\n\t// We create a cancellation that will shutdown the keep-alive when we leave\n\t// this function.\n\tctx, cancel := context.WithCancel(c.ctx)\n\tdefer func() {\n\t\tcancel()\n\t}()\n\n\t// If we're running in graphql-ws mode, create a timer that will trigger a\n\t// keep alive message every interval\n\tif (c.conn.Subprotocol() == \"\" || c.conn.Subprotocol() == graphqlwsSubprotocol) &&\n\t\tc.KeepAlivePingInterval != 0 {\n\t\tc.mu.Lock()\n\t\tc.keepAliveTicker = time.NewTicker(c.KeepAlivePingInterval)\n\t\tc.mu.Unlock()\n\n\t\tgo c.keepAlive(ctx)\n\t}\n\n\t// If we're running in graphql-transport-ws mode, create a timer that will trigger a\n\t// just a pong message every interval\n\tif c.conn.Subprotocol() == graphqltransportwsSubprotocol && c.PongOnlyInterval != 0 {\n\t\tc.mu.Lock()\n\t\tc.pongOnlyTicker = time.NewTicker(c.PongOnlyInterval)\n\t\tc.mu.Unlock()\n\n\t\tgo c.keepAlivePongOnly(ctx)\n\t}\n\n\t// If we're running in graphql-transport-ws mode, create a timer that will\n\t// trigger a ping message every interval and expect a pong!\n\tif c.conn.Subprotocol() == graphqltransportwsSubprotocol && c.PingPongInterval != 0 {\n\t\tc.mu.Lock()\n\t\tc.pingPongTicker = time.NewTicker(c.PingPongInterval)\n\t\tc.mu.Unlock()\n\n\t\tif !c.MissingPongOk {\n\t\t\t// Note: when the connection is closed by this deadline, the client\n\t\t\t// will receive an \"invalid close code\"\n\t\t\t_ = c.conn.SetReadDeadline(time.Now().UTC().Add(2 * c.PingPongInterval))\n\t\t}\n\t\tgo c.ping(ctx)\n\t}\n\n\t// Close the connection when the context is cancelled.\n\t// Will optionally send a \"close reason\" that is retrieved from the context.\n\tgo c.closeOnCancel(ctx)\n\n\tfor {\n\t\tstart := graphql.Now()\n\t\tm, err := c.me.NextMessage()\n\t\tif err != nil {\n\t\t\t// If the connection got closed by us, don't report the error\n\t\t\tif !errors.Is(err, net.ErrClosed) {\n\t\t\t\tc.handlePossibleError(err, true)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tswitch m.t {\n\t\tcase startMessageType:\n\t\t\tc.subscribe(start, &m)\n\t\tcase stopMessageType:\n\t\t\tc.mu.Lock()\n\t\t\tcloser := c.active[m.id]\n\t\t\tc.mu.Unlock()\n\t\t\tif closer != nil {\n\t\t\t\tcloser()\n\t\t\t}\n\t\tcase connectionCloseMessageType:\n\t\t\tc.close(websocket.CloseNormalClosure, \"terminated\")\n\t\t\treturn\n\t\tcase pingMessageType:\n\t\t\tc.write(&message{t: pongMessageType, payload: m.payload})\n\t\tcase pongMessageType:\n\t\t\tc.mu.Lock()\n\t\t\tc.receivedPong = true\n\t\t\tc.mu.Unlock()\n\t\t\t// Clear ReadTimeout -- 0 time val clears.\n\t\t\t_ = c.conn.SetReadDeadline(time.Time{})\n\t\tdefault:\n\t\t\tc.sendConnectionError(\"unexpected message %s\", m.t)\n\t\t\tc.close(websocket.CloseProtocolError, \"unexpected message\")\n\t\t\treturn\n\t\t}\n\t}\n}\n\nfunc (c *wsConnection) keepAlivePongOnly(ctx context.Context) {\n\tfor {\n\t\tselect {\n\t\tcase <-ctx.Done():\n\t\t\tc.pongOnlyTicker.Stop()\n\t\t\treturn\n\t\tcase <-c.pongOnlyTicker.C:\n\t\t\tc.write(&message{t: pongMessageType, payload: json.RawMessage{}})\n\t\t}\n\t}\n}\n\nfunc (c *wsConnection) keepAlive(ctx context.Context) {\n\tfor {\n\t\tselect {\n\t\tcase <-ctx.Done():\n\t\t\tc.keepAliveTicker.Stop()\n\t\t\treturn\n\t\tcase <-c.keepAliveTicker.C:\n\t\t\tc.write(&message{t: keepAliveMessageType})\n\t\t}\n\t}\n}\n\nfunc (c *wsConnection) ping(ctx context.Context) {\n\tfor {\n\t\tselect {\n\t\tcase <-ctx.Done():\n\t\t\tc.pingPongTicker.Stop()\n\t\t\treturn\n\t\tcase <-c.pingPongTicker.C:\n\t\t\tc.write(&message{t: pingMessageType, payload: json.RawMessage{}})\n\t\t\t// The initial deadline for this method is set in run()\n\t\t\t// if we have not yet received a pong, don't reset the deadline.\n\t\t\tc.mu.Lock()\n\t\t\tif !c.MissingPongOk && c.receivedPong {\n\t\t\t\t_ = c.conn.SetReadDeadline(time.Now().UTC().Add(2 * c.PingPongInterval))\n\t\t\t}\n\t\t\tc.receivedPong = false\n\t\t\tc.mu.Unlock()\n\t\t}\n\t}\n}\n\nfunc (c *wsConnection) closeOnCancel(ctx context.Context) {\n\t<-ctx.Done()\n\n\tif r := closeReasonForContext(ctx); r != \"\" {\n\t\tc.sendConnectionError(\"%s\", r)\n\t}\n\tc.close(websocket.CloseNormalClosure, \"terminated\")\n}\n\nfunc (c *wsConnection) subscribe(start time.Time, msg *message) {\n\tctx := graphql.StartOperationTrace(c.ctx)\n\tvar params *graphql.RawParams\n\tif err := jsonDecode(bytes.NewReader(msg.payload), &params); err != nil {\n\t\tc.sendError(msg.id, &gqlerror.Error{Message: \"invalid json\"})\n\t\tc.complete(msg.id)\n\t\treturn\n\t}\n\n\tparams.ReadTime = graphql.TraceTiming{\n\t\tStart: start,\n\t\tEnd:   graphql.Now(),\n\t}\n\n\tparams.Headers = c.headers\n\n\trc, err := c.exec.CreateOperationContext(ctx, params)\n\tif err != nil {\n\t\tresp := c.exec.DispatchError(graphql.WithOperationContext(ctx, rc), err)\n\t\tswitch errcode.GetErrorKind(err) {\n\t\tcase errcode.KindProtocol:\n\t\t\tc.sendError(msg.id, resp.Errors...)\n\t\tdefault:\n\t\t\tc.sendResponse(msg.id, &graphql.Response{Errors: err})\n\t\t}\n\n\t\tc.complete(msg.id)\n\t\treturn\n\t}\n\n\tctx = graphql.WithOperationContext(ctx, rc)\n\n\tif c.initPayload != nil {\n\t\tctx = withInitPayload(ctx, c.initPayload)\n\t}\n\n\tctx, cancel := context.WithCancel(ctx)\n\tc.mu.Lock()\n\tc.active[msg.id] = cancel\n\tc.mu.Unlock()\n\n\tgo func() {\n\t\tctx = withSubscriptionErrorContext(ctx)\n\t\tdefer func() {\n\t\t\tif r := recover(); r != nil {\n\t\t\t\terr := rc.Recover(ctx, r)\n\t\t\t\tvar gqlerr *gqlerror.Error\n\t\t\t\tif !errors.As(err, &gqlerr) {\n\t\t\t\t\tgqlerr = &gqlerror.Error{}\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\tgqlerr.Message = err.Error()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tc.sendError(msg.id, gqlerr)\n\t\t\t}\n\t\t\tif errs := getSubscriptionError(ctx); len(errs) != 0 {\n\t\t\t\tc.sendError(msg.id, errs...)\n\t\t\t} else {\n\t\t\t\tc.complete(msg.id)\n\t\t\t}\n\t\t\tc.mu.Lock()\n\t\t\tdelete(c.active, msg.id)\n\t\t\tc.mu.Unlock()\n\t\t\tcancel()\n\t\t}()\n\n\t\tresponses, ctx := c.exec.DispatchOperation(ctx, rc)\n\t\tfor {\n\t\t\tresponse := responses(ctx)\n\t\t\tif response == nil {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tc.sendResponse(msg.id, response)\n\t\t}\n\n\t\t// complete and context cancel comes from the defer\n\t}()\n}\n\nfunc (c *wsConnection) sendResponse(id string, response *graphql.Response) {\n\tb, err := json.Marshal(response)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tc.write(&message{\n\t\tpayload: b,\n\t\tid:      id,\n\t\tt:       dataMessageType,\n\t})\n}\n\nfunc (c *wsConnection) complete(id string) {\n\tc.write(&message{id: id, t: completeMessageType})\n}\n\nfunc (c *wsConnection) sendError(id string, errors ...*gqlerror.Error) {\n\terrs := make([]error, len(errors))\n\tfor i, err := range errors {\n\t\terrs[i] = err\n\t}\n\tb, err := json.Marshal(errs)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tc.write(&message{t: errorMessageType, id: id, payload: b})\n}\n\nfunc (c *wsConnection) sendConnectionError(format string, args ...any) {\n\tb, err := json.Marshal(&gqlerror.Error{Message: fmt.Sprintf(format, args...)})\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tc.write(&message{t: connectionErrorMessageType, payload: b})\n}\n\nfunc (c *wsConnection) close(closeCode int, message string) {\n\tc.mu.Lock()\n\tif c.closed {\n\t\tc.mu.Unlock()\n\t\treturn\n\t}\n\t_ = c.conn.WriteMessage(\n\t\twebsocket.CloseMessage,\n\t\twebsocket.FormatCloseMessage(closeCode, message),\n\t)\n\tfor _, closer := range c.active {\n\t\tcloser()\n\t}\n\tc.closed = true\n\tc.mu.Unlock()\n\t_ = c.conn.Close()\n\n\tif c.CloseFunc != nil {\n\t\tc.CloseFunc(c.ctx, closeCode)\n\t}\n}\n"
  },
  {
    "path": "graphql/handler/transport/websocket_close_reason.go",
    "content": "package transport\n\nimport (\n\t\"context\"\n)\n\n// A private key for context that only this package can access. This is important\n// to prevent collisions between different context uses\nvar closeReasonCtxKey = &wsCloseReasonContextKey{\"close-reason\"}\n\ntype wsCloseReasonContextKey struct {\n\tname string\n}\n\nfunc AppendCloseReason(ctx context.Context, reason string) context.Context {\n\treturn context.WithValue(ctx, closeReasonCtxKey, reason)\n}\n\nfunc closeReasonForContext(ctx context.Context) string {\n\treason, _ := ctx.Value(closeReasonCtxKey).(string)\n\treturn reason\n}\n"
  },
  {
    "path": "graphql/handler/transport/websocket_graphql_transport_ws.go",
    "content": "package transport\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/gorilla/websocket\"\n)\n\n// https://github.com/apollographql/subscriptions-transport-ws/blob/master/PROTOCOL.md\nconst (\n\tgraphqltransportwsSubprotocol = \"graphql-transport-ws\"\n\n\tgraphqltransportwsConnectionInitMsg = graphqltransportwsMessageType(\"connection_init\")\n\tgraphqltransportwsConnectionAckMsg  = graphqltransportwsMessageType(\"connection_ack\")\n\tgraphqltransportwsSubscribeMsg      = graphqltransportwsMessageType(\"subscribe\")\n\tgraphqltransportwsNextMsg           = graphqltransportwsMessageType(\"next\")\n\tgraphqltransportwsErrorMsg          = graphqltransportwsMessageType(\"error\")\n\tgraphqltransportwsCompleteMsg       = graphqltransportwsMessageType(\"complete\")\n\tgraphqltransportwsPingMsg           = graphqltransportwsMessageType(\"ping\")\n\tgraphqltransportwsPongMsg           = graphqltransportwsMessageType(\"pong\")\n)\n\nvar allGraphqltransportwsMessageTypes = []graphqltransportwsMessageType{\n\tgraphqltransportwsConnectionInitMsg,\n\tgraphqltransportwsConnectionAckMsg,\n\tgraphqltransportwsSubscribeMsg,\n\tgraphqltransportwsNextMsg,\n\tgraphqltransportwsErrorMsg,\n\tgraphqltransportwsCompleteMsg,\n\tgraphqltransportwsPingMsg,\n\tgraphqltransportwsPongMsg,\n}\n\ntype (\n\tgraphqltransportwsMessageExchanger struct {\n\t\tc *websocket.Conn\n\t}\n\n\tgraphqltransportwsMessage struct {\n\t\tPayload json.RawMessage               `json:\"payload,omitempty\"`\n\t\tID      string                        `json:\"id,omitempty\"`\n\t\tType    graphqltransportwsMessageType `json:\"type\"`\n\t\tnoOp    bool\n\t}\n\n\tgraphqltransportwsMessageType string\n)\n\nfunc (me graphqltransportwsMessageExchanger) NextMessage() (message, error) {\n\t_, r, err := me.c.NextReader()\n\tif err != nil {\n\t\treturn message{}, handleNextReaderError(err)\n\t}\n\n\tvar graphqltransportwsMessage graphqltransportwsMessage\n\tif err := jsonDecode(r, &graphqltransportwsMessage); err != nil {\n\t\treturn message{}, errInvalidMsg\n\t}\n\n\treturn graphqltransportwsMessage.toMessage()\n}\n\nfunc (me graphqltransportwsMessageExchanger) Send(m *message) error {\n\tmsg := &graphqltransportwsMessage{}\n\tif err := msg.fromMessage(m); err != nil {\n\t\treturn err\n\t}\n\n\tif msg.noOp {\n\t\treturn nil\n\t}\n\n\treturn me.c.WriteJSON(msg)\n}\n\nfunc (t *graphqltransportwsMessageType) UnmarshalText(text []byte) (err error) {\n\tvar found bool\n\tfor _, candidate := range allGraphqltransportwsMessageTypes {\n\t\tif string(candidate) == string(text) {\n\t\t\t*t = candidate\n\t\t\tfound = true\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif !found {\n\t\terr = fmt.Errorf(\"invalid message type %s\", string(text))\n\t}\n\n\treturn err\n}\n\nfunc (t graphqltransportwsMessageType) MarshalText() ([]byte, error) {\n\treturn []byte(string(t)), nil\n}\n\nfunc (m graphqltransportwsMessage) toMessage() (message, error) {\n\tvar t messageType\n\tvar err error\n\tswitch m.Type {\n\tdefault:\n\t\terr = fmt.Errorf(\"invalid client->server message type %s\", m.Type)\n\tcase graphqltransportwsConnectionInitMsg:\n\t\tt = initMessageType\n\tcase graphqltransportwsSubscribeMsg:\n\t\tt = startMessageType\n\tcase graphqltransportwsCompleteMsg:\n\t\tt = stopMessageType\n\tcase graphqltransportwsPingMsg:\n\t\tt = pingMessageType\n\tcase graphqltransportwsPongMsg:\n\t\tt = pongMessageType\n\t}\n\n\treturn message{\n\t\tpayload: m.Payload,\n\t\tid:      m.ID,\n\t\tt:       t,\n\t}, err\n}\n\nfunc (m *graphqltransportwsMessage) fromMessage(msg *message) (err error) {\n\tm.ID = msg.id\n\tm.Payload = msg.payload\n\n\tswitch msg.t {\n\tdefault:\n\t\terr = fmt.Errorf(\"invalid server->client message type %s\", msg.t)\n\tcase connectionAckMessageType:\n\t\tm.Type = graphqltransportwsConnectionAckMsg\n\tcase keepAliveMessageType:\n\t\tm.noOp = true\n\tcase connectionErrorMessageType:\n\t\tm.noOp = true\n\tcase dataMessageType:\n\t\tm.Type = graphqltransportwsNextMsg\n\tcase completeMessageType:\n\t\tm.Type = graphqltransportwsCompleteMsg\n\tcase errorMessageType:\n\t\tm.Type = graphqltransportwsErrorMsg\n\tcase pingMessageType:\n\t\tm.Type = graphqltransportwsPingMsg\n\tcase pongMessageType:\n\t\tm.Type = graphqltransportwsPongMsg\n\t}\n\n\treturn err\n}\n"
  },
  {
    "path": "graphql/handler/transport/websocket_graphqlws.go",
    "content": "package transport\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/gorilla/websocket\"\n)\n\n// https://github.com/enisdenjo/graphql-ws/blob/master/PROTOCOL.md\nconst (\n\tgraphqlwsSubprotocol = \"graphql-ws\"\n\n\tgraphqlwsConnectionInitMsg      = graphqlwsMessageType(\"connection_init\")\n\tgraphqlwsConnectionTerminateMsg = graphqlwsMessageType(\"connection_terminate\")\n\tgraphqlwsStartMsg               = graphqlwsMessageType(\"start\")\n\tgraphqlwsStopMsg                = graphqlwsMessageType(\"stop\")\n\tgraphqlwsConnectionAckMsg       = graphqlwsMessageType(\"connection_ack\")\n\tgraphqlwsConnectionErrorMsg     = graphqlwsMessageType(\"connection_error\")\n\tgraphqlwsDataMsg                = graphqlwsMessageType(\"data\")\n\tgraphqlwsErrorMsg               = graphqlwsMessageType(\"error\")\n\tgraphqlwsCompleteMsg            = graphqlwsMessageType(\"complete\")\n\tgraphqlwsConnectionKeepAliveMsg = graphqlwsMessageType(\"ka\")\n)\n\nvar allGraphqlwsMessageTypes = []graphqlwsMessageType{\n\tgraphqlwsConnectionInitMsg,\n\tgraphqlwsConnectionTerminateMsg,\n\tgraphqlwsStartMsg,\n\tgraphqlwsStopMsg,\n\tgraphqlwsConnectionAckMsg,\n\tgraphqlwsConnectionErrorMsg,\n\tgraphqlwsDataMsg,\n\tgraphqlwsErrorMsg,\n\tgraphqlwsCompleteMsg,\n\tgraphqlwsConnectionKeepAliveMsg,\n}\n\ntype (\n\tgraphqlwsMessageExchanger struct {\n\t\tc *websocket.Conn\n\t}\n\n\tgraphqlwsMessage struct {\n\t\tPayload json.RawMessage      `json:\"payload,omitempty\"`\n\t\tID      string               `json:\"id,omitempty\"`\n\t\tType    graphqlwsMessageType `json:\"type\"`\n\t\tnoOp    bool\n\t}\n\n\tgraphqlwsMessageType string\n)\n\nfunc (me graphqlwsMessageExchanger) NextMessage() (message, error) {\n\t_, r, err := me.c.NextReader()\n\tif err != nil {\n\t\treturn message{}, handleNextReaderError(err)\n\t}\n\n\tvar graphqlwsMessage graphqlwsMessage\n\tif err := jsonDecode(r, &graphqlwsMessage); err != nil {\n\t\treturn message{}, errInvalidMsg\n\t}\n\n\treturn graphqlwsMessage.toMessage()\n}\n\nfunc (me graphqlwsMessageExchanger) Send(m *message) error {\n\tmsg := &graphqlwsMessage{}\n\tif err := msg.fromMessage(m); err != nil {\n\t\treturn err\n\t}\n\n\tif msg.noOp {\n\t\treturn nil\n\t}\n\n\treturn me.c.WriteJSON(msg)\n}\n\nfunc (t *graphqlwsMessageType) UnmarshalText(text []byte) (err error) {\n\tvar found bool\n\tfor _, candidate := range allGraphqlwsMessageTypes {\n\t\tif string(candidate) == string(text) {\n\t\t\t*t = candidate\n\t\t\tfound = true\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif !found {\n\t\terr = fmt.Errorf(\"invalid message type %s\", string(text))\n\t}\n\n\treturn err\n}\n\nfunc (t graphqlwsMessageType) MarshalText() ([]byte, error) {\n\treturn []byte(string(t)), nil\n}\n\nfunc (m graphqlwsMessage) toMessage() (message, error) {\n\tvar t messageType\n\tvar err error\n\tswitch m.Type {\n\tdefault:\n\t\terr = fmt.Errorf(\"invalid client->server message type %s\", m.Type)\n\tcase graphqlwsConnectionInitMsg:\n\t\tt = initMessageType\n\tcase graphqlwsConnectionTerminateMsg:\n\t\tt = connectionCloseMessageType\n\tcase graphqlwsStartMsg:\n\t\tt = startMessageType\n\tcase graphqlwsStopMsg:\n\t\tt = stopMessageType\n\tcase graphqlwsConnectionAckMsg:\n\t\tt = connectionAckMessageType\n\tcase graphqlwsConnectionErrorMsg:\n\t\tt = connectionErrorMessageType\n\tcase graphqlwsDataMsg:\n\t\tt = dataMessageType\n\tcase graphqlwsErrorMsg:\n\t\tt = errorMessageType\n\tcase graphqlwsCompleteMsg:\n\t\tt = completeMessageType\n\tcase graphqlwsConnectionKeepAliveMsg:\n\t\tt = keepAliveMessageType\n\t}\n\n\treturn message{\n\t\tpayload: m.Payload,\n\t\tid:      m.ID,\n\t\tt:       t,\n\t}, err\n}\n\nfunc (m *graphqlwsMessage) fromMessage(msg *message) (err error) {\n\tm.ID = msg.id\n\tm.Payload = msg.payload\n\n\tswitch msg.t {\n\tdefault:\n\t\terr = fmt.Errorf(\"invalid server->client message type %s\", msg.t)\n\tcase initMessageType:\n\t\tm.Type = graphqlwsConnectionInitMsg\n\tcase connectionAckMessageType:\n\t\tm.Type = graphqlwsConnectionAckMsg\n\tcase keepAliveMessageType:\n\t\tm.Type = graphqlwsConnectionKeepAliveMsg\n\tcase connectionErrorMessageType:\n\t\tm.Type = graphqlwsConnectionErrorMsg\n\tcase connectionCloseMessageType:\n\t\tm.Type = graphqlwsConnectionTerminateMsg\n\tcase startMessageType:\n\t\tm.Type = graphqlwsStartMsg\n\tcase stopMessageType:\n\t\tm.Type = graphqlwsStopMsg\n\tcase dataMessageType:\n\t\tm.Type = graphqlwsDataMsg\n\tcase completeMessageType:\n\t\tm.Type = graphqlwsCompleteMsg\n\tcase errorMessageType:\n\t\tm.Type = graphqlwsErrorMsg\n\tcase pingMessageType:\n\t\tm.noOp = true\n\tcase pongMessageType:\n\t\tm.noOp = true\n\t}\n\n\treturn err\n}\n"
  },
  {
    "path": "graphql/handler/transport/websocket_init.go",
    "content": "package transport\n\nimport \"context\"\n\ntype key string\n\nconst (\n\tinitpayload key = \"ws_initpayload_context\"\n)\n\n// InitPayload is a structure that is parsed from the websocket init message payload. TO use\n// request headers for non-websocket, instead wrap the graphql handler in a middleware.\ntype InitPayload map[string]any\n\n// GetString safely gets a string value from the payload. It returns an empty string if the\n// payload is nil or the value isn't set.\nfunc (p InitPayload) GetString(key string) string {\n\tif p == nil {\n\t\treturn \"\"\n\t}\n\n\tif value, ok := p[key]; ok {\n\t\tres, _ := value.(string)\n\t\treturn res\n\t}\n\n\treturn \"\"\n}\n\n// Authorization is a short hand for getting the Authorization header from the\n// payload.\nfunc (p InitPayload) Authorization() string {\n\tif value := p.GetString(\"Authorization\"); value != \"\" {\n\t\treturn value\n\t}\n\n\tif value := p.GetString(\"authorization\"); value != \"\" {\n\t\treturn value\n\t}\n\n\treturn \"\"\n}\n\nfunc withInitPayload(ctx context.Context, payload InitPayload) context.Context {\n\treturn context.WithValue(ctx, initpayload, payload)\n}\n\n// GetInitPayload gets a map of the data sent with the connection_init message, which is used by\n// graphql clients as a stand-in for HTTP headers.\nfunc GetInitPayload(ctx context.Context) InitPayload {\n\tpayload, ok := ctx.Value(initpayload).(InitPayload)\n\tif !ok {\n\t\treturn nil\n\t}\n\n\treturn payload\n}\n"
  },
  {
    "path": "graphql/handler/transport/websocket_resolver_error.go",
    "content": "package transport\n\nimport (\n\t\"context\"\n\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n)\n\n// A private key for context that only this package can access. This is important\n// to prevent collisions between different context uses\nvar wsSubscriptionErrorCtxKey = &wsSubscriptionErrorContextKey{\"subscription-error\"}\n\ntype wsSubscriptionErrorContextKey struct {\n\tname string\n}\n\ntype subscriptionError struct {\n\terrs []*gqlerror.Error\n}\n\n// AddSubscriptionError is used to let websocket return an error message after subscription resolver\n// returns a channel.\n// for example:\n//\n//\tfunc (r *subscriptionResolver) Method(ctx context.Context) (<-chan *model.Message, error) {\n//\t\tch := make(chan *model.Message)\n//\t\tgo func() {\n//\t     defer func() {\n//\t\t\t\tclose(ch)\n//\t     }\n//\t\t\t// some kind of block processing (e.g.: gRPC client streaming)\n//\t\t\tstream, err := gRPCClientStreamRequest(ctx)\n//\t\t\tif err != nil {\n//\t\t\t\t   transport.AddSubscriptionError(ctx, err)\n//\t            return // must return and close channel so websocket can send error back\n//\t     }\n//\t\t\tfor {\n//\t\t\t\tm, err := stream.Recv()\n//\t\t\t\tif err == io.EOF {\n//\t\t\t\t\treturn\n//\t\t\t\t}\n//\t\t\t\tif err != nil {\n//\t\t\t\t   transport.AddSubscriptionError(ctx, err)\n//\t            return // must return and close channel so websocket can send error back\n//\t\t\t\t}\n//\t\t\t\tch <- m\n//\t\t\t}\n//\t\t}()\n//\n//\t\treturn ch, nil\n//\t}\n//\n// see https://github.com/99designs/gqlgen/pull/2506 for more details\nfunc AddSubscriptionError(ctx context.Context, err *gqlerror.Error) {\n\tsubscriptionErrStruct := getSubscriptionErrorStruct(ctx)\n\tsubscriptionErrStruct.errs = append(subscriptionErrStruct.errs, err)\n}\n\nfunc withSubscriptionErrorContext(ctx context.Context) context.Context {\n\treturn context.WithValue(ctx, wsSubscriptionErrorCtxKey, &subscriptionError{})\n}\n\nfunc getSubscriptionErrorStruct(ctx context.Context) *subscriptionError {\n\tv, _ := ctx.Value(wsSubscriptionErrorCtxKey).(*subscriptionError)\n\treturn v\n}\n\nfunc getSubscriptionError(ctx context.Context) []*gqlerror.Error {\n\treturn getSubscriptionErrorStruct(ctx).errs\n}\n"
  },
  {
    "path": "graphql/handler/transport/websocket_subprotocol.go",
    "content": "package transport\n\nimport (\n\t\"encoding/json\"\n\t\"errors\"\n\t\"slices\"\n\n\t\"github.com/gorilla/websocket\"\n)\n\nconst (\n\tinitMessageType messageType = iota\n\tconnectionAckMessageType\n\tkeepAliveMessageType\n\tconnectionErrorMessageType\n\tconnectionCloseMessageType\n\tstartMessageType\n\tstopMessageType\n\tdataMessageType\n\tcompleteMessageType\n\terrorMessageType\n\tpingMessageType\n\tpongMessageType\n)\n\nvar (\n\tsupportedSubprotocols = []string{\n\t\tgraphqlwsSubprotocol,\n\t\tgraphqltransportwsSubprotocol,\n\t}\n\n\terrWsConnClosed = errors.New(\"websocket connection closed\")\n\terrInvalidMsg   = errors.New(\"invalid message received\")\n)\n\ntype (\n\tmessageType int\n\tmessage     struct {\n\t\tpayload json.RawMessage\n\t\tid      string\n\t\tt       messageType\n\t}\n\tmessageExchanger interface {\n\t\tNextMessage() (message, error)\n\t\tSend(m *message) error\n\t}\n)\n\nfunc (t messageType) String() string {\n\tvar text string\n\tswitch t {\n\tdefault:\n\t\ttext = \"unknown\"\n\tcase initMessageType:\n\t\ttext = \"init\"\n\tcase connectionAckMessageType:\n\t\ttext = \"connection ack\"\n\tcase keepAliveMessageType:\n\t\ttext = \"keep alive\"\n\tcase connectionErrorMessageType:\n\t\ttext = \"connection error\"\n\tcase connectionCloseMessageType:\n\t\ttext = \"connection close\"\n\tcase startMessageType:\n\t\ttext = \"start\"\n\tcase stopMessageType:\n\t\ttext = \"stop subscription\"\n\tcase dataMessageType:\n\t\ttext = \"data\"\n\tcase completeMessageType:\n\t\ttext = \"complete\"\n\tcase errorMessageType:\n\t\ttext = \"error\"\n\tcase pingMessageType:\n\t\ttext = \"ping\"\n\tcase pongMessageType:\n\t\ttext = \"pong\"\n\t}\n\treturn text\n}\n\nfunc (t *Websocket) injectGraphQLWSSubprotocols() {\n\t// the list of subprotocols is specified by the consumer of the Websocket struct,\n\t// in order to preserve backward compatibility, we inject the graphql specific subprotocols\n\t// at runtime\n\tif !t.didInjectSubprotocols {\n\t\tdefer func() {\n\t\t\tt.didInjectSubprotocols = true\n\t\t}()\n\n\t\tfor _, subprotocol := range supportedSubprotocols {\n\t\t\tif !slices.Contains(t.Upgrader.Subprotocols, subprotocol) {\n\t\t\t\tt.Upgrader.Subprotocols = append(t.Upgrader.Subprotocols, subprotocol)\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc handleNextReaderError(err error) error {\n\t// TODO: should we consider all closure scenarios here for the ws connection?\n\t// for now we only list the error codes from the previous implementation\n\tif websocket.IsCloseError(err, websocket.CloseNormalClosure, websocket.CloseNoStatusReceived) {\n\t\treturn errWsConnClosed\n\t}\n\n\treturn err\n}\n"
  },
  {
    "path": "graphql/handler/transport/websocket_test.go",
    "content": "package transport_test\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"strings\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/gorilla/websocket\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/testserver\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n)\n\ntype ckey string\n\nfunc TestWebsocket(t *testing.T) {\n\thandler := testserver.New()\n\thandler.AddTransport(transport.Websocket{})\n\n\tsrv := httptest.NewServer(handler)\n\tdefer srv.Close()\n\n\tt.Run(\"client must send valid json\", func(t *testing.T) {\n\t\tc := wsConnect(srv.URL)\n\t\tdefer c.Close()\n\n\t\twriteRaw(c, \"hello\")\n\n\t\tmsg := readOp(c)\n\t\tassert.Equal(t, \"connection_error\", msg.Type)\n\t\tassert.JSONEq(t, `{\"message\":\"invalid json\"}`, string(msg.Payload))\n\t})\n\n\tt.Run(\"client can terminate before init\", func(t *testing.T) {\n\t\tc := wsConnect(srv.URL)\n\t\tdefer c.Close()\n\n\t\trequire.NoError(t, c.WriteJSON(&operationMessage{Type: connectionTerminateMsg}))\n\n\t\t_, _, err := c.ReadMessage()\n\t\tassert.Equal(t, websocket.CloseNormalClosure, err.(*websocket.CloseError).Code)\n\t})\n\n\tt.Run(\"client must send init first\", func(t *testing.T) {\n\t\tc := wsConnect(srv.URL)\n\t\tdefer c.Close()\n\n\t\trequire.NoError(t, c.WriteJSON(&operationMessage{Type: startMsg}))\n\n\t\tmsg := readOp(c)\n\t\tassert.Equal(t, connectionErrorMsg, msg.Type)\n\t\tassert.JSONEq(t, `{\"message\":\"unexpected message start\"}`, string(msg.Payload))\n\t})\n\n\tt.Run(\"server acks init\", func(t *testing.T) {\n\t\tc := wsConnect(srv.URL)\n\t\tdefer c.Close()\n\n\t\trequire.NoError(t, c.WriteJSON(&operationMessage{Type: connectionInitMsg}))\n\n\t\tassert.Equal(t, connectionAckMsg, readOp(c).Type)\n\t\tassert.Equal(t, connectionKeepAliveMsg, readOp(c).Type)\n\t})\n\n\tt.Run(\"client can terminate before run\", func(t *testing.T) {\n\t\tc := wsConnect(srv.URL)\n\t\tdefer c.Close()\n\n\t\trequire.NoError(t, c.WriteJSON(&operationMessage{Type: connectionInitMsg}))\n\t\tassert.Equal(t, connectionAckMsg, readOp(c).Type)\n\t\tassert.Equal(t, connectionKeepAliveMsg, readOp(c).Type)\n\n\t\trequire.NoError(t, c.WriteJSON(&operationMessage{Type: connectionTerminateMsg}))\n\n\t\t_, _, err := c.ReadMessage()\n\t\tassert.Equal(t, websocket.CloseNormalClosure, err.(*websocket.CloseError).Code)\n\t})\n\n\tt.Run(\"client gets parse errors\", func(t *testing.T) {\n\t\tc := wsConnect(srv.URL)\n\t\tdefer c.Close()\n\n\t\trequire.NoError(t, c.WriteJSON(&operationMessage{Type: connectionInitMsg}))\n\t\tassert.Equal(t, connectionAckMsg, readOp(c).Type)\n\t\tassert.Equal(t, connectionKeepAliveMsg, readOp(c).Type)\n\n\t\trequire.NoError(t, c.WriteJSON(&operationMessage{\n\t\t\tType:    startMsg,\n\t\t\tID:      \"test_1\",\n\t\t\tPayload: json.RawMessage(`{\"query\": \"!\"}`),\n\t\t}))\n\n\t\tmsg := readOp(c)\n\t\tassert.Equal(t, errorMsg, msg.Type)\n\t\tassert.JSONEq(\n\t\t\tt,\n\t\t\t`[{\"message\":\"Unexpected !\",\"locations\":[{\"line\":1,\"column\":1}],\"extensions\":{\"code\":\"GRAPHQL_PARSE_FAILED\"}}]`,\n\t\t\tstring(msg.Payload),\n\t\t)\n\t})\n\n\tt.Run(\"client can receive data\", func(t *testing.T) {\n\t\tc := wsConnect(srv.URL)\n\t\tdefer c.Close()\n\n\t\trequire.NoError(t, c.WriteJSON(&operationMessage{Type: connectionInitMsg}))\n\t\tassert.Equal(t, connectionAckMsg, readOp(c).Type)\n\t\tassert.Equal(t, connectionKeepAliveMsg, readOp(c).Type)\n\n\t\trequire.NoError(t, c.WriteJSON(&operationMessage{\n\t\t\tType:    startMsg,\n\t\t\tID:      \"test_1\",\n\t\t\tPayload: json.RawMessage(`{\"query\": \"subscription { name }\"}`),\n\t\t}))\n\n\t\thandler.SendNextSubscriptionMessage()\n\t\tmsg := readOp(c)\n\t\trequire.Equal(t, dataMsg, msg.Type, string(msg.Payload))\n\t\trequire.Equal(t, \"test_1\", msg.ID, string(msg.Payload))\n\t\trequire.JSONEq(t, `{\"data\":{\"name\":\"test\"}}`, string(msg.Payload))\n\n\t\thandler.SendNextSubscriptionMessage()\n\t\tmsg = readOp(c)\n\t\trequire.Equal(t, dataMsg, msg.Type, string(msg.Payload))\n\t\trequire.Equal(t, \"test_1\", msg.ID, string(msg.Payload))\n\t\trequire.JSONEq(t, `{\"data\":{\"name\":\"test\"}}`, string(msg.Payload))\n\n\t\trequire.NoError(t, c.WriteJSON(&operationMessage{Type: stopMsg, ID: \"test_1\"}))\n\n\t\tmsg = readOp(c)\n\t\trequire.Equal(t, completeMsg, msg.Type)\n\t\trequire.Equal(t, \"test_1\", msg.ID)\n\n\t\t// At this point we should be done and should not receive another message.\n\t\tc.SetReadDeadline(time.Now().UTC().Add(1 * time.Millisecond))\n\n\t\terr := c.ReadJSON(&msg)\n\t\tif err == nil {\n\t\t\t// This should not send a second close message for the same id.\n\t\t\trequire.NotEqual(t, completeMsg, msg.Type)\n\t\t\trequire.NotEqual(t, \"test_1\", msg.ID)\n\t\t} else {\n\t\t\tassert.Contains(t, err.Error(), \"timeout\")\n\t\t}\n\t})\n}\n\nfunc TestWebsocketWithKeepAlive(t *testing.T) {\n\th := testserver.New()\n\th.AddTransport(transport.Websocket{\n\t\tKeepAlivePingInterval: 100 * time.Millisecond,\n\t})\n\n\tsrv := httptest.NewServer(h)\n\tdefer srv.Close()\n\n\tc := wsConnect(srv.URL)\n\tdefer c.Close()\n\n\trequire.NoError(t, c.WriteJSON(&operationMessage{Type: connectionInitMsg}))\n\tassert.Equal(t, connectionAckMsg, readOp(c).Type)\n\tassert.Equal(t, connectionKeepAliveMsg, readOp(c).Type)\n\n\trequire.NoError(t, c.WriteJSON(&operationMessage{\n\t\tType:    startMsg,\n\t\tID:      \"test_1\",\n\t\tPayload: json.RawMessage(`{\"query\": \"subscription { name }\"}`),\n\t}))\n\n\t// keepalive\n\tmsg := readOp(c)\n\tassert.Equal(t, connectionKeepAliveMsg, msg.Type)\n\n\t// server message\n\th.SendNextSubscriptionMessage()\n\tmsg = readOp(c)\n\tassert.Equal(t, dataMsg, msg.Type)\n\n\t// keepalive\n\tmsg = readOp(c)\n\tassert.Equal(t, connectionKeepAliveMsg, msg.Type)\n}\n\nfunc TestWebsocketWithPassedHeaders(t *testing.T) {\n\th := testserver.New()\n\th.AddTransport(transport.Websocket{\n\t\tKeepAlivePingInterval: 100 * time.Millisecond,\n\t})\n\n\th.AroundOperations(\n\t\tfunc(ctx context.Context, next graphql.OperationHandler) graphql.ResponseHandler {\n\t\t\tassert.NotNil(t, graphql.GetOperationContext(ctx).Headers)\n\n\t\t\treturn next(ctx)\n\t\t},\n\t)\n\n\tsrv := httptest.NewServer(h)\n\tdefer srv.Close()\n\n\tc := wsConnect(srv.URL)\n\tdefer c.Close()\n\n\trequire.NoError(t, c.WriteJSON(&operationMessage{Type: connectionInitMsg}))\n\tassert.Equal(t, connectionAckMsg, readOp(c).Type)\n\tassert.Equal(t, connectionKeepAliveMsg, readOp(c).Type)\n\n\trequire.NoError(t, c.WriteJSON(&operationMessage{\n\t\tType:    startMsg,\n\t\tID:      \"test_1\",\n\t\tPayload: json.RawMessage(`{\"query\": \"subscription { name }\"}`),\n\t}))\n\n\t// keepalive\n\tmsg := readOp(c)\n\tassert.Equal(t, connectionKeepAliveMsg, msg.Type)\n\n\t// server message\n\th.SendNextSubscriptionMessage()\n\tmsg = readOp(c)\n\tassert.Equal(t, dataMsg, msg.Type)\n\n\t// keepalive\n\tmsg = readOp(c)\n\tassert.Equal(t, connectionKeepAliveMsg, msg.Type)\n}\n\nfunc TestWebsocketInitFunc(t *testing.T) {\n\tt.Run(\"accept connection if WebsocketInitFunc is NOT provided\", func(t *testing.T) {\n\t\th := testserver.New()\n\t\th.AddTransport(transport.Websocket{})\n\t\tsrv := httptest.NewServer(h)\n\t\tdefer srv.Close()\n\n\t\tc := wsConnect(srv.URL)\n\t\tdefer c.Close()\n\n\t\trequire.NoError(t, c.WriteJSON(&operationMessage{Type: connectionInitMsg}))\n\n\t\tassert.Equal(t, connectionAckMsg, readOp(c).Type)\n\t\tassert.Equal(t, connectionKeepAliveMsg, readOp(c).Type)\n\t})\n\n\tt.Run(\n\t\t\"accept connection if WebsocketInitFunc is provided and is accepting connection\",\n\t\tfunc(t *testing.T) {\n\t\t\th := testserver.New()\n\t\t\th.AddTransport(transport.Websocket{\n\t\t\t\tInitFunc: func(ctx context.Context, initPayload transport.InitPayload) (context.Context, *transport.InitPayload, error) {\n\t\t\t\t\treturn context.WithValue(ctx, ckey(\"newkey\"), \"newvalue\"), nil, nil\n\t\t\t\t},\n\t\t\t})\n\t\t\tsrv := httptest.NewServer(h)\n\t\t\tdefer srv.Close()\n\n\t\t\tc := wsConnect(srv.URL)\n\t\t\tdefer c.Close()\n\n\t\t\trequire.NoError(t, c.WriteJSON(&operationMessage{Type: connectionInitMsg}))\n\n\t\t\tassert.Equal(t, connectionAckMsg, readOp(c).Type)\n\t\t\tassert.Equal(t, connectionKeepAliveMsg, readOp(c).Type)\n\t\t},\n\t)\n\n\tt.Run(\n\t\t\"reject connection if WebsocketInitFunc is provided and is accepting connection\",\n\t\tfunc(t *testing.T) {\n\t\t\th := testserver.New()\n\t\t\th.AddTransport(transport.Websocket{\n\t\t\t\tInitFunc: func(ctx context.Context, initPayload transport.InitPayload) (context.Context, *transport.InitPayload, error) {\n\t\t\t\t\treturn ctx, nil, errors.New(\"invalid init payload\")\n\t\t\t\t},\n\t\t\t})\n\t\t\tsrv := httptest.NewServer(h)\n\t\t\tdefer srv.Close()\n\n\t\t\tc := wsConnect(srv.URL)\n\t\t\tdefer c.Close()\n\n\t\t\trequire.NoError(t, c.WriteJSON(&operationMessage{Type: connectionInitMsg}))\n\n\t\t\tmsg := readOp(c)\n\t\t\tassert.Equal(t, connectionErrorMsg, msg.Type)\n\t\t\tassert.JSONEq(t, `{\"message\":\"invalid init payload\"}`, string(msg.Payload))\n\t\t},\n\t)\n\n\tt.Run(\"can return context for request from WebsocketInitFunc\", func(t *testing.T) {\n\t\tes := &graphql.ExecutableSchemaMock{\n\t\t\tExecFunc: func(ctx context.Context) graphql.ResponseHandler {\n\t\t\t\tassert.Equal(t, \"newvalue\", ctx.Value(ckey(\"newkey\")))\n\t\t\t\treturn graphql.OneShot(&graphql.Response{Data: []byte(`{\"empty\":\"ok\"}`)})\n\t\t\t},\n\t\t\tSchemaFunc: func() *ast.Schema {\n\t\t\t\treturn gqlparser.MustLoadSchema(&ast.Source{Input: `\n\t\t\t\tschema { query: Query }\n\t\t\t\ttype Query {\n\t\t\t\t\tempty: String\n\t\t\t\t}\n\t\t\t`})\n\t\t\t},\n\t\t}\n\t\th := handler.New(es)\n\n\t\th.AddTransport(transport.Websocket{\n\t\t\tInitFunc: func(ctx context.Context, initPayload transport.InitPayload) (context.Context, *transport.InitPayload, error) {\n\t\t\t\treturn context.WithValue(ctx, ckey(\"newkey\"), \"newvalue\"), nil, nil\n\t\t\t},\n\t\t})\n\n\t\tc := client.New(h)\n\n\t\tsocket := c.Websocket(\"{ empty } \")\n\t\tdefer socket.Close()\n\t\tvar resp struct {\n\t\t\tEmpty string\n\t\t}\n\t\terr := socket.Next(&resp)\n\t\trequire.NoError(t, err)\n\t\tassert.Equal(t, \"ok\", resp.Empty)\n\t})\n\n\tt.Run(\n\t\t\"can set a deadline on a websocket connection and close it with a reason\",\n\t\tfunc(t *testing.T) {\n\t\t\th := testserver.New()\n\t\t\tvar cancel func()\n\t\t\th.AddTransport(transport.Websocket{\n\t\t\t\tInitFunc: func(ctx context.Context, _ transport.InitPayload) (newCtx context.Context, _ *transport.InitPayload, _ error) {\n\t\t\t\t\tnewCtx, cancel = context.WithTimeout(\n\t\t\t\t\t\ttransport.AppendCloseReason(ctx, \"beep boop\"),\n\t\t\t\t\t\ttime.Millisecond*5,\n\t\t\t\t\t)\n\t\t\t\t\treturn\n\t\t\t\t},\n\t\t\t})\n\t\t\tsrv := httptest.NewServer(h)\n\t\t\tdefer srv.Close()\n\n\t\t\tc := wsConnect(srv.URL)\n\t\t\trequire.NoError(t, c.WriteJSON(&operationMessage{Type: connectionInitMsg}))\n\t\t\tassert.Equal(t, connectionAckMsg, readOp(c).Type)\n\t\t\tassert.Equal(t, connectionKeepAliveMsg, readOp(c).Type)\n\n\t\t\t// Cancel should contain an actual value now, so let's call it when we exit this scope\n\t\t\t// (to make the linter happy)\n\t\t\tdefer cancel()\n\n\t\t\ttime.Sleep(time.Millisecond * 10)\n\t\t\tm := readOp(c)\n\t\t\tassert.Equal(t, connectionErrorMsg, m.Type)\n\t\t\tassert.JSONEq(t, `{\"message\":\"beep boop\"}`, string(m.Payload))\n\t\t},\n\t)\n\tt.Run(\n\t\t\"accept connection if WebsocketInitFunc is provided and is accepting connection\",\n\t\tfunc(t *testing.T) {\n\t\t\th := testserver.New()\n\t\t\th.AddTransport(transport.Websocket{\n\t\t\t\tInitFunc: func(ctx context.Context, initPayload transport.InitPayload) (context.Context, *transport.InitPayload, error) {\n\t\t\t\t\tinitResponsePayload := transport.InitPayload{\"trackingId\": \"123-456\"}\n\t\t\t\t\treturn context.WithValue(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tckey(\"newkey\"),\n\t\t\t\t\t\t\"newvalue\",\n\t\t\t\t\t), &initResponsePayload, nil\n\t\t\t\t},\n\t\t\t})\n\t\t\tsrv := httptest.NewServer(h)\n\t\t\tdefer srv.Close()\n\n\t\t\tc := wsConnect(srv.URL)\n\t\t\tdefer c.Close()\n\n\t\t\trequire.NoError(t, c.WriteJSON(&operationMessage{Type: connectionInitMsg}))\n\n\t\t\tconnAck := readOp(c)\n\t\t\tassert.Equal(t, connectionAckMsg, connAck.Type)\n\n\t\t\tvar payload map[string]any\n\t\t\terr := json.Unmarshal(connAck.Payload, &payload)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatal(\"Unexpected Error\", err)\n\t\t\t}\n\t\t\tassert.EqualValues(t, \"123-456\", payload[\"trackingId\"])\n\t\t\tassert.Equal(t, connectionKeepAliveMsg, readOp(c).Type)\n\t\t},\n\t)\n}\n\nfunc TestWebSocketInitTimeout(t *testing.T) {\n\tt.Run(\n\t\t\"times out if no init message is received within the configured duration\",\n\t\tfunc(t *testing.T) {\n\t\t\th := testserver.New()\n\t\t\th.AddTransport(transport.Websocket{\n\t\t\t\tInitTimeout: 5 * time.Millisecond,\n\t\t\t})\n\t\t\tsrv := httptest.NewServer(h)\n\t\t\tdefer srv.Close()\n\n\t\t\tc := wsConnect(srv.URL)\n\t\t\tdefer c.Close()\n\n\t\t\tvar msg operationMessage\n\t\t\terr := c.ReadJSON(&msg)\n\t\t\trequire.Error(t, err)\n\t\t\tassert.Contains(t, err.Error(), \"timeout\")\n\t\t},\n\t)\n\n\tt.Run(\"keeps waiting for an init message if no time out is configured\", func(t *testing.T) {\n\t\th := testserver.New()\n\t\th.AddTransport(transport.Websocket{})\n\t\tsrv := httptest.NewServer(h)\n\t\tdefer srv.Close()\n\n\t\tc := wsConnect(srv.URL)\n\t\tdefer c.Close()\n\n\t\tdone := make(chan any, 1)\n\t\tgo func() {\n\t\t\tvar msg operationMessage\n\t\t\t_ = c.ReadJSON(&msg)\n\t\t\tdone <- 1\n\t\t}()\n\n\t\tselect {\n\t\tcase <-done:\n\t\t\tassert.Fail(t, \"web socket read operation finished while it shouldn't have\")\n\t\tcase <-time.After(100 * time.Millisecond):\n\t\t\t// Success! I guess? Can't really wait forever to see if the read waits forever...\n\t\t}\n\t})\n}\n\nfunc TestWebSocketErrorFunc(t *testing.T) {\n\tt.Run(\"the error handler gets called when an error occurs\", func(t *testing.T) {\n\t\terrFuncCalled := make(chan bool, 1)\n\t\th := testserver.New()\n\t\th.AddTransport(transport.Websocket{\n\t\t\tErrorFunc: func(_ context.Context, err error) {\n\t\t\t\trequire.EqualError(t, err, \"websocket read: invalid message received\")\n\t\t\t\trequire.ErrorAs(t, err, &transport.WebsocketError{IsReadError: true})\n\t\t\t\terrFuncCalled <- true\n\t\t\t},\n\t\t})\n\n\t\tsrv := httptest.NewServer(h)\n\t\tdefer srv.Close()\n\n\t\tc := wsConnect(srv.URL)\n\t\trequire.NoError(t, c.WriteJSON(&operationMessage{Type: connectionInitMsg}))\n\t\tassert.Equal(t, connectionAckMsg, readOp(c).Type)\n\t\tassert.Equal(t, connectionKeepAliveMsg, readOp(c).Type)\n\t\trequire.NoError(\n\t\t\tt,\n\t\t\tc.WriteMessage(websocket.TextMessage, []byte(\"mark my words, you will regret this\")),\n\t\t)\n\n\t\tselect {\n\t\tcase res := <-errFuncCalled:\n\t\t\tassert.True(t, res)\n\t\tcase <-time.NewTimer(time.Millisecond * 20).C:\n\t\t\tassert.Fail(t, \"The fail handler was not called in time\")\n\t\t}\n\t})\n\n\tt.Run(\"init func errors do not call the error handler\", func(t *testing.T) {\n\t\th := testserver.New()\n\t\th.AddTransport(transport.Websocket{\n\t\t\tInitFunc: func(ctx context.Context, _ transport.InitPayload) (context.Context, *transport.InitPayload, error) {\n\t\t\t\treturn ctx, nil, errors.New(\"this is not what we agreed upon\")\n\t\t\t},\n\t\t\tErrorFunc: func(_ context.Context, err error) {\n\t\t\t\tassert.Fail(\n\t\t\t\t\tt,\n\t\t\t\t\t\"the error handler got called when it shouldn't have\",\n\t\t\t\t\t\"error: \"+err.Error(),\n\t\t\t\t)\n\t\t\t},\n\t\t})\n\t\tsrv := httptest.NewServer(h)\n\t\tdefer srv.Close()\n\n\t\tc := wsConnect(srv.URL)\n\t\trequire.NoError(t, c.WriteJSON(&operationMessage{Type: connectionInitMsg}))\n\t\ttime.Sleep(time.Millisecond * 20)\n\t})\n\n\tt.Run(\"init func context closes do not call the error handler\", func(t *testing.T) {\n\t\th := testserver.New()\n\t\th.AddTransport(transport.Websocket{\n\t\t\tInitFunc: func(ctx context.Context, _ transport.InitPayload) (context.Context, *transport.InitPayload, error) {\n\t\t\t\tnewCtx, cancel := context.WithCancel(ctx)\n\t\t\t\ttime.AfterFunc(time.Millisecond*5, cancel)\n\t\t\t\treturn newCtx, nil, nil\n\t\t\t},\n\t\t\tErrorFunc: func(_ context.Context, err error) {\n\t\t\t\tassert.Fail(\n\t\t\t\t\tt,\n\t\t\t\t\t\"the error handler got called when it shouldn't have\",\n\t\t\t\t\t\"error: \"+err.Error(),\n\t\t\t\t)\n\t\t\t},\n\t\t})\n\t\tsrv := httptest.NewServer(h)\n\t\tdefer srv.Close()\n\n\t\tc := wsConnect(srv.URL)\n\t\trequire.NoError(t, c.WriteJSON(&operationMessage{Type: connectionInitMsg}))\n\t\tassert.Equal(t, connectionAckMsg, readOp(c).Type)\n\t\tassert.Equal(t, connectionKeepAliveMsg, readOp(c).Type)\n\t\ttime.Sleep(time.Millisecond * 20)\n\t})\n\n\tt.Run(\"init func context deadlines do not call the error handler\", func(t *testing.T) {\n\t\th := testserver.New()\n\t\tvar cancel func()\n\t\th.AddTransport(transport.Websocket{\n\t\t\tInitFunc: func(ctx context.Context, _ transport.InitPayload) (newCtx context.Context, _ *transport.InitPayload, _ error) {\n\t\t\t\tnewCtx, cancel = context.WithDeadline(ctx, time.Now().Add(time.Millisecond*5))\n\t\t\t\treturn newCtx, nil, nil\n\t\t\t},\n\t\t\tErrorFunc: func(_ context.Context, err error) {\n\t\t\t\tassert.Fail(\n\t\t\t\t\tt,\n\t\t\t\t\t\"the error handler got called when it shouldn't have\",\n\t\t\t\t\t\"error: \"+err.Error(),\n\t\t\t\t)\n\t\t\t},\n\t\t})\n\t\tsrv := httptest.NewServer(h)\n\t\tdefer srv.Close()\n\n\t\tc := wsConnect(srv.URL)\n\t\trequire.NoError(t, c.WriteJSON(&operationMessage{Type: connectionInitMsg}))\n\t\tassert.Equal(t, connectionAckMsg, readOp(c).Type)\n\t\tassert.Equal(t, connectionKeepAliveMsg, readOp(c).Type)\n\n\t\t// Cancel should contain an actual value now, so let's call it when we exit this scope (to\n\t\t// make the linter happy)\n\t\tdefer cancel()\n\n\t\ttime.Sleep(time.Millisecond * 20)\n\t})\n}\n\nfunc TestWebSocketCloseFunc(t *testing.T) {\n\tt.Run(\"the on close handler gets called when the websocket is closed\", func(t *testing.T) {\n\t\tcloseFuncCalled := make(chan bool, 1)\n\t\th := testserver.New()\n\t\th.AddTransport(transport.Websocket{\n\t\t\tCloseFunc: func(_ context.Context, _closeCode int) {\n\t\t\t\tcloseFuncCalled <- true\n\t\t\t},\n\t\t})\n\n\t\tsrv := httptest.NewServer(h)\n\t\tdefer srv.Close()\n\n\t\tc := wsConnect(srv.URL)\n\t\trequire.NoError(t, c.WriteJSON(&operationMessage{Type: connectionInitMsg}))\n\t\tassert.Equal(t, connectionAckMsg, readOp(c).Type)\n\t\tassert.Equal(t, connectionKeepAliveMsg, readOp(c).Type)\n\t\trequire.NoError(t, c.WriteJSON(&operationMessage{Type: connectionTerminateMsg}))\n\n\t\tselect {\n\t\tcase res := <-closeFuncCalled:\n\t\t\tassert.True(t, res)\n\t\tcase <-time.NewTimer(time.Millisecond * 20).C:\n\t\t\tassert.Fail(t, \"The close handler was not called in time\")\n\t\t}\n\t})\n\n\tt.Run(\n\t\t\"the on close handler gets called only once when the websocket is closed\",\n\t\tfunc(t *testing.T) {\n\t\t\tcloseFuncCalled := make(chan bool, 1)\n\t\t\th := testserver.New()\n\t\t\th.AddTransport(transport.Websocket{\n\t\t\t\tCloseFunc: func(_ context.Context, _closeCode int) {\n\t\t\t\t\tcloseFuncCalled <- true\n\t\t\t\t},\n\t\t\t})\n\n\t\t\tsrv := httptest.NewServer(h)\n\t\t\tdefer srv.Close()\n\n\t\t\tc := wsConnect(srv.URL)\n\t\t\trequire.NoError(t, c.WriteJSON(&operationMessage{Type: connectionInitMsg}))\n\t\t\tassert.Equal(t, connectionAckMsg, readOp(c).Type)\n\t\t\tassert.Equal(t, connectionKeepAliveMsg, readOp(c).Type)\n\t\t\trequire.NoError(t, c.WriteJSON(&operationMessage{Type: connectionTerminateMsg}))\n\n\t\t\tselect {\n\t\t\tcase res := <-closeFuncCalled:\n\t\t\t\tassert.True(t, res)\n\t\t\tcase <-time.NewTimer(time.Millisecond * 20).C:\n\t\t\t\tassert.Fail(t, \"The close handler was not called in time\")\n\t\t\t}\n\n\t\t\tselect {\n\t\t\tcase <-closeFuncCalled:\n\t\t\t\tassert.Fail(t, \"The close handler was called more than once\")\n\t\t\tcase <-time.NewTimer(time.Millisecond * 20).C:\n\t\t\t\t// ok\n\t\t\t}\n\t\t},\n\t)\n\n\tt.Run(\"init func errors call the close handler\", func(t *testing.T) {\n\t\th := testserver.New()\n\t\tcloseFuncCalled := make(chan bool, 1)\n\t\th.AddTransport(transport.Websocket{\n\t\t\tInitFunc: func(ctx context.Context, _ transport.InitPayload) (context.Context, *transport.InitPayload, error) {\n\t\t\t\treturn ctx, nil, errors.New(\"error during init\")\n\t\t\t},\n\t\t\tCloseFunc: func(_ context.Context, _closeCode int) {\n\t\t\t\tcloseFuncCalled <- true\n\t\t\t},\n\t\t})\n\t\tsrv := httptest.NewServer(h)\n\t\tdefer srv.Close()\n\n\t\tc := wsConnect(srv.URL)\n\t\trequire.NoError(t, c.WriteJSON(&operationMessage{Type: connectionInitMsg}))\n\t\tselect {\n\t\tcase res := <-closeFuncCalled:\n\t\t\tassert.True(t, res)\n\t\tcase <-time.NewTimer(time.Millisecond * 20).C:\n\t\t\tassert.Fail(t, \"The close handler was not called in time\")\n\t\t}\n\t})\n}\n\nfunc TestWebsocketGraphqltransportwsSubprotocol(t *testing.T) {\n\tinitialize := func(ws transport.Websocket) (*testserver.TestServer, *httptest.Server) {\n\t\th := testserver.New()\n\t\th.AddTransport(ws)\n\t\treturn h, httptest.NewServer(h)\n\t}\n\n\tt.Run(\"server acks init\", func(t *testing.T) {\n\t\t_, srv := initialize(transport.Websocket{})\n\t\tdefer srv.Close()\n\n\t\tc := wsConnectWithSubprotocol(srv.URL, graphqltransportwsSubprotocol)\n\t\tdefer c.Close()\n\n\t\trequire.NoError(\n\t\t\tt,\n\t\t\tc.WriteJSON(&operationMessage{Type: graphqltransportwsConnectionInitMsg}),\n\t\t)\n\t\tassert.Equal(t, graphqltransportwsConnectionAckMsg, readOp(c).Type)\n\t})\n\n\tt.Run(\"client can receive data\", func(t *testing.T) {\n\t\thandler, srv := initialize(transport.Websocket{})\n\t\tdefer srv.Close()\n\n\t\tc := wsConnectWithSubprotocol(srv.URL, graphqltransportwsSubprotocol)\n\t\tdefer c.Close()\n\n\t\trequire.NoError(\n\t\t\tt,\n\t\t\tc.WriteJSON(&operationMessage{Type: graphqltransportwsConnectionInitMsg}),\n\t\t)\n\t\tassert.Equal(t, graphqltransportwsConnectionAckMsg, readOp(c).Type)\n\n\t\trequire.NoError(t, c.WriteJSON(&operationMessage{\n\t\t\tType:    graphqltransportwsSubscribeMsg,\n\t\t\tID:      \"test_1\",\n\t\t\tPayload: json.RawMessage(`{\"query\": \"subscription { name }\"}`),\n\t\t}))\n\n\t\thandler.SendNextSubscriptionMessage()\n\t\tmsg := readOp(c)\n\t\trequire.Equal(t, graphqltransportwsNextMsg, msg.Type, string(msg.Payload))\n\t\trequire.Equal(t, \"test_1\", msg.ID, string(msg.Payload))\n\t\trequire.JSONEq(t, `{\"data\":{\"name\":\"test\"}}`, string(msg.Payload))\n\n\t\thandler.SendNextSubscriptionMessage()\n\t\tmsg = readOp(c)\n\t\trequire.Equal(t, graphqltransportwsNextMsg, msg.Type, string(msg.Payload))\n\t\trequire.Equal(t, \"test_1\", msg.ID, string(msg.Payload))\n\t\trequire.JSONEq(t, `{\"data\":{\"name\":\"test\"}}`, string(msg.Payload))\n\n\t\trequire.NoError(\n\t\t\tt,\n\t\t\tc.WriteJSON(&operationMessage{Type: graphqltransportwsCompleteMsg, ID: \"test_1\"}),\n\t\t)\n\n\t\tmsg = readOp(c)\n\t\trequire.Equal(t, graphqltransportwsCompleteMsg, msg.Type)\n\t\trequire.Equal(t, \"test_1\", msg.ID)\n\t})\n\n\tt.Run(\"receives no graphql-ws keep alive messages\", func(t *testing.T) {\n\t\t_, srv := initialize(transport.Websocket{KeepAlivePingInterval: 5 * time.Millisecond})\n\t\tdefer srv.Close()\n\n\t\tc := wsConnectWithSubprotocol(srv.URL, graphqltransportwsSubprotocol)\n\t\tdefer c.Close()\n\n\t\trequire.NoError(\n\t\t\tt,\n\t\t\tc.WriteJSON(&operationMessage{Type: graphqltransportwsConnectionInitMsg}),\n\t\t)\n\t\tassert.Equal(t, graphqltransportwsConnectionAckMsg, readOp(c).Type)\n\n\t\t// If the keep-alives are sent, this deadline will not be used, and no timeout error will be\n\t\t// found\n\t\tc.SetReadDeadline(time.Now().UTC().Add(50 * time.Millisecond))\n\t\tvar msg operationMessage\n\t\terr := c.ReadJSON(&msg)\n\t\trequire.Error(t, err)\n\t\tassert.Contains(t, err.Error(), \"timeout\")\n\t})\n}\n\nfunc TestWebsocketWithPingPongInterval(t *testing.T) {\n\tinitialize := func(ws transport.Websocket) (*testserver.TestServer, *httptest.Server) {\n\t\th := testserver.New()\n\t\th.AddTransport(ws)\n\t\treturn h, httptest.NewServer(h)\n\t}\n\n\tt.Run(\"client receives ping and responds with pong\", func(t *testing.T) {\n\t\t_, srv := initialize(transport.Websocket{PingPongInterval: 20 * time.Millisecond})\n\t\tdefer srv.Close()\n\n\t\tc := wsConnectWithSubprotocol(srv.URL, graphqltransportwsSubprotocol)\n\t\tdefer c.Close()\n\n\t\trequire.NoError(\n\t\t\tt,\n\t\t\tc.WriteJSON(&operationMessage{Type: graphqltransportwsConnectionInitMsg}),\n\t\t)\n\t\tassert.Equal(t, graphqltransportwsConnectionAckMsg, readOp(c).Type)\n\n\t\tassert.Equal(t, graphqltransportwsPingMsg, readOp(c).Type)\n\t\trequire.NoError(t, c.WriteJSON(&operationMessage{Type: graphqltransportwsPongMsg}))\n\t\tassert.Equal(t, graphqltransportwsPingMsg, readOp(c).Type)\n\t})\n\n\tt.Run(\"client sends ping and expects pong\", func(t *testing.T) {\n\t\t_, srv := initialize(transport.Websocket{PingPongInterval: 10 * time.Millisecond})\n\t\tdefer srv.Close()\n\t})\n\n\tt.Run(\"client sends ping and expects pong\", func(t *testing.T) {\n\t\t_, srv := initialize(transport.Websocket{PingPongInterval: 10 * time.Millisecond})\n\t\tdefer srv.Close()\n\n\t\tc := wsConnectWithSubprotocol(srv.URL, graphqltransportwsSubprotocol)\n\t\tdefer c.Close()\n\n\t\trequire.NoError(\n\t\t\tt,\n\t\t\tc.WriteJSON(&operationMessage{Type: graphqltransportwsConnectionInitMsg}),\n\t\t)\n\t\tassert.Equal(t, graphqltransportwsConnectionAckMsg, readOp(c).Type)\n\n\t\trequire.NoError(t, c.WriteJSON(&operationMessage{Type: graphqltransportwsPingMsg}))\n\t\tassert.Equal(t, graphqltransportwsPongMsg, readOp(c).Type)\n\t})\n\n\tt.Run(\n\t\t\"server closes with error if client does not pong and !MissingPongOk\",\n\t\tfunc(t *testing.T) {\n\t\t\th := testserver.New()\n\t\t\tcloseFuncCalled := make(chan bool, 1)\n\t\t\th.AddTransport(transport.Websocket{\n\t\t\t\tMissingPongOk:    false, // default value but being explicit for test clarity.\n\t\t\t\tPingPongInterval: 5 * time.Millisecond,\n\t\t\t\tCloseFunc: func(_ context.Context, _closeCode int) {\n\t\t\t\t\tcloseFuncCalled <- true\n\t\t\t\t},\n\t\t\t})\n\n\t\t\tsrv := httptest.NewServer(h)\n\t\t\tdefer srv.Close()\n\n\t\t\tc := wsConnectWithSubprotocol(srv.URL, graphqltransportwsSubprotocol)\n\t\t\tdefer c.Close()\n\n\t\t\trequire.NoError(\n\t\t\t\tt,\n\t\t\t\tc.WriteJSON(&operationMessage{Type: graphqltransportwsConnectionInitMsg}),\n\t\t\t)\n\t\t\tassert.Equal(t, graphqltransportwsConnectionAckMsg, readOp(c).Type)\n\n\t\t\tassert.Equal(t, graphqltransportwsPingMsg, readOp(c).Type)\n\n\t\t\tselect {\n\t\t\tcase res := <-closeFuncCalled:\n\t\t\t\tassert.True(t, res)\n\t\t\tcase <-time.NewTimer(time.Millisecond * 20).C:\n\t\t\t\t// with a 5ms interval 10ms should be the timeout, double that to make the test less\n\t\t\t\t// likely to flake under load\n\t\t\t\tassert.Fail(t, \"The close handler was not called in time\")\n\t\t\t}\n\t\t},\n\t)\n\n\tt.Run(\n\t\t\"server does not close with error if client does not pong and MissingPongOk\",\n\t\tfunc(t *testing.T) {\n\t\t\th := testserver.New()\n\t\t\tcloseFuncCalled := make(chan bool, 1)\n\t\t\th.AddTransport(transport.Websocket{\n\t\t\t\tMissingPongOk:    true,\n\t\t\t\tPingPongInterval: 10 * time.Millisecond,\n\t\t\t\tCloseFunc: func(_ context.Context, _closeCode int) {\n\t\t\t\t\tcloseFuncCalled <- true\n\t\t\t\t},\n\t\t\t})\n\n\t\t\tsrv := httptest.NewServer(h)\n\t\t\tdefer srv.Close()\n\n\t\t\tc := wsConnectWithSubprotocol(srv.URL, graphqltransportwsSubprotocol)\n\t\t\tdefer c.Close()\n\n\t\t\trequire.NoError(\n\t\t\t\tt,\n\t\t\t\tc.WriteJSON(&operationMessage{Type: graphqltransportwsConnectionInitMsg}),\n\t\t\t)\n\t\t\tassert.Equal(t, graphqltransportwsConnectionAckMsg, readOp(c).Type)\n\n\t\t\tassert.Equal(t, graphqltransportwsPingMsg, readOp(c).Type)\n\n\t\t\tselect {\n\t\t\tcase <-closeFuncCalled:\n\t\t\t\tassert.Fail(t, \"The close handler was called even with MissingPongOk = true\")\n\t\t\tcase _, ok := <-time.NewTimer(time.Millisecond * 20).C:\n\t\t\t\tassert.True(t, ok)\n\t\t\t}\n\t\t},\n\t)\n\n\tt.Run(\"ping-pongs are not sent when the graphql-ws sub protocol is used\", func(t *testing.T) {\n\t\t// Regression test\n\t\t// ---\n\t\t// Before the refactor, the code would try to convert a ping message to a graphql-ws message\n\t\t// type\n\t\t// But since this message type does not exist in the graphql-ws sub protocol, it would fail\n\n\t\t_, srv := initialize(transport.Websocket{\n\t\t\tPingPongInterval:      5 * time.Millisecond,\n\t\t\tKeepAlivePingInterval: 10 * time.Millisecond,\n\t\t})\n\t\tdefer srv.Close()\n\n\t\t// Create connection\n\t\tc := wsConnect(srv.URL)\n\t\tdefer c.Close()\n\n\t\t// Initialize connection\n\t\trequire.NoError(t, c.WriteJSON(&operationMessage{Type: connectionInitMsg}))\n\t\tassert.Equal(t, connectionAckMsg, readOp(c).Type)\n\t\tassert.Equal(t, connectionKeepAliveMsg, readOp(c).Type)\n\n\t\t// Wait for a few more keep alives to be sure nothing goes wrong\n\t\tassert.Equal(t, connectionKeepAliveMsg, readOp(c).Type)\n\t\tassert.Equal(t, connectionKeepAliveMsg, readOp(c).Type)\n\t\tassert.Equal(t, connectionKeepAliveMsg, readOp(c).Type)\n\t})\n\tt.Run(\n\t\t\"pong only messages are sent when configured with graphql-transport-ws\",\n\t\tfunc(t *testing.T) {\n\t\t\th, srv := initialize(transport.Websocket{PongOnlyInterval: 10 * time.Millisecond})\n\t\t\tdefer srv.Close()\n\n\t\t\tc := wsConnectWithSubprotocol(srv.URL, graphqltransportwsSubprotocol)\n\t\t\tdefer c.Close()\n\n\t\t\trequire.NoError(\n\t\t\t\tt,\n\t\t\t\tc.WriteJSON(&operationMessage{Type: graphqltransportwsConnectionInitMsg}),\n\t\t\t)\n\t\t\tassert.Equal(t, graphqltransportwsConnectionAckMsg, readOp(c).Type)\n\n\t\t\tassert.Equal(t, graphqltransportwsPongMsg, readOp(c).Type)\n\n\t\t\trequire.NoError(t, c.WriteJSON(&operationMessage{\n\t\t\t\tType:    graphqltransportwsSubscribeMsg,\n\t\t\t\tID:      \"test_1\",\n\t\t\t\tPayload: json.RawMessage(`{\"query\": \"subscription { name }\"}`),\n\t\t\t}))\n\n\t\t\t// pong\n\t\t\tmsg := readOp(c)\n\t\t\tassert.Equal(t, graphqltransportwsPongMsg, msg.Type)\n\n\t\t\t// server message\n\t\t\th.SendNextSubscriptionMessage()\n\t\t\tmsg = readOp(c)\n\t\t\trequire.Equal(t, graphqltransportwsNextMsg, msg.Type, string(msg.Payload))\n\t\t\trequire.Equal(t, \"test_1\", msg.ID, string(msg.Payload))\n\t\t\trequire.JSONEq(t, `{\"data\":{\"name\":\"test\"}}`, string(msg.Payload))\n\n\t\t\t// keepalive\n\t\t\tmsg = readOp(c)\n\t\t\tassert.Equal(t, graphqltransportwsPongMsg, msg.Type)\n\t\t},\n\t)\n}\n\nfunc wsConnect(url string) *websocket.Conn {\n\treturn wsConnectWithSubprotocol(url, \"\")\n}\n\nfunc wsConnectWithSubprotocol(url, subprotocol string) *websocket.Conn {\n\th := make(http.Header)\n\tif subprotocol != \"\" {\n\t\th.Add(\"Sec-WebSocket-Protocol\", subprotocol)\n\t}\n\n\tc, resp, err := websocket.DefaultDialer.Dial(strings.ReplaceAll(url, \"http://\", \"ws://\"), h)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\t_ = resp.Body.Close()\n\n\treturn c\n}\n\nfunc writeRaw(conn *websocket.Conn, msg string) {\n\tif err := conn.WriteMessage(websocket.TextMessage, []byte(msg)); err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc readOp(conn *websocket.Conn) operationMessage {\n\tvar msg operationMessage\n\tif err := conn.ReadJSON(&msg); err != nil {\n\t\tpanic(err)\n\t}\n\treturn msg\n}\n\n// copied out from websocket_graphqlws.go to keep these private\n\nconst (\n\tconnectionInitMsg      = \"connection_init\"      // Client -> Server\n\tconnectionTerminateMsg = \"connection_terminate\" // Client -> Server\n\tstartMsg               = \"start\"                // Client -> Server\n\tstopMsg                = \"stop\"                 // Client -> Server\n\tconnectionAckMsg       = \"connection_ack\"       // Server -> Client\n\tconnectionErrorMsg     = \"connection_error\"     // Server -> Client\n\tdataMsg                = \"data\"                 // Server -> Client\n\terrorMsg               = \"error\"                // Server -> Client\n\tcompleteMsg            = \"complete\"             // Server -> Client\n\tconnectionKeepAliveMsg = \"ka\"                   // Server -> Client\n)\n\n// copied out from websocket_graphql_transport_ws.go to keep these private\n\nconst (\n\tgraphqltransportwsSubprotocol = \"graphql-transport-ws\"\n\n\tgraphqltransportwsConnectionInitMsg = \"connection_init\"\n\tgraphqltransportwsConnectionAckMsg  = \"connection_ack\"\n\tgraphqltransportwsSubscribeMsg      = \"subscribe\"\n\tgraphqltransportwsNextMsg           = \"next\"\n\tgraphqltransportwsCompleteMsg       = \"complete\"\n\tgraphqltransportwsPingMsg           = \"ping\"\n\tgraphqltransportwsPongMsg           = \"pong\"\n)\n\ntype operationMessage struct {\n\tPayload json.RawMessage `json:\"payload,omitempty\"`\n\tID      string          `json:\"id,omitempty\"`\n\tType    string          `json:\"type\"`\n}\n"
  },
  {
    "path": "graphql/handler.go",
    "content": "package graphql\n\nimport (\n\t\"context\"\n\t\"net/http\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n)\n\ntype (\n\tOperationMiddleware func(ctx context.Context, next OperationHandler) ResponseHandler\n\tOperationHandler    func(ctx context.Context) ResponseHandler\n\n\tResponseHandler    func(ctx context.Context) *Response\n\tResponseMiddleware func(ctx context.Context, next ResponseHandler) *Response\n\n\tResolver        func(ctx context.Context) (res any, err error)\n\tFieldMiddleware func(ctx context.Context, next Resolver) (res any, err error)\n\n\tRootResolver        func(ctx context.Context) Marshaler\n\tRootFieldMiddleware func(ctx context.Context, next RootResolver) Marshaler\n\n\tRawParams struct {\n\t\tQuery         string         `json:\"query\"`\n\t\tOperationName string         `json:\"operationName\"`\n\t\tVariables     map[string]any `json:\"variables\"`\n\t\tExtensions    map[string]any `json:\"extensions\"`\n\t\tHeaders       http.Header    `json:\"headers\"`\n\n\t\tReadTime TraceTiming `json:\"-\"`\n\t}\n\n\tGraphExecutor interface {\n\t\tCreateOperationContext(\n\t\t\tctx context.Context,\n\t\t\tparams *RawParams,\n\t\t) (*OperationContext, gqlerror.List)\n\t\tDispatchOperation(\n\t\t\tctx context.Context,\n\t\t\topCtx *OperationContext,\n\t\t) (ResponseHandler, context.Context)\n\t\tDispatchError(ctx context.Context, list gqlerror.List) *Response\n\t}\n\n\t// HandlerExtension adds functionality to the http handler. See the list of possible hook points\n\t// below Its important to understand the lifecycle of a graphql request and the terminology we\n\t// use in gqlgen\n\t// before working with these\n\t//\n\t//  +--- REQUEST   POST /graphql --------------------------------------------+\n\t//  | +- OPERATION query OpName { viewer { name } } -----------------------+ |\n\t//  | |  RESPONSE  { \"data\": { \"viewer\": { \"name\": \"bob\" } } }             | |\n\t//  | +- OPERATION subscription OpName2 { chat { message } } --------------+ |\n\t//  | |  RESPONSE  { \"data\": { \"chat\": { \"message\": \"hello\" } } }          | |\n\t//  | |  RESPONSE  { \"data\": { \"chat\": { \"message\": \"byee\" } } }           | |\n\t//  | +--------------------------------------------------------------------+ |\n\t//  +------------------------------------------------------------------------+\n\tHandlerExtension interface {\n\t\t// ExtensionName should be a CamelCase string version of the extension which may be shown in\n\t\t// stats and logging.\n\t\tExtensionName() string\n\t\t// Validate is called when adding an extension to the server, it allows validation against\n\t\t// the servers schema.\n\t\tValidate(schema ExecutableSchema) error\n\t}\n\n\t// OperationParameterMutator is called before creating a request context. allows manipulating\n\t// the raw query\n\t// on the way in.\n\tOperationParameterMutator interface {\n\t\tMutateOperationParameters(ctx context.Context, request *RawParams) *gqlerror.Error\n\t}\n\n\t// OperationContextMutator is called after creating the request context, but before executing\n\t// the root resolver.\n\tOperationContextMutator interface {\n\t\tMutateOperationContext(ctx context.Context, opCtx *OperationContext) *gqlerror.Error\n\t}\n\n\t// OperationInterceptor is called for each incoming query, for basic requests the writer will be\n\t// invoked once,\n\t// for subscriptions it will be invoked multiple times.\n\tOperationInterceptor interface {\n\t\tInterceptOperation(ctx context.Context, next OperationHandler) ResponseHandler\n\t}\n\n\t// ResponseInterceptor is called around each graphql operation response. This can be called many\n\t// times for a single\n\t// operation the case of subscriptions.\n\tResponseInterceptor interface {\n\t\tInterceptResponse(ctx context.Context, next ResponseHandler) *Response\n\t}\n\n\tRootFieldInterceptor interface {\n\t\tInterceptRootField(ctx context.Context, next RootResolver) Marshaler\n\t}\n\n\t// FieldInterceptor called around each field\n\tFieldInterceptor interface {\n\t\tInterceptField(ctx context.Context, next Resolver) (res any, err error)\n\t}\n\n\t// Transport provides support for different wire level encodings of graphql requests, eg Form,\n\t// Get, Post, Websocket\n\tTransport interface {\n\t\tSupports(r *http.Request) bool\n\t\tDo(w http.ResponseWriter, r *http.Request, exec GraphExecutor)\n\t}\n)\n\ntype Status int\n\nfunc (p *RawParams) AddUpload(upload Upload, key, path string) *gqlerror.Error {\n\tif !strings.HasPrefix(path, \"variables.\") {\n\t\treturn gqlerror.Errorf(\"invalid operations paths for key %s\", key)\n\t}\n\n\tvar ptr any = p.Variables\n\tparts := strings.Split(path, \".\")\n\n\t// skip the first part (variables) because we started there\n\tfor i, p := range parts[1:] {\n\t\tlast := i == len(parts)-2\n\t\tif ptr == nil {\n\t\t\treturn gqlerror.Errorf(\n\t\t\t\t\"path is missing \\\"variables.\\\" prefix, key: %s, path: %s\",\n\t\t\t\tkey,\n\t\t\t\tpath,\n\t\t\t)\n\t\t}\n\t\tif index, parseNbrErr := strconv.Atoi(p); parseNbrErr == nil {\n\t\t\tif last {\n\t\t\t\tptr.([]any)[index] = upload\n\t\t\t} else {\n\t\t\t\tptr = ptr.([]any)[index]\n\t\t\t}\n\t\t} else {\n\t\t\tif last {\n\t\t\t\tptr.(map[string]any)[p] = upload\n\t\t\t} else {\n\t\t\t\tptr = ptr.(map[string]any)[p]\n\t\t\t}\n\t\t}\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "graphql/handler_test.go",
    "content": "package graphql\n\nimport (\n\t\"os\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n)\n\nfunc TestAddUploadToOperations(t *testing.T) {\n\tkey := \"0\"\n\n\tt.Run(\"fail missing all variables\", func(t *testing.T) {\n\t\tfile, _ := os.Open(\"path/to/file\")\n\t\tparams := &RawParams{}\n\n\t\tupload := Upload{\n\t\t\tFile:        file,\n\t\t\tFilename:    \"a.txt\",\n\t\t\tSize:        int64(5),\n\t\t\tContentType: \"text/plain\",\n\t\t}\n\t\tpath := \"variables.req.0.file\"\n\t\terr := params.AddUpload(upload, key, path)\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t\"input: path is missing \\\"variables.\\\" prefix, key: 0, path: variables.req.0.file\",\n\t\t)\n\t})\n\n\tt.Run(\"valid variable\", func(t *testing.T) {\n\t\tfile, _ := os.Open(\"path/to/file\")\n\t\trequest := &RawParams{\n\t\t\tVariables: map[string]any{\n\t\t\t\t\"file\": nil,\n\t\t\t},\n\t\t}\n\n\t\tupload := Upload{\n\t\t\tFile:        file,\n\t\t\tFilename:    \"a.txt\",\n\t\t\tSize:        int64(5),\n\t\t\tContentType: \"text/plain\",\n\t\t}\n\n\t\texpected := &RawParams{\n\t\t\tVariables: map[string]any{\n\t\t\t\t\"file\": upload,\n\t\t\t},\n\t\t}\n\n\t\tpath := \"variables.file\"\n\t\terr := request.AddUpload(upload, key, path)\n\t\trequire.Equal(t, (*gqlerror.Error)(nil), err)\n\n\t\trequire.Equal(t, expected, request)\n\t})\n\n\tt.Run(\"valid nested variable\", func(t *testing.T) {\n\t\tfile, _ := os.Open(\"path/to/file\")\n\t\trequest := &RawParams{\n\t\t\tVariables: map[string]any{\n\t\t\t\t\"req\": []any{\n\t\t\t\t\tmap[string]any{\n\t\t\t\t\t\t\"file\": nil,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tupload := Upload{\n\t\t\tFile:        file,\n\t\t\tFilename:    \"a.txt\",\n\t\t\tSize:        int64(5),\n\t\t\tContentType: \"text/plain\",\n\t\t}\n\n\t\texpected := &RawParams{\n\t\t\tVariables: map[string]any{\n\t\t\t\t\"req\": []any{\n\t\t\t\t\tmap[string]any{\n\t\t\t\t\t\t\"file\": upload,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tpath := \"variables.req.0.file\"\n\t\terr := request.AddUpload(upload, key, path)\n\t\trequire.Equal(t, (*gqlerror.Error)(nil), err)\n\t\trequire.Equal(t, expected, request)\n\t})\n}\n"
  },
  {
    "path": "graphql/id.go",
    "content": "package graphql\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n)\n\nfunc MarshalID(s string) Marshaler {\n\treturn MarshalString(s)\n}\n\nfunc UnmarshalID(v any) (string, error) {\n\tswitch v := v.(type) {\n\tcase string:\n\t\treturn v, nil\n\tcase json.Number:\n\t\treturn string(v), nil\n\tcase int:\n\t\treturn strconv.Itoa(v), nil\n\tcase int64:\n\t\treturn strconv.FormatInt(v, 10), nil\n\tcase float64:\n\t\treturn strconv.FormatFloat(v, 'f', 6, 64), nil\n\tcase bool:\n\t\treturn strconv.FormatBool(v), nil\n\tcase nil:\n\t\treturn \"null\", nil\n\tdefault:\n\t\treturn \"\", fmt.Errorf(\"%T is not a string\", v)\n\t}\n}\n\nfunc MarshalIntID(i int) Marshaler {\n\treturn WriterFunc(func(w io.Writer) {\n\t\twriteQuotedString(w, strconv.Itoa(i))\n\t})\n}\n\nfunc UnmarshalIntID(v any) (int, error) {\n\tswitch v := v.(type) {\n\tcase string:\n\t\treturn strconv.Atoi(v)\n\tcase int:\n\t\treturn v, nil\n\tcase int64:\n\t\treturn int(v), nil\n\tcase json.Number:\n\t\treturn strconv.Atoi(string(v))\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"%T is not an int\", v)\n\t}\n}\n\nfunc MarshalUintID(i uint) Marshaler {\n\treturn WriterFunc(func(w io.Writer) {\n\t\twriteQuotedString(w, strconv.FormatUint(uint64(i), 10))\n\t})\n}\n\nfunc UnmarshalUintID(v any) (uint, error) {\n\tswitch v := v.(type) {\n\tcase string:\n\t\tresult, err := strconv.ParseUint(v, 10, 64)\n\t\treturn uint(result), err\n\tcase int:\n\t\treturn uint(v), nil\n\tcase int64:\n\t\treturn uint(v), nil\n\tcase int32:\n\t\treturn uint(v), nil\n\tcase uint32:\n\t\treturn uint(v), nil\n\tcase uint64:\n\t\treturn uint(v), nil\n\tcase json.Number:\n\t\tresult, err := strconv.ParseUint(string(v), 10, 64)\n\t\treturn uint(result), err\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"%T is not an uint\", v)\n\t}\n}\n"
  },
  {
    "path": "graphql/id_test.go",
    "content": "package graphql\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"math\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestMarshalID(t *testing.T) {\n\tmarshalID := func(s string) string {\n\t\tvar buf bytes.Buffer\n\t\tMarshalID(s).MarshalGQL(&buf)\n\t\treturn buf.String()\n\t}\n\n\tassert.Equal(t, `\"hello\"`, marshalID(\"hello\"))\n\tassert.Equal(t, `\"he\\tllo\"`, marshalID(\"he\\tllo\"))\n\tassert.Equal(t, `\"he\\tllo\"`, marshalID(\"he\tllo\"))\n\tassert.Equal(t, `\"he\\nllo\"`, marshalID(\"he\\nllo\"))\n\tassert.Equal(t, `\"he\\r\\nllo\"`, marshalID(\"he\\r\\nllo\"))\n\tassert.Equal(t, `\"he\\\\llo\"`, marshalID(`he\\llo`))\n\tassert.Equal(t, `\"quotes\\\"nested\\\"in\\\"quotes\\\"\"`, marshalID(`quotes\"nested\"in\"quotes\"`))\n\tassert.Equal(t, `\"\\u0000\"`, marshalID(\"\\u0000\"))\n\tassert.Equal(t, \"\\\"\\U000fe4ed\\\"\", marshalID(\"\\U000fe4ed\"))\n\tassert.Equal(t, \"\\\"\\\\u001B\\\"\", marshalID(\"\\u001B\"))\n}\n\nfunc TestUnmarshalID(t *testing.T) {\n\ttests := []struct {\n\t\tName        string\n\t\tInput       any\n\t\tExpected    string\n\t\tShouldError bool\n\t}{\n\t\t{\n\t\t\tName:     \"string\",\n\t\t\tInput:    \"str\",\n\t\t\tExpected: \"str\",\n\t\t},\n\t\t{\n\t\t\tName:     \"json.Number float64\",\n\t\t\tInput:    json.Number(\"1.2\"),\n\t\t\tExpected: \"1.2\",\n\t\t},\n\t\t{\n\t\t\tName:     \"int64\",\n\t\t\tInput:    int64(12),\n\t\t\tExpected: \"12\",\n\t\t},\n\t\t{\n\t\t\tName:     \"int64 max\",\n\t\t\tInput:    math.MaxInt64,\n\t\t\tExpected: \"9223372036854775807\",\n\t\t},\n\t\t{\n\t\t\tName:     \"int64 min\",\n\t\t\tInput:    math.MinInt64,\n\t\t\tExpected: \"-9223372036854775808\",\n\t\t},\n\t\t{\n\t\t\tName:     \"bool true\",\n\t\t\tInput:    true,\n\t\t\tExpected: \"true\",\n\t\t},\n\t\t{\n\t\t\tName:     \"bool false\",\n\t\t\tInput:    false,\n\t\t\tExpected: \"false\",\n\t\t},\n\t\t{\n\t\t\tName:     \"nil\",\n\t\t\tInput:    nil,\n\t\t\tExpected: \"null\",\n\t\t},\n\t\t{\n\t\t\tName:     \"float64\",\n\t\t\tInput:    1.234567,\n\t\t\tExpected: \"1.234567\",\n\t\t},\n\t\t{\n\t\t\tName:     \"float64 0\",\n\t\t\tInput:    0.0,\n\t\t\tExpected: \"0.000000\",\n\t\t},\n\t\t{\n\t\t\tName:     \"float64 loss of precision\",\n\t\t\tInput:    0.0000005,\n\t\t\tExpected: \"0.000000\",\n\t\t},\n\t\t{\n\t\t\tName:     \"float64 rounding up\",\n\t\t\tInput:    0.0000006,\n\t\t\tExpected: \"0.000001\",\n\t\t},\n\t\t{\n\t\t\tName:     \"float64 negative\",\n\t\t\tInput:    -1.234560,\n\t\t\tExpected: \"-1.234560\",\n\t\t},\n\t\t{\n\t\t\tName:     \"float64 math.Inf(0)\",\n\t\t\tInput:    math.Inf(0),\n\t\t\tExpected: \"+Inf\",\n\t\t},\n\t\t{\n\t\t\tName:     \"float64 math.Inf(-1)\",\n\t\t\tInput:    math.Inf(-1),\n\t\t\tExpected: \"-Inf\",\n\t\t},\n\t\t{\n\t\t\tName:     \"float64 -math.Inf(0)\",\n\t\t\tInput:    -math.Inf(0),\n\t\t\tExpected: \"-Inf\",\n\t\t},\n\t\t{\n\t\t\tName:        \"not a string\",\n\t\t\tInput:       struct{}{},\n\t\t\tShouldError: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.Name, func(t *testing.T) {\n\t\t\tid, err := UnmarshalID(tt.Input)\n\n\t\t\tassert.Equal(t, tt.Expected, id)\n\t\t\tif tt.ShouldError {\n\t\t\t\tassert.Error(t, err)\n\t\t\t} else {\n\t\t\t\trequire.NoError(t, err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestMarshalUintID(t *testing.T) {\n\tassert.Equal(t, `\"12\"`, m2s(MarshalUintID(12)))\n}\n\nfunc TestUnMarshalUintID(t *testing.T) {\n\tresult, err := UnmarshalUintID(\"12\")\n\tassert.Equal(t, uint(12), result)\n\trequire.NoError(t, err)\n\n\tresult, err = UnmarshalUintID(12)\n\tassert.Equal(t, uint(12), result)\n\trequire.NoError(t, err)\n\n\tresult, err = UnmarshalUintID(int64(12))\n\tassert.Equal(t, uint(12), result)\n\trequire.NoError(t, err)\n\n\tresult, err = UnmarshalUintID(int32(12))\n\tassert.Equal(t, uint(12), result)\n\trequire.NoError(t, err)\n\n\tresult, err = UnmarshalUintID(int(12))\n\tassert.Equal(t, uint(12), result)\n\trequire.NoError(t, err)\n\n\tresult, err = UnmarshalUintID(uint32(12))\n\tassert.Equal(t, uint(12), result)\n\trequire.NoError(t, err)\n\n\tresult, err = UnmarshalUintID(uint64(12))\n\tassert.Equal(t, uint(12), result)\n\trequire.NoError(t, err)\n}\n"
  },
  {
    "path": "graphql/input.go",
    "content": "package graphql\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"reflect\"\n)\n\nconst unmarshalInputCtx key = \"unmarshal_input_context\"\n\n// BuildUnmarshalerMap returns a map of unmarshal functions of the ExecutableContext\n// to use with the WithUnmarshalerMap function.\nfunc BuildUnmarshalerMap(unmarshaler ...any) map[reflect.Type]reflect.Value {\n\tmaps := make(map[reflect.Type]reflect.Value)\n\tfor _, v := range unmarshaler {\n\t\tft := reflect.TypeOf(v)\n\t\tif ft.Kind() == reflect.Func {\n\t\t\tmaps[ft.Out(0)] = reflect.ValueOf(v)\n\t\t}\n\t}\n\n\treturn maps\n}\n\n// WithUnmarshalerMap returns a new context with a map from input types to their unmarshaler\n// functions.\nfunc WithUnmarshalerMap(ctx context.Context, maps map[reflect.Type]reflect.Value) context.Context {\n\treturn context.WithValue(ctx, unmarshalInputCtx, maps)\n}\n\n// UnmarshalInputFromContext allows unmarshaling input object from a context.\nfunc UnmarshalInputFromContext(ctx context.Context, raw, v any) error {\n\tm, ok := ctx.Value(unmarshalInputCtx).(map[reflect.Type]reflect.Value)\n\tif m == nil || !ok {\n\t\treturn errors.New(\"graphql: the input context is empty\")\n\t}\n\n\trv := reflect.ValueOf(v)\n\tif rv.Kind() != reflect.Ptr || rv.IsNil() {\n\t\treturn errors.New(\"graphql: input must be a non-nil pointer\")\n\t}\n\tif fn, ok := m[rv.Elem().Type()]; ok {\n\t\tres := fn.Call([]reflect.Value{\n\t\t\treflect.ValueOf(ctx),\n\t\t\treflect.ValueOf(raw),\n\t\t})\n\t\tif err := res[1].Interface(); err != nil {\n\t\t\treturn err.(error)\n\t\t}\n\n\t\trv.Elem().Set(res[0])\n\t\treturn nil\n\t}\n\n\treturn errors.New(\"graphql: no unmarshal function found\")\n}\n"
  },
  {
    "path": "graphql/int.go",
    "content": "package graphql\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"reflect\"\n\t\"strconv\"\n)\n\nfunc MarshalInt(i int) Marshaler {\n\treturn WriterFunc(func(w io.Writer) {\n\t\t_, _ = io.WriteString(w, strconv.FormatInt(int64(i), 10))\n\t})\n}\n\nfunc UnmarshalInt(v any) (int, error) {\n\treturn interfaceToSignedNumber[int](v)\n}\n\nfunc MarshalInt8(i int8) Marshaler {\n\treturn WriterFunc(func(w io.Writer) {\n\t\t_, _ = io.WriteString(w, strconv.FormatInt(int64(i), 10))\n\t})\n}\n\nfunc UnmarshalInt8(v any) (int8, error) {\n\treturn interfaceToSignedNumber[int8](v)\n}\n\nfunc MarshalInt16(i int16) Marshaler {\n\treturn WriterFunc(func(w io.Writer) {\n\t\t_, _ = io.WriteString(w, strconv.FormatInt(int64(i), 10))\n\t})\n}\n\nfunc UnmarshalInt16(v any) (int16, error) {\n\treturn interfaceToSignedNumber[int16](v)\n}\n\nfunc MarshalInt32(i int32) Marshaler {\n\treturn WriterFunc(func(w io.Writer) {\n\t\t_, _ = io.WriteString(w, strconv.FormatInt(int64(i), 10))\n\t})\n}\n\nfunc UnmarshalInt32(v any) (int32, error) {\n\treturn interfaceToSignedNumber[int32](v)\n}\n\nfunc MarshalInt64(i int64) Marshaler {\n\treturn WriterFunc(func(w io.Writer) {\n\t\t_, _ = io.WriteString(w, strconv.FormatInt(i, 10))\n\t})\n}\n\nfunc UnmarshalInt64(v any) (int64, error) {\n\treturn interfaceToSignedNumber[int64](v)\n}\n\ntype number interface {\n\tint | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64\n}\n\nfunc interfaceToSignedNumber[N number](v any) (N, error) {\n\tswitch v := v.(type) {\n\tcase int, int8, int16, int32, int64:\n\t\treturn safeCastSignedNumber[N](reflect.ValueOf(v).Int())\n\tcase string:\n\t\tiv, err := strconv.ParseInt(v, 10, 64)\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\treturn safeCastSignedNumber[N](iv)\n\tcase json.Number:\n\t\tiv, err := strconv.ParseInt(string(v), 10, 64)\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\treturn safeCastSignedNumber[N](iv)\n\tcase nil:\n\t\treturn 0, nil\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"%T is not an %T\", v, N(0))\n\t}\n}\n\n// IntegerError is an error type that allows users to identify errors associated\n// with receiving an integer value that is not valid for the specific integer\n// type designated by the API. IntegerErrors designate otherwise valid unsigned\n// or signed 64-bit integers that are invalid in a specific context: they do not\n// designate integers that overflow 64-bit versions of the current type.\ntype IntegerError struct {\n\tMessage string\n}\n\nfunc (e IntegerError) Error() string {\n\treturn e.Message\n}\n\ntype NumberOverflowError struct {\n\tValue any\n\t*IntegerError\n}\n\ntype maxNumber interface {\n\tint64 | uint64\n}\n\nfunc newNumberOverflowError[N maxNumber](i any, bitsize int) *NumberOverflowError {\n\tswitch v := i.(type) {\n\tcase int64:\n\t\treturn &NumberOverflowError{\n\t\t\tValue: v,\n\t\t\tIntegerError: &IntegerError{\n\t\t\t\tMessage: fmt.Sprintf(\"%d overflows signed %d-bit integer\", i, bitsize),\n\t\t\t},\n\t\t}\n\tdefault:\n\t\treturn &NumberOverflowError{\n\t\t\tValue: v,\n\t\t\tIntegerError: &IntegerError{\n\t\t\t\tMessage: fmt.Sprintf(\"%d overflows unsigned %d-bit integer\", i, bitsize),\n\t\t\t},\n\t\t}\n\t}\n}\n\nfunc (e *NumberOverflowError) Unwrap() error {\n\treturn e.IntegerError\n}\n\n// safeCastSignedNumber converts an int64 to a number of type N.\nfunc safeCastSignedNumber[N number](val int64) (N, error) {\n\tvar zero N\n\tswitch any(zero).(type) {\n\tcase int8:\n\t\tif val > math.MaxInt8 || val < math.MinInt8 {\n\t\t\treturn 0, newNumberOverflowError[int64](val, 8)\n\t\t}\n\tcase int16:\n\t\tif val > math.MaxInt16 || val < math.MinInt16 {\n\t\t\treturn 0, newNumberOverflowError[int64](val, 16)\n\t\t}\n\tcase int32:\n\t\tif val > math.MaxInt32 || val < math.MinInt32 {\n\t\t\treturn 0, newNumberOverflowError[int64](val, 32)\n\t\t}\n\tcase int:\n\t\tif strconv.IntSize == 32 && (val > math.MaxInt32 || val < math.MinInt32) {\n\t\t\treturn 0, newNumberOverflowError[int64](val, 32)\n\t\t}\n\tcase int64:\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"invalid type %T\", zero)\n\t}\n\n\treturn N(val), nil\n}\n"
  },
  {
    "path": "graphql/int_test.go",
    "content": "package graphql\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"math\"\n\t\"math/rand/v2\"\n\t\"strconv\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nconst LENGTH = 1000\n\nfunc TestInt8(t *testing.T) {\n\tt.Run(\"marshal\", func(t *testing.T) {\n\t\tassert.Equal(t, \"123\", m2s(MarshalInt8(123)))\n\t})\n\n\tt.Run(\"unmarshal\", func(t *testing.T) {\n\t\tassert.Equal(t, int8(0), mustUnmarshalInt8(t, nil))\n\t\tassert.Equal(t, int8(123), mustUnmarshalInt8(t, 123))\n\t\tassert.Equal(t, int8(123), mustUnmarshalInt8(t, int64(123)))\n\t\tassert.Equal(t, int8(123), mustUnmarshalInt8(t, json.Number(\"123\")))\n\t\tassert.Equal(t, int8(123), mustUnmarshalInt8(t, \"123\"))\n\t\tassert.Equal(t, int8(0), mustUnmarshalInt8(t, nil))\n\t})\n\n\tt.Run(\"overflow\", func(t *testing.T) {\n\t\tcases := []struct {\n\t\t\tname string\n\t\t\tv    any\n\t\t\terr  string\n\t\t}{\n\t\t\t{\"positive int overflow\", math.MaxInt8 + 1, \"128 overflows signed 8-bit integer\"},\n\t\t\t{\"negative int overflow\", math.MinInt8 - 1, \"-129 overflows signed 8-bit integer\"},\n\t\t\t{\n\t\t\t\t\"positive int64 overflow\",\n\t\t\t\tint64(math.MaxInt8 + 1),\n\t\t\t\t\"128 overflows signed 8-bit integer\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"negative int64 overflow\",\n\t\t\t\tint64(math.MinInt8 - 1),\n\t\t\t\t\"-129 overflows signed 8-bit integer\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"positive json.Number overflow\",\n\t\t\t\tjson.Number(\"128\"),\n\t\t\t\t\"128 overflows signed 8-bit integer\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"negative json.Number overflow\",\n\t\t\t\tjson.Number(\"-129\"),\n\t\t\t\t\"-129 overflows signed 8-bit integer\",\n\t\t\t},\n\t\t\t{\"positive string overflow\", \"128\", \"128 overflows signed 8-bit integer\"},\n\t\t\t{\"negative string overflow\", \"-129\", \"-129 overflows signed 8-bit integer\"},\n\t\t}\n\t\tfor _, tc := range cases {\n\t\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t\tvar numberOverflowErr *NumberOverflowError\n\t\t\t\tvar intErr *IntegerError\n\n\t\t\t\tres, err := UnmarshalInt8(tc.v)\n\t\t\t\trequire.EqualError(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\ttc.err,\n\t\t\t\t)\n\t\t\t\trequire.ErrorAs(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\t&numberOverflowErr,\n\t\t\t\t)\n\t\t\t\trequire.ErrorAs(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\t&intErr,\n\t\t\t\t)\n\t\t\t\tassert.Equal(t, int8(0), res)\n\t\t\t})\n\t\t}\n\t})\n\n\tt.Run(\"invalid string numbers are not integer errors\", func(t *testing.T) {\n\t\tvar intErr *IntegerError\n\n\t\tres, err := UnmarshalInt8(\"-1.03\")\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t\"strconv.ParseInt: parsing \\\"-1.03\\\": invalid syntax\",\n\t\t)\n\t\tassert.NotErrorAs(t, err, &intErr)\n\t\tassert.Equal(t, int8(0), res)\n\n\t\tres, err = UnmarshalInt8(json.Number(\" 1\"))\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t\"strconv.ParseInt: parsing \\\" 1\\\": invalid syntax\",\n\t\t)\n\t\tassert.NotErrorAs(t, err, &intErr)\n\t\tassert.Equal(t, int8(0), res)\n\t})\n}\n\nfunc mustUnmarshalInt8(t *testing.T, v any) int8 {\n\tt.Helper()\n\tres, err := UnmarshalInt8(v)\n\trequire.NoError(t, err)\n\treturn res\n}\n\nfunc TestInt16(t *testing.T) {\n\tt.Run(\"marshal\", func(t *testing.T) {\n\t\tassert.Equal(t, \"123\", m2s(MarshalInt16(123)))\n\t})\n\n\tt.Run(\"unmarshal\", func(t *testing.T) {\n\t\tassert.Equal(t, int16(0), mustUnmarshalInt16(t, nil))\n\t\tassert.Equal(t, int16(123), mustUnmarshalInt16(t, 123))\n\t\tassert.Equal(t, int16(123), mustUnmarshalInt16(t, int64(123)))\n\t\tassert.Equal(t, int16(123), mustUnmarshalInt16(t, json.Number(\"123\")))\n\t\tassert.Equal(t, int16(123), mustUnmarshalInt16(t, \"123\"))\n\t\tassert.Equal(t, int16(0), mustUnmarshalInt16(t, nil))\n\t})\n\n\tt.Run(\"overflow\", func(t *testing.T) {\n\t\tcases := []struct {\n\t\t\tname string\n\t\t\tv    any\n\t\t\terr  string\n\t\t}{\n\t\t\t{\"positive int overflow\", math.MaxInt16 + 1, \"32768 overflows signed 16-bit integer\"},\n\t\t\t{\"negative int overflow\", math.MinInt16 - 1, \"-32769 overflows signed 16-bit integer\"},\n\t\t\t{\n\t\t\t\t\"positive int64 overflow\",\n\t\t\t\tint64(math.MaxInt16 + 1),\n\t\t\t\t\"32768 overflows signed 16-bit integer\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"negative int64 overflow\",\n\t\t\t\tint64(math.MinInt16 - 1),\n\t\t\t\t\"-32769 overflows signed 16-bit integer\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"positive json.Number overflow\",\n\t\t\t\tjson.Number(\"32768\"),\n\t\t\t\t\"32768 overflows signed 16-bit integer\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"negative json.Number overflow\",\n\t\t\t\tjson.Number(\"-32769\"),\n\t\t\t\t\"-32769 overflows signed 16-bit integer\",\n\t\t\t},\n\t\t\t{\"positive string overflow\", \"32768\", \"32768 overflows signed 16-bit integer\"},\n\t\t\t{\"negative string overflow\", \"-32769\", \"-32769 overflows signed 16-bit integer\"},\n\t\t}\n\t\tfor _, tc := range cases {\n\t\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t\tvar numberOverflowErr *NumberOverflowError\n\t\t\t\tvar intErr *IntegerError\n\n\t\t\t\tres, err := UnmarshalInt16(tc.v)\n\t\t\t\trequire.EqualError(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\ttc.err,\n\t\t\t\t)\n\t\t\t\trequire.ErrorAs(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\t&numberOverflowErr,\n\t\t\t\t)\n\t\t\t\trequire.ErrorAs(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\t&intErr,\n\t\t\t\t)\n\t\t\t\tassert.Equal(t, int16(0), res)\n\t\t\t})\n\t\t}\n\t})\n\n\tt.Run(\"invalid string numbers are not integer errors\", func(t *testing.T) {\n\t\tvar intErr *IntegerError\n\n\t\tres, err := UnmarshalInt16(\"-1.03\")\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t\"strconv.ParseInt: parsing \\\"-1.03\\\": invalid syntax\",\n\t\t)\n\t\tassert.NotErrorAs(t, err, &intErr)\n\t\tassert.Equal(t, int16(0), res)\n\n\t\tres, err = UnmarshalInt16(json.Number(\" 1\"))\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t\"strconv.ParseInt: parsing \\\" 1\\\": invalid syntax\",\n\t\t)\n\t\tassert.NotErrorAs(t, err, &intErr)\n\t\tassert.Equal(t, int16(0), res)\n\t})\n}\n\nfunc mustUnmarshalInt16(t *testing.T, v any) int16 {\n\tt.Helper()\n\tres, err := UnmarshalInt16(v)\n\trequire.NoError(t, err)\n\treturn res\n}\n\nfunc TestInt(t *testing.T) {\n\tt.Run(\"marshal\", func(t *testing.T) {\n\t\tassert.Equal(t, \"123\", m2s(MarshalInt(123)))\n\t})\n\n\tt.Run(\"unmarshal\", func(t *testing.T) {\n\t\tassert.Equal(t, 0, mustUnmarshalInt(t, nil))\n\t\tassert.Equal(t, 123, mustUnmarshalInt(t, 123))\n\t\tassert.Equal(t, 123, mustUnmarshalInt(t, int64(123)))\n\t\tassert.Equal(t, 123, mustUnmarshalInt(t, json.Number(\"123\")))\n\t\tassert.Equal(t, 123, mustUnmarshalInt(t, \"123\"))\n\t\tassert.Equal(t, 0, mustUnmarshalInt(t, nil))\n\t})\n}\n\nfunc mustUnmarshalInt(t *testing.T, v any) int {\n\tt.Helper()\n\tres, err := UnmarshalInt(v)\n\trequire.NoError(t, err)\n\treturn res\n}\n\nfunc TestInt32(t *testing.T) {\n\tt.Run(\"marshal\", func(t *testing.T) {\n\t\tassert.Equal(t, \"123\", m2s(MarshalInt32(123)))\n\t})\n\n\tt.Run(\"unmarshal\", func(t *testing.T) {\n\t\tassert.Equal(t, int32(0), mustUnmarshalInt32(t, nil))\n\t\tassert.Equal(t, int32(123), mustUnmarshalInt32(t, 123))\n\t\tassert.Equal(t, int32(123), mustUnmarshalInt32(t, int64(123)))\n\t\tassert.Equal(t, int32(123), mustUnmarshalInt32(t, json.Number(\"123\")))\n\t\tassert.Equal(t, int32(123), mustUnmarshalInt32(t, \"123\"))\n\t\tassert.Equal(t, int32(0), mustUnmarshalInt32(t, nil))\n\t})\n\n\tt.Run(\"overflow\", func(t *testing.T) {\n\t\tcases := []struct {\n\t\t\tname string\n\t\t\tv    any\n\t\t\terr  string\n\t\t}{\n\t\t\t{\n\t\t\t\t\"positive int overflow\",\n\t\t\t\tmath.MaxInt32 + 1,\n\t\t\t\t\"2147483648 overflows signed 32-bit integer\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"negative int overflow\",\n\t\t\t\tmath.MinInt32 - 1,\n\t\t\t\t\"-2147483649 overflows signed 32-bit integer\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"positive int64 overflow\",\n\t\t\t\tint64(math.MaxInt32 + 1),\n\t\t\t\t\"2147483648 overflows signed 32-bit integer\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"negative int64 overflow\",\n\t\t\t\tint64(math.MinInt32 - 1),\n\t\t\t\t\"-2147483649 overflows signed 32-bit integer\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"positive json.Number overflow\",\n\t\t\t\tjson.Number(\"2147483648\"),\n\t\t\t\t\"2147483648 overflows signed 32-bit integer\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"negative json.Number overflow\",\n\t\t\t\tjson.Number(\"-2147483649\"),\n\t\t\t\t\"-2147483649 overflows signed 32-bit integer\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"positive string overflow\",\n\t\t\t\t\"2147483648\",\n\t\t\t\t\"2147483648 overflows signed 32-bit integer\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"negative string overflow\",\n\t\t\t\t\"-2147483649\",\n\t\t\t\t\"-2147483649 overflows signed 32-bit integer\",\n\t\t\t},\n\t\t}\n\t\tfor _, tc := range cases {\n\t\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t\tvar numberOverflowErr *NumberOverflowError\n\t\t\t\tvar intErr *IntegerError\n\n\t\t\t\tres, err := UnmarshalInt32(tc.v)\n\t\t\t\trequire.EqualError(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\ttc.err,\n\t\t\t\t)\n\t\t\t\trequire.ErrorAs(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\t&numberOverflowErr,\n\t\t\t\t)\n\t\t\t\trequire.ErrorAs(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\t&intErr,\n\t\t\t\t)\n\t\t\t\tassert.Equal(t, int32(0), res)\n\t\t\t})\n\t\t}\n\t})\n\n\tt.Run(\"invalid string numbers are not integer errors\", func(t *testing.T) {\n\t\tvar intErr *IntegerError\n\n\t\tres, err := UnmarshalInt32(\"-1.03\")\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t\"strconv.ParseInt: parsing \\\"-1.03\\\": invalid syntax\",\n\t\t)\n\t\tassert.NotErrorAs(t, err, &intErr)\n\t\tassert.Equal(t, int32(0), res)\n\n\t\tres, err = UnmarshalInt32(json.Number(\" 1\"))\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t\"strconv.ParseInt: parsing \\\" 1\\\": invalid syntax\",\n\t\t)\n\t\tassert.NotErrorAs(t, err, &intErr)\n\t\tassert.Equal(t, int32(0), res)\n\t})\n}\n\nfunc mustUnmarshalInt32(t *testing.T, v any) int32 {\n\tt.Helper()\n\tres, err := UnmarshalInt32(v)\n\trequire.NoError(t, err)\n\treturn res\n}\n\nfunc TestInt64(t *testing.T) {\n\tt.Run(\"marshal\", func(t *testing.T) {\n\t\tassert.Equal(t, \"123\", m2s(MarshalInt64(123)))\n\t})\n\n\tt.Run(\"unmarshal\", func(t *testing.T) {\n\t\tassert.Equal(t, int64(0), mustUnmarshalInt64(t, nil))\n\t\tassert.Equal(t, int64(123), mustUnmarshalInt64(t, 123))\n\t\tassert.Equal(t, int64(123), mustUnmarshalInt64(t, int64(123)))\n\t\tassert.Equal(t, int64(123), mustUnmarshalInt64(t, json.Number(\"123\")))\n\t\tassert.Equal(t, int64(123), mustUnmarshalInt64(t, \"123\"))\n\t\tassert.Equal(t, int64(0), mustUnmarshalInt64(t, nil))\n\t})\n}\n\nfunc mustUnmarshalInt64(t *testing.T, v any) int64 {\n\tt.Helper()\n\tres, err := UnmarshalInt64(v)\n\trequire.NoError(t, err)\n\treturn res\n}\n\nfunc beforeUnmarshalInt(v any) (int, error) {\n\tswitch v := v.(type) {\n\tcase string:\n\t\treturn strconv.Atoi(v)\n\tcase int:\n\t\treturn v, nil\n\tcase int64:\n\t\treturn int(v), nil\n\tcase json.Number:\n\t\treturn strconv.Atoi(string(v))\n\tcase nil:\n\t\treturn 0, nil\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"%T is not an int\", v)\n\t}\n}\n\nfunc BenchmarkUnmarshalIntInitial(b *testing.B) {\n\tnumbers := makeRandomNumberSlice(true)\n\n\tfor b.Loop() {\n\t\tfor i := range numbers {\n\t\t\t_, _ = beforeUnmarshalInt(numbers[i])\n\t\t}\n\t}\n}\n\nfunc BenchmarkUnmarshalIntNew(b *testing.B) {\n\tnumbers := makeRandomNumberSlice(true)\n\n\tfor b.Loop() {\n\t\tfor i := range numbers {\n\t\t\t_, _ = UnmarshalInt(numbers[i])\n\t\t}\n\t}\n}\n\nfunc makeRandomNumberSlice(signed bool) []any {\n\tnumbers := make([]any, LENGTH)\n\tfor i := range numbers {\n\t\tnumbers[i] = randomNumber(signed)\n\t}\n\treturn numbers\n}\n\nfunc randomNumber(signed bool) any {\n\tswitch rand.UintN(4) {\n\tcase 0:\n\t\tswitch signed {\n\t\tcase true:\n\t\t\treturn rand.Int()\n\t\tcase false:\n\t\t\treturn rand.Uint()\n\t\t}\n\tcase 1:\n\t\tswitch signed {\n\t\tcase true:\n\t\t\treturn rand.Int64()\n\t\tcase false:\n\t\t\treturn rand.Uint64()\n\t\t}\n\tcase 2:\n\t\tswitch signed {\n\t\tcase true:\n\t\t\treturn json.Number(strconv.FormatInt(rand.Int64(), 10))\n\t\tcase false:\n\t\t\treturn json.Number(strconv.FormatUint(rand.Uint64(), 10))\n\t\t}\n\tcase 3:\n\t\tswitch signed {\n\t\tcase true:\n\t\t\treturn strconv.FormatInt(rand.Int64(), 10)\n\t\tcase false:\n\t\t\treturn strconv.FormatUint(rand.Uint64(), 10)\n\t\t}\n\t}\n\tpanic(\"unreachable\")\n}\n"
  },
  {
    "path": "graphql/introspection/introspection.go",
    "content": "// introspection implements the spec defined in\n// https://github.com/facebook/graphql/blob/master/spec/Section%204%20--%20Introspection.md#schema-introspection\npackage introspection\n\nimport (\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\ntype (\n\tDirective struct {\n\t\tName         string\n\t\tdescription  string\n\t\tLocations    []string\n\t\tArgs         []InputValue\n\t\tIsRepeatable bool\n\t}\n\n\tEnumValue struct {\n\t\tName        string\n\t\tdescription string\n\t\tdeprecation *ast.Directive\n\t}\n\n\tField struct {\n\t\tName        string\n\t\tdescription string\n\t\tType        *Type\n\t\tArgs        []InputValue\n\t\tdeprecation *ast.Directive\n\t}\n\n\tInputValue struct {\n\t\tName         string\n\t\tdescription  string\n\t\tDefaultValue *string\n\t\tType         *Type\n\t\tdeprecation  *ast.Directive\n\t}\n)\n\nfunc WrapSchema(schema *ast.Schema) *Schema {\n\treturn &Schema{schema: schema}\n}\n\nfunc (f *EnumValue) Description() *string {\n\tif f.description == \"\" {\n\t\treturn nil\n\t}\n\treturn &f.description\n}\n\nfunc (f *EnumValue) IsDeprecated() bool {\n\treturn f.deprecation != nil\n}\n\nfunc (f *EnumValue) DeprecationReason() *string {\n\tif f.deprecation == nil {\n\t\treturn nil\n\t}\n\n\treason := f.deprecation.Arguments.ForName(\"reason\")\n\tif reason == nil {\n\t\treturn nil\n\t}\n\n\treturn &reason.Value.Raw\n}\n\nfunc (f *Field) Description() *string {\n\tif f.description == \"\" {\n\t\treturn nil\n\t}\n\treturn &f.description\n}\n\nfunc (f *Field) IsDeprecated() bool {\n\treturn f.deprecation != nil\n}\n\nfunc (f *Field) DeprecationReason() *string {\n\tif f.deprecation == nil || !f.IsDeprecated() {\n\t\treturn nil\n\t}\n\n\treason := f.deprecation.Arguments.ForName(\"reason\")\n\n\tif reason == nil {\n\t\tdefaultReason := \"No longer supported\"\n\t\treturn &defaultReason\n\t}\n\n\treturn &reason.Value.Raw\n}\n\nfunc (f *InputValue) IsDeprecated() bool {\n\treturn f.deprecation != nil\n}\n\nfunc (f *InputValue) DeprecationReason() *string {\n\tif f.deprecation == nil {\n\t\treturn nil\n\t}\n\n\treason := f.deprecation.Arguments.ForName(\"reason\")\n\tif reason == nil {\n\t\treturn nil\n\t}\n\n\treturn &reason.Value.Raw\n}\n\nfunc (f *InputValue) Description() *string {\n\tif f.description == \"\" {\n\t\treturn nil\n\t}\n\treturn &f.description\n}\n\nfunc (f *Directive) Description() *string {\n\tif f.description == \"\" {\n\t\treturn nil\n\t}\n\treturn &f.description\n}\n"
  },
  {
    "path": "graphql/introspection/query.go",
    "content": "package introspection\n\n// Query is the query generated by graphiql to determine type information\nconst Query = `\nquery IntrospectionQuery {\n  __schema {\n    description\n    queryType {\n      name\n    }\n    mutationType {\n      name\n    }\n    subscriptionType {\n      name\n    }\n    types {\n      ...FullType\n    }\n    directives {\n      name\n      description\n      locations\n      args {\n        ...InputValue\n      }\n    }\n  }\n}\n\nfragment FullType on __Type {\n  kind\n  name\n  description\n  specifiedByURL\n  fields(includeDeprecated: true) {\n    name\n    description\n    args {\n      ...InputValue\n    }\n    type {\n      ...TypeRef\n    }\n    isDeprecated\n    deprecationReason\n  }\n  inputFields {\n    ...InputValue\n  }\n  interfaces {\n    ...TypeRef\n  }\n  enumValues(includeDeprecated: true) {\n    name\n    description\n    isDeprecated\n    deprecationReason\n  }\n  possibleTypes {\n    ...TypeRef\n  }\n}\n\nfragment InputValue on __InputValue {\n  name\n  description\n  type {\n    ...TypeRef\n  }\n  defaultValue\n}\n\nfragment TypeRef on __Type {\n  kind\n  name\n  ofType {\n    kind\n    name\n    ofType {\n      kind\n      name\n      ofType {\n        kind\n        name\n        ofType {\n          kind\n          name\n          ofType {\n            kind\n            name\n            ofType {\n              kind\n              name\n              ofType {\n                kind\n                name\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n`\n"
  },
  {
    "path": "graphql/introspection/schema.go",
    "content": "package introspection\n\nimport (\n\t\"sort\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\ntype Schema struct {\n\tschema *ast.Schema\n}\n\nfunc (s *Schema) Description() *string {\n\tif s.schema.Description == \"\" {\n\t\treturn nil\n\t}\n\treturn &s.schema.Description\n}\n\nfunc (s *Schema) Types() []Type {\n\ttypeIndex := map[string]Type{}\n\ttypeNames := make([]string, 0, len(s.schema.Types))\n\tfor _, typ := range s.schema.Types {\n\t\ttypeNames = append(typeNames, typ.Name)\n\t\ttypeIndex[typ.Name] = *WrapTypeFromDef(s.schema, typ)\n\t}\n\tsort.Strings(typeNames)\n\n\ttypes := make([]Type, len(typeNames))\n\tfor i, t := range typeNames {\n\t\ttypes[i] = typeIndex[t]\n\t}\n\treturn types\n}\n\nfunc (s *Schema) QueryType() *Type {\n\treturn WrapTypeFromDef(s.schema, s.schema.Query)\n}\n\nfunc (s *Schema) MutationType() *Type {\n\treturn WrapTypeFromDef(s.schema, s.schema.Mutation)\n}\n\nfunc (s *Schema) SubscriptionType() *Type {\n\treturn WrapTypeFromDef(s.schema, s.schema.Subscription)\n}\n\nfunc (s *Schema) Directives() []Directive {\n\tdIndex := map[string]Directive{}\n\tdNames := make([]string, 0, len(s.schema.Directives))\n\n\tfor _, d := range s.schema.Directives {\n\t\tdNames = append(dNames, d.Name)\n\t\tdIndex[d.Name] = s.directiveFromDef(d)\n\t}\n\tsort.Strings(dNames)\n\n\tres := make([]Directive, len(dNames))\n\tfor i, d := range dNames {\n\t\tres[i] = dIndex[d]\n\t}\n\n\treturn res\n}\n\nfunc (s *Schema) directiveFromDef(d *ast.DirectiveDefinition) Directive {\n\tlocs := make([]string, len(d.Locations))\n\tfor i, loc := range d.Locations {\n\t\tlocs[i] = string(loc)\n\t}\n\n\targs := make([]InputValue, len(d.Arguments))\n\tfor i, arg := range d.Arguments {\n\t\targs[i] = InputValue{\n\t\t\tName:         arg.Name,\n\t\t\tdescription:  arg.Description,\n\t\t\tDefaultValue: defaultValue(arg.DefaultValue),\n\t\t\tType:         WrapTypeFromType(s.schema, arg.Type),\n\t\t}\n\t}\n\n\treturn Directive{\n\t\tName:         d.Name,\n\t\tdescription:  d.Description,\n\t\tLocations:    locs,\n\t\tArgs:         args,\n\t\tIsRepeatable: d.IsRepeatable,\n\t}\n}\n"
  },
  {
    "path": "graphql/introspection/schema_test.go",
    "content": "package introspection\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\nfunc TestSchema(t *testing.T) {\n\tquery := &ast.Definition{\n\t\tName: \"Query\",\n\t\tKind: ast.Object,\n\t}\n\n\tmutation := &ast.Definition{\n\t\tName: \"Mutation\",\n\t\tKind: ast.Object,\n\t}\n\n\tsubscription := &ast.Definition{\n\t\tName: \"Subscription\",\n\t\tKind: ast.Object,\n\t}\n\n\tdirective := &ast.Definition{\n\t\tName: \"__Directive\",\n\t\tKind: ast.Object,\n\t}\n\n\tschema := &Schema{\n\t\tschema: &ast.Schema{\n\t\t\tQuery:        query,\n\t\t\tMutation:     mutation,\n\t\t\tSubscription: subscription,\n\t\t\tTypes: map[string]*ast.Definition{\n\t\t\t\t\"Query\":       query,\n\t\t\t\t\"Mutation\":    mutation,\n\t\t\t\t\"__Directive\": directive,\n\t\t\t},\n\t\t\tDescription: \"test description\",\n\t\t},\n\t}\n\n\tt.Run(\"description\", func(t *testing.T) {\n\t\trequire.EqualValues(t, \"test description\", *schema.Description())\n\t})\n\n\tt.Run(\"query type\", func(t *testing.T) {\n\t\trequire.Equal(t, \"Query\", *schema.QueryType().Name())\n\t})\n\n\tt.Run(\"mutation type\", func(t *testing.T) {\n\t\trequire.Equal(t, \"Mutation\", *schema.MutationType().Name())\n\t})\n\n\tt.Run(\"subscription type\", func(t *testing.T) {\n\t\trequire.Equal(t, \"Subscription\", *schema.SubscriptionType().Name())\n\t})\n\n\tt.Run(\"types\", func(t *testing.T) {\n\t\ttypes := schema.Types()\n\t\trequire.Len(t, types, 3)\n\t\trequire.Equal(t, \"Mutation\", *types[0].Name())\n\t\trequire.Equal(t, \"Query\", *types[1].Name())\n\t\trequire.Equal(t, \"__Directive\", *types[2].Name())\n\t})\n}\n"
  },
  {
    "path": "graphql/introspection/type.go",
    "content": "package introspection\n\nimport (\n\t\"strings\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\ntype Type struct {\n\tschema *ast.Schema\n\tdef    *ast.Definition\n\ttyp    *ast.Type\n}\n\nfunc WrapTypeFromDef(s *ast.Schema, def *ast.Definition) *Type {\n\tif def == nil {\n\t\treturn nil\n\t}\n\treturn &Type{schema: s, def: def}\n}\n\nfunc WrapTypeFromType(s *ast.Schema, typ *ast.Type) *Type {\n\tif typ == nil {\n\t\treturn nil\n\t}\n\n\tif !typ.NonNull && typ.NamedType != \"\" {\n\t\treturn &Type{schema: s, def: s.Types[typ.NamedType]}\n\t}\n\treturn &Type{schema: s, typ: typ}\n}\n\nfunc (t *Type) Kind() string {\n\tif t.typ != nil {\n\t\tif t.typ.NonNull {\n\t\t\treturn \"NON_NULL\"\n\t\t}\n\n\t\tif t.typ.Elem != nil {\n\t\t\treturn \"LIST\"\n\t\t}\n\t} else {\n\t\treturn string(t.def.Kind)\n\t}\n\n\tpanic(\"UNKNOWN\")\n}\n\nfunc (t *Type) Name() *string {\n\tif t.def == nil {\n\t\treturn nil\n\t}\n\treturn &t.def.Name\n}\n\nfunc (t *Type) Description() *string {\n\tif t.def == nil || t.def.Description == \"\" {\n\t\treturn nil\n\t}\n\treturn &t.def.Description\n}\n\nfunc (t *Type) Fields(includeDeprecated bool) []Field {\n\tif t.def == nil || (t.def.Kind != ast.Object && t.def.Kind != ast.Interface) {\n\t\treturn []Field{}\n\t}\n\tfields := []Field{}\n\tfor _, f := range t.def.Fields {\n\t\tif strings.HasPrefix(f.Name, \"__\") {\n\t\t\tcontinue\n\t\t}\n\n\t\tif !includeDeprecated && f.Directives.ForName(\"deprecated\") != nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tvar args []InputValue\n\t\tfor _, arg := range f.Arguments {\n\t\t\targs = append(args, InputValue{\n\t\t\t\tType:         WrapTypeFromType(t.schema, arg.Type),\n\t\t\t\tName:         arg.Name,\n\t\t\t\tdescription:  arg.Description,\n\t\t\t\tDefaultValue: defaultValue(arg.DefaultValue),\n\t\t\t\tdeprecation:  arg.Directives.ForName(\"deprecated\"),\n\t\t\t})\n\t\t}\n\n\t\tfields = append(fields, Field{\n\t\t\tName:        f.Name,\n\t\t\tdescription: f.Description,\n\t\t\tArgs:        args,\n\t\t\tType:        WrapTypeFromType(t.schema, f.Type),\n\t\t\tdeprecation: f.Directives.ForName(\"deprecated\"),\n\t\t})\n\t}\n\treturn fields\n}\n\nfunc (t *Type) InputFields() []InputValue {\n\tif t.def == nil || t.def.Kind != ast.InputObject {\n\t\treturn []InputValue{}\n\t}\n\n\tres := []InputValue{}\n\tfor _, f := range t.def.Fields {\n\t\tres = append(res, InputValue{\n\t\t\tName:         f.Name,\n\t\t\tdescription:  f.Description,\n\t\t\tType:         WrapTypeFromType(t.schema, f.Type),\n\t\t\tDefaultValue: defaultValue(f.DefaultValue),\n\t\t\tdeprecation:  f.Directives.ForName(\"deprecated\"),\n\t\t})\n\t}\n\treturn res\n}\n\nfunc defaultValue(value *ast.Value) *string {\n\tif value == nil {\n\t\treturn nil\n\t}\n\tval := value.String()\n\treturn &val\n}\n\nfunc (t *Type) Interfaces() []Type {\n\tif t.def == nil || (t.def.Kind != ast.Object && t.def.Kind != ast.Interface) {\n\t\treturn []Type{}\n\t}\n\n\tres := []Type{}\n\tfor _, intf := range t.def.Interfaces {\n\t\tres = append(res, *WrapTypeFromDef(t.schema, t.schema.Types[intf]))\n\t}\n\n\treturn res\n}\n\nfunc (t *Type) PossibleTypes() []Type {\n\tif t.def == nil || (t.def.Kind != ast.Interface && t.def.Kind != ast.Union) {\n\t\treturn []Type{}\n\t}\n\n\tres := []Type{}\n\tfor _, pt := range t.schema.GetPossibleTypes(t.def) {\n\t\tres = append(res, *WrapTypeFromDef(t.schema, pt))\n\t}\n\treturn res\n}\n\nfunc (t *Type) EnumValues(includeDeprecated bool) []EnumValue {\n\tif t.def == nil || t.def.Kind != ast.Enum {\n\t\treturn []EnumValue{}\n\t}\n\n\tres := []EnumValue{}\n\tfor _, val := range t.def.EnumValues {\n\t\tif !includeDeprecated && val.Directives.ForName(\"deprecated\") != nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tres = append(res, EnumValue{\n\t\t\tName:        val.Name,\n\t\t\tdescription: val.Description,\n\t\t\tdeprecation: val.Directives.ForName(\"deprecated\"),\n\t\t})\n\t}\n\treturn res\n}\n\nfunc (t *Type) OfType() *Type {\n\tif t.typ == nil {\n\t\treturn nil\n\t}\n\tif t.typ.NonNull {\n\t\t// fake non null nodes\n\t\tcpy := *t.typ\n\t\tcpy.NonNull = false\n\n\t\treturn WrapTypeFromType(t.schema, &cpy)\n\t}\n\treturn WrapTypeFromType(t.schema, t.typ.Elem)\n}\n\nfunc (t *Type) SpecifiedByURL() *string {\n\tif t.def == nil {\n\t\treturn nil\n\t}\n\tdirective := t.def.Directives.ForName(\"specifiedBy\")\n\tif t.def.Kind != ast.Scalar || directive == nil {\n\t\treturn nil\n\t}\n\t// def: directive @specifiedBy(url: String!) on SCALAR\n\t// the argument \"url\" is required.\n\turl := directive.Arguments.ForName(\"url\")\n\treturn &url.Value.Raw\n}\n\nfunc (t *Type) IsOneOf() bool {\n\tif t.def == nil {\n\t\treturn false\n\t}\n\tdirective := t.def.Directives.ForName(\"oneOf\")\n\tif t.def.Kind != ast.InputObject || directive == nil {\n\t\treturn false\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "graphql/introspection/type_test.go",
    "content": "package introspection\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\nfunc TestType(t *testing.T) {\n\tschemaType := Type{\n\t\tdef: &ast.Definition{\n\t\t\tName:        \"Query\",\n\t\t\tDescription: \"test description\",\n\t\t\tFields: ast.FieldList{\n\t\t\t\t&ast.FieldDefinition{Name: \"__schema\"},\n\t\t\t\t&ast.FieldDefinition{Name: \"test\"},\n\t\t\t\t&ast.FieldDefinition{Name: \"deprecated\", Directives: ast.DirectiveList{\n\t\t\t\t\t&ast.Directive{Name: \"deprecated\"},\n\t\t\t\t}},\n\t\t\t},\n\t\t\tKind: ast.Object,\n\t\t},\n\t}\n\n\tt.Run(\"name\", func(t *testing.T) {\n\t\trequire.Equal(t, \"Query\", *schemaType.Name())\n\t})\n\n\tt.Run(\"description\", func(t *testing.T) {\n\t\trequire.Equal(t, \"test description\", *schemaType.Description())\n\t})\n\n\tt.Run(\"fields\", func(t *testing.T) {\n\t\tfields := schemaType.Fields(false)\n\t\trequire.Len(t, fields, 1)\n\t\trequire.Equal(t, \"test\", fields[0].Name)\n\t})\n\n\tt.Run(\"fields includeDeprecated\", func(t *testing.T) {\n\t\tfields := schemaType.Fields(true)\n\t\trequire.Len(t, fields, 2)\n\t\trequire.Equal(t, \"test\", fields[0].Name)\n\t\trequire.Equal(t, \"deprecated\", fields[1].Name)\n\t})\n}\n"
  },
  {
    "path": "graphql/jsonw.go",
    "content": "package graphql\n\nimport (\n\t\"context\"\n\t\"io\"\n)\n\nvar (\n\tnullLit      = []byte(`null`)\n\ttrueLit      = []byte(`true`)\n\tfalseLit     = []byte(`false`)\n\topenBrace    = []byte(`{`)\n\tcloseBrace   = []byte(`}`)\n\topenBracket  = []byte(`[`)\n\tcloseBracket = []byte(`]`)\n\tcolon        = []byte(`:`)\n\tcomma        = []byte(`,`)\n)\n\nvar (\n\tNull  = &lit{nullLit}\n\tTrue  = &lit{trueLit}\n\tFalse = &lit{falseLit}\n)\n\ntype Marshaler interface {\n\tMarshalGQL(w io.Writer)\n}\n\ntype Unmarshaler interface {\n\tUnmarshalGQL(v any) error\n}\n\ntype ContextMarshaler interface {\n\tMarshalGQLContext(ctx context.Context, w io.Writer) error\n}\n\ntype ContextUnmarshaler interface {\n\tUnmarshalGQLContext(ctx context.Context, v any) error\n}\n\ntype contextMarshalerAdapter struct {\n\tContext context.Context\n\tContextMarshaler\n}\n\nfunc WrapContextMarshaler(ctx context.Context, m ContextMarshaler) Marshaler {\n\treturn contextMarshalerAdapter{Context: ctx, ContextMarshaler: m}\n}\n\nfunc (a contextMarshalerAdapter) MarshalGQL(w io.Writer) {\n\terr := a.MarshalGQLContext(a.Context, w)\n\tif err != nil {\n\t\tAddError(a.Context, err)\n\t\tNull.MarshalGQL(w)\n\t}\n}\n\ntype WriterFunc func(writer io.Writer)\n\nfunc (f WriterFunc) MarshalGQL(w io.Writer) {\n\tf(w)\n}\n\ntype ContextWriterFunc func(ctx context.Context, writer io.Writer) error\n\nfunc (f ContextWriterFunc) MarshalGQLContext(ctx context.Context, w io.Writer) error {\n\treturn f(ctx, w)\n}\n\ntype Array []Marshaler\n\nfunc (a Array) MarshalGQL(writer io.Writer) {\n\twriter.Write(openBracket)\n\tfor i, val := range a {\n\t\tif i != 0 {\n\t\t\twriter.Write(comma)\n\t\t}\n\t\tval.MarshalGQL(writer)\n\t}\n\twriter.Write(closeBracket)\n}\n\ntype lit struct{ b []byte }\n\nfunc (l lit) MarshalGQL(w io.Writer) {\n\tw.Write(l.b)\n}\n\nfunc (l lit) MarshalGQLContext(ctx context.Context, w io.Writer) error {\n\tw.Write(l.b)\n\treturn nil\n}\n"
  },
  {
    "path": "graphql/jsonw_test.go",
    "content": "package graphql\n\nimport (\n\t\"bytes\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\nfunc TestJsonWriter(t *testing.T) {\n\tobj := NewFieldSet([]CollectedField{\n\t\t{Field: &ast.Field{Alias: \"test\"}},\n\t\t{Field: &ast.Field{Alias: \"array\"}},\n\t\t{Field: &ast.Field{Alias: \"emptyArray\"}},\n\t\t{Field: &ast.Field{Alias: \"child\"}},\n\t})\n\tobj.Values[0] = MarshalInt(10)\n\n\tobj.Values[1] = &Array{\n\t\tMarshalInt(1),\n\t\tMarshalString(\"2\"),\n\t\tMarshalBoolean(true),\n\t\tFalse,\n\t\tNull,\n\t\tMarshalFloat(1.3),\n\t\tTrue,\n\t}\n\n\tobj.Values[2] = &Array{}\n\n\tchild2 := NewFieldSet([]CollectedField{\n\t\t{Field: &ast.Field{Alias: \"child\"}},\n\t})\n\tchild2.Values[0] = Null\n\n\tchild1 := NewFieldSet([]CollectedField{\n\t\t{Field: &ast.Field{Alias: \"child\"}},\n\t})\n\tchild1.Values[0] = child2\n\n\tobj.Values[3] = child1\n\n\tb := &bytes.Buffer{}\n\tobj.MarshalGQL(b)\n\n\trequire.JSONEq(\n\t\tt,\n\t\t`{\"test\":10,\"array\":[1,\"2\",true,false,null,1.3,true],\"emptyArray\":[],\"child\":{\"child\":{\"child\":null}}}`,\n\t\tb.String(),\n\t)\n}\n"
  },
  {
    "path": "graphql/map.go",
    "content": "package graphql\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n)\n\nfunc MarshalMap(val map[string]any) Marshaler {\n\treturn WriterFunc(func(w io.Writer) {\n\t\terr := json.NewEncoder(w).Encode(val)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t})\n}\n\nfunc UnmarshalMap(v any) (map[string]any, error) {\n\tif m, ok := v.(map[string]any); ok {\n\t\treturn m, nil\n\t}\n\n\treturn nil, fmt.Errorf(\"%T is not a map\", v)\n}\n"
  },
  {
    "path": "graphql/omittable.go",
    "content": "package graphql\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"io\"\n)\n\n// Omittable is a wrapper around a value that also stores whether it is set\n// or not.\ntype Omittable[T any] struct {\n\tvalue T\n\tset   bool\n}\n\nvar (\n\t_ json.Marshaler   = Omittable[struct{}]{}\n\t_ json.Unmarshaler = (*Omittable[struct{}])(nil)\n)\n\nfunc OmittableOf[T any](value T) Omittable[T] {\n\treturn Omittable[T]{\n\t\tvalue: value,\n\t\tset:   true,\n\t}\n}\n\nfunc (o Omittable[T]) Value() T {\n\tif !o.set {\n\t\tvar zero T\n\t\treturn zero\n\t}\n\treturn o.value\n}\n\nfunc (o Omittable[T]) ValueOK() (T, bool) {\n\tif !o.set {\n\t\tvar zero T\n\t\treturn zero, false\n\t}\n\treturn o.value, true\n}\n\nfunc (o Omittable[T]) IsSet() bool {\n\treturn o.set\n}\n\n// IsZero returns true then json.Marshal will omit this value.\n// > The \"omitzero\" option specifies that the field should be omitted from the encoding if the field\n// has a zero value, according to rules: > 1) If the field type has an \"IsZero() bool\" method, that\n// will be used to determine whether the value is zero.\n// > 2) Otherwise, the value is zero if it is the zero value for its type.\n// https://pkg.go.dev/encoding/json#Marshal\nfunc (o Omittable[T]) IsZero() bool {\n\treturn !o.set\n}\n\nfunc (o Omittable[T]) MarshalJSON() ([]byte, error) {\n\tvar value any = o.value\n\tif !o.set {\n\t\tvar zero T\n\t\tvalue = zero\n\t}\n\n\treturn json.Marshal(value)\n}\n\nfunc (o *Omittable[T]) UnmarshalJSON(bytes []byte) error {\n\terr := json.Unmarshal(bytes, &o.value)\n\tif err != nil {\n\t\treturn err\n\t}\n\to.set = true\n\treturn nil\n}\n\nfunc (o Omittable[T]) MarshalGQL(w io.Writer) {\n\tvar value any = o.value\n\tif !o.set {\n\t\tvar zero T\n\t\tvalue = zero\n\t}\n\n\tswitch marshaler := value.(type) {\n\tcase Marshaler:\n\t\tmarshaler.MarshalGQL(w)\n\tcase ContextMarshaler:\n\t\t_ = marshaler.MarshalGQLContext(context.Background(), w)\n\tdefault:\n\t\tb, _ := json.Marshal(value)\n\t\tw.Write(b)\n\t}\n}\n\nfunc (o *Omittable[T]) UnmarshalGQL(bytes []byte) error {\n\tswitch unmarshaler := any(o.value).(type) {\n\tcase Unmarshaler:\n\t\tif err := unmarshaler.UnmarshalGQL(bytes); err != nil {\n\t\t\treturn err\n\t\t}\n\t\to.set = true\n\tcase ContextUnmarshaler:\n\t\tif err := unmarshaler.UnmarshalGQLContext(context.Background(), bytes); err != nil {\n\t\t\treturn err\n\t\t}\n\t\to.set = true\n\tdefault:\n\t\tif err := json.Unmarshal(bytes, &o.value); err != nil {\n\t\t\treturn err\n\t\t}\n\t\to.set = true\n\t}\n\treturn nil\n}\n\nfunc (o Omittable[T]) MarshalGQLContext(ctx context.Context, w io.Writer) {\n\tvar value any = o.value\n\tif !o.set {\n\t\tvar zero T\n\t\tvalue = zero\n\t}\n\n\tswitch marshaler := value.(type) {\n\tcase ContextMarshaler:\n\t\t_ = marshaler.MarshalGQLContext(ctx, w)\n\tcase Marshaler:\n\t\tmarshaler.MarshalGQL(w)\n\tdefault:\n\t\tb, _ := json.Marshal(value)\n\t\tw.Write(b)\n\t}\n}\n\nfunc (o *Omittable[T]) UnmarshalGQLContext(ctx context.Context, bytes []byte) error {\n\tswitch unmarshaler := any(o.value).(type) {\n\tcase ContextUnmarshaler:\n\t\tif err := unmarshaler.UnmarshalGQLContext(ctx, bytes); err != nil {\n\t\t\treturn err\n\t\t}\n\t\to.set = true\n\tcase Unmarshaler:\n\t\tif err := unmarshaler.UnmarshalGQL(bytes); err != nil {\n\t\t\treturn err\n\t\t}\n\t\to.set = true\n\tdefault:\n\t\tif err := json.Unmarshal(bytes, &o.value); err != nil {\n\t\t\treturn err\n\t\t}\n\t\to.set = true\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "graphql/omittable_go124_test.go",
    "content": "package graphql\n\nimport (\n\t\"encoding/json\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestOmittableIsZeroTrue_MarshalJSONGo124(t *testing.T) {\n\ts := \"test\"\n\ttestCases := []struct {\n\t\tname         string\n\t\tinput        any\n\t\texpectedJSON string\n\t}{\n\t\t{\n\t\t\tname: \"simple string omitzero IsZero=true\",\n\t\t\tinput: struct {\n\t\t\t\tValue Omittable[string] `json:\",omitzero\"`\n\t\t\t}{},\n\t\t\texpectedJSON: `{}`,\n\t\t},\n\t\t{\n\t\t\tname:         \"string pointer\",\n\t\t\tinput:        struct{ Value Omittable[*string] }{Value: OmittableOf(&s)},\n\t\t\texpectedJSON: `{\"Value\":\"test\"}`,\n\t\t},\n\t\t{\n\t\t\tname: \"string pointer omitzero IsZero=true\",\n\t\t\tinput: struct {\n\t\t\t\tValue Omittable[*string] `json:\",omitzero\"`\n\t\t\t}{},\n\t\t\texpectedJSON: `{}`,\n\t\t},\n\t\t{\n\t\t\tname:         \"omitted integer\",\n\t\t\tinput:        struct{ Value Omittable[int] }{},\n\t\t\texpectedJSON: `{\"Value\":0}`,\n\t\t},\n\t\t{\n\t\t\tname: \"omitted integer omitzero IsZero=true\",\n\t\t\tinput: struct {\n\t\t\t\tValue Omittable[int] `json:\",omitzero\"`\n\t\t\t}{},\n\t\t\texpectedJSON: `{}`,\n\t\t},\n\t\t{\n\t\t\tname: \"omittable omittable omitzero IsZero=true\", //nolint:dupword\n\t\t\tinput: struct {\n\t\t\t\tValue Omittable[Omittable[uint64]] `json:\",omitzero\"`\n\t\t\t}{},\n\t\t\texpectedJSON: `{}`,\n\t\t},\n\t\t{\n\t\t\tname: \"omittable struct Value omitzero IsZero=true\",\n\t\t\tinput: struct {\n\t\t\t\tValue Omittable[struct {\n\t\t\t\t\tInner string\n\t\t\t\t}] `json:\",omitzero\"`\n\t\t\t}{},\n\t\t\texpectedJSON: `{}`,\n\t\t},\n\t\t{\n\t\t\tname: \"omittable struct Inner omitzero IsZero=true\",\n\t\t\tinput: struct {\n\t\t\t\tValue Omittable[struct {\n\t\t\t\t\tInner Omittable[string] `json:\",omitzero\"`\n\t\t\t\t}]\n\t\t\t}{},\n\t\t\texpectedJSON: `{\"Value\":{}}`,\n\t\t},\n\t}\n\n\tfor _, tc := range testCases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tdata, err := json.Marshal(tc.input)\n\t\t\trequire.NoError(t, err)\n\t\t\tassert.Equal(t, tc.expectedJSON, string(data))\n\t\t})\n\t}\n}\n\nfunc TestOmittableIsZeroFalse_MarshalJSONGo124(t *testing.T) {\n\ts := \"test\"\n\ttestCases := []struct {\n\t\tname         string\n\t\tinput        any\n\t\texpectedJSON string\n\t}{\n\t\t{\n\t\t\tname:         \"simple string\",\n\t\t\tinput:        struct{ Value Omittable[string] }{Value: OmittableOf(\"simple string\")},\n\t\t\texpectedJSON: `{\"Value\":\"simple string\"}`,\n\t\t},\n\t\t{\n\t\t\tname: \"simple string omitzero IsZero=false\",\n\t\t\tinput: struct {\n\t\t\t\tValue Omittable[string] `json:\",omitzero\"`\n\t\t\t}{\n\t\t\t\tValue: OmittableOf(\"\"),\n\t\t\t},\n\t\t\texpectedJSON: `{\"Value\":\"\"}`,\n\t\t},\n\t\t{\n\t\t\tname:         \"string pointer\",\n\t\t\tinput:        struct{ Value Omittable[*string] }{Value: OmittableOf(&s)},\n\t\t\texpectedJSON: `{\"Value\":\"test\"}`,\n\t\t},\n\t\t{\n\t\t\tname: \"string pointer omitzero IsZero=false\",\n\t\t\tinput: struct {\n\t\t\t\tValue Omittable[*string] `json:\",omitzero\"`\n\t\t\t}{\n\t\t\t\tValue: OmittableOf[*string](nil),\n\t\t\t},\n\t\t\texpectedJSON: `{\"Value\":null}`,\n\t\t},\n\t\t{\n\t\t\tname:         \"omitted integer\",\n\t\t\tinput:        struct{ Value Omittable[int] }{},\n\t\t\texpectedJSON: `{\"Value\":0}`,\n\t\t},\n\t\t{\n\t\t\tname: \"omitted integer omitzero IsZero=false\",\n\t\t\tinput: struct {\n\t\t\t\tValue Omittable[int] `json:\",omitzero\"`\n\t\t\t}{\n\t\t\t\tValue: OmittableOf(0),\n\t\t\t},\n\t\t\texpectedJSON: `{\"Value\":0}`,\n\t\t},\n\t\t{\n\t\t\tname: \"omittable omittable\", //nolint:dupword\n\t\t\tinput: struct{ Value Omittable[Omittable[uint64]] }{\n\t\t\t\tValue: OmittableOf(OmittableOf(uint64(42))),\n\t\t\t},\n\t\t\texpectedJSON: `{\"Value\":42}`,\n\t\t},\n\t\t{\n\t\t\tname: \"omittable omittable omitzero IsZero=false\", //nolint:dupword\n\t\t\tinput: struct {\n\t\t\t\tValue Omittable[Omittable[uint64]] `json:\",omitzero\"`\n\t\t\t}{\n\t\t\t\tValue: OmittableOf(OmittableOf(uint64(0))),\n\t\t\t},\n\t\t\texpectedJSON: `{\"Value\":0}`,\n\t\t},\n\t\t{\n\t\t\tname: \"omittable struct\",\n\t\t\tinput: struct {\n\t\t\t\tValue Omittable[struct{ Inner string }]\n\t\t\t}{Value: OmittableOf(struct{ Inner string }{})},\n\t\t\texpectedJSON: `{\"Value\":{\"Inner\":\"\"}}`,\n\t\t},\n\t\t{\n\t\t\tname: \"omittable struct Value omitzero IsZero=false\",\n\t\t\tinput: struct {\n\t\t\t\tValue Omittable[struct {\n\t\t\t\t\tInner string\n\t\t\t\t}] `json:\",omitzero\"`\n\t\t\t}{\n\t\t\t\tValue: OmittableOf(struct {\n\t\t\t\t\tInner string\n\t\t\t\t}{\n\t\t\t\t\tInner: \"\",\n\t\t\t\t}),\n\t\t\t},\n\t\t\texpectedJSON: `{\"Value\":{\"Inner\":\"\"}}`,\n\t\t},\n\t\t{\n\t\t\tname: \"omittable struct Inner omitzero IsZero=false\",\n\t\t\tinput: struct {\n\t\t\t\tValue Omittable[struct {\n\t\t\t\t\tInner Omittable[string] `json:\",omitzero\"`\n\t\t\t\t}]\n\t\t\t}{\n\t\t\t\tValue: OmittableOf(struct {\n\t\t\t\t\tInner Omittable[string] `json:\",omitzero\"`\n\t\t\t\t}{\n\t\t\t\t\tInner: OmittableOf(\"\"),\n\t\t\t\t}),\n\t\t\t},\n\t\t\texpectedJSON: `{\"Value\":{\"Inner\":\"\"}}`,\n\t\t},\n\t}\n\n\tfor _, tc := range testCases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tdata, err := json.Marshal(tc.input)\n\t\t\trequire.NoError(t, err)\n\t\t\tassert.Equal(t, tc.expectedJSON, string(data))\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "graphql/omittable_test.go",
    "content": "package graphql\n\nimport (\n\t\"encoding/json\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestOmittable_UnmarshalJSON(t *testing.T) {\n\tvar s struct {\n\t\tString        Omittable[string]\n\t\tOmittedString Omittable[string]\n\t\tStringPointer Omittable[*string]\n\t\tNullInt       Omittable[int]\n\t}\n\n\terr := json.Unmarshal([]byte(`\n\t{\n\t\t\"String\": \"simple string\",\n\t\t\"StringPointer\": \"string pointer\",\n\t\t\"NullInt\": null\n\t}`), &s)\n\n\trequire.NoError(t, err)\n\tassert.Equal(t, \"simple string\", s.String.Value())\n\tassert.True(t, s.String.IsSet())\n\tassert.False(t, s.OmittedString.IsSet())\n\tassert.True(t, s.StringPointer.IsSet())\n\tif assert.NotNil(t, s.StringPointer.Value()) {\n\t\tassert.EqualValues(t, \"string pointer\", *s.StringPointer.Value())\n\t}\n\tassert.True(t, s.NullInt.IsSet())\n\tassert.Zero(t, s.NullInt.Value())\n}\n"
  },
  {
    "path": "graphql/oneshot.go",
    "content": "package graphql\n\nimport \"context\"\n\nfunc OneShot(resp *Response) ResponseHandler {\n\tvar oneshot bool\n\n\treturn func(context context.Context) *Response {\n\t\tif oneshot {\n\t\t\treturn nil\n\t\t}\n\t\toneshot = true\n\n\t\treturn resp\n\t}\n}\n"
  },
  {
    "path": "graphql/playground/altair_playground.go",
    "content": "package playground\n\nimport (\n\t\"encoding/json\"\n\t\"html/template\"\n\t\"net/http\"\n)\n\nvar altairPage = template.Must(template.New(\"altair\").Parse(`<!doctype html>\n<html>\n\n<head>\n  <meta charset=\"utf-8\">\n  <title>{{.title}}</title>\n  <base href=\"https://cdn.jsdelivr.net/npm/altair-static@{{.version}}/build/dist/\">\n  <meta name=\"viewport\" content=\"width=device-width,initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n  <link href=\"styles.css\" rel=\"stylesheet\" crossorigin=\"anonymous\" integrity=\"{{.cssSRI}}\"/>\n</head>\n\n<body>\n  <app-root>\n    <style>\n      .loading-screen {\n        display: none;\n      }\n    </style>\n    <div class=\"loading-screen styled\">\n      <div class=\"loading-screen-inner\">\n        <div class=\"loading-screen-logo-container\">\n          <img src=\"assets/img/logo_350.svg\" alt=\"Altair\">\n        </div>\n        <div class=\"loading-screen-loading-indicator\">\n          <span class=\"loading-indicator-dot\"></span>\n          <span class=\"loading-indicator-dot\"></span>\n          <span class=\"loading-indicator-dot\"></span>\n        </div>\n      </div>\n    </div>\n  </app-root>\n\n  <script rel=\"preload\" as=\"script\" type=\"text/javascript\" crossorigin=\"anonymous\" integrity=\"{{.mainSRI}}\" src=\"main.js\"></script>\n  <script rel=\"preload\" as=\"script\" type=\"text/javascript\" crossorigin=\"anonymous\" integrity=\"{{.polyfillsSRI}}\" src=\"polyfills.js\"></script>\n  <script rel=\"preload\" as=\"script\" type=\"text/javascript\" crossorigin=\"anonymous\" integrity=\"{{.runtimeSRI}}\" src=\"runtime.js\"></script>\n\n  <script>\n{{- if .endpointIsAbsolute}}\n\tconst url = {{.endpoint}};\n\tconst subscriptionUrl = {{.subscriptionEndpoint}};\n{{- else}}\n\tconst url = location.protocol + '//' + location.host + {{.endpoint}};\n\tconst wsProto = location.protocol == 'https:' ? 'wss:' : 'ws:';\n\tconst subscriptionUrl = wsProto + '//' + location.host + {{.endpoint}};\n{{- end}}\n    var altairOptions = {\n        endpointURL: url,\n        subscriptionsEndpoint: subscriptionUrl,\n    };\n\tvar options = {...altairOptions, ...JSON.parse({{.options}})};\n    window.addEventListener(\"load\", function() {\n      AltairGraphQL.init(options);\n    });\n  </script>\n</body>\n\n</html>`))\n\n// AltairHandler responsible for setting up the altair playground\nfunc AltairHandler(title, endpoint string, options map[string]any) http.HandlerFunc {\n\tjsonOptions, err := json.Marshal(options)\n\tif err != nil {\n\t\tjsonOptions = []byte(\"{}\")\n\t}\n\n\treturn func(w http.ResponseWriter, r *http.Request) {\n\t\terr := altairPage.Execute(w, map[string]any{\n\t\t\t\"title\":                title,\n\t\t\t\"endpoint\":             endpoint,\n\t\t\t\"endpointIsAbsolute\":   endpointHasScheme(endpoint),\n\t\t\t\"subscriptionEndpoint\": getSubscriptionEndpoint(endpoint),\n\t\t\t\"version\":              \"8.1.3\",\n\t\t\t\"cssSRI\":               \"sha256-aYcodhWPcqIHh2lLDWeoq+irtg7qkWLLLK30gjQJZc8=\",\n\t\t\t\"mainSRI\":              \"sha256-bjpcMy7w3aaX8Cjuyv5hPE9FlkJRys0kxooPRtbGd8c=\",\n\t\t\t\"polyfillsSRI\":         \"sha256-+hQzPqfWEkAfOfKytrW7hLceq0mUR3pHXn+UzwhrWQ0=\",\n\t\t\t\"runtimeSRI\":           \"sha256-2SHK1nFbucnnM02VXrl4CAKDYQbJEF9HVZstRkVbkJM=\",\n\t\t\t\"options\":              string(jsonOptions),\n\t\t})\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "graphql/playground/altair_playground_test.go",
    "content": "package playground\n\nimport (\n\t\"net/http\"\n\t\"testing\"\n)\n\nfunc TestAltairHandler_Integrity(t *testing.T) {\n\ttestResourceIntegrity(\n\t\tt,\n\t\tfunc(title, endpoint string) http.HandlerFunc { return AltairHandler(title, endpoint, nil) },\n\t)\n}\n"
  },
  {
    "path": "graphql/playground/apollo_sandbox_playground.go",
    "content": "package playground\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"html/template\"\n\t\"net/http\"\n)\n\nconst (\n\tapolloSandboxMainJs  = \"https://embeddable-sandbox.cdn.apollographql.com/02e2da0fccbe0240ef03d2396d6c98559bab5b06/embeddable-sandbox.umd.production.min.js\"\n\tapolloSandboxMainSri = \"sha256-asj/scPAF8jmMGj1J+YwCHps3uI57AZ78cHs0bJkML4=\"\n)\n\n// NOTE: New version available at https://embeddable-sandbox.cdn.apollographql.com/ -->\nvar apolloSandboxPage = template.Must(template.New(\"ApolloSandbox\").Parse(`<!doctype html>\n<html>\n\n<head>\n  <meta charset=\"utf-8\">\n  <title>{{.title}}</title>\n  <meta name=\"viewport\" content=\"width=device-width,initial-scale=1\">\n  <link rel=\"icon\" href=\"https://embeddable-sandbox.cdn.apollographql.com/_latest/public/assets/favicon-dark.png\">\n\t<style>\n\tbody {\n\t\tmargin: 0;\n\t\toverflow: hidden;\n\t}\n</style>\n</head>\n\n<body>\n  <div style=\"width: 100vw; height: 100vh;\" id='embedded-sandbox'></div>\n  <script rel=\"preload\" as=\"script\" crossorigin=\"anonymous\" integrity=\"{{.mainSRI}}\" type=\"text/javascript\" src=\"{{.mainJs}}\"></script>\n  <script>\n{{- if .endpointIsAbsolute}}\n\tconst url = {{.endpoint}};\n{{- else}}\n\tconst url = location.protocol + '//' + location.host + {{.endpoint}};\n{{- end}}\n\tconst options = JSON.parse({{.options}})\n\tnew window.EmbeddedSandbox({\n\t\ttarget: '#embedded-sandbox',\n\t\tinitialEndpoint: url,\n\t\tpersistExplorerState: true,\n\t\t...options,\n\t});\n  </script>\n</body>\n</html>`))\n\n// ApolloSandboxHandler responsible for setting up the apollo sandbox playground\nfunc ApolloSandboxHandler(title, endpoint string, opts ...ApolloSandboxOption) http.HandlerFunc {\n\toptions := &apolloSandboxHandlerOptions{\n\t\tMainJs:  apolloSandboxMainJs,\n\t\tMainSri: apolloSandboxMainSri,\n\t\tApolloSandboxOption: &apolloSandboxOptions{\n\t\t\tHideCookieToggle:   true,\n\t\t\tEndpointIsEditable: false,\n\t\t\tInitialState: &apolloSandboxInitialState{\n\t\t\t\tIncludeCookies:       true,\n\t\t\t\tPollForSchemaUpdates: false,\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, opt := range opts {\n\t\topt(options)\n\t}\n\n\toptionsBytes, err := json.Marshal(options.ApolloSandboxOption)\n\tif err != nil {\n\t\tpanic(fmt.Errorf(\"failed to marshal apollo sandbox options: %w\", err))\n\t}\n\n\treturn func(w http.ResponseWriter, r *http.Request) {\n\t\terr := apolloSandboxPage.Execute(w, map[string]any{\n\t\t\t\"title\":              title,\n\t\t\t\"endpoint\":           endpoint,\n\t\t\t\"endpointIsAbsolute\": endpointHasScheme(endpoint),\n\t\t\t\"mainJs\":             options.MainJs,\n\t\t\t\"mainSRI\":            options.MainSri,\n\t\t\t\"options\":            string(optionsBytes),\n\t\t})\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n}\n\ntype apolloSandboxHandlerOptions struct {\n\tMainJs              string\n\tMainSri             string\n\tApolloSandboxOption *apolloSandboxOptions\n}\n\n// See https://www.apollographql.com/docs/graphos/explorer/sandbox/#options -->\ntype apolloSandboxOptions struct {\n\tHideCookieToggle   bool                       `json:\"hideCookieToggle\"`\n\tEndpointIsEditable bool                       `json:\"endpointIsEditable\"`\n\tInitialState       *apolloSandboxInitialState `json:\"initialState,omitempty\"`\n}\n\ntype apolloSandboxInitialState struct {\n\tIncludeCookies       bool           `json:\"includeCookies\"`\n\tDocument             string         `json:\"document,omitempty\"`\n\tVariables            map[string]any `json:\"variables,omitempty\"`\n\tHeaders              map[string]any `json:\"headers,omitempty\"`\n\tCollectionId         string         `json:\"collectionId,omitempty\"`\n\tOperationId          string         `json:\"operationId,omitempty\"`\n\tPollForSchemaUpdates bool           `json:\"pollForSchemaUpdates\"`\n\tSharedHeaders        map[string]any `json:\"sharedHeaders,omitempty\"`\n}\n\ntype ApolloSandboxOption func(options *apolloSandboxHandlerOptions)\n\n// WithApolloSandboxHideCookieToggle By default, the embedded Sandbox does not show the Include\n// cookies toggle in its connection settings.\n//\n// Set hideCookieToggle to false to enable users of your embedded Sandbox instance to toggle the\n// Include cookies setting.\nfunc WithApolloSandboxHideCookieToggle(hideCookieToggle bool) ApolloSandboxOption {\n\treturn func(options *apolloSandboxHandlerOptions) {\n\t\toptions.ApolloSandboxOption.HideCookieToggle = hideCookieToggle\n\t}\n}\n\n// WithApolloSandboxEndpointIsEditable By default, the embedded Sandbox has a URL input box that is\n// editable by users.\n//\n// Set endpointIsEditable to false to prevent users of your embedded Sandbox instance from changing\n// the endpoint URL.\nfunc WithApolloSandboxEndpointIsEditable(endpointIsEditable bool) ApolloSandboxOption {\n\treturn func(options *apolloSandboxHandlerOptions) {\n\t\toptions.ApolloSandboxOption.EndpointIsEditable = endpointIsEditable\n\t}\n}\n\n// WithApolloSandboxInitialStateIncludeCookies Set this value to true if you want the Sandbox to\n// pass { credentials: 'include' } for its requests by default.\n//\n// If you set hideCookieToggle to false, users can override this default setting with the Include\n// cookies toggle. (By default, the embedded Sandbox does not show the Include cookies toggle in its\n// connection settings.)\n//\n// If you also pass the handleRequest option, this option is ignored.\n//\n// Read more about the fetch API and credentials here\n// https://developer.mozilla.org/en-US/docs/Web/API/fetch#credentials\nfunc WithApolloSandboxInitialStateIncludeCookies(includeCookies bool) ApolloSandboxOption {\n\treturn func(options *apolloSandboxHandlerOptions) {\n\t\toptions.ApolloSandboxOption.InitialState.IncludeCookies = includeCookies\n\t}\n}\n\n// WithApolloSandboxInitialStateDocument Document operation to populate in the Sandbox's editor on\n// load.\n//\n// If you omit this, the Sandbox initially loads an example query based on your schema.\nfunc WithApolloSandboxInitialStateDocument(document string) ApolloSandboxOption {\n\treturn func(options *apolloSandboxHandlerOptions) {\n\t\toptions.ApolloSandboxOption.InitialState.Document = document\n\t}\n}\n\n// WithApolloSandboxInitialStateVariables Variables containing initial variable values to populate\n// in the Sandbox on load.\n//\n// If provided, these variables should apply to the initial query you provide for document.\nfunc WithApolloSandboxInitialStateVariables(variables map[string]any) ApolloSandboxOption {\n\treturn func(options *apolloSandboxHandlerOptions) {\n\t\toptions.ApolloSandboxOption.InitialState.Variables = variables\n\t}\n}\n\n// WithApolloSandboxInitialStateHeaders Headers containing initial variable values to populate in\n// the Sandbox on load.\n//\n// If provided, these variables should apply to the initial query you provide for document.\nfunc WithApolloSandboxInitialStateHeaders(headers map[string]any) ApolloSandboxOption {\n\treturn func(options *apolloSandboxHandlerOptions) {\n\t\toptions.ApolloSandboxOption.InitialState.Headers = headers\n\t}\n}\n\n// WithApolloSandboxInitialStateCollectionIdAndOperationId The ID of a collection, paired with an\n// operation ID to populate in the Sandbox on load.\n//\n// You can find these values from a registered graph in Studio by clicking the ... menu next to an\n// operation in the Explorer of that graph and selecting View operation details.\nfunc WithApolloSandboxInitialStateCollectionIdAndOperationId(\n\tcollectionId, operationId string,\n) ApolloSandboxOption {\n\treturn func(options *apolloSandboxHandlerOptions) {\n\t\toptions.ApolloSandboxOption.InitialState.CollectionId = collectionId\n\t\toptions.ApolloSandboxOption.InitialState.OperationId = operationId\n\t}\n}\n\n// WithApolloSandboxInitialStatePollForSchemaUpdates If true, the embedded Sandbox periodically\n// polls your initialEndpoint for schema updates.\n//\n// The default value is false.\nfunc WithApolloSandboxInitialStatePollForSchemaUpdates(\n\tpollForSchemaUpdates bool,\n) ApolloSandboxOption {\n\treturn func(options *apolloSandboxHandlerOptions) {\n\t\toptions.ApolloSandboxOption.InitialState.PollForSchemaUpdates = pollForSchemaUpdates\n\t}\n}\n\n// WithApolloSandboxInitialStateSharedHeaders Headers that are applied by default to every operation\n// executed by the embedded Sandbox.\n//\n// Users can disable the application of these headers, but they can't modify their values.\n//\n// The embedded Sandbox always includes these headers in its introspection queries to your\n// initialEndpoint.\nfunc WithApolloSandboxInitialStateSharedHeaders(sharedHeaders map[string]any) ApolloSandboxOption {\n\treturn func(options *apolloSandboxHandlerOptions) {\n\t\toptions.ApolloSandboxOption.InitialState.SharedHeaders = sharedHeaders\n\t}\n}\n\n// WithApolloSandboxJs The main javascript resource and its subresource integrity checksum\n//\n// You can change the version of apollo sandbox.\nfunc WithApolloSandboxJs(mainJs, mainSri string) ApolloSandboxOption {\n\treturn func(options *apolloSandboxHandlerOptions) {\n\t\toptions.MainJs = mainJs\n\t\toptions.MainSri = mainSri\n\t}\n}\n"
  },
  {
    "path": "graphql/playground/apollo_sandbox_playground_test.go",
    "content": "package playground\n\nimport (\n\t\"net/http\"\n\t\"testing\"\n)\n\nfunc TestApolloSandboxHandler_Integrity(t *testing.T) {\n\ttestResourceIntegrity(t, func(title, endpoint string) http.HandlerFunc {\n\t\treturn ApolloSandboxHandler(title, endpoint)\n\t})\n}\n"
  },
  {
    "path": "graphql/playground/helper_test.go",
    "content": "package playground\n\nimport (\n\t\"crypto/sha256\"\n\t\"encoding/base64\"\n\t\"io\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/PuerkitoBio/goquery\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc testResourceIntegrity(t *testing.T, handler func(title, endpoint string) http.HandlerFunc) {\n\tt.Helper()\n\trecorder := httptest.NewRecorder()\n\trequest := httptest.NewRequest(http.MethodGet, \"http://localhost:8080/\", http.NoBody)\n\thandler(\"example.org API\", \"/query\").ServeHTTP(recorder, request)\n\n\tres := recorder.Result()\n\tdefer require.NoError(t, res.Body.Close())\n\n\tassert.Equal(t, http.StatusOK, res.StatusCode)\n\tassert.True(t, strings.HasPrefix(res.Header.Get(\"Content-Type\"), \"text/html\"))\n\n\tdoc, err := goquery.NewDocumentFromReader(res.Body)\n\trequire.NoError(t, err)\n\tassert.NotNil(t, doc)\n\n\tvar baseUrl string\n\tif base := doc.Find(\"base\"); len(base.Nodes) != 0 {\n\t\tif value, exists := base.Attr(\"href\"); exists {\n\t\t\tbaseUrl = value\n\t\t}\n\t}\n\n\tassertNodesIntegrity(t, baseUrl, doc, \"script\", \"src\", \"integrity\")\n\tassertNodesIntegrity(t, baseUrl, doc, \"link\", \"href\", \"integrity\")\n}\n\nfunc assertNodesIntegrity(\n\tt *testing.T,\n\tbaseUrl string,\n\tdoc *goquery.Document,\n\tselector, urlAttrKey, integrityAttrKey string,\n) {\n\tt.Helper()\n\tselection := doc.Find(selector)\n\tfor _, node := range selection.Nodes {\n\t\tvar url string\n\t\tvar integrity string\n\t\tfor _, attribute := range node.Attr {\n\t\t\tswitch attribute.Key {\n\t\t\tcase urlAttrKey:\n\t\t\t\turl = attribute.Val\n\t\t\tcase integrityAttrKey:\n\t\t\t\tintegrity = attribute.Val\n\t\t\t}\n\t\t}\n\n\t\tif integrity != \"\" {\n\t\t\tassert.NotEmpty(t, url)\n\t\t}\n\n\t\tif url != \"\" && integrity != \"\" {\n\t\t\tresp, err := http.Get(baseUrl + url)\n\t\t\trequire.NoError(t, err)\n\t\t\thasher := sha256.New()\n\t\t\t_, err = io.Copy(hasher, resp.Body)\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.NoError(t, resp.Body.Close())\n\t\t\tactual := \"sha256-\" + base64.StdEncoding.EncodeToString(hasher.Sum(nil))\n\t\t\tassert.Equal(t, integrity, actual)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "graphql/playground/playground.go",
    "content": "package playground\n\nimport (\n\t\"html/template\"\n\t\"net/http\"\n\t\"net/url\"\n)\n\nvar page = template.Must(template.New(\"graphiql\").Parse(`<!DOCTYPE html>\n<html>\n  <head>\n  \t<meta charset=\"utf-8\">\n  \t<title>{{.Title}}</title>\n\t<style>\n\t\tbody {\n\t\t\tmargin: 0;\n\t\t}\n\n\t\t#graphiql {\n\t\t\theight: 100vh;\n\t\t}\n\n\t\t.loading {\n        \theight: 100%;\n        \tdisplay: flex;\n        \talign-items: center;\n        \tjustify-content: center;\n        \tfont-size: 4rem;\n\t\t}\n\t</style>\n\t<script\n\t\tsrc=\"{{.ReactUrl}}\"\n\t\tintegrity=\"{{.ReactSRI}}\"\n\t\tcrossorigin=\"anonymous\"\n\t></script>\n\t<script\n\t\tsrc=\"{{.ReactDOMUrl}}\"\n\t\tintegrity=\"{{.ReactDOMSRI}}\"\n\t\tcrossorigin=\"anonymous\"\n\t></script>\n\t<link\n\t\trel=\"stylesheet\"\n\t\thref=\"{{.CssUrl}}\"\n\t\tintegrity=\"{{.CssSRI}}\"\n\t\tcrossorigin=\"anonymous\"\n\t/>\n{{- if .EnablePluginExplorer}}\n\t<link\n\t\trel=\"stylesheet\"\n\t\thref=\"{{.PluginExplorerCssUrl}}\"\n\t\tintegrity=\"{{.PluginExplorerCssSRI}}\"\n\t\tcrossorigin=\"anonymous\"\n\t/>\n{{- end}}\n  </head>\n  <body>\n    <div id=\"graphiql\">\n\t\t<div class=\"loading\">Loading…</div>\n\t</div>\n\n\t<script\n\t\tsrc=\"{{.JsUrl}}\"\n\t\tintegrity=\"{{.JsSRI}}\"\n\t\tcrossorigin=\"anonymous\"\n\t></script>\n{{- if .EnablePluginExplorer}}\n\t<script\n\t\tsrc=\"{{.PluginExplorerJsUrl}}\"\n\t\tintegrity=\"{{.PluginExplorerJsSRI}}\"\n\t\tcrossorigin=\"anonymous\"\n\t></script>\n{{- end}}\n\n    <script>\n      class PrefixedStorage {\n        constructor(prefix = '') {\n          this.prefix = prefix;\n        }\n\n        _addPrefix(key) {\n          return this.prefix + key;\n        }\n\n        _removePrefix(prefixedKey) {\n          return prefixedKey.substring(this.prefix.length);\n        }\n\n        setItem(key, value) {\n          const prefixedKey = this._addPrefix(key);\n          localStorage.setItem(prefixedKey, value);\n        }\n\n        getItem(key) {\n          const prefixedKey = this._addPrefix(key);\n          return localStorage.getItem(prefixedKey);\n        }\n\n        removeItem(key) {\n          const prefixedKey = this._addPrefix(key);\n          localStorage.removeItem(prefixedKey);\n        }\n\n        clear() {\n          const keysToRemove = [];\n          for (let i = 0; i < localStorage.length; i++) {\n            const key = localStorage.key(i);\n            if (key.startsWith(this.prefix)) {\n              keysToRemove.push(key);\n            }\n          }\n          keysToRemove.forEach(key => localStorage.removeItem(key));\n        }\n\n        get length() {\n          let count = 0;\n          for (let i = 0; i < localStorage.length; i++) {\n            const key = localStorage.key(i);\n            if (key.startsWith(this.prefix)) {\n              count++;\n            }\n          }\n          return count;\n        }\n\n        key(index) {\n          const keys = [];\n          for (let i = 0; i < localStorage.length; i++) {\n            const key = localStorage.key(i);\n            if (key.startsWith(this.prefix)) {\n              keys.push(this._removePrefix(key));\n            }\n          }\n          return index >= 0 && index < keys.length ? keys[index] : null;\n        }\n      }\n{{- if .EndpointIsAbsolute}}\n      const url = {{.Endpoint}};\n      const subscriptionUrl = {{.SubscriptionEndpoint}};\n{{- else}}\n      const url = location.protocol + '//' + location.host + {{.Endpoint}};\n      const wsProto = location.protocol == 'https:' ? 'wss:' : 'ws:';\n      const subscriptionUrl = wsProto + '//' + location.host + {{.Endpoint}};\n{{- end}}\n{{- if .FetcherHeaders}}\n      const fetcherHeaders = {{.FetcherHeaders}};\n{{- else}}\n      const fetcherHeaders = undefined;\n{{- end}}\n{{- if .UiHeaders}}\n      const uiHeaders = {{.UiHeaders}};\n{{- else}}\n      const uiHeaders = undefined;\n{{- end}}\n\n      let plugins = [];\n{{- if .EnablePluginExplorer}}\n      plugins.push(GraphiQLPluginExplorer.explorerPlugin());\n{{- end}}\n\n      const fetcher = GraphiQL.createFetcher({ url, subscriptionUrl, headers: fetcherHeaders });\n      ReactDOM.render(\n        React.createElement(GraphiQL, {\n          fetcher: fetcher,\n          isHeadersEditorEnabled: true,\n          shouldPersistHeaders: true,\n\t\t  headers: JSON.stringify(uiHeaders, null, 2),\n\t\t  plugins: plugins,\n          storage: new PrefixedStorage('{{.StoragePrefix}}')\n        }),\n        document.getElementById('graphiql'),\n      );\n    </script>\n  </body>\n</html>\n`))\n\ntype GraphiqlConfig struct {\n\tTitle                string\n\tStoragePrefix        string\n\tEndpoint             string\n\tFetcherHeaders       map[string]string\n\tUiHeaders            map[string]string\n\tEndpointIsAbsolute   bool\n\tSubscriptionEndpoint string\n\tJsUrl                template.URL\n\tJsSRI                string\n\tCssUrl               template.URL\n\tCssSRI               string\n\tReactUrl             template.URL\n\tReactSRI             string\n\tReactDOMUrl          template.URL\n\tReactDOMSRI          string\n\tEnablePluginExplorer bool\n\tPluginExplorerJsUrl  template.URL\n\tPluginExplorerJsSRI  string\n\tPluginExplorerCssUrl template.URL\n\tPluginExplorerCssSRI string\n}\ntype GraphiqlConfigOption func(*GraphiqlConfig)\n\nfunc WithGraphiqlFetcherHeaders(headers map[string]string) GraphiqlConfigOption {\n\treturn func(config *GraphiqlConfig) {\n\t\tconfig.FetcherHeaders = headers\n\t}\n}\n\nfunc WithGraphiqlUiHeaders(headers map[string]string) GraphiqlConfigOption {\n\treturn func(config *GraphiqlConfig) {\n\t\tconfig.UiHeaders = headers\n\t}\n}\n\nfunc WithGraphiqlVersion(jsUrl, cssUrl, jsSri, cssSri string) GraphiqlConfigOption {\n\treturn func(config *GraphiqlConfig) {\n\t\tconfig.JsUrl = template.URL(jsUrl)\n\t\tconfig.CssUrl = template.URL(cssUrl)\n\t\tconfig.JsSRI = jsSri\n\t\tconfig.CssSRI = cssSri\n\t}\n}\n\nfunc WithGraphiqlReactVersion(\n\treactJsUrl, reactDomJsUrl, reactJsSri, reactDomJsSri string,\n) GraphiqlConfigOption {\n\treturn func(config *GraphiqlConfig) {\n\t\tconfig.ReactUrl = template.URL(reactJsUrl)\n\t\tconfig.ReactDOMUrl = template.URL(reactDomJsUrl)\n\t\tconfig.ReactSRI = reactJsSri\n\t\tconfig.ReactDOMSRI = reactDomJsSri\n\t}\n}\n\nfunc WithGraphiqlPluginExplorerVersion(jsUrl, cssUrl, jsSri, cssSri string) GraphiqlConfigOption {\n\treturn func(config *GraphiqlConfig) {\n\t\tconfig.PluginExplorerJsUrl = template.URL(jsUrl)\n\t\tconfig.PluginExplorerCssUrl = template.URL(cssUrl)\n\t\tconfig.PluginExplorerJsSRI = jsSri\n\t\tconfig.PluginExplorerCssSRI = cssSri\n\t}\n}\n\nfunc WithGraphiqlEnablePluginExplorer(enable bool) GraphiqlConfigOption {\n\treturn func(config *GraphiqlConfig) {\n\t\tconfig.EnablePluginExplorer = enable\n\t}\n}\n\nfunc WithStoragePrefix(prefix string) GraphiqlConfigOption {\n\treturn func(config *GraphiqlConfig) {\n\t\tconfig.StoragePrefix = prefix\n\t}\n}\n\n// Handler responsible for setting up the playground\nfunc Handler(title, endpoint string, opts ...GraphiqlConfigOption) http.HandlerFunc {\n\tdata := GraphiqlConfig{\n\t\tTitle:                title,\n\t\tEndpoint:             endpoint,\n\t\tEndpointIsAbsolute:   endpointHasScheme(endpoint),\n\t\tSubscriptionEndpoint: getSubscriptionEndpoint(endpoint),\n\t\t// https://www.jsdelivr.com/package/npm/graphiql?tab=files\n\t\tJsUrl:  \"https://cdn.jsdelivr.net/npm/graphiql@4.1.2/graphiql.min.js\",\n\t\tJsSRI:  \"sha256-hnImuor1znlJkD/FOTL3jayfS/xsyNoP04abi8bFJWs=\",\n\t\tCssUrl: \"https://cdn.jsdelivr.net/npm/graphiql@4.1.2/graphiql.min.css\",\n\t\tCssSRI: \"sha256-MEh+B2NdMSpj9kexQNN3QKc8UzMrCXW/Sx/phcpuyIU=\",\n\t\t// https://www.jsdelivr.com/package/npm/react?tab=files\n\t\tReactUrl: \"https://cdn.jsdelivr.net/npm/react@18.2.0/umd/react.production.min.js\",\n\t\tReactSRI: \"sha256-S0lp+k7zWUMk2ixteM6HZvu8L9Eh//OVrt+ZfbCpmgY=\",\n\t\t// https://www.jsdelivr.com/package/npm/react-dom?tab=files\n\t\tReactDOMUrl: \"https://cdn.jsdelivr.net/npm/react-dom@18.2.0/umd/react-dom.production.min.js\",\n\t\tReactDOMSRI: \"sha256-IXWO0ITNDjfnNXIu5POVfqlgYoop36bDzhodR6LW5Pc=\",\n\t\t// https://www.jsdelivr.com/package/npm/@graphiql/plugin-explorer?tab=files\n\t\tPluginExplorerJsUrl: template.URL(\n\t\t\t\"https://cdn.jsdelivr.net/npm/@graphiql/plugin-explorer@4.0.6/dist/index.umd.js\",\n\t\t),\n\t\tPluginExplorerJsSRI: \"sha256-UM8sWOS0Xa9yLY85q6Clh0pF4qpxX+TOcJ41flECqBs=\",\n\t\tPluginExplorerCssUrl: template.URL(\n\t\t\t\"https://cdn.jsdelivr.net/npm/@graphiql/plugin-explorer@4.0.6/dist/style.min.css\",\n\t\t),\n\t\tPluginExplorerCssSRI: \"sha256-b0izygy8aEMY3fCLmtNkm9PKdE3kRD4Qjn6Q8gw5xKI=\",\n\t}\n\tfor _, opt := range opts {\n\t\topt(&data)\n\t}\n\n\treturn func(w http.ResponseWriter, r *http.Request) {\n\t\tw.Header().Add(\"Content-Type\", \"text/html; charset=UTF-8\")\n\n\t\tif err := page.Execute(w, data); err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n}\n\n// HandlerWithHeaders sets up the playground.\n// fetcherHeaders are used by the playground's fetcher instance and will not be visible in the UI.\n// uiHeaders are default headers that will show up in the UI headers editor.\nfunc HandlerWithHeaders(\n\ttitle, endpoint string,\n\tfetcherHeaders, uiHeaders map[string]string,\n) http.HandlerFunc {\n\treturn Handler(\n\t\ttitle,\n\t\tendpoint,\n\t\tWithGraphiqlFetcherHeaders(fetcherHeaders),\n\t\tWithGraphiqlUiHeaders(uiHeaders),\n\t)\n}\n\n// endpointHasScheme checks if the endpoint has a scheme.\nfunc endpointHasScheme(endpoint string) bool {\n\tu, err := url.Parse(endpoint)\n\treturn err == nil && u.Scheme != \"\"\n}\n\n// getSubscriptionEndpoint returns the subscription endpoint for the given\n// endpoint if it is parsable as a URL, or an empty string.\nfunc getSubscriptionEndpoint(endpoint string) string {\n\tu, err := url.Parse(endpoint)\n\tif err != nil {\n\t\treturn \"\"\n\t}\n\n\tswitch u.Scheme {\n\tcase \"https\":\n\t\tu.Scheme = \"wss\"\n\tdefault:\n\t\tu.Scheme = \"ws\"\n\t}\n\n\treturn u.String()\n}\n"
  },
  {
    "path": "graphql/playground/playground_test.go",
    "content": "package playground\n\nimport (\n\t\"html/template\"\n\t\"io\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"regexp\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestHandler_createsAbsoluteURLs(t *testing.T) {\n\trec := httptest.NewRecorder()\n\treq := httptest.NewRequest(http.MethodGet, \"https://example.org/query\", http.NoBody)\n\th := Handler(\"example.org API\", \"https://example.org/query\")\n\th.ServeHTTP(rec, req)\n\n\tres := rec.Result()\n\tdefer res.Body.Close()\n\tif res.StatusCode != http.StatusOK {\n\t\tt.Errorf(\"res.StatusCode = %d; want %d\", res.StatusCode, http.StatusOK)\n\t}\n\n\tb, err := io.ReadAll(res.Body)\n\tif err != nil {\n\t\tt.Fatalf(\"reading res.Body: %v\", err)\n\t}\n\n\twant := regexp.MustCompile(`(?m)^.*url\\s*=\\s*['\"]https:\\/\\/example\\.org\\/query[\"'].*$`)\n\tif !want.Match(b) {\n\t\tt.Errorf(\"no match for %s in response body\", want.String())\n\t}\n\n\twantSubURL := regexp.MustCompile(\n\t\t`(?m)^.*subscriptionUrl\\s*=\\s*['\"]wss:\\/\\/example\\.org\\/query[\"'].*$`,\n\t)\n\tif !wantSubURL.Match(b) {\n\t\tt.Errorf(\"no match for %s in response body\", wantSubURL.String())\n\t}\n\n\twantMetaCharsetElement := regexp.MustCompile(\n\t\t`<head>\\n\\s{0,}<meta charset=\"utf-8\">\\n\\s{0,}.*<title>`,\n\t) // <meta> element must be in <head> and before <title>\n\tif !wantMetaCharsetElement.Match(b) {\n\t\tt.Errorf(\"no match for %s in response body\", wantMetaCharsetElement.String())\n\t}\n}\n\nfunc TestHandler_createsRelativeURLs(t *testing.T) {\n\trec := httptest.NewRecorder()\n\treq := httptest.NewRequest(http.MethodGet, \"http://localhost:8080/query\", http.NoBody)\n\th := Handler(\"example.org API\", \"/customquery\")\n\th.ServeHTTP(rec, req)\n\n\tres := rec.Result()\n\tdefer res.Body.Close()\n\tif res.StatusCode != http.StatusOK {\n\t\tt.Errorf(\"res.StatusCode = %d; want %d\", res.StatusCode, http.StatusOK)\n\t}\n\tif res.Header.Get(\"Content-Type\") != \"text/html; charset=UTF-8\" {\n\t\tt.Errorf(\n\t\t\t\"res.Header.Get(\\\"Content-Type\\\") = %q; want %q\",\n\t\t\tres.Header.Get(\"Content-Type\"),\n\t\t\t\"text/html; charset=UTF-8\",\n\t\t)\n\t}\n\n\tb, err := io.ReadAll(res.Body)\n\tif err != nil {\n\t\tt.Fatalf(\"reading res.Body: %v\", err)\n\t}\n\n\twantURL := regexp.MustCompile(`(?m)^.*url\\s*=\\s*location\\.protocol.*$`)\n\tif !wantURL.Match(b) {\n\t\tt.Errorf(\"no match for %s in response body\", wantURL.String())\n\t}\n\twantSubURL := regexp.MustCompile(\n\t\t`(?m)^.*subscriptionUrl\\s*=\\s*wsProto.*['\"]\\/customquery['\"].*$`,\n\t)\n\tif !wantSubURL.Match(b) {\n\t\tt.Errorf(\"no match for %s in response body\", wantSubURL.String())\n\t}\n}\n\nfunc TestHandler_Integrity(t *testing.T) {\n\ttestResourceIntegrity(t, func(title, endpoint string) http.HandlerFunc {\n\t\treturn Handler(title, endpoint, WithGraphiqlEnablePluginExplorer(true))\n\t})\n}\n\nfunc TestWithGraphiqlFetcherHeaders(t *testing.T) {\n\tt.Run(\"should set fetcher headers\", func(t *testing.T) {\n\t\tconfig := &GraphiqlConfig{}\n\t\theaders := map[string]string{\"Authorization\": \"Bearer token\"}\n\n\t\tWithGraphiqlFetcherHeaders(headers)(config)\n\n\t\tassert.Equal(t, headers, config.FetcherHeaders)\n\t})\n}\n\nfunc TestWithGraphiqlUiHeaders(t *testing.T) {\n\tt.Run(\"should set ui headers\", func(t *testing.T) {\n\t\tconfig := &GraphiqlConfig{}\n\t\theaders := map[string]string{\"X-Custom-Header\": \"value\"}\n\n\t\tWithGraphiqlUiHeaders(headers)(config)\n\n\t\tassert.Equal(t, headers, config.UiHeaders)\n\t})\n}\n\nfunc TestWithGraphiqlVersion(t *testing.T) {\n\tt.Run(\"should set graphiql version\", func(t *testing.T) {\n\t\tconfig := &GraphiqlConfig{}\n\t\tjsURL := \"https://example.com/graphiql.js\"\n\t\tcssURL := \"https://example.com/graphiql.css\"\n\t\tjsSRI := \"sha256-js\"\n\t\tcssSRI := \"sha256-css\"\n\n\t\tWithGraphiqlVersion(jsURL, cssURL, jsSRI, cssSRI)(config)\n\n\t\tassert.Equal(t, template.URL(jsURL), config.JsUrl)\n\t\tassert.Equal(t, template.URL(cssURL), config.CssUrl)\n\t\tassert.Equal(t, cssSRI, config.CssSRI)\n\t\tassert.Equal(t, jsSRI, config.JsSRI)\n\t})\n}\n\nfunc TestWithGraphiqlReactVersion(t *testing.T) {\n\tt.Run(\"should set react version\", func(t *testing.T) {\n\t\tconfig := &GraphiqlConfig{}\n\t\treactJSURL := \"https://example.com/react.js\"\n\t\treactDomJSURL := \"https://example.com/react-dom.js\"\n\t\treactJSSRI := \"sha256-react\"\n\t\treactDomJSSRI := \"sha256-react-dom\"\n\n\t\tWithGraphiqlReactVersion(reactJSURL, reactDomJSURL, reactJSSRI, reactDomJSSRI)(config)\n\n\t\tassert.Equal(t, template.URL(reactJSURL), config.ReactUrl)\n\t\tassert.Equal(t, template.URL(reactDomJSURL), config.ReactDOMUrl)\n\t\tassert.Equal(t, reactJSSRI, config.ReactSRI)\n\t\tassert.Equal(t, reactDomJSSRI, config.ReactDOMSRI)\n\t})\n}\n\nfunc TestWithGraphiqlPluginExplorerVersion(t *testing.T) {\n\tt.Run(\"should set plugin explorer version\", func(t *testing.T) {\n\t\tconfig := &GraphiqlConfig{}\n\t\tjsURL := \"https://example.com/plugin-explorer.js\"\n\t\tcssURL := \"https://example.com/plugin-explorer.css\"\n\t\tjsSRI := \"sha256-plugin-js\"\n\t\tcssSRI := \"sha256-plugin-css\"\n\n\t\tWithGraphiqlPluginExplorerVersion(jsURL, cssURL, jsSRI, cssSRI)(config)\n\n\t\tassert.Equal(t, template.URL(jsURL), config.PluginExplorerJsUrl)\n\t\tassert.Equal(t, template.URL(cssURL), config.PluginExplorerCssUrl)\n\t\tassert.Equal(t, cssSRI, config.PluginExplorerCssSRI)\n\t\tassert.Equal(t, jsSRI, config.PluginExplorerJsSRI)\n\t})\n}\n\nfunc TestWithGraphiqlEnablePluginExplorer(t *testing.T) {\n\ttests := []struct {\n\t\tname     string\n\t\tenable   bool\n\t\texpected bool\n\t}{\n\t\t{\n\t\t\tname:     \"should enable plugin explorer\",\n\t\t\tenable:   true,\n\t\t\texpected: true,\n\t\t},\n\t\t{\n\t\t\tname:     \"should disable plugin explorer\",\n\t\t\tenable:   false,\n\t\t\texpected: false,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tconfig := &GraphiqlConfig{}\n\n\t\t\tWithGraphiqlEnablePluginExplorer(tt.enable)(config)\n\n\t\t\tassert.Equal(t, tt.expected, config.EnablePluginExplorer)\n\t\t})\n\t}\n}\n\nfunc TestWithStoragePrefix(t *testing.T) {\n\tt.Run(\"should set storage prefix\", func(t *testing.T) {\n\t\tconfig := &GraphiqlConfig{}\n\t\tprefix := \"my-prefix\"\n\n\t\tWithStoragePrefix(prefix)(config)\n\n\t\tassert.Equal(t, prefix, config.StoragePrefix)\n\t})\n}\n\nfunc TestHandler_WithOptions(t *testing.T) {\n\ttests := []struct {\n\t\tname    string\n\t\toptions []GraphiqlConfigOption\n\t\tassert  func(t *testing.T, body string)\n\t}{\n\t\t{\n\t\t\tname: \"WithGraphiqlFetcherHeaders\",\n\t\t\toptions: []GraphiqlConfigOption{\n\t\t\t\tWithGraphiqlFetcherHeaders(map[string]string{\"Authorization\": \"Bearer token\"}),\n\t\t\t},\n\t\t\tassert: func(t *testing.T, body string) {\n\t\t\t\tassert.True(\n\t\t\t\t\tt,\n\t\t\t\t\tstrings.Contains(\n\t\t\t\t\t\tbody,\n\t\t\t\t\t\t`const fetcherHeaders = {\"Authorization\":\"Bearer token\"};`,\n\t\t\t\t\t),\n\t\t\t\t)\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"WithGraphiqlUiHeaders\",\n\t\t\toptions: []GraphiqlConfigOption{\n\t\t\t\tWithGraphiqlUiHeaders(map[string]string{\"X-Custom-Header\": \"value\"}),\n\t\t\t},\n\t\t\tassert: func(t *testing.T, body string) {\n\t\t\t\tassert.True(\n\t\t\t\t\tt,\n\t\t\t\t\tstrings.Contains(body, `const uiHeaders = {\"X-Custom-Header\":\"value\"};`),\n\t\t\t\t)\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"WithGraphiqlVersion\",\n\t\t\toptions: []GraphiqlConfigOption{\n\t\t\t\tWithGraphiqlVersion(\n\t\t\t\t\t\"https://example.com/graphiql.js\",\n\t\t\t\t\t\"https://example.com/graphiql.css\",\n\t\t\t\t\t\"sha256-js\",\n\t\t\t\t\t\"sha256-css\",\n\t\t\t\t),\n\t\t\t},\n\t\t\tassert: func(t *testing.T, body string) {\n\t\t\t\tassert.True(t, strings.Contains(body, `src=\"https://example.com/graphiql.js\"`))\n\t\t\t\tassert.True(t, strings.Contains(body, `href=\"https://example.com/graphiql.css\"`))\n\t\t\t\tassert.True(t, strings.Contains(body, `integrity=\"sha256-js\"`))\n\t\t\t\tassert.True(t, strings.Contains(body, `integrity=\"sha256-css\"`))\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"WithGraphiqlReactVersion\",\n\t\t\toptions: []GraphiqlConfigOption{\n\t\t\t\tWithGraphiqlReactVersion(\n\t\t\t\t\t\"https://example.com/react.js\",\n\t\t\t\t\t\"https://example.com/react-dom.js\",\n\t\t\t\t\t\"sha256-react\",\n\t\t\t\t\t\"sha256-react-dom\",\n\t\t\t\t),\n\t\t\t},\n\t\t\tassert: func(t *testing.T, body string) {\n\t\t\t\tassert.True(t, strings.Contains(body, `src=\"https://example.com/react.js\"`))\n\t\t\t\tassert.True(t, strings.Contains(body, `src=\"https://example.com/react-dom.js\"`))\n\t\t\t\tassert.True(t, strings.Contains(body, `integrity=\"sha256-react\"`))\n\t\t\t\tassert.True(t, strings.Contains(body, `integrity=\"sha256-react-dom\"`))\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"WithGraphiqlPluginExplorerVersion\",\n\t\t\toptions: []GraphiqlConfigOption{\n\t\t\t\tWithGraphiqlEnablePluginExplorer(true),\n\t\t\t\tWithGraphiqlPluginExplorerVersion(\n\t\t\t\t\t\"https://example.com/plugin-explorer.js\",\n\t\t\t\t\t\"https://example.com/plugin-explorer.css\",\n\t\t\t\t\t\"sha256-plugin-js\",\n\t\t\t\t\t\"sha256-plugin-css\",\n\t\t\t\t),\n\t\t\t},\n\t\t\tassert: func(t *testing.T, body string) {\n\t\t\t\tassert.True(\n\t\t\t\t\tt,\n\t\t\t\t\tstrings.Contains(body, `src=\"https://example.com/plugin-explorer.js\"`),\n\t\t\t\t)\n\t\t\t\tassert.True(\n\t\t\t\t\tt,\n\t\t\t\t\tstrings.Contains(body, `href=\"https://example.com/plugin-explorer.css\"`),\n\t\t\t\t)\n\t\t\t\tassert.True(t, strings.Contains(body, `integrity=\"sha256-plugin-js\"`))\n\t\t\t\tassert.True(t, strings.Contains(body, `integrity=\"sha256-plugin-css\"`))\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"WithGraphiqlEnablePluginExplorer\",\n\t\t\toptions: []GraphiqlConfigOption{\n\t\t\t\tWithGraphiqlEnablePluginExplorer(true),\n\t\t\t},\n\t\t\tassert: func(t *testing.T, body string) {\n\t\t\t\tassert.True(t, strings.Contains(body, `GraphiQLPluginExplorer.explorerPlugin()`))\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"WithStoragePrefix\",\n\t\t\toptions: []GraphiqlConfigOption{\n\t\t\t\tWithStoragePrefix(\"my-prefix\"),\n\t\t\t},\n\t\t\tassert: func(t *testing.T, body string) {\n\t\t\t\tassert.True(t, strings.Contains(body, `new PrefixedStorage('my-prefix')`))\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\trecorder := httptest.NewRecorder()\n\t\t\trequest := httptest.NewRequest(http.MethodGet, \"/\", http.NoBody)\n\n\t\t\th := Handler(\"test\", \"/query\", tt.options...)\n\t\t\th.ServeHTTP(recorder, request)\n\n\t\t\tresult := recorder.Result()\n\t\t\tdefer result.Body.Close()\n\n\t\t\tbody, err := io.ReadAll(result.Body)\n\t\t\trequire.NoError(t, err)\n\n\t\t\ttt.assert(t, string(body))\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "graphql/recovery.go",
    "content": "package graphql\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"os\"\n\t\"runtime/debug\"\n\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n)\n\ntype RecoverFunc func(ctx context.Context, err any) (userMessage error)\n\nfunc DefaultRecover(ctx context.Context, err any) error {\n\tfmt.Fprintln(os.Stderr, err)\n\tfmt.Fprintln(os.Stderr)\n\tdebug.PrintStack()\n\n\treturn gqlerror.Errorf(\"internal system error\")\n}\n"
  },
  {
    "path": "graphql/resolve_field.go",
    "content": "package graphql\n\nimport (\n\t\"context\"\n\t\"io\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\nfunc ResolveField[T any](\n\tctx context.Context,\n\toc *OperationContext,\n\tfield CollectedField,\n\tinitializeFieldContext func(ctx context.Context, field CollectedField) (*FieldContext, error),\n\tfieldResolver func(ctx context.Context) (any, error),\n\tmiddlewareChain func(ctx context.Context, next Resolver) Resolver,\n\tmarshal func(ctx context.Context, sel ast.SelectionSet, v T) Marshaler,\n\trecoverFromPanic bool,\n\tnonNull bool,\n) Marshaler {\n\treturn resolveField[T, Marshaler](\n\t\tctx,\n\t\toc,\n\t\tfield,\n\t\tinitializeFieldContext,\n\t\tfieldResolver,\n\t\tmiddlewareChain,\n\t\trecoverFromPanic,\n\t\tnonNull,\n\t\tNull,\n\t\tfunc(ctx context.Context, res T) Marshaler {\n\t\t\treturn marshal(ctx, field.Selections, res)\n\t\t},\n\t)\n}\n\nfunc ResolveFieldStream[T any](\n\tctx context.Context,\n\toc *OperationContext,\n\tfield CollectedField,\n\tinitializeFieldContext func(ctx context.Context, field CollectedField) (*FieldContext, error),\n\tfieldResolver func(context.Context) (any, error),\n\tmiddlewareChain func(ctx context.Context, next Resolver) Resolver,\n\tmarshal func(ctx context.Context, sel ast.SelectionSet, v T) Marshaler,\n\trecoverFromPanic bool,\n\tnonNull bool,\n) func(context.Context) Marshaler {\n\treturn resolveField(\n\t\tctx,\n\t\toc,\n\t\tfield,\n\t\tinitializeFieldContext,\n\t\tfieldResolver,\n\t\tmiddlewareChain,\n\t\trecoverFromPanic,\n\t\tnonNull,\n\t\tnil,\n\t\tfunc(ctx context.Context, res <-chan T) func(context.Context) Marshaler {\n\t\t\treturn func(ctx context.Context) Marshaler {\n\t\t\t\tselect {\n\t\t\t\tcase v, ok := <-res:\n\t\t\t\t\tif !ok {\n\t\t\t\t\t\treturn nil\n\t\t\t\t\t}\n\t\t\t\t\treturn WriterFunc(func(w io.Writer) {\n\t\t\t\t\t\tw.Write([]byte{'{'})\n\t\t\t\t\t\tMarshalString(field.Alias).MarshalGQL(w)\n\t\t\t\t\t\tw.Write([]byte{':'})\n\t\t\t\t\t\tmarshal(ctx, field.Selections, v).MarshalGQL(w)\n\t\t\t\t\t\tw.Write([]byte{'}'})\n\t\t\t\t\t})\n\t\t\t\tcase <-ctx.Done():\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t)\n}\n\nfunc resolveField[T, R any](\n\tctx context.Context,\n\toc *OperationContext,\n\tfield CollectedField,\n\tinitializeFieldContext func(ctx context.Context, field CollectedField) (*FieldContext, error),\n\tfieldResolver func(ctx context.Context) (any, error),\n\tmiddlewareChain func(ctx context.Context, next Resolver) Resolver,\n\trecoverFromPanic bool,\n\tnonNull bool,\n\tdefaultResult R,\n\tresult func(ctx context.Context, res T) R,\n) (ret R) {\n\tfc, err := initializeFieldContext(ctx, field)\n\tif err != nil {\n\t\treturn defaultResult\n\t}\n\tctx = WithFieldContext(ctx, fc)\n\n\tif recoverFromPanic {\n\t\tdefer func() {\n\t\t\tif r := recover(); r != nil {\n\t\t\t\toc.Error(ctx, oc.Recover(ctx, r))\n\t\t\t\tret = defaultResult\n\t\t\t}\n\t\t}()\n\t}\n\n\tnext := func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn fieldResolver(rctx)\n\t}\n\n\tif middlewareChain != nil {\n\t\tnext = middlewareChain(ctx, next)\n\t}\n\n\tresTmp, err := oc.ResolverMiddleware(ctx, next)\n\tif err != nil {\n\t\toc.Error(ctx, err)\n\t\treturn defaultResult\n\t}\n\tif resTmp == nil {\n\t\tif nonNull {\n\t\t\tif !HasFieldError(ctx, fc) {\n\t\t\t\toc.Errorf(ctx, \"must not be null\")\n\t\t\t}\n\t\t}\n\t\treturn defaultResult\n\t}\n\tif res, ok := resTmp.(T); ok {\n\t\tfc.Result = res\n\t\treturn result(ctx, res)\n\t}\n\tif res, ok := resTmp.(R); ok {\n\t\tfc.Result = res\n\t\treturn res\n\t}\n\tvar t T\n\toc.Errorf(\n\t\tctx,\n\t\t`unexpected type %T from middleware/directive chain, should be %T`,\n\t\tresTmp,\n\t\tt,\n\t)\n\treturn defaultResult\n}\n"
  },
  {
    "path": "graphql/resolve_field_test.go",
    "content": "package graphql\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\ntype ResolveFieldTest struct {\n\tname                      string\n\trecoverFromPanic          bool\n\tnonNull                   bool\n\tinitializeFieldContextErr error\n\tpanicMiddlewareChain      string\n\tpanicResolverMiddleware   string\n\tpanicFieldResolver        string\n\tfieldResolverValue        any\n\tfieldResolverErr          error\n\tmarshalCalls              []int\n\texpected                  string\n\texpectedPanic             string\n\texpectedErr               string\n\texpectedCalls             int\n}\n\nvar commonResolveFieldTests = []ResolveFieldTest{\n\t{\n\t\tname:               \"should handle nullable field when field resolver returns nil value\",\n\t\tfieldResolverValue: nil,\n\t\texpected:           \"null\",\n\t\texpectedCalls:      4,\n\t},\n\t{\n\t\tname:               \"should fail non nullable field when field resolver returns nil value\",\n\t\tnonNull:            true,\n\t\tfieldResolverValue: nil,\n\t\texpected:           \"null\",\n\t\texpectedErr:        \"input: testField must not be null\\n\",\n\t\texpectedCalls:      4,\n\t},\n\t{\n\t\tname:                      \"should fail when initialize field context returns an error\",\n\t\tinitializeFieldContextErr: errors.New(\"test initialize field context error\"),\n\t\texpected:                  \"null\",\n\t\texpectedCalls:             1,\n\t},\n\t{\n\t\tname:                 \"should not recover from panic when middleware chain panics\",\n\t\tpanicMiddlewareChain: \"test middleware chain panic\",\n\t\texpectedPanic:        \"test middleware chain panic\",\n\t\texpectedCalls:        2,\n\t},\n\t{\n\t\tname:                 \"should recover from panic when middleware chain panics with recover from panic\",\n\t\trecoverFromPanic:     true,\n\t\tpanicMiddlewareChain: \"test middleware chain panic\",\n\t\texpected:             \"null\",\n\t\texpectedPanic:        \"test middleware chain panic\",\n\t\texpectedCalls:        3,\n\t},\n\t{\n\t\tname:                    \"should not recover from panic when resolver middleware panics\",\n\t\tpanicResolverMiddleware: \"test resolver middleware panic\",\n\t\texpectedPanic:           \"test resolver middleware panic\",\n\t\texpectedCalls:           3,\n\t},\n\t{\n\t\tname:                    \"should recover from panic when resolver middleware panics with recover from panic\",\n\t\trecoverFromPanic:        true,\n\t\tpanicResolverMiddleware: \"test resolver middleware panic\",\n\t\texpected:                \"null\",\n\t\texpectedPanic:           \"test resolver middleware panic\",\n\t\texpectedCalls:           4,\n\t},\n\t{\n\t\tname:               \"should not recover from panic when field resolver panics\",\n\t\tpanicFieldResolver: \"test field resolver panic\",\n\t\texpectedPanic:      \"test field resolver panic\",\n\t\texpectedCalls:      4,\n\t},\n\t{\n\t\tname:               \"should recover from panic when field resolver panics with recover from panic\",\n\t\trecoverFromPanic:   true,\n\t\tpanicFieldResolver: \"test field resolver panic\",\n\t\texpected:           \"null\",\n\t\texpectedPanic:      \"test field resolver panic\",\n\t\texpectedCalls:      5,\n\t},\n\t{\n\t\tname:             \"should fail when field resolver returns an error\",\n\t\tfieldResolverErr: errors.New(\"test field resolver error\"),\n\t\texpected:         \"null\",\n\t\texpectedErr:      \"input: testField test field resolver error\\n\",\n\t\texpectedCalls:    4,\n\t},\n}\n\nfunc TestResolveField(t *testing.T) {\n\ttests := append(\n\t\t[]ResolveFieldTest{\n\t\t\t{\n\t\t\t\tname:               \"should resolve field\",\n\t\t\t\tfieldResolverValue: \"test value\",\n\t\t\t\tmarshalCalls:       []int{5},\n\t\t\t\texpected:           `\"test value\"`,\n\t\t\t\texpectedCalls:      5,\n\t\t\t},\n\t\t\t{\n\t\t\t\tname:    \"should fail when field resolver returns invalid type\",\n\t\t\t\tnonNull: true,\n\t\t\t\t// the tests are using string so int should fail\n\t\t\t\tfieldResolverValue: 123,\n\t\t\t\texpected:           \"null\",\n\t\t\t\texpectedErr:        \"input: testField unexpected type int from middleware/directive chain, should be string\\n\",\n\t\t\t\texpectedCalls:      4,\n\t\t\t},\n\t\t},\n\t\tcommonResolveFieldTests...,\n\t)\n\n\ttestResolveField(\n\t\tt,\n\t\ttests,\n\t\tResolveField,\n\t\tfalse,\n\t\tfunc(t *testing.T, test ResolveFieldTest, result Marshaler) {\n\t\t\tt.Helper()\n\t\t\tvar sb strings.Builder\n\t\t\tif result != nil {\n\t\t\t\tresult.MarshalGQL(&sb)\n\t\t\t}\n\t\t\tassert.Equal(t, test.expected, sb.String())\n\t\t},\n\t)\n}\n\nfunc TestResolveFieldStream(t *testing.T) {\n\tresultChan := make(chan string, 3)\n\tresultChan <- \"test one\"\n\tresultChan <- \"test two\"\n\tresultChan <- \"test three\"\n\tclose(resultChan)\n\ttests := append(\n\t\t[]ResolveFieldTest{\n\t\t\t{\n\t\t\t\tname:               \"should resolve field\",\n\t\t\t\tfieldResolverValue: (<-chan string)(resultChan),\n\t\t\t\tmarshalCalls:       []int{5, 6, 7},\n\t\t\t\texpected:           `{\"testField\":\"test one\"}{\"testField\":\"test two\"}{\"testField\":\"test three\"}`,\n\t\t\t\texpectedCalls:      7,\n\t\t\t},\n\t\t\t{\n\t\t\t\tname:    \"should fail when field resolver returns invalid type\",\n\t\t\t\tnonNull: true,\n\t\t\t\t// the tests are using <-chan string so int should fail\n\t\t\t\tfieldResolverValue: 123,\n\t\t\t\texpected:           \"null\",\n\t\t\t\texpectedErr:        \"input: testField unexpected type int from middleware/directive chain, should be <-chan string\\n\",\n\t\t\t\texpectedCalls:      4,\n\t\t\t},\n\t\t},\n\t\tcommonResolveFieldTests...,\n\t)\n\tfor i, test := range tests {\n\t\t// the stream tests output empty string where the non stream tests output null\n\t\tif test.expected == \"null\" {\n\t\t\ttests[i].expected = \"\"\n\t\t}\n\t}\n\n\ttestResolveField(\n\t\tt,\n\t\ttests,\n\t\tResolveFieldStream,\n\t\ttrue,\n\t\tfunc(t *testing.T, test ResolveFieldTest, result func(ctx context.Context) Marshaler) {\n\t\t\tvar sb strings.Builder\n\t\t\tif result != nil {\n\t\t\t\tfor range 3 {\n\t\t\t\t\tresult(context.Background()).MarshalGQL(&sb)\n\t\t\t\t}\n\t\t\t}\n\t\t\tassert.Equal(t, test.expected, sb.String())\n\t\t},\n\t)\n}\n\ntype resolveFieldFunc[T, R any] func(\n\tctx context.Context,\n\toc *OperationContext,\n\tfield CollectedField,\n\tinitializeFieldContext func(ctx context.Context, field CollectedField) (*FieldContext, error),\n\tfieldResolver func(context.Context) (any, error),\n\tmiddlewareChain func(ctx context.Context, next Resolver) Resolver,\n\tmarshal func(ctx context.Context, sel ast.SelectionSet, v T) Marshaler,\n\trecoverFromPanic bool,\n\tnonNull bool,\n) R\n\ntype resolveFieldTestKey string\n\nfunc testResolveField[R any](\n\tt *testing.T,\n\ttests []ResolveFieldTest,\n\tresolveField resolveFieldFunc[string, R],\n\tstream bool,\n\tassertResult func(t *testing.T, test ResolveFieldTest, result R),\n) {\n\tt.Helper()\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tcalls := 0\n\t\t\tassertCall := func(call int) {\n\t\t\t\tcalls++\n\t\t\t\tassert.Equal(t, call, calls)\n\t\t\t}\n\t\t\tmarshalCalled := 0\n\n\t\t\tctx := WithResponseContext(context.Background(), DefaultErrorPresenter, nil)\n\t\t\toc := &OperationContext{\n\t\t\t\tRecoverFunc: func(ctx context.Context, err any) (userMessage error) {\n\t\t\t\t\tassertCall(test.expectedCalls)\n\t\t\t\t\tif test.expectedPanic != \"\" {\n\t\t\t\t\t\tassert.Equal(t, test.expectedPanic, err)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tt.Errorf(\"should not panic but recover func called with: %v\", err)\n\t\t\t\t\t}\n\t\t\t\t\treturn nil\n\t\t\t\t},\n\t\t\t\tResolverMiddleware: func(ctx context.Context, next Resolver) (res any, err error) {\n\t\t\t\t\tassertCall(3)\n\t\t\t\t\tctx = context.WithValue(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tresolveFieldTestKey(\"middlewareResolver\"),\n\t\t\t\t\t\t\"test middleware resolver\",\n\t\t\t\t\t)\n\t\t\t\t\tif test.panicResolverMiddleware != \"\" {\n\t\t\t\t\t\tpanic(test.panicResolverMiddleware)\n\t\t\t\t\t}\n\t\t\t\t\treturn next(ctx)\n\t\t\t\t},\n\t\t\t}\n\t\t\tfield := CollectedField{\n\t\t\t\tField: &ast.Field{\n\t\t\t\t\tAlias: \"testField\",\n\t\t\t\t},\n\t\t\t}\n\t\t\tvar result R\n\t\t\trun := func() {\n\t\t\t\tresult = resolveField(\n\t\t\t\t\tctx,\n\t\t\t\t\toc,\n\t\t\t\t\tfield,\n\t\t\t\t\tfunc(ctx context.Context, field CollectedField) (*FieldContext, error) {\n\t\t\t\t\t\tassertCall(1)\n\t\t\t\t\t\treturn &FieldContext{\n\t\t\t\t\t\t\tObject: \"Test\",\n\t\t\t\t\t\t\tField:  field,\n\t\t\t\t\t\t}, test.initializeFieldContextErr\n\t\t\t\t\t},\n\t\t\t\t\tfunc(ctx context.Context) (any, error) {\n\t\t\t\t\t\tassertCall(4)\n\t\t\t\t\t\tassert.Equal(\n\t\t\t\t\t\t\tt,\n\t\t\t\t\t\t\t\"test middleware resolver\",\n\t\t\t\t\t\t\tctx.Value(resolveFieldTestKey(\"middlewareResolver\")),\n\t\t\t\t\t\t\t\"should propagate value from resolver middleware\",\n\t\t\t\t\t\t)\n\t\t\t\t\t\tif test.panicFieldResolver != \"\" {\n\t\t\t\t\t\t\tpanic(test.panicFieldResolver)\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn test.fieldResolverValue, test.fieldResolverErr\n\t\t\t\t\t},\n\t\t\t\t\tfunc(ctx context.Context, next Resolver) Resolver {\n\t\t\t\t\t\tassertCall(2)\n\t\t\t\t\t\tif test.panicMiddlewareChain != \"\" {\n\t\t\t\t\t\t\tpanic(test.panicMiddlewareChain)\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn func(ctx context.Context) (res any, err error) {\n\t\t\t\t\t\t\tctx = context.WithValue(\n\t\t\t\t\t\t\t\tctx,\n\t\t\t\t\t\t\t\tresolveFieldTestKey(\"middlewareChain\"),\n\t\t\t\t\t\t\t\t\"test middleware chain\",\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\treturn next(ctx)\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tfunc(ctx context.Context, sel ast.SelectionSet, v string) Marshaler {\n\t\t\t\t\t\tassertCall(test.marshalCalls[marshalCalled])\n\t\t\t\t\t\tmarshalCalled++\n\t\t\t\t\t\tif !stream {\n\t\t\t\t\t\t\tassert.Equal(\n\t\t\t\t\t\t\t\tt,\n\t\t\t\t\t\t\t\t\"test middleware chain\",\n\t\t\t\t\t\t\t\tctx.Value(resolveFieldTestKey(\"middlewareChain\")),\n\t\t\t\t\t\t\t\t\"should propagate value from middleware chain\",\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn MarshalString(v)\n\t\t\t\t\t},\n\t\t\t\t\ttest.recoverFromPanic,\n\t\t\t\t\ttest.nonNull,\n\t\t\t\t)\n\t\t\t}\n\t\t\tif test.expectedPanic == \"\" || test.recoverFromPanic {\n\t\t\t\trun()\n\t\t\t} else {\n\t\t\t\tassert.PanicsWithValue(t, test.expectedPanic, run)\n\t\t\t}\n\t\t\trequire.EqualError(t, GetErrors(ctx), test.expectedErr)\n\n\t\t\tassertResult(t, test, result)\n\t\t\tassert.Equal(t, test.expectedCalls, calls)\n\t\t})\n\t}\n}\n\nfunc TestResolveFieldMiddlewareReturningMarshaler(t *testing.T) {\n\tt.Run(\n\t\t\"should not call field resolver when field resolver returns a Marshaler\",\n\t\tfunc(t *testing.T) {\n\t\t\toc := &OperationContext{\n\t\t\t\tResolverMiddleware: func(ctx context.Context, next Resolver) (res any, err error) {\n\t\t\t\t\treturn next(ctx)\n\t\t\t\t},\n\t\t\t}\n\t\t\tfield := CollectedField{\n\t\t\t\tField: &ast.Field{\n\t\t\t\t\tAlias: \"testField\",\n\t\t\t\t},\n\t\t\t}\n\t\t\tresult := ResolveField(\n\t\t\t\tcontext.Background(),\n\t\t\t\toc,\n\t\t\t\tfield,\n\t\t\t\tfunc(ctx context.Context, field CollectedField) (*FieldContext, error) {\n\t\t\t\t\treturn &FieldContext{\n\t\t\t\t\t\tObject: \"Test\",\n\t\t\t\t\t\tField:  field,\n\t\t\t\t\t}, nil\n\t\t\t\t},\n\t\t\t\tfunc(ctx context.Context) (any, error) {\n\t\t\t\t\tt.Error(\"should not call field resolver\")\n\t\t\t\t\treturn nil, nil\n\t\t\t\t},\n\t\t\t\tfunc(ctx context.Context, next Resolver) Resolver {\n\t\t\t\t\treturn func(ctx context.Context) (res any, err error) {\n\t\t\t\t\t\treturn MarshalString(\"test value\"), nil\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tfunc(ctx context.Context, sel ast.SelectionSet, v string) Marshaler {\n\t\t\t\t\tt.Error(\"should not call marshal\")\n\t\t\t\t\treturn nil\n\t\t\t\t},\n\t\t\t\tfalse,\n\t\t\t\tfalse,\n\t\t\t)\n\t\t\tvar sb strings.Builder\n\t\t\tresult.MarshalGQL(&sb)\n\t\t\tassert.Equal(t, `\"test value\"`, sb.String())\n\t\t},\n\t)\n}\n"
  },
  {
    "path": "graphql/response.go",
    "content": "package graphql\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n)\n\n// Errors are intentionally serialized first based on the advice in\n// https://github.com/facebook/graphql/commit/7b40390d48680b15cb93e02d46ac5eb249689876#diff-757cea6edf0288677a9eea4cfc801d87R107\n// and https://github.com/facebook/graphql/pull/384\ntype Response struct {\n\tErrors     gqlerror.List   `json:\"errors,omitempty\"`\n\tData       json.RawMessage `json:\"data\"`\n\tLabel      string          `json:\"label,omitempty\"`\n\tPath       ast.Path        `json:\"path,omitempty\"`\n\tHasNext    *bool           `json:\"hasNext,omitempty\"`\n\tExtensions map[string]any  `json:\"extensions,omitempty\"`\n}\n\nfunc ErrorResponse(ctx context.Context, messagef string, args ...any) *Response {\n\treturn &Response{\n\t\tErrors: gqlerror.List{{Message: fmt.Sprintf(messagef, args...)}},\n\t}\n}\n"
  },
  {
    "path": "graphql/root.go",
    "content": "package graphql\n\ntype Query struct{}\n\ntype Mutation struct{}\n\ntype Subscription struct{}\n"
  },
  {
    "path": "graphql/slice.go",
    "content": "package graphql\n\nimport (\n\t\"context\"\n\t\"sync\"\n\t\"sync/atomic\"\n\n\t\"golang.org/x/sync/semaphore\"\n)\n\n// MarshalSliceConcurrently marshals a slice of elements concurrently, writing\n// each result into the returned Array.\n//\n// The marshalElement callback is called for each index and receives a context\n// that already has a FieldContext with Index set. The callback should set\n// FieldContext.Result and perform the actual marshaling.\n//\n// workerLimit of 0 means unlimited concurrency.\nfunc MarshalSliceConcurrently(\n\tctx context.Context,\n\tlength int,\n\tworkerLimit int64,\n\tomitPanicHandler bool,\n\tmarshalElement func(ctx context.Context, i int) Marshaler,\n) Array {\n\tret := make(Array, length)\n\tif length == 0 {\n\t\treturn ret\n\t}\n\n\tisLen1 := length == 1\n\n\tif isLen1 {\n\t\ti := 0\n\t\tfc := &FieldContext{\n\t\t\tIndex: &i,\n\t\t}\n\t\tchildCtx := WithFieldContext(ctx, fc)\n\t\tif omitPanicHandler {\n\t\t\tret[0] = marshalElement(childCtx, 0)\n\t\t} else {\n\t\t\tfunc() {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tAddError(childCtx, Recover(childCtx, r))\n\t\t\t\t\t\tret = nil\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tret[0] = marshalElement(childCtx, 0)\n\t\t\t}()\n\t\t}\n\t\treturn ret\n\t}\n\n\t// Multiple elements: use goroutines.\n\tvar wg sync.WaitGroup\n\tvar sm *semaphore.Weighted\n\tif workerLimit > 0 {\n\t\tsm = semaphore.NewWeighted(workerLimit)\n\t}\n\n\t// retNilFlag is used to signal from any goroutine that the result should\n\t// be nil (e.g. on panic). We use atomic to avoid data races.\n\tvar retNilFlag atomic.Bool\n\n\tfor i := range length {\n\t\tfc := &FieldContext{\n\t\t\tIndex: &i,\n\t\t}\n\t\tchildCtx := WithFieldContext(ctx, fc)\n\n\t\tf := func(i int) {\n\t\t\tdefer wg.Done()\n\t\t\tif sm != nil {\n\t\t\t\tdefer sm.Release(1)\n\t\t\t}\n\t\t\tif !omitPanicHandler {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tAddError(childCtx, Recover(childCtx, r))\n\t\t\t\t\t\tretNilFlag.Store(true)\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t}\n\t\t\tret[i] = marshalElement(childCtx, i)\n\t\t}\n\n\t\tif sm != nil {\n\t\t\tif err := sm.Acquire(ctx, 1); err != nil {\n\t\t\t\tAddError(childCtx, ctx.Err())\n\t\t\t\tretNilFlag.Store(true)\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\twg.Add(1)\n\t\tgo f(i)\n\t}\n\n\twg.Wait()\n\n\tif retNilFlag.Load() {\n\t\treturn nil\n\t}\n\treturn ret\n}\n"
  },
  {
    "path": "graphql/slice_test.go",
    "content": "package graphql\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"fmt\"\n\t\"sync/atomic\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n)\n\n// withTestResponseContext sets up a minimal response context for testing.\nfunc withTestResponseContext(ctx context.Context) context.Context {\n\treturn WithResponseContext(ctx, func(ctx context.Context, err error) *gqlerror.Error {\n\t\treturn &gqlerror.Error{Message: err.Error()}\n\t}, DefaultRecover)\n}\n\nfunc TestMarshalSliceConcurrently(t *testing.T) {\n\tt.Run(\"empty slice\", func(t *testing.T) {\n\t\tctx := withTestResponseContext(context.Background())\n\t\tret := MarshalSliceConcurrently(\n\t\t\tctx,\n\t\t\t0,\n\t\t\t0,\n\t\t\tfalse,\n\t\t\tfunc(ctx context.Context, i int) Marshaler {\n\t\t\t\tt.Fatal(\"should not be called\")\n\t\t\t\treturn Null\n\t\t\t},\n\t\t)\n\t\tassert.Empty(t, ret)\n\t})\n\n\tt.Run(\"single element runs synchronously\", func(t *testing.T) {\n\t\tctx := withTestResponseContext(context.Background())\n\t\tvar called bool\n\t\tret := MarshalSliceConcurrently(\n\t\t\tctx,\n\t\t\t1,\n\t\t\t0,\n\t\t\tfalse,\n\t\t\tfunc(ctx context.Context, i int) Marshaler {\n\t\t\t\tcalled = true\n\t\t\t\tassert.Equal(t, 0, i)\n\t\t\t\tfc := GetFieldContext(ctx)\n\t\t\t\trequire.NotNil(t, fc)\n\t\t\t\tassert.Equal(t, 0, *fc.Index)\n\t\t\t\treturn MarshalString(\"hello\")\n\t\t\t},\n\t\t)\n\t\tassert.True(t, called)\n\t\trequire.Len(t, ret, 1)\n\t\tvar buf bytes.Buffer\n\t\tret[0].MarshalGQL(&buf)\n\t\tassert.Equal(t, `\"hello\"`, buf.String())\n\t})\n\n\tt.Run(\"multiple elements run concurrently\", func(t *testing.T) {\n\t\tctx := withTestResponseContext(context.Background())\n\t\tn := 10\n\t\tvar callCount atomic.Int32\n\t\tret := MarshalSliceConcurrently(\n\t\t\tctx,\n\t\t\tn,\n\t\t\t0,\n\t\t\tfalse,\n\t\t\tfunc(ctx context.Context, i int) Marshaler {\n\t\t\t\tcallCount.Add(1)\n\t\t\t\tfc := GetFieldContext(ctx)\n\t\t\t\trequire.NotNil(t, fc)\n\t\t\t\tassert.Equal(t, i, *fc.Index)\n\t\t\t\treturn MarshalString(fmt.Sprintf(\"item-%d\", i))\n\t\t\t},\n\t\t)\n\t\tassert.Equal(t, int32(n), callCount.Load())\n\t\trequire.Len(t, ret, n)\n\t\tfor i := range n {\n\t\t\tvar buf bytes.Buffer\n\t\t\tret[i].MarshalGQL(&buf)\n\t\t\tassert.Equal(t, fmt.Sprintf(`\"item-%d\"`, i), buf.String())\n\t\t}\n\t})\n\n\tt.Run(\"worker limit bounds concurrency\", func(t *testing.T) {\n\t\tctx := withTestResponseContext(context.Background())\n\t\tn := 20\n\t\tvar workerLimit int64 = 3\n\t\tvar concurrent atomic.Int32\n\t\tvar maxConcurrent atomic.Int32\n\n\t\tret := MarshalSliceConcurrently(\n\t\t\tctx,\n\t\t\tn,\n\t\t\tworkerLimit,\n\t\t\tfalse,\n\t\t\tfunc(ctx context.Context, i int) Marshaler {\n\t\t\t\tcur := concurrent.Add(1)\n\t\t\t\tdefer concurrent.Add(-1)\n\t\t\t\t// Track the maximum observed concurrency\n\t\t\t\tfor {\n\t\t\t\t\told := maxConcurrent.Load()\n\t\t\t\t\tif cur <= old || maxConcurrent.CompareAndSwap(old, cur) {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Small sleep to allow concurrency to build up\n\t\t\t\ttime.Sleep(time.Millisecond)\n\t\t\t\treturn MarshalString(fmt.Sprintf(\"item-%d\", i))\n\t\t\t},\n\t\t)\n\n\t\trequire.Len(t, ret, n)\n\t\tassert.LessOrEqual(t, maxConcurrent.Load(), int32(workerLimit))\n\t})\n\n\tt.Run(\"panic recovery sets result to nil\", func(t *testing.T) {\n\t\tctx := withTestResponseContext(context.Background())\n\t\tret := MarshalSliceConcurrently(\n\t\t\tctx,\n\t\t\t1,\n\t\t\t0,\n\t\t\tfalse,\n\t\t\tfunc(ctx context.Context, i int) Marshaler {\n\t\t\t\tpanic(\"test panic\")\n\t\t\t},\n\t\t)\n\t\tassert.Nil(t, ret)\n\t})\n\n\tt.Run(\"panic recovery in concurrent mode sets result to nil\", func(t *testing.T) {\n\t\tctx := withTestResponseContext(context.Background())\n\t\tret := MarshalSliceConcurrently(\n\t\t\tctx,\n\t\t\t3,\n\t\t\t0,\n\t\t\tfalse,\n\t\t\tfunc(ctx context.Context, i int) Marshaler {\n\t\t\t\tif i == 1 {\n\t\t\t\t\tpanic(\"test panic\")\n\t\t\t\t}\n\t\t\t\treturn MarshalString(\"ok\")\n\t\t\t},\n\t\t)\n\t\tassert.Nil(t, ret)\n\t})\n\n\tt.Run(\"omit panic handler does not recover\", func(t *testing.T) {\n\t\tctx := withTestResponseContext(context.Background())\n\t\tassert.Panics(t, func() {\n\t\t\tMarshalSliceConcurrently(ctx, 1, 0, true, func(ctx context.Context, i int) Marshaler {\n\t\t\t\tpanic(\"test panic\")\n\t\t\t})\n\t\t})\n\t})\n\n\tt.Run(\"context cancellation with worker limit does not deadlock\", func(t *testing.T) {\n\t\tctx := withTestResponseContext(context.Background())\n\t\tctx, cancel := context.WithCancel(ctx)\n\n\t\tdone := make(chan Array, 1)\n\t\tgo func() {\n\t\t\tret := MarshalSliceConcurrently(\n\t\t\t\tctx,\n\t\t\t\t100,\n\t\t\t\t1,\n\t\t\t\tfalse,\n\t\t\t\tfunc(ctx context.Context, i int) Marshaler {\n\t\t\t\t\tif i == 2 {\n\t\t\t\t\t\t// Cancel context mid-flight to trigger the deadlock scenario\n\t\t\t\t\t\tcancel()\n\t\t\t\t\t\t// Small delay to let cancellation propagate\n\t\t\t\t\t\ttime.Sleep(10 * time.Millisecond)\n\t\t\t\t\t}\n\t\t\t\t\treturn MarshalString(fmt.Sprintf(\"item-%d\", i))\n\t\t\t\t},\n\t\t\t)\n\t\t\tdone <- ret\n\t\t}()\n\n\t\tselect {\n\t\tcase ret := <-done:\n\t\t\t// Should return nil because remaining elements were skipped\n\t\t\t// after context cancellation caused semaphore Acquire to fail.\n\t\t\tassert.Nil(t, ret)\n\t\tcase <-time.After(5 * time.Second):\n\t\t\tt.Fatal(\"deadlock detected: MarshalSliceConcurrently did not return within timeout\")\n\t\t}\n\t\tcancel() // cleanup\n\t})\n\n\tt.Run(\"context already cancelled with worker limit\", func(t *testing.T) {\n\t\tctx := withTestResponseContext(context.Background())\n\t\tctx, cancel := context.WithCancel(ctx)\n\t\tcancel() // Cancel before calling\n\n\t\tdone := make(chan Array, 1)\n\t\tgo func() {\n\t\t\tdone <- MarshalSliceConcurrently(ctx, 10, 1, false, func(ctx context.Context, i int) Marshaler {\n\t\t\t\treturn MarshalString(\"should not reach\")\n\t\t\t})\n\t\t}()\n\n\t\tselect {\n\t\tcase ret := <-done:\n\t\t\t// Should return nil without deadlock since the context was\n\t\t\t// already cancelled and no elements could be marshaled.\n\t\t\tassert.Nil(t, ret)\n\t\tcase <-time.After(5 * time.Second):\n\t\t\tt.Fatal(\"deadlock detected with pre-cancelled context\")\n\t\t}\n\t})\n\n\tt.Run(\"cancelled context does not panic on MarshalGQL\", func(t *testing.T) {\n\t\tctx := withTestResponseContext(context.Background())\n\t\tctx, cancel := context.WithCancel(ctx)\n\t\tcancel()\n\n\t\tret := MarshalSliceConcurrently(\n\t\t\tctx,\n\t\t\t3,\n\t\t\t1,\n\t\t\tfalse,\n\t\t\tfunc(ctx context.Context, i int) Marshaler {\n\t\t\t\treturn MarshalString(\"ok\")\n\t\t\t},\n\t\t)\n\n\t\tassert.Nil(t, ret)\n\t\tassert.NotPanics(t, func() {\n\t\t\tvar buf bytes.Buffer\n\t\t\tret.MarshalGQL(&buf)\n\t\t})\n\t})\n\n\tt.Run(\"no worker limit with cancelled context still works\", func(t *testing.T) {\n\t\t// Without worker limit, there's no semaphore, so context cancellation\n\t\t// doesn't cause issues (all goroutines launch immediately).\n\t\tctx := withTestResponseContext(context.Background())\n\t\tctx, cancel := context.WithCancel(ctx)\n\t\tcancel()\n\n\t\tret := MarshalSliceConcurrently(\n\t\t\tctx,\n\t\t\t5,\n\t\t\t0,\n\t\t\tfalse,\n\t\t\tfunc(ctx context.Context, i int) Marshaler {\n\t\t\t\treturn MarshalString(\"ok\")\n\t\t\t},\n\t\t)\n\t\trequire.Len(t, ret, 5)\n\t})\n}\n"
  },
  {
    "path": "graphql/stats.go",
    "content": "package graphql\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"time\"\n)\n\ntype Stats struct {\n\tOperationStart time.Time\n\tRead           TraceTiming\n\tParsing        TraceTiming\n\tValidation     TraceTiming\n\n\t// Stats collected by handler extensions. Don't use directly, the extension should provide a\n\t// type safe way to\n\t// access this.\n\textension map[string]any\n}\n\ntype TraceTiming struct {\n\tStart time.Time\n\tEnd   time.Time\n}\n\nvar ctxTraceStart key = \"trace_start\"\n\n// StartOperationTrace captures the current time and stores it in context. This will eventually be\n// added to request context but we want to grab it as soon as possible. For transports that can only\n// handle a single graphql query per http requests you don't need to call this at all, the server\n// will do it for you. For transports that handle\n// multiple (eg batching, subscriptions) this should be called before decoding each request.\nfunc StartOperationTrace(ctx context.Context) context.Context {\n\treturn context.WithValue(ctx, ctxTraceStart, Now())\n}\n\n// GetStartTime should only be called by the handler package, it will be set into request context\n// as Stats.Start\nfunc GetStartTime(ctx context.Context) time.Time {\n\tt, ok := ctx.Value(ctxTraceStart).(time.Time)\n\tif !ok {\n\t\tpanic(fmt.Sprintf(\"missing start time: %T\", ctx.Value(ctxTraceStart)))\n\t}\n\treturn t\n}\n\nfunc (c *Stats) SetExtension(name string, data any) {\n\tif c.extension == nil {\n\t\tc.extension = map[string]any{}\n\t}\n\tc.extension[name] = data\n}\n\nfunc (c *Stats) GetExtension(name string) any {\n\tif c.extension == nil {\n\t\treturn nil\n\t}\n\treturn c.extension[name]\n}\n\n// Now is time.Now, except in tests. Then it can be whatever you want it to be.\nvar Now = time.Now\n"
  },
  {
    "path": "graphql/string.go",
    "content": "package graphql\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n)\n\nconst encodeHex = \"0123456789ABCDEF\"\n\nfunc MarshalString(s string) Marshaler {\n\treturn WriterFunc(func(w io.Writer) {\n\t\twriteQuotedString(w, s)\n\t})\n}\n\nfunc writeQuotedString(w io.Writer, s string) {\n\tstart := 0\n\tio.WriteString(w, `\"`)\n\n\tfor i, c := range s {\n\t\tif c < 0x20 || c == '\\\\' || c == '\"' {\n\t\t\tio.WriteString(w, s[start:i])\n\n\t\t\tswitch c {\n\t\t\tcase '\\t':\n\t\t\t\tio.WriteString(w, `\\t`)\n\t\t\tcase '\\r':\n\t\t\t\tio.WriteString(w, `\\r`)\n\t\t\tcase '\\n':\n\t\t\t\tio.WriteString(w, `\\n`)\n\t\t\tcase '\\\\':\n\t\t\t\tio.WriteString(w, `\\\\`)\n\t\t\tcase '\"':\n\t\t\t\tio.WriteString(w, `\\\"`)\n\t\t\tdefault:\n\t\t\t\tio.WriteString(w, `\\u00`)\n\t\t\t\tw.Write([]byte{encodeHex[c>>4], encodeHex[c&0xf]})\n\t\t\t}\n\n\t\t\tstart = i + 1\n\t\t}\n\t}\n\n\tio.WriteString(w, s[start:])\n\tio.WriteString(w, `\"`)\n}\n\nfunc UnmarshalString(v any) (string, error) {\n\tswitch v := v.(type) {\n\tcase string:\n\t\treturn v, nil\n\tcase int:\n\t\treturn strconv.Itoa(v), nil\n\tcase int64:\n\t\treturn strconv.FormatInt(v, 10), nil\n\tcase float64:\n\t\treturn strconv.FormatFloat(v, 'f', -1, 64), nil\n\tcase json.Number:\n\t\treturn string(v), nil\n\tcase bool:\n\t\treturn strconv.FormatBool(v), nil\n\tcase nil:\n\t\treturn \"\", nil\n\tdefault:\n\t\treturn \"\", fmt.Errorf(\"%T is not a string\", v)\n\t}\n}\n"
  },
  {
    "path": "graphql/string_test.go",
    "content": "package graphql\n\nimport (\n\t\"encoding/json\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestString(t *testing.T) {\n\tt.Run(\"marshal\", func(t *testing.T) {\n\t\tassert.Equal(t, `\"hello\"`, m2s(MarshalString(\"hello\")))\n\t\tassert.Equal(t, `\"he\\tllo\"`, m2s(MarshalString(\"he\\tllo\")))\n\t\tassert.Equal(t, `\"he\\tllo\"`, m2s(MarshalString(\"he\tllo\")))\n\t\tassert.Equal(t, `\"he\\nllo\"`, m2s(MarshalString(\"he\\nllo\")))\n\t\tassert.Equal(t, `\"he\\r\\nllo\"`, m2s(MarshalString(\"he\\r\\nllo\")))\n\t\tassert.Equal(t, `\"he\\\\llo\"`, m2s(MarshalString(`he\\llo`)))\n\t\tassert.Equal(\n\t\t\tt,\n\t\t\t`\"quotes\\\"nested\\\"in\\\"quotes\\\"\"`,\n\t\t\tm2s(MarshalString(`quotes\"nested\"in\"quotes\"`)),\n\t\t)\n\t\tassert.Equal(t, `\"\\u0000\"`, m2s(MarshalString(\"\\u0000\")))\n\t\tassert.Equal(t, `\"\\u0000\"`, m2s(MarshalString(\"\\u0000\")))\n\t\tassert.Equal(t, \"\\\"\\U000fe4ed\\\"\", m2s(MarshalString(\"\\U000fe4ed\")))\n\t})\n\n\tt.Run(\"unmarshal\", func(t *testing.T) {\n\t\tassert.Equal(t, \"123\", mustUnmarshalString(t, \"123\"))\n\t\tassert.Equal(t, \"123\", mustUnmarshalString(t, 123))\n\t\tassert.Equal(t, \"123\", mustUnmarshalString(t, int64(123)))\n\t\tassert.Equal(t, \"123\", mustUnmarshalString(t, float64(123)))\n\t\tassert.Equal(t, \"123\", mustUnmarshalString(t, json.Number(\"123\")))\n\t\tassert.Equal(t, \"true\", mustUnmarshalString(t, true))\n\t\tassert.Equal(t, \"false\", mustUnmarshalString(t, false))\n\t\tassert.Empty(t, mustUnmarshalString(t, nil))\n\t})\n}\n\nfunc mustUnmarshalString(t *testing.T, v any) string {\n\tt.Helper()\n\tres, err := UnmarshalString(v)\n\trequire.NoError(t, err)\n\treturn res\n}\n"
  },
  {
    "path": "graphql/time.go",
    "content": "package graphql\n\nimport (\n\t\"errors\"\n\t\"io\"\n\t\"strconv\"\n\t\"time\"\n)\n\nfunc MarshalTime(t time.Time) Marshaler {\n\tif t.IsZero() {\n\t\treturn Null\n\t}\n\n\treturn WriterFunc(func(w io.Writer) {\n\t\tio.WriteString(w, strconv.Quote(t.Format(time.RFC3339Nano)))\n\t})\n}\n\nfunc UnmarshalTime(v any) (time.Time, error) {\n\tif v == nil {\n\t\treturn time.Time{}, nil\n\t}\n\n\tif tmpStr, ok := v.(string); ok {\n\t\tif tmpStr == \"\" {\n\t\t\treturn time.Time{}, nil\n\t\t}\n\n\t\tt, err := time.Parse(time.RFC3339Nano, tmpStr)\n\t\tif err == nil {\n\t\t\treturn t, nil\n\t\t}\n\t\tt, err = time.Parse(time.RFC3339, tmpStr)\n\t\tif err == nil {\n\t\t\treturn t, nil\n\t\t}\n\t\tt, err = time.Parse(time.DateTime, tmpStr)\n\t\tif err == nil {\n\t\t\treturn t, nil\n\t\t}\n\t}\n\n\treturn time.Time{}, errors.New(\"time should be RFC3339Nano formatted string\")\n}\n\nfunc MarshalDate(t time.Time) Marshaler {\n\tif t.IsZero() {\n\t\treturn Null\n\t}\n\n\treturn WriterFunc(func(w io.Writer) {\n\t\tio.WriteString(w, strconv.Quote(t.Format(time.DateOnly)))\n\t})\n}\n\nfunc UnmarshalDate(v any) (time.Time, error) {\n\tif v == nil {\n\t\treturn time.Time{}, nil\n\t}\n\n\tif tmpStr, ok := v.(string); ok {\n\t\tif tmpStr == \"\" {\n\t\t\treturn time.Time{}, nil\n\t\t}\n\n\t\tt, err := time.Parse(time.DateOnly, tmpStr)\n\t\tif err == nil {\n\t\t\treturn t, nil\n\t\t}\n\t}\n\n\treturn time.Time{}, errors.New(\"time should be DateOnly formatted string\")\n}\n"
  },
  {
    "path": "graphql/time_test.go",
    "content": "package graphql\n\nimport (\n\t\"bytes\"\n\t\"strconv\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestTime(t *testing.T) {\n\tt.Run(\"symmetry\", func(t *testing.T) {\n\t\tinitialTime := time.Now()\n\t\tbuf := bytes.NewBuffer([]byte{})\n\t\tMarshalTime(initialTime).MarshalGQL(buf)\n\n\t\tstr, err := strconv.Unquote(buf.String())\n\t\trequire.NoError(t, err)\n\t\tnewTime, err := UnmarshalTime(str)\n\t\trequire.NoError(t, err)\n\n\t\trequire.True(\n\t\t\tt,\n\t\t\tinitialTime.Equal(newTime),\n\t\t\t\"expected times %v and %v to equal\",\n\t\t\tinitialTime,\n\t\t\tnewTime,\n\t\t)\n\t})\n}\n\nfunc TestMarshalTime(t *testing.T) {\n\ttests := []struct {\n\t\tname     string\n\t\tinput    time.Time\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname:     \"normal time with nanoseconds\",\n\t\t\tinput:    time.Date(2023, 10, 15, 14, 30, 45, 123456789, time.UTC),\n\t\t\texpected: `\"2023-10-15T14:30:45.123456789Z\"`,\n\t\t},\n\t\t{\n\t\t\tname:     \"normal time without nanoseconds\",\n\t\t\tinput:    time.Date(2023, 10, 15, 14, 30, 45, 0, time.UTC),\n\t\t\texpected: `\"2023-10-15T14:30:45Z\"`,\n\t\t},\n\t\t{\n\t\t\tname:     \"time with timezone offset\",\n\t\t\tinput:    time.Date(2023, 10, 15, 14, 30, 45, 0, time.FixedZone(\"EST\", -5*60*60)),\n\t\t\texpected: `\"2023-10-15T14:30:45-05:00\"`,\n\t\t},\n\t\t{\n\t\t\tname:     \"epoch time\",\n\t\t\tinput:    time.Unix(0, 0).UTC(),\n\t\t\texpected: `\"1970-01-01T00:00:00Z\"`,\n\t\t},\n\t\t{\n\t\t\tname:     \"time at start of day\",\n\t\t\tinput:    time.Date(2023, 1, 1, 0, 0, 0, 0, time.UTC),\n\t\t\texpected: `\"2023-01-01T00:00:00Z\"`,\n\t\t},\n\t\t{\n\t\t\tname:     \"time at end of day\",\n\t\t\tinput:    time.Date(2023, 12, 31, 23, 59, 59, 999999999, time.UTC),\n\t\t\texpected: `\"2023-12-31T23:59:59.999999999Z\"`,\n\t\t},\n\t\t{\n\t\t\tname:     \"leap year february 29\",\n\t\t\tinput:    time.Date(2024, 2, 29, 12, 0, 0, 0, time.UTC),\n\t\t\texpected: `\"2024-02-29T12:00:00Z\"`,\n\t\t},\n\t\t{\n\t\t\tname:     \"far future date\",\n\t\t\tinput:    time.Date(2999, 12, 31, 23, 59, 59, 0, time.UTC),\n\t\t\texpected: `\"2999-12-31T23:59:59Z\"`,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tbuf := &bytes.Buffer{}\n\t\t\tmarshaler := MarshalTime(tt.input)\n\t\t\tmarshaler.MarshalGQL(buf)\n\n\t\t\tassert.Equal(t, tt.expected, buf.String())\n\t\t})\n\t}\n\n\tt.Run(\"zero time returns null\", func(t *testing.T) {\n\t\tzeroTime := time.Time{}\n\t\tmarshaler := MarshalTime(zeroTime)\n\n\t\tassert.Equal(t, Null, marshaler, \"zero time should return Null marshaler\")\n\t})\n\n\tt.Run(\"zero time writes null to buffer\", func(t *testing.T) {\n\t\tbuf := &bytes.Buffer{}\n\t\tMarshalTime(time.Time{}).MarshalGQL(buf)\n\n\t\tassert.Equal(t, \"null\", buf.String())\n\t})\n}\n\nfunc TestUnmarshalTime(t *testing.T) {\n\tt.Run(\"RFC3339Nano format\", func(t *testing.T) {\n\t\ttests := []struct {\n\t\t\tname     string\n\t\t\tinput    string\n\t\t\texpected time.Time\n\t\t}{\n\t\t\t{\n\t\t\t\tname:     \"with nanoseconds\",\n\t\t\t\tinput:    \"2023-10-15T14:30:45.123456789Z\",\n\t\t\t\texpected: time.Date(2023, 10, 15, 14, 30, 45, 123456789, time.UTC),\n\t\t\t},\n\t\t\t{\n\t\t\t\tname:     \"without nanoseconds\",\n\t\t\t\tinput:    \"2023-10-15T14:30:45Z\",\n\t\t\t\texpected: time.Date(2023, 10, 15, 14, 30, 45, 0, time.UTC),\n\t\t\t},\n\t\t\t{\n\t\t\t\tname:     \"with milliseconds\",\n\t\t\t\tinput:    \"2023-10-15T14:30:45.123Z\",\n\t\t\t\texpected: time.Date(2023, 10, 15, 14, 30, 45, 123000000, time.UTC),\n\t\t\t},\n\t\t\t{\n\t\t\t\tname:     \"with microseconds\",\n\t\t\t\tinput:    \"2023-10-15T14:30:45.123456Z\",\n\t\t\t\texpected: time.Date(2023, 10, 15, 14, 30, 45, 123456000, time.UTC),\n\t\t\t},\n\t\t}\n\n\t\tfor _, tt := range tests {\n\t\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\t\tresult, err := UnmarshalTime(tt.input)\n\t\t\t\trequire.NoError(t, err)\n\t\t\t\tassert.True(\n\t\t\t\t\tt,\n\t\t\t\t\ttt.expected.Equal(result),\n\t\t\t\t\t\"expected %v, got %v\",\n\t\t\t\t\ttt.expected,\n\t\t\t\t\tresult,\n\t\t\t\t)\n\t\t\t})\n\t\t}\n\t})\n\n\tt.Run(\"RFC3339 format\", func(t *testing.T) {\n\t\ttests := []struct {\n\t\t\tname     string\n\t\t\tinput    string\n\t\t\texpected time.Time\n\t\t}{\n\t\t\t{\n\t\t\t\tname:     \"with timezone offset positive\",\n\t\t\t\tinput:    \"2023-10-15T14:30:45+05:00\",\n\t\t\t\texpected: time.Date(2023, 10, 15, 14, 30, 45, 0, time.FixedZone(\"\", 5*60*60)),\n\t\t\t},\n\t\t\t{\n\t\t\t\tname:     \"with timezone offset negative\",\n\t\t\t\tinput:    \"2023-10-15T14:30:45-08:00\",\n\t\t\t\texpected: time.Date(2023, 10, 15, 14, 30, 45, 0, time.FixedZone(\"\", -8*60*60)),\n\t\t\t},\n\t\t\t{\n\t\t\t\tname:     \"UTC with Z suffix\",\n\t\t\t\tinput:    \"2023-10-15T14:30:45Z\",\n\t\t\t\texpected: time.Date(2023, 10, 15, 14, 30, 45, 0, time.UTC),\n\t\t\t},\n\t\t}\n\n\t\tfor _, tt := range tests {\n\t\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\t\tresult, err := UnmarshalTime(tt.input)\n\t\t\t\trequire.NoError(t, err)\n\t\t\t\tassert.True(\n\t\t\t\t\tt,\n\t\t\t\t\ttt.expected.Equal(result),\n\t\t\t\t\t\"expected %v, got %v\",\n\t\t\t\t\ttt.expected,\n\t\t\t\t\tresult,\n\t\t\t\t)\n\t\t\t})\n\t\t}\n\t})\n\n\tt.Run(\"DateTime format\", func(t *testing.T) {\n\t\ttests := []struct {\n\t\t\tname     string\n\t\t\tinput    string\n\t\t\texpected time.Time\n\t\t}{\n\t\t\t{\n\t\t\t\tname:     \"standard datetime\",\n\t\t\t\tinput:    \"2023-10-15 14:30:45\",\n\t\t\t\texpected: time.Date(2023, 10, 15, 14, 30, 45, 0, time.UTC),\n\t\t\t},\n\t\t\t{\n\t\t\t\tname:     \"datetime with single digit day\",\n\t\t\t\tinput:    \"2023-01-05 09:30:45\",\n\t\t\t\texpected: time.Date(2023, 1, 5, 9, 30, 45, 0, time.UTC),\n\t\t\t},\n\t\t}\n\n\t\tfor _, tt := range tests {\n\t\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\t\tresult, err := UnmarshalTime(tt.input)\n\t\t\t\trequire.NoError(t, err)\n\t\t\t\tassert.True(\n\t\t\t\t\tt,\n\t\t\t\t\ttt.expected.Equal(result),\n\t\t\t\t\t\"expected %v, got %v\",\n\t\t\t\t\ttt.expected,\n\t\t\t\t\tresult,\n\t\t\t\t)\n\t\t\t})\n\t\t}\n\t})\n\n\tt.Run(\"null and empty values\", func(t *testing.T) {\n\t\ttests := []struct {\n\t\t\tname     string\n\t\t\tinput    any\n\t\t\texpected time.Time\n\t\t\twantErr  bool\n\t\t}{\n\t\t\t{\n\t\t\t\tname:     \"nil value\",\n\t\t\t\tinput:    nil,\n\t\t\t\texpected: time.Time{},\n\t\t\t\twantErr:  false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tname:     \"empty string\",\n\t\t\t\tinput:    \"\",\n\t\t\t\texpected: time.Time{},\n\t\t\t\twantErr:  false,\n\t\t\t},\n\t\t}\n\n\t\tfor _, tt := range tests {\n\t\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\t\tresult, err := UnmarshalTime(tt.input)\n\t\t\t\tif tt.wantErr {\n\t\t\t\t\tassert.Error(t, err)\n\t\t\t\t} else {\n\t\t\t\t\trequire.NoError(t, err)\n\t\t\t\t\tassert.True(t, tt.expected.IsZero())\n\t\t\t\t\tassert.True(t, result.IsZero())\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t})\n\n\tt.Run(\"error cases\", func(t *testing.T) {\n\t\ttests := []struct {\n\t\t\tname    string\n\t\t\tinput   any\n\t\t\twantErr string\n\t\t}{\n\t\t\t{\n\t\t\t\tname:    \"invalid format\",\n\t\t\t\tinput:   \"not a time\",\n\t\t\t\twantErr: \"time should be RFC3339Nano formatted string\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname:    \"wrong type - int\",\n\t\t\t\tinput:   12345,\n\t\t\t\twantErr: \"time should be RFC3339Nano formatted string\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname:    \"wrong type - bool\",\n\t\t\t\tinput:   true,\n\t\t\t\twantErr: \"time should be RFC3339Nano formatted string\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname:    \"wrong type - struct\",\n\t\t\t\tinput:   struct{ Value string }{Value: \"test\"},\n\t\t\t\twantErr: \"time should be RFC3339Nano formatted string\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname:    \"invalid date\",\n\t\t\t\tinput:   \"2023-13-45T14:30:45Z\",\n\t\t\t\twantErr: \"time should be RFC3339Nano formatted string\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname:    \"invalid time\",\n\t\t\t\tinput:   \"2023-10-15T25:70:90Z\",\n\t\t\t\twantErr: \"time should be RFC3339Nano formatted string\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname:    \"malformed RFC3339\",\n\t\t\t\tinput:   \"2023-10-15 14:30:45Z\",\n\t\t\t\twantErr: \"time should be RFC3339Nano formatted string\",\n\t\t\t},\n\t\t}\n\n\t\tfor _, tt := range tests {\n\t\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\t\t_, err := UnmarshalTime(tt.input)\n\t\t\t\trequire.Error(t, err)\n\t\t\t\tassert.Contains(t, err.Error(), tt.wantErr)\n\t\t\t})\n\t\t}\n\t})\n\n\tt.Run(\"round trip consistency\", func(t *testing.T) {\n\t\ttestTimes := []time.Time{\n\t\t\ttime.Date(2023, 10, 15, 14, 30, 45, 123456789, time.UTC),\n\t\t\ttime.Date(2023, 1, 1, 0, 0, 0, 0, time.UTC),\n\t\t\ttime.Date(2023, 12, 31, 23, 59, 59, 999999999, time.UTC),\n\t\t\ttime.Unix(0, 0).UTC(),\n\t\t\ttime.Now().UTC(),\n\t\t}\n\n\t\tfor i, originalTime := range testTimes {\n\t\t\tt.Run(strconv.Itoa(i), func(t *testing.T) {\n\t\t\t\t// Marshal\n\t\t\t\tbuf := &bytes.Buffer{}\n\t\t\t\tMarshalTime(originalTime).MarshalGQL(buf)\n\n\t\t\t\t// Unquote\n\t\t\t\tstr, err := strconv.Unquote(buf.String())\n\t\t\t\trequire.NoError(t, err)\n\n\t\t\t\t// Unmarshal\n\t\t\t\tparsedTime, err := UnmarshalTime(str)\n\t\t\t\trequire.NoError(t, err)\n\n\t\t\t\t// Compare\n\t\t\t\tassert.True(t, originalTime.Equal(parsedTime),\n\t\t\t\t\t\"round trip failed: original=%v, parsed=%v\", originalTime, parsedTime)\n\t\t\t})\n\t\t}\n\t})\n}\n\nfunc TestMarshalTime_EdgeCases(t *testing.T) {\n\tt.Run(\"time with different locations same instant\", func(t *testing.T) {\n\t\tutcTime := time.Date(2023, 10, 15, 14, 30, 45, 0, time.UTC)\n\t\testTime := utcTime.In(time.FixedZone(\"EST\", -5*60*60))\n\n\t\tutcBuf := &bytes.Buffer{}\n\t\tMarshalTime(utcTime).MarshalGQL(utcBuf)\n\n\t\testBuf := &bytes.Buffer{}\n\t\tMarshalTime(estTime).MarshalGQL(estBuf)\n\n\t\t// Should produce different string representations\n\t\tassert.NotEqual(t, utcBuf.String(), estBuf.String())\n\n\t\t// But should unmarshal to the same instant\n\t\tutcStr, _ := strconv.Unquote(utcBuf.String())\n\t\testStr, _ := strconv.Unquote(estBuf.String())\n\n\t\tutcParsed, err := UnmarshalTime(utcStr)\n\t\trequire.NoError(t, err)\n\t\testParsed, err := UnmarshalTime(estStr)\n\t\trequire.NoError(t, err)\n\n\t\tassert.True(t, utcParsed.Equal(estParsed))\n\t})\n\n\tt.Run(\"precision preservation\", func(t *testing.T) {\n\t\t// Test that nanosecond precision is preserved\n\t\ttimeWithNanos := time.Date(2023, 10, 15, 14, 30, 45, 123456789, time.UTC)\n\n\t\tbuf := &bytes.Buffer{}\n\t\tMarshalTime(timeWithNanos).MarshalGQL(buf)\n\n\t\tstr, err := strconv.Unquote(buf.String())\n\t\trequire.NoError(t, err)\n\n\t\tparsed, err := UnmarshalTime(str)\n\t\trequire.NoError(t, err)\n\n\t\tassert.Equal(t, timeWithNanos.Nanosecond(), parsed.Nanosecond())\n\t\tassert.True(t, timeWithNanos.Equal(parsed))\n\t})\n}\n\nfunc TestMarshalDate(t *testing.T) {\n\ttests := []struct {\n\t\tname     string\n\t\tinput    time.Time\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname:     \"normal time with nanoseconds\",\n\t\t\tinput:    time.Date(2023, 10, 15, 14, 30, 45, 123456789, time.UTC),\n\t\t\texpected: `\"2023-10-15\"`,\n\t\t},\n\t\t{\n\t\t\tname:     \"normal time without nanoseconds\",\n\t\t\tinput:    time.Date(2023, 10, 15, 14, 30, 45, 0, time.UTC),\n\t\t\texpected: `\"2023-10-15\"`,\n\t\t},\n\t\t{\n\t\t\tname:     \"time with timezone offset\",\n\t\t\tinput:    time.Date(2023, 10, 15, 14, 30, 45, 0, time.FixedZone(\"EST\", -5*60*60)),\n\t\t\texpected: `\"2023-10-15\"`,\n\t\t},\n\t\t{\n\t\t\tname:     \"epoch time\",\n\t\t\tinput:    time.Unix(0, 0).UTC(),\n\t\t\texpected: `\"1970-01-01\"`,\n\t\t},\n\t\t{\n\t\t\tname:     \"time at start of day\",\n\t\t\tinput:    time.Date(2023, 1, 1, 0, 0, 0, 0, time.UTC),\n\t\t\texpected: `\"2023-01-01\"`,\n\t\t},\n\t\t{\n\t\t\tname:     \"time at end of day\",\n\t\t\tinput:    time.Date(2023, 12, 31, 23, 59, 59, 999999999, time.UTC),\n\t\t\texpected: `\"2023-12-31\"`,\n\t\t},\n\t\t{\n\t\t\tname:     \"leap year february 29\",\n\t\t\tinput:    time.Date(2024, 2, 29, 12, 0, 0, 0, time.UTC),\n\t\t\texpected: `\"2024-02-29\"`,\n\t\t},\n\t\t{\n\t\t\tname:     \"far future date\",\n\t\t\tinput:    time.Date(2999, 12, 31, 23, 59, 59, 0, time.UTC),\n\t\t\texpected: `\"2999-12-31\"`,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tbuf := &bytes.Buffer{}\n\t\t\tmarshaler := MarshalDate(tt.input)\n\t\t\tmarshaler.MarshalGQL(buf)\n\n\t\t\tassert.Equal(t, tt.expected, buf.String())\n\t\t})\n\t}\n\n\tt.Run(\"zero time returns null\", func(t *testing.T) {\n\t\tzeroTime := time.Time{}\n\t\tmarshaler := MarshalDate(zeroTime)\n\n\t\tassert.Equal(t, Null, marshaler, \"zero time should return Null marshaler\")\n\t})\n\n\tt.Run(\"zero time writes null to buffer\", func(t *testing.T) {\n\t\tbuf := &bytes.Buffer{}\n\t\tMarshalDate(time.Time{}).MarshalGQL(buf)\n\n\t\tassert.Equal(t, \"null\", buf.String())\n\t})\n}\n\nfunc TestUnmarshalDate(t *testing.T) {\n\tt.Run(\"DateOnly format\", func(t *testing.T) {\n\t\ttests := []struct {\n\t\t\tname     string\n\t\t\tinput    string\n\t\t\texpected time.Time\n\t\t}{\n\t\t\t{\n\t\t\t\tname:     \"standard date\",\n\t\t\t\tinput:    \"2023-10-15\",\n\t\t\t\texpected: time.Date(2023, 10, 15, 0, 0, 0, 0, time.UTC),\n\t\t\t},\n\t\t\t{\n\t\t\t\tname:     \"january first\",\n\t\t\t\tinput:    \"2023-01-01\",\n\t\t\t\texpected: time.Date(2023, 1, 1, 0, 0, 0, 0, time.UTC),\n\t\t\t},\n\t\t\t{\n\t\t\t\tname:     \"december last\",\n\t\t\t\tinput:    \"2023-12-31\",\n\t\t\t\texpected: time.Date(2023, 12, 31, 0, 0, 0, 0, time.UTC),\n\t\t\t},\n\t\t\t{\n\t\t\t\tname:     \"leap year february 29\",\n\t\t\t\tinput:    \"2024-02-29\",\n\t\t\t\texpected: time.Date(2024, 2, 29, 0, 0, 0, 0, time.UTC),\n\t\t\t},\n\t\t\t{\n\t\t\t\tname:     \"single digit month and day\",\n\t\t\t\tinput:    \"2023-01-05\",\n\t\t\t\texpected: time.Date(2023, 1, 5, 0, 0, 0, 0, time.UTC),\n\t\t\t},\n\t\t\t{\n\t\t\t\tname:     \"epoch date\",\n\t\t\t\tinput:    \"1970-01-01\",\n\t\t\t\texpected: time.Date(1970, 1, 1, 0, 0, 0, 0, time.UTC),\n\t\t\t},\n\t\t}\n\n\t\tfor _, tt := range tests {\n\t\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\t\tresult, err := UnmarshalDate(tt.input)\n\t\t\t\trequire.NoError(t, err)\n\t\t\t\tassert.True(\n\t\t\t\t\tt,\n\t\t\t\t\ttt.expected.Equal(result),\n\t\t\t\t\t\"expected %v, got %v\",\n\t\t\t\t\ttt.expected,\n\t\t\t\t\tresult,\n\t\t\t\t)\n\t\t\t})\n\t\t}\n\t})\n\n\tt.Run(\"null and empty values\", func(t *testing.T) {\n\t\ttests := []struct {\n\t\t\tname     string\n\t\t\tinput    any\n\t\t\texpected time.Time\n\t\t\twantErr  bool\n\t\t}{\n\t\t\t{\n\t\t\t\tname:     \"nil value\",\n\t\t\t\tinput:    nil,\n\t\t\t\texpected: time.Time{},\n\t\t\t\twantErr:  false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tname:     \"empty string\",\n\t\t\t\tinput:    \"\",\n\t\t\t\texpected: time.Time{},\n\t\t\t\twantErr:  false,\n\t\t\t},\n\t\t}\n\n\t\tfor _, tt := range tests {\n\t\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\t\tresult, err := UnmarshalDate(tt.input)\n\t\t\t\tif tt.wantErr {\n\t\t\t\t\tassert.Error(t, err)\n\t\t\t\t} else {\n\t\t\t\t\trequire.NoError(t, err)\n\t\t\t\t\tassert.True(t, tt.expected.IsZero())\n\t\t\t\t\tassert.True(t, result.IsZero())\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t})\n\n\tt.Run(\"error cases\", func(t *testing.T) {\n\t\ttests := []struct {\n\t\t\tname    string\n\t\t\tinput   any\n\t\t\twantErr string\n\t\t}{\n\t\t\t{\n\t\t\t\tname:    \"invalid format\",\n\t\t\t\tinput:   \"not a date\",\n\t\t\t\twantErr: \"DateOnly\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname:    \"wrong type - int\",\n\t\t\t\tinput:   12345,\n\t\t\t\twantErr: \"DateOnly formatted string\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname:    \"wrong type - bool\",\n\t\t\t\tinput:   true,\n\t\t\t\twantErr: \"DateOnly formatted string\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname:    \"wrong type - struct\",\n\t\t\t\tinput:   struct{ Value string }{Value: \"test\"},\n\t\t\t\twantErr: \"DateOnly formatted string\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname:    \"invalid date - month out of range\",\n\t\t\t\tinput:   \"2023-13-15\",\n\t\t\t\twantErr: \"time should be DateOnly formatted string\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname:    \"invalid date - day out of range\",\n\t\t\t\tinput:   \"2023-10-45\",\n\t\t\t\twantErr: \"time should be DateOnly formatted string\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname:    \"RFC3339 format not accepted\",\n\t\t\t\tinput:   \"2023-10-15T14:30:45Z\",\n\t\t\t\twantErr: \"time should be DateOnly formatted string\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname:    \"DateTime format not accepted\",\n\t\t\t\tinput:   \"2023-10-15 14:30:45\",\n\t\t\t\twantErr: \"time should be DateOnly formatted string\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tname:    \"incomplete date\",\n\t\t\t\tinput:   \"2023-10\",\n\t\t\t\twantErr: \"time should be DateOnly formatted string\",\n\t\t\t},\n\t\t}\n\n\t\tfor _, tt := range tests {\n\t\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\t\t_, err := UnmarshalDate(tt.input)\n\t\t\t\trequire.Error(t, err)\n\t\t\t\tassert.Contains(t, err.Error(), tt.wantErr)\n\t\t\t})\n\t\t}\n\t})\n\n\tt.Run(\"round trip consistency\", func(t *testing.T) {\n\t\ttestTimes := []time.Time{\n\t\t\ttime.Date(2023, 10, 15, 14, 30, 45, 123456789, time.UTC),\n\t\t\ttime.Date(2023, 1, 1, 0, 0, 0, 0, time.UTC),\n\t\t\ttime.Date(2023, 12, 31, 23, 59, 59, 999999999, time.UTC),\n\t\t\ttime.Unix(0, 0).UTC(),\n\t\t\ttime.Now().UTC(),\n\t\t}\n\n\t\tfor i, originalTime := range testTimes {\n\t\t\tt.Run(strconv.Itoa(i), func(t *testing.T) {\n\t\t\t\t// Marshal\n\t\t\t\tbuf := &bytes.Buffer{}\n\t\t\t\tMarshalDate(originalTime).MarshalGQL(buf)\n\n\t\t\t\t// Unquote\n\t\t\t\tstr, err := strconv.Unquote(buf.String())\n\t\t\t\trequire.NoError(t, err)\n\n\t\t\t\t// Unmarshal\n\t\t\t\tparsedTime, err := UnmarshalDate(str)\n\t\t\t\trequire.NoError(t, err)\n\n\t\t\t\t// Compare - dates should match (time components are dropped)\n\t\t\t\texpectedDate := time.Date(\n\t\t\t\t\toriginalTime.Year(),\n\t\t\t\t\toriginalTime.Month(),\n\t\t\t\t\toriginalTime.Day(),\n\t\t\t\t\t0,\n\t\t\t\t\t0,\n\t\t\t\t\t0,\n\t\t\t\t\t0,\n\t\t\t\t\ttime.UTC,\n\t\t\t\t)\n\t\t\t\tassert.True(t, expectedDate.Equal(parsedTime),\n\t\t\t\t\t\"round trip failed: expected=%v, parsed=%v\", expectedDate, parsedTime)\n\t\t\t})\n\t\t}\n\t})\n}\n\nfunc TestMarshalDate_EdgeCases(t *testing.T) {\n\tt.Run(\"time components are ignored\", func(t *testing.T) {\n\t\ttime1 := time.Date(2023, 10, 15, 0, 0, 0, 0, time.UTC)\n\t\ttime2 := time.Date(2023, 10, 15, 14, 30, 45, 123456789, time.UTC)\n\n\t\tbuf1 := &bytes.Buffer{}\n\t\tMarshalDate(time1).MarshalGQL(buf1)\n\n\t\tbuf2 := &bytes.Buffer{}\n\t\tMarshalDate(time2).MarshalGQL(buf2)\n\n\t\t// Both should produce the same date string\n\t\tassert.Equal(t, buf1.String(), buf2.String())\n\t\tassert.Equal(t, `\"2023-10-15\"`, buf1.String())\n\t})\n\n\tt.Run(\"timezone is preserved in format but only date is shown\", func(t *testing.T) {\n\t\tutcTime := time.Date(2023, 10, 15, 14, 30, 45, 0, time.UTC)\n\t\testTime := time.Date(2023, 10, 15, 14, 30, 45, 0, time.FixedZone(\"EST\", -5*60*60))\n\n\t\tutcBuf := &bytes.Buffer{}\n\t\tMarshalDate(utcTime).MarshalGQL(utcBuf)\n\n\t\testBuf := &bytes.Buffer{}\n\t\tMarshalDate(estTime).MarshalGQL(estBuf)\n\n\t\t// Both should produce date strings\n\t\tassert.Equal(t, `\"2023-10-15\"`, utcBuf.String())\n\t\tassert.Equal(t, `\"2023-10-15\"`, estBuf.String())\n\t})\n}\n"
  },
  {
    "path": "graphql/uint.go",
    "content": "package graphql\n\nimport (\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"reflect\"\n\t\"strconv\"\n)\n\nfunc MarshalUint(i uint) Marshaler {\n\treturn WriterFunc(func(w io.Writer) {\n\t\t_, _ = io.WriteString(w, strconv.FormatUint(uint64(i), 10))\n\t})\n}\n\nfunc UnmarshalUint(v any) (uint, error) {\n\treturn interfaceToUnsignedNumber[uint](v)\n}\n\nfunc MarshalUint8(i uint8) Marshaler {\n\treturn WriterFunc(func(w io.Writer) {\n\t\t_, _ = io.WriteString(w, strconv.FormatUint(uint64(i), 10))\n\t})\n}\n\nfunc UnmarshalUint8(v any) (uint8, error) {\n\treturn interfaceToUnsignedNumber[uint8](v)\n}\n\nfunc MarshalUint16(i uint16) Marshaler {\n\treturn WriterFunc(func(w io.Writer) {\n\t\t_, _ = io.WriteString(w, strconv.FormatUint(uint64(i), 10))\n\t})\n}\n\nfunc UnmarshalUint16(v any) (uint16, error) {\n\treturn interfaceToUnsignedNumber[uint16](v)\n}\n\nfunc MarshalUint32(i uint32) Marshaler {\n\treturn WriterFunc(func(w io.Writer) {\n\t\t_, _ = io.WriteString(w, strconv.FormatUint(uint64(i), 10))\n\t})\n}\n\nfunc UnmarshalUint32(v any) (uint32, error) {\n\treturn interfaceToUnsignedNumber[uint32](v)\n}\n\nfunc MarshalUint64(i uint64) Marshaler {\n\treturn WriterFunc(func(w io.Writer) {\n\t\t_, _ = io.WriteString(w, strconv.FormatUint(i, 10))\n\t})\n}\n\nfunc UnmarshalUint64(v any) (uint64, error) {\n\treturn interfaceToUnsignedNumber[uint64](v)\n}\n\nfunc interfaceToUnsignedNumber[N number](v any) (N, error) {\n\tswitch v := v.(type) {\n\tcase int, int64:\n\t\tif reflect.ValueOf(v).Int() < 0 {\n\t\t\treturn 0, newUintSignError(strconv.FormatInt(reflect.ValueOf(v).Int(), 10))\n\t\t}\n\t\treturn safeCastUnsignedNumber[N](uint64(reflect.ValueOf(v).Int()))\n\tcase uint, uint8, uint16, uint32, uint64:\n\t\treturn safeCastUnsignedNumber[N](reflect.ValueOf(v).Uint())\n\tcase string:\n\t\tuv, err := strconv.ParseUint(v, 10, 64)\n\t\tif err != nil {\n\t\t\tvar strconvErr *strconv.NumError\n\t\t\tif errors.As(err, &strconvErr) && isSignedInteger(v) {\n\t\t\t\treturn 0, newUintSignError(v)\n\t\t\t}\n\t\t\treturn 0, err\n\t\t}\n\t\treturn safeCastUnsignedNumber[N](uv)\n\tcase json.Number:\n\t\tuv, err := strconv.ParseUint(string(v), 10, 64)\n\t\tif err != nil {\n\t\t\tvar strconvErr *strconv.NumError\n\t\t\tif errors.As(err, &strconvErr) && isSignedInteger(string(v)) {\n\t\t\t\treturn 0, newUintSignError(string(v))\n\t\t\t}\n\t\t\treturn 0, err\n\t\t}\n\t\treturn safeCastUnsignedNumber[N](uv)\n\tcase nil:\n\t\treturn 0, nil\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"%T is not an %T\", v, N(0))\n\t}\n}\n\ntype UintSignError struct {\n\t*IntegerError\n}\n\nfunc newUintSignError(v string) *UintSignError {\n\treturn &UintSignError{\n\t\tIntegerError: &IntegerError{\n\t\t\tMessage: fmt.Sprintf(\"%v is an invalid unsigned integer: includes sign\", v),\n\t\t},\n\t}\n}\n\nfunc (e *UintSignError) Unwrap() error {\n\treturn e.IntegerError\n}\n\n// safeCastUnsignedNumber converts an uint64 to a number of type N.\nfunc safeCastUnsignedNumber[N number](val uint64) (N, error) {\n\tvar zero N\n\tswitch any(zero).(type) {\n\tcase uint8:\n\t\tif val > math.MaxUint8 {\n\t\t\treturn 0, newNumberOverflowError[uint64](val, 8)\n\t\t}\n\tcase uint16:\n\t\tif val > math.MaxUint16 {\n\t\t\treturn 0, newNumberOverflowError[uint64](val, 16)\n\t\t}\n\tcase uint32:\n\t\tif val > math.MaxUint32 {\n\t\t\treturn 0, newNumberOverflowError[uint64](val, 32)\n\t\t}\n\tcase uint64, uint, int:\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"invalid type %T\", zero)\n\t}\n\n\treturn N(val), nil\n}\n\nfunc isSignedInteger(v string) bool {\n\tif v == \"\" {\n\t\treturn false\n\t}\n\tif v[0] != '-' && v[0] != '+' {\n\t\treturn false\n\t}\n\tif _, err := strconv.ParseUint(v[1:], 10, 64); err == nil {\n\t\treturn true\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "graphql/uint_test.go",
    "content": "package graphql\n\nimport (\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"math\"\n\t\"strconv\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestUint(t *testing.T) {\n\tt.Run(\"marshal\", func(t *testing.T) {\n\t\tassert.Equal(t, \"123\", m2s(MarshalUint(123)))\n\t})\n\n\tt.Run(\"unmarshal\", func(t *testing.T) {\n\t\tassert.Equal(t, uint(0), mustUnmarshalUint(nil))\n\t\tassert.Equal(t, uint(123), mustUnmarshalUint(123))\n\t\tassert.Equal(t, uint(123), mustUnmarshalUint(int64(123)))\n\t\tassert.Equal(t, uint(123), mustUnmarshalUint(json.Number(\"123\")))\n\t\tassert.Equal(t, uint(123), mustUnmarshalUint(\"123\"))\n\t})\n\n\tt.Run(\"can't unmarshal negative numbers\", func(t *testing.T) {\n\t\tcases := []struct {\n\t\t\tname string\n\t\t\tv    any\n\t\t\terr  string\n\t\t}{\n\t\t\t{\"negative int\", -1, \"-1 is an invalid unsigned integer: includes sign\"},\n\t\t\t{\"negative int64\", int64(-1), \"-1 is an invalid unsigned integer: includes sign\"},\n\t\t\t{\n\t\t\t\t\"negative json.Number\",\n\t\t\t\tjson.Number(\"-1\"),\n\t\t\t\t\"-1 is an invalid unsigned integer: includes sign\",\n\t\t\t},\n\t\t\t{\"negative string\", \"-1\", \"-1 is an invalid unsigned integer: includes sign\"},\n\t\t}\n\t\tfor _, tc := range cases {\n\t\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t\tvar uintSignErr *UintSignError\n\t\t\t\tvar intErr *IntegerError\n\n\t\t\t\tres, err := UnmarshalUint(tc.v)\n\t\t\t\trequire.EqualError(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\ttc.err,\n\t\t\t\t)\n\t\t\t\trequire.ErrorAs(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\t&uintSignErr,\n\t\t\t\t)\n\t\t\t\trequire.ErrorAs(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\t&intErr,\n\t\t\t\t)\n\t\t\t\tassert.Equal(t, uint(0), res)\n\t\t\t})\n\t\t}\n\t})\n\n\tt.Run(\"invalid string numbers are not integer errors\", func(t *testing.T) {\n\t\tcases := []struct {\n\t\t\tname string\n\t\t\tv    any\n\t\t\terr  string\n\t\t}{\n\t\t\t{\"empty\", \"\", `strconv.ParseUint: parsing \"\": invalid syntax`},\n\t\t\t{\"string\", \"-1.03\", `strconv.ParseUint: parsing \"-1.03\": invalid syntax`},\n\t\t\t{\"json number\", json.Number(\" 1\"), `strconv.ParseUint: parsing \" 1\": invalid syntax`},\n\t\t}\n\t\tfor _, tc := range cases {\n\t\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t\tvar uintSignErr *UintSignError\n\t\t\t\tvar intErr *IntegerError\n\n\t\t\t\tres, err := UnmarshalUint(tc.v)\n\t\t\t\trequire.EqualError(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\ttc.err,\n\t\t\t\t)\n\t\t\t\tassert.NotErrorAs(t, err, &uintSignErr)\n\t\t\t\tassert.NotErrorAs(t, err, &intErr)\n\t\t\t\tassert.Equal(t, uint(0), res)\n\t\t\t})\n\t\t}\n\t})\n}\n\nfunc mustUnmarshalUint(v any) uint {\n\tres, err := UnmarshalUint(v)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn res\n}\n\nfunc TestUint8(t *testing.T) {\n\tt.Run(\"marshal\", func(t *testing.T) {\n\t\tassert.Equal(t, \"123\", m2s(MarshalUint8(123)))\n\t\tassert.Equal(t, \"255\", m2s(MarshalUint8(math.MaxUint8)))\n\t})\n\n\tt.Run(\"unmarshal\", func(t *testing.T) {\n\t\tassert.Equal(t, uint8(0), mustUnmarshalUint8(nil))\n\t\tassert.Equal(t, uint8(123), mustUnmarshalUint8(123))\n\t\tassert.Equal(t, uint8(123), mustUnmarshalUint8(int64(123)))\n\t\tassert.Equal(t, uint8(123), mustUnmarshalUint8(json.Number(\"123\")))\n\t\tassert.Equal(t, uint8(123), mustUnmarshalUint8(\"123\"))\n\t\tassert.Equal(t, uint8(255), mustUnmarshalUint8(\"255\"))\n\t})\n\n\tt.Run(\"can't unmarshal negative numbers\", func(t *testing.T) {\n\t\tcases := []struct {\n\t\t\tname string\n\t\t\tv    any\n\t\t\terr  string\n\t\t}{\n\t\t\t{\"negative int\", -1, \"-1 is an invalid unsigned integer: includes sign\"},\n\t\t\t{\"negative int64\", int64(-1), \"-1 is an invalid unsigned integer: includes sign\"},\n\t\t\t{\n\t\t\t\t\"negative json.Number\",\n\t\t\t\tjson.Number(\"-1\"),\n\t\t\t\t\"-1 is an invalid unsigned integer: includes sign\",\n\t\t\t},\n\t\t\t{\"negative string\", \"-1\", \"-1 is an invalid unsigned integer: includes sign\"},\n\t\t}\n\t\tfor _, tc := range cases {\n\t\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t\tvar uintSignErr *UintSignError\n\t\t\t\tvar intErr *IntegerError\n\n\t\t\t\tres, err := UnmarshalUint8(tc.v)\n\t\t\t\trequire.EqualError(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\ttc.err,\n\t\t\t\t)\n\t\t\t\trequire.ErrorAs(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\t&uintSignErr,\n\t\t\t\t)\n\t\t\t\trequire.ErrorAs(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\t&intErr,\n\t\t\t\t)\n\t\t\t\tassert.Equal(t, uint8(0), res)\n\t\t\t})\n\t\t}\n\t})\n\n\tt.Run(\"invalid string numbers are not integer errors\", func(t *testing.T) {\n\t\tvar uintSignErr *UintSignError\n\t\tvar intErr *IntegerError\n\n\t\tres, err := UnmarshalUint8(\"-1.03\")\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t\"strconv.ParseUint: parsing \\\"-1.03\\\": invalid syntax\",\n\t\t)\n\t\tassert.NotErrorAs(t, err, &uintSignErr)\n\t\tassert.NotErrorAs(t, err, &intErr)\n\t\tassert.Equal(t, uint8(0), res)\n\n\t\tres, err = UnmarshalUint8(json.Number(\" 1\"))\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t\"strconv.ParseUint: parsing \\\" 1\\\": invalid syntax\",\n\t\t)\n\t\tassert.NotErrorAs(t, err, &uintSignErr)\n\t\tassert.NotErrorAs(t, err, &intErr)\n\t\tassert.Equal(t, uint8(0), res)\n\t})\n\n\tt.Run(\"overflow\", func(t *testing.T) {\n\t\tcases := []struct {\n\t\t\tname string\n\t\t\tv    any\n\t\t\terr  string\n\t\t}{\n\t\t\t{\"int overflow\", math.MaxUint8 + 1, \"256 overflows unsigned 8-bit integer\"},\n\t\t\t{\"int64 overflow\", int64(math.MaxUint8 + 1), \"256 overflows unsigned 8-bit integer\"},\n\t\t\t{\"json.Number overflow\", json.Number(\"256\"), \"256 overflows unsigned 8-bit integer\"},\n\t\t\t{\"string overflow\", \"256\", \"256 overflows unsigned 8-bit integer\"},\n\t\t}\n\t\tfor _, tc := range cases {\n\t\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t\tvar numberOverflowErr *NumberOverflowError\n\t\t\t\tvar intErr *IntegerError\n\n\t\t\t\tres, err := UnmarshalUint8(tc.v)\n\t\t\t\trequire.EqualError(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\ttc.err,\n\t\t\t\t)\n\t\t\t\trequire.ErrorAs(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\t&numberOverflowErr,\n\t\t\t\t)\n\t\t\t\trequire.ErrorAs(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\t&intErr,\n\t\t\t\t)\n\t\t\t\tassert.Equal(t, uint8(0), res)\n\t\t\t})\n\t\t}\n\t})\n}\n\nfunc mustUnmarshalUint8(v any) uint8 {\n\tres, err := UnmarshalUint8(v)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn res\n}\n\nfunc TestUint16(t *testing.T) {\n\tt.Run(\"marshal\", func(t *testing.T) {\n\t\tassert.Equal(t, \"123\", m2s(MarshalUint16(123)))\n\t\tassert.Equal(t, \"65535\", m2s(MarshalUint16(math.MaxUint16)))\n\t})\n\n\tt.Run(\"unmarshal\", func(t *testing.T) {\n\t\tassert.Equal(t, uint16(0), mustUnmarshalUint16(nil))\n\t\tassert.Equal(t, uint16(123), mustUnmarshalUint16(123))\n\t\tassert.Equal(t, uint16(123), mustUnmarshalUint16(int64(123)))\n\t\tassert.Equal(t, uint16(123), mustUnmarshalUint16(json.Number(\"123\")))\n\t\tassert.Equal(t, uint16(123), mustUnmarshalUint16(\"123\"))\n\t\tassert.Equal(t, uint16(65535), mustUnmarshalUint16(\"65535\"))\n\t})\n\n\tt.Run(\"can't unmarshal negative numbers\", func(t *testing.T) {\n\t\tcases := []struct {\n\t\t\tname string\n\t\t\tv    any\n\t\t\terr  string\n\t\t}{\n\t\t\t{\"negative int\", -1, \"-1 is an invalid unsigned integer: includes sign\"},\n\t\t\t{\"negative int64\", int64(-1), \"-1 is an invalid unsigned integer: includes sign\"},\n\t\t\t{\n\t\t\t\t\"negative json.Number\",\n\t\t\t\tjson.Number(\"-1\"),\n\t\t\t\t\"-1 is an invalid unsigned integer: includes sign\",\n\t\t\t},\n\t\t\t{\"negative string\", \"-1\", \"-1 is an invalid unsigned integer: includes sign\"},\n\t\t}\n\t\tfor _, tc := range cases {\n\t\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t\tvar uintSignErr *UintSignError\n\t\t\t\tvar intErr *IntegerError\n\n\t\t\t\tres, err := UnmarshalUint16(tc.v)\n\t\t\t\trequire.EqualError(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\ttc.err,\n\t\t\t\t)\n\t\t\t\trequire.ErrorAs(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\t&uintSignErr,\n\t\t\t\t)\n\t\t\t\trequire.ErrorAs(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\t&intErr,\n\t\t\t\t)\n\t\t\t\tassert.Equal(t, uint16(0), res)\n\t\t\t})\n\t\t}\n\t})\n\n\tt.Run(\"invalid string numbers are not integer errors\", func(t *testing.T) {\n\t\tvar uintSignErr *UintSignError\n\t\tvar intErr *IntegerError\n\n\t\tres, err := UnmarshalUint16(\"-1.03\")\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t\"strconv.ParseUint: parsing \\\"-1.03\\\": invalid syntax\",\n\t\t)\n\t\tassert.NotErrorAs(t, err, &uintSignErr)\n\t\tassert.NotErrorAs(t, err, &intErr)\n\t\tassert.Equal(t, uint16(0), res)\n\n\t\tres, err = UnmarshalUint16(json.Number(\" 1\"))\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t\"strconv.ParseUint: parsing \\\" 1\\\": invalid syntax\",\n\t\t)\n\t\tassert.NotErrorAs(t, err, &uintSignErr)\n\t\tassert.NotErrorAs(t, err, &intErr)\n\t\tassert.Equal(t, uint16(0), res)\n\t})\n\n\tt.Run(\"overflow\", func(t *testing.T) {\n\t\tcases := []struct {\n\t\t\tname string\n\t\t\tv    any\n\t\t\terr  string\n\t\t}{\n\t\t\t{\"int overflow\", math.MaxUint16 + 1, \"65536 overflows unsigned 16-bit integer\"},\n\t\t\t{\n\t\t\t\t\"int64 overflow\",\n\t\t\t\tint64(math.MaxUint16 + 1),\n\t\t\t\t\"65536 overflows unsigned 16-bit integer\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"json.Number overflow\",\n\t\t\t\tjson.Number(\"65536\"),\n\t\t\t\t\"65536 overflows unsigned 16-bit integer\",\n\t\t\t},\n\t\t\t{\"string overflow\", \"65536\", \"65536 overflows unsigned 16-bit integer\"},\n\t\t}\n\t\tfor _, tc := range cases {\n\t\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t\tvar numberOverflowErr *NumberOverflowError\n\t\t\t\tvar intErr *IntegerError\n\n\t\t\t\tres, err := UnmarshalUint16(tc.v)\n\t\t\t\trequire.EqualError(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\ttc.err,\n\t\t\t\t)\n\t\t\t\trequire.ErrorAs(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\t&numberOverflowErr,\n\t\t\t\t)\n\t\t\t\trequire.ErrorAs(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\t&intErr,\n\t\t\t\t)\n\t\t\t\tassert.Equal(t, uint16(0), res)\n\t\t\t})\n\t\t}\n\t})\n}\n\nfunc mustUnmarshalUint16(v any) uint16 {\n\tres, err := UnmarshalUint16(v)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn res\n}\n\nfunc TestUint32(t *testing.T) {\n\tt.Run(\"marshal\", func(t *testing.T) {\n\t\tassert.Equal(t, \"123\", m2s(MarshalUint32(123)))\n\t\tassert.Equal(t, \"4294967295\", m2s(MarshalUint32(math.MaxUint32)))\n\t})\n\n\tt.Run(\"unmarshal\", func(t *testing.T) {\n\t\tassert.Equal(t, uint32(0), mustUnmarshalUint32(nil))\n\t\tassert.Equal(t, uint32(123), mustUnmarshalUint32(123))\n\t\tassert.Equal(t, uint32(123), mustUnmarshalUint32(int64(123)))\n\t\tassert.Equal(t, uint32(123), mustUnmarshalUint32(json.Number(\"123\")))\n\t\tassert.Equal(t, uint32(123), mustUnmarshalUint32(\"123\"))\n\t\tassert.Equal(t, uint32(4294967295), mustUnmarshalUint32(\"4294967295\"))\n\t})\n\n\tt.Run(\"can't unmarshal negative numbers\", func(t *testing.T) {\n\t\tcases := []struct {\n\t\t\tname string\n\t\t\tv    any\n\t\t\terr  string\n\t\t}{\n\t\t\t{\"negative int\", -1, \"-1 is an invalid unsigned integer: includes sign\"},\n\t\t\t{\"negative int64\", int64(-1), \"-1 is an invalid unsigned integer: includes sign\"},\n\t\t\t{\n\t\t\t\t\"negative json.Number\",\n\t\t\t\tjson.Number(\"-1\"),\n\t\t\t\t\"-1 is an invalid unsigned integer: includes sign\",\n\t\t\t},\n\t\t\t{\"negative string\", \"-1\", \"-1 is an invalid unsigned integer: includes sign\"},\n\t\t}\n\t\tfor _, tc := range cases {\n\t\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t\tvar uintSignErr *UintSignError\n\t\t\t\tvar intErr *IntegerError\n\n\t\t\t\tres, err := UnmarshalUint32(tc.v)\n\t\t\t\trequire.EqualError(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\ttc.err,\n\t\t\t\t)\n\t\t\t\trequire.ErrorAs(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\t&uintSignErr,\n\t\t\t\t)\n\t\t\t\trequire.ErrorAs(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\t&intErr,\n\t\t\t\t)\n\t\t\t\tassert.Equal(t, uint32(0), res)\n\t\t\t})\n\t\t}\n\t})\n\n\tt.Run(\"invalid string numbers are not integer errors\", func(t *testing.T) {\n\t\tvar uintSignErr *UintSignError\n\t\tvar intErr *IntegerError\n\n\t\tres, err := UnmarshalUint32(\"-1.03\")\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t\"strconv.ParseUint: parsing \\\"-1.03\\\": invalid syntax\",\n\t\t)\n\t\tassert.NotErrorAs(t, err, &uintSignErr)\n\t\tassert.NotErrorAs(t, err, &intErr)\n\t\tassert.Equal(t, uint32(0), res)\n\n\t\tres, err = UnmarshalUint32(json.Number(\" 1\"))\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t\"strconv.ParseUint: parsing \\\" 1\\\": invalid syntax\",\n\t\t)\n\t\tassert.NotErrorAs(t, err, &uintSignErr)\n\t\tassert.NotErrorAs(t, err, &intErr)\n\t\tassert.Equal(t, uint32(0), res)\n\t})\n\n\tt.Run(\"overflow\", func(t *testing.T) {\n\t\tcases := []struct {\n\t\t\tname string\n\t\t\tv    any\n\t\t\terr  string\n\t\t}{\n\t\t\t{\"int overflow\", math.MaxUint32 + 1, \"4294967296 overflows unsigned 32-bit integer\"},\n\t\t\t{\n\t\t\t\t\"int64 overflow\",\n\t\t\t\tint64(math.MaxUint32 + 1),\n\t\t\t\t\"4294967296 overflows unsigned 32-bit integer\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"json.Number overflow\",\n\t\t\t\tjson.Number(\"4294967296\"),\n\t\t\t\t\"4294967296 overflows unsigned 32-bit integer\",\n\t\t\t},\n\t\t\t{\"string overflow\", \"4294967296\", \"4294967296 overflows unsigned 32-bit integer\"},\n\t\t}\n\t\tfor _, tc := range cases {\n\t\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t\tvar numberOverflowErr *NumberOverflowError\n\t\t\t\tvar intErr *IntegerError\n\n\t\t\t\tres, err := UnmarshalUint32(tc.v)\n\t\t\t\trequire.EqualError(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\ttc.err,\n\t\t\t\t)\n\t\t\t\trequire.ErrorAs(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\t&numberOverflowErr,\n\t\t\t\t)\n\t\t\t\trequire.ErrorAs(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\t&intErr,\n\t\t\t\t)\n\t\t\t\tassert.Equal(t, uint32(0), res)\n\t\t\t})\n\t\t}\n\t})\n}\n\nfunc mustUnmarshalUint32(v any) uint32 {\n\tres, err := UnmarshalUint32(v)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn res\n}\n\nfunc TestUint64(t *testing.T) {\n\tt.Run(\"marshal\", func(t *testing.T) {\n\t\tassert.Equal(t, \"123\", m2s(MarshalUint64(123)))\n\t})\n\n\tt.Run(\"unmarshal\", func(t *testing.T) {\n\t\tassert.Equal(t, uint64(0), mustUnmarshalUint64(nil))\n\t\tassert.Equal(t, uint64(123), mustUnmarshalUint64(123))\n\t\tassert.Equal(t, uint64(123), mustUnmarshalUint64(int64(123)))\n\t\tassert.Equal(t, uint64(123), mustUnmarshalUint64(json.Number(\"123\")))\n\t\tassert.Equal(t, uint64(123), mustUnmarshalUint64(\"123\"))\n\t})\n\n\tt.Run(\"can't unmarshal negative numbers\", func(t *testing.T) {\n\t\tcases := []struct {\n\t\t\tname string\n\t\t\tv    any\n\t\t\terr  string\n\t\t}{\n\t\t\t{\"negative int\", -1, \"-1 is an invalid unsigned integer: includes sign\"},\n\t\t\t{\"negative int64\", int64(-1), \"-1 is an invalid unsigned integer: includes sign\"},\n\t\t\t{\n\t\t\t\t\"negative json.Number\",\n\t\t\t\tjson.Number(\"-1\"),\n\t\t\t\t\"-1 is an invalid unsigned integer: includes sign\",\n\t\t\t},\n\t\t\t{\"negative string\", \"-1\", \"-1 is an invalid unsigned integer: includes sign\"},\n\t\t}\n\t\tfor _, tc := range cases {\n\t\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t\tvar uintSignErr *UintSignError\n\t\t\t\tvar intErr *IntegerError\n\n\t\t\t\tres, err := UnmarshalUint64(tc.v)\n\t\t\t\trequire.EqualError(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\ttc.err,\n\t\t\t\t)\n\t\t\t\trequire.ErrorAs(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\t&uintSignErr,\n\t\t\t\t)\n\t\t\t\trequire.ErrorAs(\n\t\t\t\t\tt,\n\t\t\t\t\terr,\n\t\t\t\t\t&intErr,\n\t\t\t\t)\n\t\t\t\tassert.Equal(t, uint64(0), res)\n\t\t\t})\n\t\t}\n\t})\n\n\tt.Run(\"invalid string numbers are not integer errors\", func(t *testing.T) {\n\t\tvar uintSignErr *UintSignError\n\t\tvar intErr *IntegerError\n\n\t\tres, err := UnmarshalUint64(\"-1.03\")\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t\"strconv.ParseUint: parsing \\\"-1.03\\\": invalid syntax\",\n\t\t)\n\t\tassert.NotErrorAs(t, err, &uintSignErr)\n\t\tassert.NotErrorAs(t, err, &intErr)\n\t\tassert.Equal(t, uint64(0), res)\n\n\t\tres, err = UnmarshalUint64(json.Number(\" 1\"))\n\t\trequire.EqualError(\n\t\t\tt,\n\t\t\terr,\n\t\t\t\"strconv.ParseUint: parsing \\\" 1\\\": invalid syntax\",\n\t\t)\n\t\tassert.NotErrorAs(t, err, &uintSignErr)\n\t\tassert.NotErrorAs(t, err, &intErr)\n\t\tassert.Equal(t, uint64(0), res)\n\t})\n}\n\nfunc mustUnmarshalUint64(v any) uint64 {\n\tres, err := UnmarshalUint64(v)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn res\n}\n\nfunc beforeUnmarshalUint(v any) (uint, error) {\n\tswitch v := v.(type) {\n\tcase string:\n\t\tu64, err := strconv.ParseUint(v, 10, 64)\n\t\tif err != nil {\n\t\t\tvar strconvErr *strconv.NumError\n\t\t\tif errors.As(err, &strconvErr) && isSignedInteger(v) {\n\t\t\t\treturn 0, newUintSignError(v)\n\t\t\t}\n\t\t\treturn 0, err\n\t\t}\n\t\treturn uint(u64), err\n\tcase int:\n\t\tif v < 0 {\n\t\t\treturn 0, newUintSignError(strconv.FormatInt(int64(v), 10))\n\t\t}\n\t\treturn uint(v), nil\n\tcase int64:\n\t\tif v < 0 {\n\t\t\treturn 0, newUintSignError(strconv.FormatInt(v, 10))\n\t\t}\n\t\treturn uint(v), nil\n\tcase json.Number:\n\t\tu64, err := strconv.ParseUint(string(v), 10, 64)\n\t\tif err != nil {\n\t\t\tvar strconvErr *strconv.NumError\n\t\t\tif errors.As(err, &strconvErr) && isSignedInteger(string(v)) {\n\t\t\t\treturn 0, newUintSignError(string(v))\n\t\t\t}\n\t\t\treturn 0, err\n\t\t}\n\t\treturn uint(u64), err\n\tcase nil:\n\t\treturn 0, nil\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"%T is not an uint\", v)\n\t}\n}\n\nfunc BenchmarkUnmarshalUintInitial(b *testing.B) {\n\tnumbers := makeRandomNumberSlice(false)\n\n\tfor b.Loop() {\n\t\tfor i := range numbers {\n\t\t\t_, _ = beforeUnmarshalUint(numbers[i])\n\t\t}\n\t}\n}\n\nfunc BenchmarkUnmarshalUintNew(b *testing.B) {\n\tnumbers := makeRandomNumberSlice(false)\n\n\tfor b.Loop() {\n\t\tfor i := range numbers {\n\t\t\t_, _ = UnmarshalUint(numbers[i])\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "graphql/upload.go",
    "content": "package graphql\n\nimport (\n\t\"fmt\"\n\t\"io\"\n)\n\ntype Upload struct {\n\tFile        io.ReadSeeker\n\tFilename    string\n\tSize        int64\n\tContentType string\n}\n\nfunc MarshalUpload(f Upload) Marshaler {\n\treturn WriterFunc(func(w io.Writer) {\n\t\tio.Copy(w, f.File)\n\t})\n}\n\nfunc UnmarshalUpload(v any) (Upload, error) {\n\tupload, ok := v.(Upload)\n\tif !ok {\n\t\treturn Upload{}, fmt.Errorf(\"%T is not an Upload\", v)\n\t}\n\treturn upload, nil\n}\n"
  },
  {
    "path": "graphql/uuid.go",
    "content": "package graphql\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/google/uuid\"\n)\n\nfunc MarshalUUID(id uuid.UUID) Marshaler {\n\tif id == uuid.Nil {\n\t\treturn Null\n\t}\n\treturn MarshalString(id.String())\n}\n\nfunc UnmarshalUUID(v any) (uuid.UUID, error) {\n\tswitch v := v.(type) {\n\tcase string:\n\t\treturn uuid.Parse(v)\n\tcase []byte:\n\t\treturn uuid.ParseBytes(v)\n\tdefault:\n\t\treturn uuid.Nil, fmt.Errorf(\"%T is not a uuid\", v)\n\t}\n}\n"
  },
  {
    "path": "graphql/uuid_test.go",
    "content": "package graphql\n\nimport (\n\t\"testing\"\n\n\t\"github.com/google/uuid\"\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc TestMarshalUUID(t *testing.T) {\n\tt.Run(\"Null Values\", func(t *testing.T) {\n\t\tassert.Equal(t, \"null\", m2s(MarshalUUID(uuid.Nil)))\n\t})\n\n\tt.Run(\"Valid Values\", func(t *testing.T) {\n\t\tvalues := []struct {\n\t\t\tinput    uuid.UUID\n\t\t\texpected string\n\t\t}{\n\t\t\t{\n\t\t\t\tuuid.MustParse(\"fd5343a9-0372-11ee-9fb2-0242ac160014\"),\n\t\t\t\t\"\\\"fd5343a9-0372-11ee-9fb2-0242ac160014\\\"\",\n\t\t\t},\n\t\t}\n\t\tfor _, v := range values {\n\t\t\tassert.Equal(t, v.expected, m2s(MarshalUUID(v.input)))\n\t\t}\n\t})\n}\n\nfunc TestUnmarshalUUID(t *testing.T) {\n\tt.Run(\"Invalid Non-String Values\", func(t *testing.T) {\n\t\tvalues := []any{123, 1.2345678901, 1.2e+20, 1.2e-20, true, false, nil}\n\t\tfor _, v := range values {\n\t\t\tresult, err := UnmarshalUUID(v)\n\t\t\tassert.Equal(t, uuid.Nil, result)\n\t\t\tassert.ErrorContains(t, err, \"is not a uuid\")\n\t\t}\n\t})\n\n\tt.Run(\"Invalid String Values\", func(t *testing.T) {\n\t\tvalues := []struct {\n\t\t\tinput    string\n\t\t\texpected string\n\t\t}{\n\t\t\t{\"X50e8400-e29b-41d4-a716-446655440000\", \"invalid UUID format\"},\n\t\t\t{\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\", \"invalid UUID format\"},\n\t\t\t{\"F50e8400-e29b-41d4-a716-44665544000\", \"invalid UUID length: 35\"},\n\t\t\t{\"aaa\", \"invalid UUID length: 3\"},\n\t\t\t{\"\", \"invalid UUID length: 0\"},\n\t\t}\n\t\tfor _, v := range values {\n\t\t\tresult, err := UnmarshalUUID(v.input)\n\t\t\tassert.Equal(t, uuid.Nil, result)\n\t\t\tassert.ErrorContains(t, err, v.expected)\n\t\t}\n\t})\n}\n"
  },
  {
    "path": "graphql/version.go",
    "content": "package graphql\n\nconst Version = \"v0.17.88-dev\"\n"
  },
  {
    "path": "handler/handler.go",
    "content": "package handler\n\nimport (\n\t\"context\"\n\t\"net/http\"\n\t\"time\"\n\n\t\"github.com/gorilla/websocket\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/extension\"\n\t\"github.com/99designs/gqlgen/graphql/handler/lru\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/graphql/playground\"\n)\n\n// Deprecated: switch to graphql/handler.New\nfunc GraphQL(exec graphql.ExecutableSchema, options ...Option) http.HandlerFunc {\n\tvar cfg Config\n\tcfg.cacheSize = 1000\n\n\tfor _, option := range options {\n\t\toption(&cfg)\n\t}\n\n\tsrv := handler.New(exec)\n\n\tsrv.AddTransport(transport.Websocket{\n\t\tUpgrader:              cfg.upgrader,\n\t\tInitFunc:              cfg.websocketInitFunc,\n\t\tKeepAlivePingInterval: cfg.connectionKeepAlivePingInterval,\n\t\tPingPongInterval:      cfg.connectionPingPongInterval,\n\t})\n\tsrv.AddTransport(transport.Options{})\n\tsrv.AddTransport(transport.GET{})\n\tsrv.AddTransport(transport.POST{})\n\tsrv.AddTransport(transport.MultipartForm{\n\t\tMaxUploadSize: cfg.uploadMaxSize,\n\t\tMaxMemory:     cfg.uploadMaxMemory,\n\t})\n\n\tif cfg.cacheSize != 0 {\n\t\tsrv.SetQueryCache(lru.New[*ast.QueryDocument](cfg.cacheSize))\n\t}\n\tif cfg.recover != nil {\n\t\tsrv.SetRecoverFunc(cfg.recover)\n\t}\n\tif cfg.errorPresenter != nil {\n\t\tsrv.SetErrorPresenter(cfg.errorPresenter)\n\t}\n\tfor _, hook := range cfg.fieldHooks {\n\t\tsrv.AroundFields(hook)\n\t}\n\tfor _, hook := range cfg.requestHooks {\n\t\tsrv.AroundResponses(hook)\n\t}\n\tif cfg.complexityLimit != 0 {\n\t\tsrv.Use(extension.FixedComplexityLimit(cfg.complexityLimit))\n\t} else if cfg.complexityLimitFunc != nil {\n\t\tsrv.Use(&extension.ComplexityLimit{\n\t\t\tFunc: func(ctx context.Context, opCtx *graphql.OperationContext) int {\n\t\t\t\treturn cfg.complexityLimitFunc(graphql.WithOperationContext(ctx, opCtx))\n\t\t\t},\n\t\t})\n\t}\n\tif !cfg.disableIntrospection {\n\t\tsrv.Use(extension.Introspection{})\n\t}\n\tif cfg.apqCache != nil {\n\t\tsrv.Use(extension.AutomaticPersistedQuery{Cache: apqAdapter{cfg.apqCache}})\n\t}\n\treturn srv.ServeHTTP\n}\n\n// Deprecated: switch to graphql/handler.New\ntype Config struct {\n\tcacheSize                       int\n\tupgrader                        websocket.Upgrader\n\twebsocketInitFunc               transport.WebsocketInitFunc\n\tconnectionKeepAlivePingInterval time.Duration\n\tconnectionPingPongInterval      time.Duration\n\trecover                         graphql.RecoverFunc\n\terrorPresenter                  graphql.ErrorPresenterFunc\n\tfieldHooks                      []graphql.FieldMiddleware\n\trequestHooks                    []graphql.ResponseMiddleware\n\tcomplexityLimit                 int\n\tcomplexityLimitFunc             func(ctx context.Context) int\n\tdisableIntrospection            bool\n\tuploadMaxMemory                 int64\n\tuploadMaxSize                   int64\n\tapqCache                        PersistedQueryCache\n}\n\n// Deprecated: switch to graphql/handler.New\ntype Option func(cfg *Config)\n\n// Deprecated: switch to graphql/handler.New\nfunc WebsocketUpgrader(upgrader websocket.Upgrader) Option {\n\treturn func(cfg *Config) {\n\t\tcfg.upgrader = upgrader\n\t}\n}\n\n// Deprecated: switch to graphql/handler.New\nfunc RecoverFunc(recoverFn graphql.RecoverFunc) Option {\n\treturn func(cfg *Config) {\n\t\tcfg.recover = recoverFn\n\t}\n}\n\n// ErrorPresenter transforms errors found while resolving into errors that will be returned to the\n// user. It provides a good place to add any extra fields, like error.type, that might be desired by\n// your frontend. Check the default\n// implementation in graphql.DefaultErrorPresenter for an example.\n//\n// Deprecated: switch to graphql/handler.New\nfunc ErrorPresenter(f graphql.ErrorPresenterFunc) Option {\n\treturn func(cfg *Config) {\n\t\tcfg.errorPresenter = f\n\t}\n}\n\n// IntrospectionEnabled = false will forbid clients from calling introspection endpoints. Can be\n// useful in prod when you don't\n// want clients introspecting the full schema.\n//\n// Deprecated: switch to graphql/handler.New\nfunc IntrospectionEnabled(enabled bool) Option {\n\treturn func(cfg *Config) {\n\t\tcfg.disableIntrospection = !enabled\n\t}\n}\n\n// ComplexityLimit sets a maximum query complexity that is allowed to be executed.\n// If a query is submitted that exceeds the limit, a 422 status code will be returned.\n//\n// Deprecated: switch to graphql/handler.New\nfunc ComplexityLimit(limit int) Option {\n\treturn func(cfg *Config) {\n\t\tcfg.complexityLimit = limit\n\t}\n}\n\n// ComplexityLimitFunc allows you to define a function to dynamically set the maximum query\n// complexity that is allowed\n// to be executed.\n// If a query is submitted that exceeds the limit, a 422 status code will be returned.\n//\n// Deprecated: switch to graphql/handler.New\nfunc ComplexityLimitFunc(complexityLimitFunc func(ctx context.Context) int) Option {\n\treturn func(cfg *Config) {\n\t\tcfg.complexityLimitFunc = complexityLimitFunc\n\t}\n}\n\n// ResolverMiddleware allows you to define a function that will be called around every resolver,\n// useful for logging.\n//\n// Deprecated: switch to graphql/handler.New\nfunc ResolverMiddleware(middleware graphql.FieldMiddleware) Option {\n\treturn func(cfg *Config) {\n\t\tcfg.fieldHooks = append(cfg.fieldHooks, middleware)\n\t}\n}\n\n// RequestMiddleware allows you to define a function that will be called around the root request,\n// after the query has been parsed. This is useful for logging\n//\n// Deprecated: switch to graphql/handler.New\nfunc RequestMiddleware(middleware graphql.ResponseMiddleware) Option {\n\treturn func(cfg *Config) {\n\t\tcfg.requestHooks = append(cfg.requestHooks, middleware)\n\t}\n}\n\n// WebsocketInitFunc is called when the server receives connection init message from the client.\n// This can be used to check initial payload to see whether to accept the websocket connection.\n//\n// Deprecated: switch to graphql/handler.New\nfunc WebsocketInitFunc(websocketInitFunc transport.WebsocketInitFunc) Option {\n\treturn func(cfg *Config) {\n\t\tcfg.websocketInitFunc = websocketInitFunc\n\t}\n}\n\n// CacheSize sets the maximum size of the query cache.\n// If size is less than or equal to 0, the cache is disabled.\n//\n// Deprecated: switch to graphql/handler.New\nfunc CacheSize(size int) Option {\n\treturn func(cfg *Config) {\n\t\tcfg.cacheSize = size\n\t}\n}\n\n// UploadMaxSize sets the maximum number of bytes used to parse a request body\n// as multipart/form-data.\n//\n// Deprecated: switch to graphql/handler.New\nfunc UploadMaxSize(size int64) Option {\n\treturn func(cfg *Config) {\n\t\tcfg.uploadMaxSize = size\n\t}\n}\n\n// UploadMaxMemory sets the maximum number of bytes used to parse a request body\n// as multipart/form-data in memory, with the remainder stored on disk in\n// temporary files.\n//\n// Deprecated: switch to graphql/handler.New\nfunc UploadMaxMemory(size int64) Option {\n\treturn func(cfg *Config) {\n\t\tcfg.uploadMaxMemory = size\n\t}\n}\n\n// WebsocketKeepAliveDuration allows you to reconfigure the keepalive behavior.\n// By default, keepalive is enabled with a DefaultConnectionKeepAlivePingInterval\n// duration. Set handler.connectionKeepAlivePingInterval = 0 to disable keepalive\n// altogether.\n//\n// Deprecated: switch to graphql/handler.New\nfunc WebsocketKeepAliveDuration(duration time.Duration) Option {\n\treturn func(cfg *Config) {\n\t\tcfg.connectionKeepAlivePingInterval = duration\n\t}\n}\n\nfunc WebsocketPingPongDuration(duration time.Duration) Option {\n\treturn func(cfg *Config) {\n\t\tcfg.connectionPingPongInterval = duration\n\t}\n}\n\n// Add cache that will hold queries for automatic persisted queries (APQ)\n//\n// Deprecated: switch to graphql/handler.New\nfunc EnablePersistedQueryCache(cache PersistedQueryCache) Option {\n\treturn func(cfg *Config) {\n\t\tcfg.apqCache = cache\n\t}\n}\n\nfunc GetInitPayload(ctx context.Context) transport.InitPayload {\n\treturn transport.GetInitPayload(ctx)\n}\n\ntype apqAdapter struct {\n\tPersistedQueryCache\n}\n\nfunc (a apqAdapter) Get(ctx context.Context, key string) (value string, ok bool) {\n\treturn a.PersistedQueryCache.Get(ctx, key)\n}\n\nfunc (a apqAdapter) Add(ctx context.Context, key, value string) {\n\ta.PersistedQueryCache.Add(ctx, key, value)\n}\n\ntype PersistedQueryCache interface {\n\tAdd(ctx context.Context, hash, query string)\n\tGet(ctx context.Context, hash string) (string, bool)\n}\n\n// Deprecated: use playground.Handler instead\nfunc Playground(title, endpoint string) http.HandlerFunc {\n\treturn playground.Handler(title, endpoint)\n}\n\n// Deprecated: use transport.InitPayload instead\ntype InitPayload = transport.InitPayload\n"
  },
  {
    "path": "init-templates/gqlgen.yml.gotmpl",
    "content": "# Where are all the schema files located? globs are supported eg  src/**/*.graphqls\nschema:\n  - graph/*.graphqls\n\n# Where should the generated server code go?\nexec:\n  package: graph\n  layout: single-file # Only other option is \"follow-schema,\" ie multi-file.\n\n  # Only for single-file layout:\n  filename: graph/generated.go\n\n  # Only for follow-schema layout:\n  # dir: graph\n  # filename_template: \"{name}.generated.go\"\n\n  # Optional: Maximum number of goroutines in concurrency to use per child resolvers(default: unlimited)\n  # worker_limit: 1000\n\n# Uncomment to enable federation\n# federation:\n#   filename: graph/federation.go\n#   package: graph\n#   version: 2\n#   options:\n#     # Generate a function to populate @requires fields (cannot be used with computed_requires)\n#     explicit_requires: false\n#     # Generate resolver functions to compute @requires field values (requires version 2 and call_argument_directives_with_null: true)\n#     computed_requires: false\n#     # Default engine for entityResolver generation, can be overridden per entity with @entityResolver(multi: Boolean)\n#     entity_resolver_multi: false\n\n# Where should any generated models go?\nmodel:\n  filename: graph/model/models_gen.go\n  package: model\n\n  # Optional: Pass in a path to a new gotpl template to use for generating the models\n  # model_template: [your/path/model.gotpl]\n\n# Where should the resolver implementations go?\nresolver:\n  package: graph\n  layout: follow-schema # Only other option is \"single-file.\"\n\n  # Only for single-file layout:\n  # filename: graph/resolver.go\n\n  # Only for follow-schema layout:\n  dir: graph\n  filename_template: \"{name}.resolvers.go\"\n\n  # Optional: turn on to not generate template comments above resolvers\n  # omit_template_comment: false\n  # Optional: Pass in a path to a new gotpl template to use for generating resolvers\n  # resolver_template: [your/path/resolver.gotpl]\n  # Optional: turn on to avoid rewriting existing resolver(s) when generating\n  # preserve_resolver: false\n  # Optional: the name of the resolver struct type (default: Resolver)\n  # type: Resolver\n\n# Optional: turn on use ` + \"`\" + `gqlgen:\"fieldName\"` + \"`\" + ` tags in your models\n# struct_tag: json\n\n# Optional: prefix for embedded structs (default: \"Base\")\n# embedded_structs_prefix: Base\n\n# Optional: custom directive configuration\n# directives:\n#   hasRole:\n#     skip_runtime: false\n\n# Optional: local package prefix for import sorting\n# local_prefix: \"\"\n\n# Optional: turn on to use []Thing instead of []*Thing\n# omit_slice_element_pointers: false\n\n# Optional: turn on to omit getter methods on models\n# omit_getters: false\n\n# Optional: turn on to omit Is<Name>() methods to interface and unions\n# omit_interface_checks: true\n\n# Optional: turn on to skip generation of ComplexityRoot struct content and Complexity function\n# omit_complexity: false\n\n# Optional: turn on to not generate any file notice comments in generated files\n# omit_gqlgen_file_notice: false\n\n# Optional: turn on to exclude the gqlgen version in the generated file notice. No effect if `omit_gqlgen_file_notice` is true.\n# omit_gqlgen_version_in_file_notice: false\n\n# Optional: turn on to exclude root models such as Query and Mutation from the generated models file.\n# omit_root_models: false\n\n# Optional: turn on to exclude resolver fields from the generated models file.\n# omit_resolver_fields: false\n\n# Optional: turn on to omit panic handler in the generated server\n# omit_panic_handler: false\n\n# Optional: turn on to omit JSON marshaler/unmarshaler generation for enums\n# omit_enum_json_marshalers: false\n\n# Optional: turn off to make struct-type struct fields not use pointers\n# e.g. type Thing struct { FieldA OtherThing } instead of { FieldA *OtherThing }\n# struct_fields_always_pointers: true\n\n# Optional: turn off to make resolvers return values instead of pointers for structs\n# resolvers_always_return_pointers: true\n\n# Optional: turn on to return pointers instead of values in unmarshalInput\n# return_pointers_in_unmarshalinput: false\n\n# Optional: wrap nullable input fields with Omittable\n# nullable_input_omittable: true\n\n# Optional: enable adding omitempty to the json tag of generated model fields\n# enable_model_json_omitempty_tag: false\n\n# Optional: enable adding omitzero to the json tag of generated model fields\n# enable_model_json_omitzero_tag: false\n\n# Optional: set to speed up generation time by not performing a final validation pass.\n# skip_validation: true\n\n# Optional: set to skip running `go mod tidy` when generating server code\n# skip_mod_tidy: true\n\n# Optional: if this is set to true, argument directives that\n# decorate a field with a null value will still be called.\n#\n# This enables argumment directives to not just mutate\n# argument values but to set them even if they're null.\ncall_argument_directives_with_null: true\n\n# This enables gql server to use function syntax for execution context\n# instead of generating receiver methods of the execution context.\n# use_function_syntax_for_execution_context: true\n\n# Optional: set build tags that will be used to load packages\n# go_build_tags:\n#  - private\n#  - enterprise\n\n# Optional: set to modify the initialisms regarded for Go names\n# go_initialisms:\n#   replace_defaults: false # if true, the default initialisms will get dropped in favor of the new ones instead of being added\n#   initialisms: # List of initialisms to for Go names\n#     - 'CC'\n#     - 'BCC'\n\n# Optional: enable getter/haser methods for autobind\n# autobind_getter_haser: false\n\n# gqlgen will search for any type names in the schema in these go packages\n# if they match it will use them, otherwise it will generate them.\nautobind:\n#  - \"{{.}}/graph/model\"\n\n# This section declares type mapping between the GraphQL and go type systems\n#\n# The first line in each type will be used as defaults for resolver arguments and\n# modelgen, the others will be allowed when binding to fields. Configure them to\n# your liking\nmodels:\n  ID:\n    model:\n      - github.com/99designs/gqlgen/graphql.ID\n      - github.com/99designs/gqlgen/graphql.Int\n      - github.com/99designs/gqlgen/graphql.Int64\n      - github.com/99designs/gqlgen/graphql.Int32\n  # gqlgen provides a default GraphQL UUID convenience wrapper for github.com/google/uuid \n  # but you can override this to provide your own GraphQL UUID implementation\n  UUID:\n    model:\n      - github.com/99designs/gqlgen/graphql.UUID\n\n  # The GraphQL spec explicitly states that the Int type is a signed 32-bit\n  # integer. Using Go int or int64 to represent it can lead to unexpected\n  # behavior, and some GraphQL tools like Apollo Router will fail when\n  # communicating numbers that overflow 32-bits.\n  #\n  # You may choose to use the custom, built-in Int64 scalar to represent 64-bit\n  # integers, or ignore the spec and bind Int to graphql.Int / graphql.Int64\n  # (the default behavior of gqlgen). This is fine in simple use cases when you\n  # do not need to worry about interoperability and only expect small numbers.\n  Int:\n    model:\n      - github.com/99designs/gqlgen/graphql.Int32\n  Int64:\n    model:\n      - github.com/99designs/gqlgen/graphql.Int\n      - github.com/99designs/gqlgen/graphql.Int64\n"
  },
  {
    "path": "init-templates/schema.graphqls",
    "content": "# GraphQL schema example\n#\n# https://gqlgen.com/getting-started/\n\ntype Todo {\n  id: ID!\n  text: String!\n  done: Boolean!\n  user: User!\n}\n\ntype User {\n  id: ID!\n  name: String!\n}\n\ntype Query {\n  todos: [Todo!]!\n}\n\ninput NewTodo {\n  text: String!\n  userId: String!\n}\n\ntype Mutation {\n  createTodo(input: NewTodo!): Todo!\n}\n"
  },
  {
    "path": "integration/.gitignore",
    "content": "# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\npnpm-debug.log*\nlerna-debug.log*\n\nnode_modules\ndist\ndist-ssr\n*.local\n\n# Editor directories and files\n.vscode/*\n!.vscode/extensions.json\n.idea\n.DS_Store\n*.suo\n*.ntvs*\n*.njsproj\n*.sln\n*.sw?\n"
  },
  {
    "path": "integration/README.md",
    "content": "#  Integration tests\n\nThese tests run a gqlgen server against the apollo client to test real world connectivity.\n\nFirst start the go server\n```bash\ngo run server/cmd/integration/server.go\n```\n\nAnd in another terminal:\n```bash\ncd integration\nnpm ci\nnpm run test\n```\n"
  },
  {
    "path": "integration/codegen.ts",
    "content": "import type { CodegenConfig } from '@graphql-codegen/cli';\n\nconst config: CodegenConfig = {\n    overwrite: true,\n    schema: process.env.VITE_SERVER_URL ?? 'http://localhost:8080/query',\n    documents: 'src/**/*.graphql',\n    generates: {\n        'src/generated/': {\n            preset: 'client-preset'\n        },\n        'src/generated/schema-fetched.graphql': {\n            plugins: ['schema-ast'],\n        },\n        'src/generated/schema-introspection.json': {\n            plugins: ['introspection'],\n        }\n    },\n};\n\nexport default config;\n"
  },
  {
    "path": "integration/graphql.config.yml",
    "content": "name: Schema\nschema: src/generated/schema-expected.graphql\nextensions:\n  endpoints:\n    dev:\n      url: http://localhost:8080/query\n      introspect: true\n"
  },
  {
    "path": "integration/package.json",
    "content": "{\n    \"name\": \"integration\",\n    \"private\": true,\n    \"version\": \"0.0.0\",\n    \"type\": \"module\",\n    \"scripts\": {\n        \"test\": \"vitest\",\n        \"gen\": \"graphql-codegen --config codegen.ts\"\n    },\n    \"devDependencies\": {\n        \"@apollo/client\": \"^4.1.6\",\n        \"@graphql-codegen/cli\": \"^6.2.1\",\n        \"@graphql-codegen/client-preset\": \"^5.2.4\",\n        \"@graphql-codegen/introspection\": \"^5.0.1\",\n        \"@graphql-codegen/schema-ast\": \"^5.0.1\",\n        \"graphql\": \"^16.13.1\",\n        \"graphql-sse\": \"^2.6.0\",\n        \"graphql-ws\": \"^6.0.7\",\n        \"typescript\": \"^5.9.3\",\n        \"urql\": \"^5.0.1\",\n        \"vitest\": \"^4.0.18\"\n    }\n}\n"
  },
  {
    "path": "integration/server/cmd/integration/server.go",
    "content": "package main\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"log\"\n\t\"net/http\"\n\t\"os\"\n\t\"time\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\t\"github.com/vektah/gqlparser/v2/gqlerror\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/extension\"\n\t\"github.com/99designs/gqlgen/graphql/handler/lru\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/graphql/playground\"\n\t\"github.com/99designs/gqlgen/integration/server\"\n)\n\nconst defaultPort = \"8080\"\n\nfunc main() {\n\tport := os.Getenv(\"PORT\")\n\tif port == \"\" {\n\t\tport = defaultPort\n\t}\n\n\tcfg := server.Config{Resolvers: &server.Resolver{}}\n\tcfg.Complexity.Query.Complexity = func(childComplexity, value int) int {\n\t\t// Allow the integration client to dictate the complexity, to verify this\n\t\t// function is executed.\n\t\treturn value\n\t}\n\n\tsrv := handler.New(server.NewExecutableSchema(cfg))\n\n\tsrv.AddTransport(transport.Websocket{\n\t\tKeepAlivePingInterval: 10 * time.Second,\n\t})\n\tsrv.AddTransport(transport.SSE{})\n\tsrv.AddTransport(transport.Options{})\n\tsrv.AddTransport(transport.GET{})\n\tsrv.AddTransport(transport.POST{})\n\tsrv.AddTransport(transport.MultipartForm{})\n\n\tsrv.SetQueryCache(lru.New[*ast.QueryDocument](1000))\n\n\tsrv.Use(extension.Introspection{})\n\tsrv.Use(extension.AutomaticPersistedQuery{\n\t\tCache: lru.New[string](100),\n\t})\n\n\tsrv.SetErrorPresenter(func(ctx context.Context, e error) *gqlerror.Error {\n\t\tvar ie *server.CustomError\n\t\tif errors.As(e, &ie) {\n\t\t\treturn &gqlerror.Error{\n\t\t\t\tMessage: ie.UserMessage,\n\t\t\t\tPath:    graphql.GetPath(ctx),\n\t\t\t}\n\t\t}\n\t\treturn graphql.DefaultErrorPresenter(ctx, e)\n\t})\n\tsrv.Use(extension.FixedComplexityLimit(1000))\n\n\thttp.Handle(\"/\", playground.Handler(\"GraphQL playground\", \"/query\"))\n\thttp.Handle(\"/query\", srv)\n\n\tlog.Printf(\"connect to http://localhost:%s/ for GraphQL playground\", port)\n\tlog.Fatal(http.ListenAndServe(\":\"+port, nil))\n}\n"
  },
  {
    "path": "integration/server/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage server\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"embed\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\tmodels \"github.com/99designs/gqlgen/integration/server/models-go\"\n\t\"github.com/99designs/gqlgen/integration/server/remote_api\"\n\t\"github.com/99designs/gqlgen/integration/server/testomitempty\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n}\n\ntype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\ntype ResolverRoot interface {\n\tElement() ElementResolver\n\tQuery() QueryResolver\n\tUser() UserResolver\n}\n\ntype DirectiveRoot struct {\n\tMagic func(ctx context.Context, obj any, next graphql.Resolver, kind *int) (res any, err error)\n}\n\ntype ComplexityRoot struct {\n\tElement struct {\n\t\tChild      func(childComplexity int) int\n\t\tError      func(childComplexity int) int\n\t\tMismatched func(childComplexity int) int\n\t}\n\n\tQuery struct {\n\t\tCoercion     func(childComplexity int, value []*models.ListCoercion) int\n\t\tComplexity   func(childComplexity int, value int) int\n\t\tDate         func(childComplexity int, filter models.DateFilter) int\n\t\tError        func(childComplexity int, typeArg *models.ErrorType) int\n\t\tJSONEncoding func(childComplexity int) int\n\t\tPath         func(childComplexity int) int\n\t\tViewer       func(childComplexity int) int\n\t}\n\n\tRemoteModelWithOmitempty struct {\n\t\tDescription func(childComplexity int) int\n\t}\n\n\tUser struct {\n\t\tLikes       func(childComplexity int) int\n\t\tName        func(childComplexity int) int\n\t\tPhoneNumber func(childComplexity int) int\n\t\tQuery       func(childComplexity int) int\n\t}\n\n\tViewer struct {\n\t\tUser func(childComplexity int) int\n\t}\n}\n\ntype ElementResolver interface {\n\tChild(ctx context.Context, obj *models.Element) (*models.Element, error)\n\tError(ctx context.Context, obj *models.Element) (bool, error)\n\tMismatched(ctx context.Context, obj *models.Element) ([]bool, error)\n}\ntype QueryResolver interface {\n\tPath(ctx context.Context) ([]*models.Element, error)\n\tDate(ctx context.Context, filter models.DateFilter) (bool, error)\n\tViewer(ctx context.Context) (*models.Viewer, error)\n\tJSONEncoding(ctx context.Context) (string, error)\n\tError(ctx context.Context, typeArg *models.ErrorType) (bool, error)\n\tComplexity(ctx context.Context, value int) (bool, error)\n\tCoercion(ctx context.Context, value []*models.ListCoercion) (bool, error)\n}\ntype UserResolver interface {\n\tLikes(ctx context.Context, obj *remote_api.User) ([]string, error)\n}\n\ntype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.SchemaData != nil {\n\t\treturn e.SchemaData\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := newExecutionContext(nil, e, nil)\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"Element.child\":\n\t\tif e.ComplexityRoot.Element.Child == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Element.Child(childComplexity), true\n\tcase \"Element.error\":\n\t\tif e.ComplexityRoot.Element.Error == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Element.Error(childComplexity), true\n\tcase \"Element.mismatched\":\n\t\tif e.ComplexityRoot.Element.Mismatched == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Element.Mismatched(childComplexity), true\n\n\tcase \"Query.coercion\":\n\t\tif e.ComplexityRoot.Query.Coercion == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_coercion_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Coercion(childComplexity, args[\"value\"].([]*models.ListCoercion)), true\n\tcase \"Query.complexity\":\n\t\tif e.ComplexityRoot.Query.Complexity == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_complexity_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Complexity(childComplexity, args[\"value\"].(int)), true\n\tcase \"Query.date\":\n\t\tif e.ComplexityRoot.Query.Date == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_date_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Date(childComplexity, args[\"filter\"].(models.DateFilter)), true\n\tcase \"Query.error\":\n\t\tif e.ComplexityRoot.Query.Error == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_error_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Error(childComplexity, args[\"type\"].(*models.ErrorType)), true\n\n\tcase \"Query.jsonEncoding\":\n\t\tif e.ComplexityRoot.Query.JSONEncoding == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.JSONEncoding(childComplexity), true\n\tcase \"Query.path\":\n\t\tif e.ComplexityRoot.Query.Path == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Path(childComplexity), true\n\tcase \"Query.viewer\":\n\t\tif e.ComplexityRoot.Query.Viewer == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.Viewer(childComplexity), true\n\n\tcase \"RemoteModelWithOmitempty.newDesc\":\n\t\tif e.ComplexityRoot.RemoteModelWithOmitempty.Description == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.RemoteModelWithOmitempty.Description(childComplexity), true\n\n\tcase \"User.likes\":\n\t\tif e.ComplexityRoot.User.Likes == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.Likes(childComplexity), true\n\tcase \"User.name\":\n\t\tif e.ComplexityRoot.User.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.Name(childComplexity), true\n\tcase \"User.phoneNumber\":\n\t\tif e.ComplexityRoot.User.PhoneNumber == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.PhoneNumber(childComplexity), true\n\tcase \"User.query\":\n\t\tif e.ComplexityRoot.User.Query == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.User.Query(childComplexity), true\n\n\tcase \"Viewer.user\":\n\t\tif e.ComplexityRoot.Viewer.User == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Viewer.User(childComplexity), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap(\n\t\tec.unmarshalInputDateFilter,\n\t\tec.unmarshalInputListCoercion,\n\t)\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\n//go:embed \"schema/schema.graphql\" \"schema/testomitempty.graphql\" \"schema/user.graphql\"\nvar sourcesFS embed.FS\n\nfunc sourceData(filename string) string {\n\tdata, err := sourcesFS.ReadFile(filename)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"codegen problem: %s not available\", filename))\n\t}\n\treturn string(data)\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"schema/schema.graphql\", Input: sourceData(\"schema/schema.graphql\"), BuiltIn: false},\n\t{Name: \"schema/testomitempty.graphql\", Input: sourceData(\"schema/testomitempty.graphql\"), BuiltIn: false},\n\t{Name: \"schema/user.graphql\", Input: sourceData(\"schema/user.graphql\"), BuiltIn: false},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) dir_magic_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"kind\", ec.unmarshalOInt2ᚖint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"kind\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_coercion_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"value\", ec.unmarshalOListCoercion2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋintegrationᚋserverᚋmodelsᚑgoᚐListCoercionᚄ)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"value\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_complexity_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"value\", ec.unmarshalNInt2int)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"value\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_date_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"filter\", ec.unmarshalNDateFilter2githubᚗcomᚋ99designsᚋgqlgenᚋintegrationᚋserverᚋmodelsᚑgoᚐDateFilter)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"filter\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_error_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"type\", ec.unmarshalOErrorType2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋintegrationᚋserverᚋmodelsᚑgoᚐErrorType)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"type\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Element_child(ctx context.Context, field graphql.CollectedField, obj *models.Element) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Element_child,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Element().Child(ctx, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalNElement2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋintegrationᚋserverᚋmodelsᚑgoᚐElement,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Element_child(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Element\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"child\":\n\t\t\t\treturn ec.fieldContext_Element_child(ctx, field)\n\t\t\tcase \"error\":\n\t\t\t\treturn ec.fieldContext_Element_error(ctx, field)\n\t\t\tcase \"mismatched\":\n\t\t\t\treturn ec.fieldContext_Element_mismatched(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Element\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Element_error(ctx context.Context, field graphql.CollectedField, obj *models.Element) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Element_error,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Element().Error(ctx, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Element_error(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Element\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Element_mismatched(ctx context.Context, field graphql.CollectedField, obj *models.Element) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Element_mismatched,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Element().Mismatched(ctx, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalOBoolean2ᚕboolᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Element_mismatched(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Element\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_path(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_path,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Path(ctx)\n\t\t},\n\t\tnil,\n\t\tec.marshalOElement2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋintegrationᚋserverᚋmodelsᚑgoᚐElement,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_path(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"child\":\n\t\t\t\treturn ec.fieldContext_Element_child(ctx, field)\n\t\t\tcase \"error\":\n\t\t\t\treturn ec.fieldContext_Element_error(ctx, field)\n\t\t\tcase \"mismatched\":\n\t\t\t\treturn ec.fieldContext_Element_mismatched(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Element\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_date(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_date,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().Date(ctx, fc.Args[\"filter\"].(models.DateFilter))\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_date(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_date_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_viewer(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_viewer,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Viewer(ctx)\n\t\t},\n\t\tnil,\n\t\tec.marshalOViewer2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋintegrationᚋserverᚋmodelsᚑgoᚐViewer,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_viewer(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"user\":\n\t\t\t\treturn ec.fieldContext_Viewer_user(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Viewer\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_jsonEncoding(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_jsonEncoding,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().JSONEncoding(ctx)\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_jsonEncoding(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_error(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_error,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().Error(ctx, fc.Args[\"type\"].(*models.ErrorType))\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_error(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_error_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_complexity(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_complexity,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().Complexity(ctx, fc.Args[\"value\"].(int))\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_complexity(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_complexity_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_coercion(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_coercion,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().Coercion(ctx, fc.Args[\"value\"].([]*models.ListCoercion))\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_coercion(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_coercion_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.IntrospectType(fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___schema,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.IntrospectSchema()\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _RemoteModelWithOmitempty_newDesc(ctx context.Context, field graphql.CollectedField, obj *testomitempty.RemoteModelWithOmitempty) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_RemoteModelWithOmitempty_newDesc,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2string,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_RemoteModelWithOmitempty_newDesc(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"RemoteModelWithOmitempty\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_name(ctx context.Context, field graphql.CollectedField, obj *remote_api.User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_likes(ctx context.Context, field graphql.CollectedField, obj *remote_api.User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_likes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.User().Likes(ctx, obj)\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_likes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_phoneNumber(ctx context.Context, field graphql.CollectedField, obj *remote_api.User) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_User_phoneNumber,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PhoneNumber, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2string,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_User_phoneNumber(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_query(ctx context.Context, field graphql.CollectedField, obj *remote_api.User) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_User_query(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tres := models.Query{}\n\tfc.Result = res\n\treturn ec.marshalNQuery2githubᚗcomᚋ99designsᚋgqlgenᚋintegrationᚋserverᚋmodelsᚑgoᚐQuery(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_User_query(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"path\":\n\t\t\t\treturn ec.fieldContext_Query_path(ctx, field)\n\t\t\tcase \"date\":\n\t\t\t\treturn ec.fieldContext_Query_date(ctx, field)\n\t\t\tcase \"viewer\":\n\t\t\t\treturn ec.fieldContext_Query_viewer(ctx, field)\n\t\t\tcase \"jsonEncoding\":\n\t\t\t\treturn ec.fieldContext_Query_jsonEncoding(ctx, field)\n\t\t\tcase \"error\":\n\t\t\t\treturn ec.fieldContext_Query_error(ctx, field)\n\t\t\tcase \"complexity\":\n\t\t\t\treturn ec.fieldContext_Query_complexity(ctx, field)\n\t\t\tcase \"coercion\":\n\t\t\t\treturn ec.fieldContext_Query_coercion(ctx, field)\n\t\t\tcase \"__schema\":\n\t\t\t\treturn ec.fieldContext_Query___schema(ctx, field)\n\t\t\tcase \"__type\":\n\t\t\t\treturn ec.fieldContext_Query___type(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Query\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Viewer_user(ctx context.Context, field graphql.CollectedField, obj *models.Viewer) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Viewer_user,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.User, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋintegrationᚋserverᚋremote_apiᚐUser,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Viewer_user(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Viewer\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_User_name(ctx, field)\n\t\t\tcase \"likes\":\n\t\t\t\treturn ec.fieldContext_User_likes(ctx, field)\n\t\t\tcase \"phoneNumber\":\n\t\t\t\treturn ec.fieldContext_User_phoneNumber(ctx, field)\n\t\t\tcase \"query\":\n\t\t\t\treturn ec.fieldContext_User_query(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type User\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_isRepeatable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsRepeatable, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_locations,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Locations, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__DirectiveLocation2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_defaultValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DefaultValue, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_types,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Types(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_queryType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.QueryType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_mutationType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.MutationType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_subscriptionType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SubscriptionType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_directives,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Directives(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_kind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Kind(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__TypeKind2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_specifiedByURL,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SpecifiedByURL(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_fields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_interfaces,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Interfaces(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_possibleTypes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PossibleTypes(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_enumValues,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_inputFields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.InputFields(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_ofType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.OfType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_isOneOf,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsOneOf(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOBoolean2bool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalInputDateFilter(ctx context.Context, obj any) (models.DateFilter, error) {\n\tvar it models.DateFilter\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tif _, present := asMap[\"timezone\"]; !present {\n\t\tasMap[\"timezone\"] = \"UTC\"\n\t}\n\tif _, present := asMap[\"op\"]; !present {\n\t\tasMap[\"op\"] = \"EQ\"\n\t}\n\n\tfieldsInOrder := [...]string{\"value\", \"timezone\", \"op\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"value\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"value\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Value = data\n\t\tcase \"timezone\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"timezone\"))\n\t\t\tdata, err := ec.unmarshalOString2ᚖstring(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Timezone = data\n\t\tcase \"op\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"op\"))\n\t\t\tdata, err := ec.unmarshalODATE_FILTER_OP2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋintegrationᚋserverᚋmodelsᚑgoᚐDateFilterOp(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Op = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputListCoercion(ctx context.Context, obj any) (models.ListCoercion, error) {\n\tvar it models.ListCoercion\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"enumVal\", \"strVal\", \"intVal\", \"scalarVal\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"enumVal\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"enumVal\"))\n\t\t\tdata, err := ec.unmarshalOErrorType2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋintegrationᚋserverᚋmodelsᚑgoᚐErrorType(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.EnumVal = data\n\t\tcase \"strVal\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"strVal\"))\n\t\t\tdata, err := ec.unmarshalOString2ᚕᚖstring(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.StrVal = data\n\t\tcase \"intVal\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"intVal\"))\n\t\t\tdata, err := ec.unmarshalOInt2ᚕᚖint(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.IntVal = data\n\t\tcase \"scalarVal\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"scalarVal\"))\n\t\t\tdata, err := ec.unmarshalOMap2ᚕmap(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.ScalarVal = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar elementImplementors = []string{\"Element\"}\n\nfunc (ec *executionContext) _Element(ctx context.Context, sel ast.SelectionSet, obj *models.Element) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, elementImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Element\")\n\t\tcase \"child\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Element_child(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"error\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Element_error(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"mismatched\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Element_mismatched(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"path\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_path(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"date\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_date(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"viewer\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_viewer(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"jsonEncoding\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_jsonEncoding(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"error\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_error(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"complexity\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_complexity(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"coercion\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_coercion(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar remoteModelWithOmitemptyImplementors = []string{\"RemoteModelWithOmitempty\"}\n\nfunc (ec *executionContext) _RemoteModelWithOmitempty(ctx context.Context, sel ast.SelectionSet, obj *testomitempty.RemoteModelWithOmitempty) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, remoteModelWithOmitemptyImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"RemoteModelWithOmitempty\")\n\t\tcase \"newDesc\":\n\t\t\tout.Values[i] = ec._RemoteModelWithOmitempty_newDesc(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar userImplementors = []string{\"User\"}\n\nfunc (ec *executionContext) _User(ctx context.Context, sel ast.SelectionSet, obj *remote_api.User) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, userImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"User\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._User_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"likes\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._User_likes(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"phoneNumber\":\n\t\t\tout.Values[i] = ec._User_phoneNumber(ctx, field, obj)\n\t\tcase \"query\":\n\t\t\tout.Values[i] = ec._User_query(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar viewerImplementors = []string{\"Viewer\"}\n\nfunc (ec *executionContext) _Viewer(ctx context.Context, sel ast.SelectionSet, obj *models.Viewer) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, viewerImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Viewer\")\n\t\tcase \"user\":\n\t\t\tout.Values[i] = ec._Viewer_user(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNDateFilter2githubᚗcomᚋ99designsᚋgqlgenᚋintegrationᚋserverᚋmodelsᚑgoᚐDateFilter(ctx context.Context, v any) (models.DateFilter, error) {\n\tres, err := ec.unmarshalInputDateFilter(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNElement2githubᚗcomᚋ99designsᚋgqlgenᚋintegrationᚋserverᚋmodelsᚑgoᚐElement(ctx context.Context, sel ast.SelectionSet, v models.Element) graphql.Marshaler {\n\treturn ec._Element(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNElement2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋintegrationᚋserverᚋmodelsᚑgoᚐElement(ctx context.Context, sel ast.SelectionSet, v *models.Element) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Element(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNInt2int(ctx context.Context, v any) (int, error) {\n\tres, err := graphql.UnmarshalInt(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNInt2int(ctx context.Context, sel ast.SelectionSet, v int) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalInt(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNListCoercion2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋintegrationᚋserverᚋmodelsᚑgoᚐListCoercion(ctx context.Context, v any) (*models.ListCoercion, error) {\n\tres, err := ec.unmarshalInputListCoercion(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNQuery2githubᚗcomᚋ99designsᚋgqlgenᚋintegrationᚋserverᚋmodelsᚑgoᚐQuery(ctx context.Context, sel ast.SelectionSet, v models.Query) graphql.Marshaler {\n\treturn ec._Query(ctx, sel)\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNString2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNString2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalNString2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNString2string(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚕboolᚄ(ctx context.Context, v any) ([]bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]bool, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNBoolean2bool(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚕboolᚄ(ctx context.Context, sel ast.SelectionSet, v []bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNBoolean2bool(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalODATE_FILTER_OP2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋintegrationᚋserverᚋmodelsᚑgoᚐDateFilterOp(ctx context.Context, v any) (*models.DateFilterOp, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar res = new(models.DateFilterOp)\n\terr := res.UnmarshalGQL(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalODATE_FILTER_OP2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋintegrationᚋserverᚋmodelsᚑgoᚐDateFilterOp(ctx context.Context, sel ast.SelectionSet, v *models.DateFilterOp) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn v\n}\n\nfunc (ec *executionContext) marshalOElement2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋintegrationᚋserverᚋmodelsᚑgoᚐElement(ctx context.Context, sel ast.SelectionSet, v []*models.Element) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalOElement2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋintegrationᚋserverᚋmodelsᚑgoᚐElement(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOElement2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋintegrationᚋserverᚋmodelsᚑgoᚐElement(ctx context.Context, sel ast.SelectionSet, v *models.Element) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Element(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOErrorType2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋintegrationᚋserverᚋmodelsᚑgoᚐErrorType(ctx context.Context, v any) ([]*models.ErrorType, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]*models.ErrorType, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalOErrorType2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋintegrationᚋserverᚋmodelsᚑgoᚐErrorType(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalOErrorType2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋintegrationᚋserverᚋmodelsᚑgoᚐErrorType(ctx context.Context, sel ast.SelectionSet, v []*models.ErrorType) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalOErrorType2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋintegrationᚋserverᚋmodelsᚑgoᚐErrorType(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalOErrorType2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋintegrationᚋserverᚋmodelsᚑgoᚐErrorType(ctx context.Context, v any) (*models.ErrorType, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar res = new(models.ErrorType)\n\terr := res.UnmarshalGQL(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOErrorType2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋintegrationᚋserverᚋmodelsᚑgoᚐErrorType(ctx context.Context, sel ast.SelectionSet, v *models.ErrorType) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn v\n}\n\nfunc (ec *executionContext) unmarshalOInt2ᚕᚖint(ctx context.Context, v any) ([]*int, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]*int, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalOInt2ᚖint(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalOInt2ᚕᚖint(ctx context.Context, sel ast.SelectionSet, v []*int) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalOInt2ᚖint(ctx, sel, v[i])\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalOInt2ᚖint(ctx context.Context, v any) (*int, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalInt(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOInt2ᚖint(ctx context.Context, sel ast.SelectionSet, v *int) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalInt(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOListCoercion2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋintegrationᚋserverᚋmodelsᚑgoᚐListCoercionᚄ(ctx context.Context, v any) ([]*models.ListCoercion, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]*models.ListCoercion, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNListCoercion2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋintegrationᚋserverᚋmodelsᚑgoᚐListCoercion(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) unmarshalOMap2map(ctx context.Context, v any) (map[string]any, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalMap(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOMap2map(ctx context.Context, sel ast.SelectionSet, v map[string]any) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalMap(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOMap2ᚕmap(ctx context.Context, v any) ([]map[string]any, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]map[string]any, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalOMap2map(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalOMap2ᚕmap(ctx context.Context, sel ast.SelectionSet, v []map[string]any) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalOMap2map(ctx, sel, v[i])\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalOString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚕᚖstring(ctx context.Context, v any) ([]*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]*string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalOString2ᚖstring(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalOString2ᚕᚖstring(ctx context.Context, sel ast.SelectionSet, v []*string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalOString2ᚖstring(ctx, sel, v[i])\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalOUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋintegrationᚋserverᚋremote_apiᚐUser(ctx context.Context, sel ast.SelectionSet, v *remote_api.User) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._User(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOViewer2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋintegrationᚋserverᚋmodelsᚑgoᚐViewer(ctx context.Context, sel ast.SelectionSet, v *models.Viewer) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Viewer(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "integration/server/gqlgen.yml",
    "content": "schema:\n  - schema/**/*.graphql\n\nexec:\n  filename: generated.go\nmodel:\n  filename: models-go/generated.go\n\nstruct_tag: json\n\nautobind:\n  - \"github.com/99designs/gqlgen/integration/server/testomitempty\"\n\nmodels:\n  Element:\n    model: github.com/99designs/gqlgen/integration/server/models-go.Element\n  Viewer:\n    model: github.com/99designs/gqlgen/integration/server/models-go.Viewer\n  User:\n    model: github.com/99designs/gqlgen/integration/server/remote_api.User\n    fields:\n      likes:\n        resolver: true\n"
  },
  {
    "path": "integration/server/models-go/element.go",
    "content": "package models\n\ntype Element struct {\n\tID int\n}\n\nfunc (e *Element) Mismatched() []Element {\n\treturn []Element{*e}\n}\n"
  },
  {
    "path": "integration/server/models-go/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage models\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n)\n\ntype DateFilter struct {\n\tValue    string        `json:\"value\"`\n\tTimezone *string       `json:\"timezone,omitempty\"`\n\tOp       *DateFilterOp `json:\"op,omitempty\"`\n}\n\ntype ListCoercion struct {\n\tEnumVal   []*ErrorType     `json:\"enumVal,omitempty\"`\n\tStrVal    []*string        `json:\"strVal,omitempty\"`\n\tIntVal    []*int           `json:\"intVal,omitempty\"`\n\tScalarVal []map[string]any `json:\"scalarVal,omitempty\"`\n}\n\ntype Query struct {\n}\n\ntype DateFilterOp string\n\nconst (\n\tDateFilterOpEq  DateFilterOp = \"EQ\"\n\tDateFilterOpNeq DateFilterOp = \"NEQ\"\n\tDateFilterOpGt  DateFilterOp = \"GT\"\n\tDateFilterOpGte DateFilterOp = \"GTE\"\n\tDateFilterOpLt  DateFilterOp = \"LT\"\n\tDateFilterOpLte DateFilterOp = \"LTE\"\n)\n\nvar AllDateFilterOp = []DateFilterOp{\n\tDateFilterOpEq,\n\tDateFilterOpNeq,\n\tDateFilterOpGt,\n\tDateFilterOpGte,\n\tDateFilterOpLt,\n\tDateFilterOpLte,\n}\n\nfunc (e DateFilterOp) IsValid() bool {\n\tswitch e {\n\tcase DateFilterOpEq, DateFilterOpNeq, DateFilterOpGt, DateFilterOpGte, DateFilterOpLt, DateFilterOpLte:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e DateFilterOp) String() string {\n\treturn string(e)\n}\n\nfunc (e *DateFilterOp) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = DateFilterOp(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid DATE_FILTER_OP\", str)\n\t}\n\treturn nil\n}\n\nfunc (e DateFilterOp) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *DateFilterOp) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e DateFilterOp) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n\ntype ErrorType string\n\nconst (\n\tErrorTypeCustom ErrorType = \"CUSTOM\"\n\tErrorTypeNormal ErrorType = \"NORMAL\"\n)\n\nvar AllErrorType = []ErrorType{\n\tErrorTypeCustom,\n\tErrorTypeNormal,\n}\n\nfunc (e ErrorType) IsValid() bool {\n\tswitch e {\n\tcase ErrorTypeCustom, ErrorTypeNormal:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e ErrorType) String() string {\n\treturn string(e)\n}\n\nfunc (e *ErrorType) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = ErrorType(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid ErrorType\", str)\n\t}\n\treturn nil\n}\n\nfunc (e ErrorType) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *ErrorType) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e ErrorType) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n"
  },
  {
    "path": "integration/server/models-go/viewer.go",
    "content": "package models\n\nimport \"github.com/99designs/gqlgen/integration/server/remote_api\"\n\ntype Viewer struct {\n\tUser *remote_api.User\n}\n"
  },
  {
    "path": "integration/server/remote_api/user.go",
    "content": "package remote_api\n\ntype User struct {\n\tName        string\n\tLikes       []string\n\tPhoneNumber string\n}\n"
  },
  {
    "path": "integration/server/resolver.go",
    "content": "//go:generate go run ../../testdata/gqlgen.go\n\npackage server\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"time\"\n\n\tmodels \"github.com/99designs/gqlgen/integration/server/models-go\"\n\t\"github.com/99designs/gqlgen/integration/server/remote_api\"\n)\n\ntype CustomError struct {\n\tUserMessage   string\n\tInternalError string\n}\n\nfunc (e *CustomError) Error() string {\n\treturn e.InternalError\n}\n\ntype Resolver struct{}\n\nfunc (r *Resolver) User() UserResolver {\n\treturn &userResolver{r}\n}\n\nfunc (r *Resolver) Element() ElementResolver {\n\treturn &elementResolver{r}\n}\n\nfunc (r *Resolver) Query() QueryResolver {\n\treturn &queryResolver{r}\n}\n\ntype elementResolver struct{ *Resolver }\n\nfunc (r *elementResolver) Error(ctx context.Context, obj *models.Element) (bool, error) {\n\t// A silly hack to make the result order stable\n\ttime.Sleep(time.Duration(obj.ID) * 10 * time.Millisecond)\n\n\treturn false, errors.New(\"boom\")\n}\n\nfunc (r *elementResolver) Mismatched(ctx context.Context, obj *models.Element) ([]bool, error) {\n\treturn []bool{true}, nil\n}\n\nfunc (r *elementResolver) Child(ctx context.Context, obj *models.Element) (*models.Element, error) {\n\treturn &models.Element{ID: obj.ID * 10}, nil\n}\n\ntype queryResolver struct{ *Resolver }\n\nfunc (r *queryResolver) Error(ctx context.Context, typeArg *models.ErrorType) (bool, error) {\n\tif *typeArg == models.ErrorTypeCustom {\n\t\treturn false, &CustomError{\"User message\", \"Internal Message\"}\n\t}\n\n\treturn false, errors.New(\"normal error\")\n}\n\nfunc (r *queryResolver) Path(ctx context.Context) ([]*models.Element, error) {\n\treturn []*models.Element{{ID: 1}, {ID: 2}, {ID: 3}, {ID: 4}}, nil\n}\n\nfunc (r *queryResolver) Coercion(ctx context.Context, input []*models.ListCoercion) (bool, error) {\n\treturn true, nil\n}\n\nfunc (r *queryResolver) Date(ctx context.Context, filter models.DateFilter) (bool, error) {\n\tif filter.Value != \"asdf\" {\n\t\treturn false, errors.New(\"value must be asdf\")\n\t}\n\n\tif *filter.Timezone != \"UTC\" {\n\t\treturn false, errors.New(\"timezone must be utc\")\n\t}\n\n\tif *filter.Op != models.DateFilterOpEq {\n\t\treturn false, fmt.Errorf(\"unknown op %s\", *filter.Op)\n\t}\n\n\treturn true, nil\n}\n\nfunc (r *queryResolver) Viewer(ctx context.Context) (*models.Viewer, error) {\n\treturn &models.Viewer{\n\t\tUser: &remote_api.User{Name: \"Bob\", Likes: []string{\"Alice\"}, PhoneNumber: \"1234567890\"},\n\t}, nil\n}\n\nfunc (r *queryResolver) JSONEncoding(ctx context.Context) (string, error) {\n\treturn \"\\U000fe4ed\", nil\n}\n\nfunc (r *queryResolver) Complexity(ctx context.Context, value int) (bool, error) {\n\treturn true, nil\n}\n\ntype userResolver struct{ *Resolver }\n\nfunc (r *userResolver) Likes(ctx context.Context, obj *remote_api.User) ([]string, error) {\n\treturn obj.Likes, nil\n}\n"
  },
  {
    "path": "integration/server/schema/schema.graphql",
    "content": "\"This directive does magical things\"\ndirective @magic(kind: Int) on FIELD_DEFINITION\n\nscalar Map\n\ntype Element {\n    child: Element!\n    error: Boolean!\n    mismatched: [Boolean!]\n}\n\nenum DATE_FILTER_OP {\n    # multi\n    # line\n    # comment\n    EQ\n    NEQ\n    GT\n    GTE\n    LT\n    LTE\n}\n\ninput DateFilter {\n    value: String!\n    timezone: String = \"UTC\"\n    op: DATE_FILTER_OP = EQ\n}\n\ntype Viewer {\n    user: User\n}\n\ninput ListCoercion {\n    enumVal: [ErrorType]\n    strVal: [String]\n    intVal: [Int]\n    scalarVal: [Map]\n}\n\ntype Query {\n    path: [Element]\n    date(filter: DateFilter!): Boolean!\n    viewer: Viewer\n    jsonEncoding: String!\n    error(type: ErrorType = NORMAL): Boolean!\n    complexity(value: Int!): Boolean!\n    coercion(value: [ListCoercion!]): Boolean!\n}\n\nenum ErrorType {\n    CUSTOM\n    NORMAL\n}\n\n# this is a comment with a `backtick`\n"
  },
  {
    "path": "integration/server/schema/testomitempty.graphql",
    "content": "type RemoteModelWithOmitempty {\n    newDesc: String\n}\n"
  },
  {
    "path": "integration/server/schema/user.graphql",
    "content": "type User {\n    name: String!\n    likes: [String!]!\n    phoneNumber: String @deprecated\n    query: Query!\n}\n"
  },
  {
    "path": "integration/server/testomitempty/testmodel.go",
    "content": "package testomitempty\n\ntype RemoteModelWithOmitempty struct {\n\tDescription string `json:\"newDesc,omitempty\"`\n}\n"
  },
  {
    "path": "integration/src/__test__/integration.spec.ts",
    "content": "import {afterAll, describe, expect, it} from \"vitest\";\n\nimport {\n    ApolloClient,\n    ApolloLink,\n    CombinedGraphQLErrors,\n    HttpLink,\n    InMemoryCache,\n    Observable,\n} from '@apollo/client/core';\n\nimport {print} from \"graphql\";\nimport {GraphQLWsLink} from \"@apollo/client/link/subscriptions\";\nimport {WebSocket} from \"ws\";\nimport {createClient as createClientWS} from \"graphql-ws\";\nimport {\n    Client as ClientSSE,\n    ClientOptions as ClientOptionsSSE,\n    createClient as createClientSSE,\n} from \"graphql-sse\";\nimport {\n    CoercionDocument,\n    ComplexityDocument,\n    DateDocument,\n    ErrorDocument,\n    ErrorType,\n    JsonEncodingDocument,\n    PathDocument,\n    UserFragmentFragmentDoc,\n    ViewerDocument,\n} from \"../generated/graphql.ts\";\nimport {\n    cacheExchange,\n    Client,\n    subscriptionExchange,\n} from \"urql\";\nimport {isFragmentReady, useFragment} from \"../generated\";\nimport {readFileSync} from \"node:fs\";\nimport {join} from \"node:path\";\n\nconst uri = process.env.VITE_SERVER_URL || \"http://localhost:8080/query\";\n\nfunction test(client: ApolloClient) {\n    describe(\"Json\", () => {\n        it(\"should follow json escaping rules\", async () => {\n            const res = await client.query({\n                query: JsonEncodingDocument,\n            });\n\n            expect(res.data?.jsonEncoding).toBe(\"󾓭\");\n            expect(res.error).toBeUndefined();\n\n            return null;\n        });\n    });\n\n    describe(\"Input defaults\", () => {\n        it(\"should pass default values to resolver\", async () => {\n            const res = await client.query({\n                query: DateDocument,\n                variables: {\n                    filter: {\n                        value: \"asdf\",\n                    },\n                },\n            });\n\n            expect(res.data?.date).toBeTruthy();\n            expect(res.error).toBeUndefined();\n            return null;\n        });\n    });\n\n    describe(\"Complexity\", () => {\n        it(\"should fail when complexity is too high\", async () => {\n            const res = await client.query({\n                query: ComplexityDocument,\n                variables: {\n                    value: 2000,\n                },\n            });\n\n            expect(res.error).toBeDefined();\n            expect(res.error?.message).toBe(\n            \"operation has complexity 2000, which exceeds the limit of 1000\"\n            );\n            return null;\n        });\n\n        it(\"should succeed when complexity is not too high\", async () => {\n            const res = await client.query({\n                query: ComplexityDocument,\n                variables: {\n                    value: 1000,\n                },\n            });\n\n            expect(res.data?.complexity).toBeTruthy();\n            expect(res.error).toBeUndefined();\n            return null;\n        });\n    });\n\n    describe(\"List Coercion\", () => {\n        it(\"should succeed when nested single values are passed\", async () => {\n            const res = await client.query({\n                query: CoercionDocument,\n                variables: {\n                    value: {\n                        enumVal: ErrorType.Custom,\n                        strVal: \"test\",\n                        intVal: 1,\n                    },\n                },\n            });\n\n            expect(res.data?.coercion).toBeTruthy();\n            return null;\n        });\n\n        it(\"should succeed when nested array of values are passed\", async () => {\n            const res = await client.query({\n                query: CoercionDocument,\n                variables: {\n                    value: {\n                        enumVal: [ErrorType.Custom],\n                        strVal: [\"test\"],\n                        intVal: [1],\n                    },\n                },\n            });\n\n            expect(res.data?.coercion).toBeTruthy();\n            return null;\n        });\n\n        it(\"should succeed when single value is passed\", async () => {\n            const res = await client.query({\n                query: CoercionDocument,\n                variables: {\n                    value: {\n                        enumVal: ErrorType.Custom,\n                    },\n                },\n            });\n\n            expect(res.data?.coercion).toBeTruthy();\n            return null;\n        });\n\n        it(\"should succeed when single scalar value is passed\", async () => {\n            const res = await client.query({\n                query: CoercionDocument,\n                variables: {\n                    value: [\n                        {\n                            scalarVal: {\n                                key: \"someValue\",\n                            },\n                        },\n                    ],\n                },\n            });\n\n            expect(res.data?.coercion).toBeTruthy();\n            return null;\n        });\n\n        it(\"should succeed when multiple values are passed\", async () => {\n            const res = await client.query({\n                query: CoercionDocument,\n                variables: {\n                    value: [\n                        {\n                            enumVal: [ErrorType.Custom, ErrorType.Normal],\n                        },\n                    ],\n                },\n            });\n\n            expect(res.data?.coercion).toBeTruthy();\n            return null;\n        });\n    });\n\n    describe(\"Errors\", () => {\n        it(\"should respond with correct paths\", async () => {\n            const res = await client.query({\n                query: PathDocument,\n            });\n\n            expect(res.error).toBeDefined();\n            expect(CombinedGraphQLErrors.is(res.error)).toBeTruthy()\n            if (res.error instanceof CombinedGraphQLErrors) {\n                expect(res.error.errors[0].path).toEqual([\"path\", 0, \"cc\", \"error\"]);\n                expect(res.error.errors[1].path).toEqual([\"path\", 1, \"cc\", \"error\"]);\n                expect(res.error.errors[2].path).toEqual([\"path\", 2, \"cc\", \"error\"]);\n                expect(res.error.errors[3].path).toEqual([\"path\", 3, \"cc\", \"error\"]);\n            }\n\n            return null;\n        });\n\n        it(\"should use the error presenter for custom errors\", async () => {\n            let res = await client.query({\n                query: ErrorDocument,\n                variables: {\n                    type: ErrorType.Custom,\n                },\n            });\n\n            expect(res.error).toBeDefined();\n            expect(res.error?.message).toEqual(\"User message\");\n            return null;\n        });\n\n        it(\"should pass through for other errors\", async () => {\n            const res = await client.query({\n                query: ErrorDocument,\n                variables: {\n                    type: ErrorType.Normal,\n                },\n            });\n\n            expect(res.error).toBeDefined();\n            expect(res.error?.message).toEqual(\"normal error\");\n            return null;\n        });\n    });\n}\n\ndescribe(\"HTTP client\", () => {\n    const client = new ApolloClient({\n        link: new HttpLink({uri}),\n        cache: new InMemoryCache(),\n        defaultOptions: {\n            watchQuery: {\n                fetchPolicy: \"network-only\",\n                errorPolicy: \"ignore\",\n            },\n            query: {\n                fetchPolicy: \"network-only\",\n                errorPolicy: \"all\",\n            },\n        },\n    });\n\n    test(client);\n\n    afterAll(() => {\n        client.stop();\n    });\n});\n\ndescribe(\"Schema Introspection\", () => {\n    const schemaJson = readFileSync(\n        join(__dirname, \"../generated/schema-introspection.json\"),\n        \"utf-8\"\n    );\n    const schema = JSON.parse(schemaJson);\n\n    it(\"User.phoneNumber is deprecated and deprecationReason has the default value: `No longer supported`\", async () => {\n        const userType = schema.__schema.types.find(\n            (type: any) => type.name === \"User\"\n        );\n\n        expect(userType).toBeDefined();\n\n        const phoneNumberField = userType.fields.find(\n            (field: any) => field.name === \"phoneNumber\"\n        );\n        expect(phoneNumberField).toBeDefined();\n\n        expect(phoneNumberField.isDeprecated).toBeTruthy();\n        expect(phoneNumberField.deprecationReason).toBe(\"No longer supported\");\n    });\n});\n\ndescribe(\"Websocket client\", () => {\n    const client = new ApolloClient({\n        link: new GraphQLWsLink(\n            createClientWS({\n                url: uri\n                    .replace(\"http://\", \"ws://\")\n                    .replace(\"https://\", \"wss://\"),\n                webSocketImpl: WebSocket,\n            })\n        ),\n        cache: new InMemoryCache(),\n        defaultOptions: {\n            watchQuery: {\n                fetchPolicy: \"network-only\",\n                errorPolicy: \"ignore\",\n            },\n            query: {\n                fetchPolicy: \"network-only\",\n                errorPolicy: \"all\",\n            },\n        },\n    });\n\n    test(client);\n\n    afterAll(() => {\n        client.stop();\n    });\n});\n\ndescribe(\"SSE client\", () => {\n    class SSELink extends ApolloLink {\n        private client: ClientSSE;\n\n        constructor(options: ClientOptionsSSE) {\n            super();\n            this.client = createClientSSE(options);\n        }\n\n        public request(operation: ApolloLink.Operation): Observable<ApolloLink.Result> {\n            return new Observable((sink) => {\n                return this.client.subscribe<ApolloLink.Result>(\n                    {...operation, query: print(operation.query)},\n                    {\n                        next: (data) => sink.next?.(data as ApolloLink.Result),\n                        complete: sink.complete.bind(sink),\n                        error: sink.error.bind(sink),\n                    }\n                );\n            });\n        }\n    }\n\n    const client = new ApolloClient({\n        link: new SSELink({\n            url: uri,\n        }),\n        cache: new InMemoryCache(),\n        defaultOptions: {\n            watchQuery: {\n                fetchPolicy: \"network-only\",\n                errorPolicy: \"ignore\",\n            },\n            query: {\n                fetchPolicy: \"network-only\",\n                errorPolicy: \"all\",\n            },\n        },\n    });\n\n    test(client);\n\n    afterAll(() => {\n        client.stop();\n    });\n});\n\ndescribe(\"URQL SSE client\", () => {\n    const wsClient = createClientWS({\n        url: uri.replace(\"http://\", \"ws://\").replace(\"https://\", \"wss://\"),\n        webSocketImpl: WebSocket,\n    });\n\n    const client = new Client({\n        url: uri,\n        exchanges: [\n            cacheExchange,\n            subscriptionExchange({\n                enableAllOperations: true,\n                forwardSubscription(request) {\n                    const input = {...request, query: request.query || \"\"};\n                    return {\n                        subscribe(sink) {\n                            const unsubscribe = wsClient.subscribe(input, sink);\n                            return {unsubscribe};\n                        },\n                    };\n                },\n            }),\n        ],\n    });\n\n    describe(\"Defer\", () => {\n        it(\"test using defer\", async () => {\n            const res = await client.query(ViewerDocument, {});\n\n            expect(res.error).toBeUndefined();\n            expect(res.data).toBeDefined();\n            expect(res.data?.viewer?.user?.name).toBe(\"Bob\");\n            expect(res.data?.viewer?.user?.query?.jsonEncoding).toBe(\"󾓭\");\n            let ready: boolean;\n            if (\n                (ready = isFragmentReady(\n                    ViewerDocument,\n                    UserFragmentFragmentDoc,\n                    res.data?.viewer?.user\n                ))\n            ) {\n                const userFragment = useFragment(\n                    UserFragmentFragmentDoc,\n                    res.data?.viewer?.user\n                );\n                expect(userFragment).toBeDefined();\n                expect(userFragment?.likes).toStrictEqual([\"Alice\"]);\n            }\n            expect(ready).toBeTruthy();\n            return null;\n        });\n    });\n});\n"
  },
  {
    "path": "integration/src/generated/.gitignore",
    "content": "schema-fetched.graphql\nschema-introspection.json\n"
  },
  {
    "path": "integration/src/generated/fragment-masking.ts",
    "content": "/* eslint-disable */\nimport { ResultOf, DocumentTypeDecoration, TypedDocumentNode } from '@graphql-typed-document-node/core';\nimport { FragmentDefinitionNode } from 'graphql';\nimport { Incremental } from './graphql';\n\n\nexport type FragmentType<TDocumentType extends DocumentTypeDecoration<any, any>> = TDocumentType extends DocumentTypeDecoration<\n  infer TType,\n  any\n>\n  ? [TType] extends [{ ' $fragmentName'?: infer TKey }]\n    ? TKey extends string\n      ? { ' $fragmentRefs'?: { [key in TKey]: TType } }\n      : never\n    : never\n  : never;\n\n// return non-nullable if `fragmentType` is non-nullable\nexport function useFragment<TType>(\n  _documentNode: DocumentTypeDecoration<TType, any>,\n  fragmentType: FragmentType<DocumentTypeDecoration<TType, any>>\n): TType;\n// return nullable if `fragmentType` is undefined\nexport function useFragment<TType>(\n  _documentNode: DocumentTypeDecoration<TType, any>,\n  fragmentType: FragmentType<DocumentTypeDecoration<TType, any>> | undefined\n): TType | undefined;\n// return nullable if `fragmentType` is nullable\nexport function useFragment<TType>(\n  _documentNode: DocumentTypeDecoration<TType, any>,\n  fragmentType: FragmentType<DocumentTypeDecoration<TType, any>> | null\n): TType | null;\n// return nullable if `fragmentType` is nullable or undefined\nexport function useFragment<TType>(\n  _documentNode: DocumentTypeDecoration<TType, any>,\n  fragmentType: FragmentType<DocumentTypeDecoration<TType, any>> | null | undefined\n): TType | null | undefined;\n// return array of non-nullable if `fragmentType` is array of non-nullable\nexport function useFragment<TType>(\n  _documentNode: DocumentTypeDecoration<TType, any>,\n  fragmentType: Array<FragmentType<DocumentTypeDecoration<TType, any>>>\n): Array<TType>;\n// return array of nullable if `fragmentType` is array of nullable\nexport function useFragment<TType>(\n  _documentNode: DocumentTypeDecoration<TType, any>,\n  fragmentType: Array<FragmentType<DocumentTypeDecoration<TType, any>>> | null | undefined\n): Array<TType> | null | undefined;\n// return readonly array of non-nullable if `fragmentType` is array of non-nullable\nexport function useFragment<TType>(\n  _documentNode: DocumentTypeDecoration<TType, any>,\n  fragmentType: ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>\n): ReadonlyArray<TType>;\n// return readonly array of nullable if `fragmentType` is array of nullable\nexport function useFragment<TType>(\n  _documentNode: DocumentTypeDecoration<TType, any>,\n  fragmentType: ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>> | null | undefined\n): ReadonlyArray<TType> | null | undefined;\nexport function useFragment<TType>(\n  _documentNode: DocumentTypeDecoration<TType, any>,\n  fragmentType: FragmentType<DocumentTypeDecoration<TType, any>> | Array<FragmentType<DocumentTypeDecoration<TType, any>>> | ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>> | null | undefined\n): TType | Array<TType> | ReadonlyArray<TType> | null | undefined {\n  return fragmentType as any;\n}\n\n\nexport function makeFragmentData<\n  F extends DocumentTypeDecoration<any, any>,\n  FT extends ResultOf<F>\n>(data: FT, _fragment: F): FragmentType<F> {\n  return data as FragmentType<F>;\n}\nexport function isFragmentReady<TQuery, TFrag>(\n  queryNode: DocumentTypeDecoration<TQuery, any>,\n  fragmentNode: TypedDocumentNode<TFrag>,\n  data: FragmentType<TypedDocumentNode<Incremental<TFrag>, any>> | null | undefined\n): data is FragmentType<typeof fragmentNode> {\n  const deferredFields = (queryNode as { __meta__?: { deferredFields: Record<string, (keyof TFrag)[]> } }).__meta__\n    ?.deferredFields;\n\n  if (!deferredFields) return true;\n\n  const fragDef = fragmentNode.definitions[0] as FragmentDefinitionNode | undefined;\n  const fragName = fragDef?.name?.value;\n\n  const fields = (fragName && deferredFields[fragName]) || [];\n  return fields.length > 0 && fields.every(field => data && field in data);\n}\n"
  },
  {
    "path": "integration/src/generated/gql.ts",
    "content": "/* eslint-disable */\nimport * as types from './graphql';\nimport { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';\n\n/**\n * Map of all GraphQL operations in the project.\n *\n * This map has several performance disadvantages:\n * 1. It is not tree-shakeable, so it will include all operations in the project.\n * 2. It is not minifiable, so the string of a GraphQL query will be multiple times inside the bundle.\n * 3. It does not support dead code elimination, so it will add unused operations.\n *\n * Therefore it is highly recommended to use the babel or swc plugin for production.\n * Learn more about it here: https://the-guild.dev/graphql/codegen/plugins/presets/preset-client#reducing-bundle-size\n */\ntype Documents = {\n    \"query coercion($value: [ListCoercion!]) {\\n  coercion(value: $value)\\n}\": typeof types.CoercionDocument,\n    \"query complexity($value: Int!) {\\n  complexity(value: $value)\\n}\": typeof types.ComplexityDocument,\n    \"query date($filter: DateFilter!) {\\n  date(filter: $filter)\\n}\": typeof types.DateDocument,\n    \"query error($type: ErrorType) {\\n  error(type: $type)\\n}\": typeof types.ErrorDocument,\n    \"query jsonEncoding {\\n  jsonEncoding\\n}\": typeof types.JsonEncodingDocument,\n    \"query path {\\n  path {\\n    cc: child {\\n      error\\n    }\\n  }\\n}\": typeof types.PathDocument,\n    \"query viewer {\\n  viewer {\\n    user {\\n      name\\n      phoneNumber\\n      query {\\n        jsonEncoding\\n      }\\n      ...userFragment @defer\\n    }\\n  }\\n}\\n\\nfragment userFragment on User {\\n  likes\\n}\": typeof types.ViewerDocument,\n};\nconst documents: Documents = {\n    \"query coercion($value: [ListCoercion!]) {\\n  coercion(value: $value)\\n}\": types.CoercionDocument,\n    \"query complexity($value: Int!) {\\n  complexity(value: $value)\\n}\": types.ComplexityDocument,\n    \"query date($filter: DateFilter!) {\\n  date(filter: $filter)\\n}\": types.DateDocument,\n    \"query error($type: ErrorType) {\\n  error(type: $type)\\n}\": types.ErrorDocument,\n    \"query jsonEncoding {\\n  jsonEncoding\\n}\": types.JsonEncodingDocument,\n    \"query path {\\n  path {\\n    cc: child {\\n      error\\n    }\\n  }\\n}\": types.PathDocument,\n    \"query viewer {\\n  viewer {\\n    user {\\n      name\\n      phoneNumber\\n      query {\\n        jsonEncoding\\n      }\\n      ...userFragment @defer\\n    }\\n  }\\n}\\n\\nfragment userFragment on User {\\n  likes\\n}\": types.ViewerDocument,\n};\n\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n *\n *\n * @example\n * ```ts\n * const query = graphql(`query GetUser($id: ID!) { user(id: $id) { name } }`);\n * ```\n *\n * The query argument is unknown!\n * Please regenerate the types.\n */\nexport function graphql(source: string): unknown;\n\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"query coercion($value: [ListCoercion!]) {\\n  coercion(value: $value)\\n}\"): (typeof documents)[\"query coercion($value: [ListCoercion!]) {\\n  coercion(value: $value)\\n}\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"query complexity($value: Int!) {\\n  complexity(value: $value)\\n}\"): (typeof documents)[\"query complexity($value: Int!) {\\n  complexity(value: $value)\\n}\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"query date($filter: DateFilter!) {\\n  date(filter: $filter)\\n}\"): (typeof documents)[\"query date($filter: DateFilter!) {\\n  date(filter: $filter)\\n}\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"query error($type: ErrorType) {\\n  error(type: $type)\\n}\"): (typeof documents)[\"query error($type: ErrorType) {\\n  error(type: $type)\\n}\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"query jsonEncoding {\\n  jsonEncoding\\n}\"): (typeof documents)[\"query jsonEncoding {\\n  jsonEncoding\\n}\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"query path {\\n  path {\\n    cc: child {\\n      error\\n    }\\n  }\\n}\"): (typeof documents)[\"query path {\\n  path {\\n    cc: child {\\n      error\\n    }\\n  }\\n}\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"query viewer {\\n  viewer {\\n    user {\\n      name\\n      phoneNumber\\n      query {\\n        jsonEncoding\\n      }\\n      ...userFragment @defer\\n    }\\n  }\\n}\\n\\nfragment userFragment on User {\\n  likes\\n}\"): (typeof documents)[\"query viewer {\\n  viewer {\\n    user {\\n      name\\n      phoneNumber\\n      query {\\n        jsonEncoding\\n      }\\n      ...userFragment @defer\\n    }\\n  }\\n}\\n\\nfragment userFragment on User {\\n  likes\\n}\"];\n\nexport function graphql(source: string) {\n  return (documents as any)[source] ?? {};\n}\n\nexport type DocumentType<TDocumentNode extends DocumentNode<any, any>> = TDocumentNode extends DocumentNode<  infer TType,  any>  ? TType  : never;"
  },
  {
    "path": "integration/src/generated/graphql.ts",
    "content": "/* eslint-disable */\nimport { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';\nexport type Maybe<T> = T | null;\nexport type InputMaybe<T> = T | null | undefined;\nexport type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] };\nexport type MakeOptional<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]?: Maybe<T[SubKey]> };\nexport type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]: Maybe<T[SubKey]> };\nexport type MakeEmpty<T extends { [key: string]: unknown }, K extends keyof T> = { [_ in K]?: never };\nexport type Incremental<T> = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never };\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n  ID: { input: string; output: string; }\n  String: { input: string; output: string; }\n  Boolean: { input: boolean; output: boolean; }\n  Int: { input: number; output: number; }\n  Float: { input: number; output: number; }\n  Map: { input: any; output: any; }\n};\n\nexport enum Date_Filter_Op {\n  Eq = 'EQ',\n  Gt = 'GT',\n  Gte = 'GTE',\n  Lt = 'LT',\n  Lte = 'LTE',\n  Neq = 'NEQ'\n}\n\nexport type DateFilter = {\n  op?: InputMaybe<Date_Filter_Op>;\n  timezone?: InputMaybe<Scalars['String']['input']>;\n  value: Scalars['String']['input'];\n};\n\nexport type Element = {\n  __typename?: 'Element';\n  child: Element;\n  error: Scalars['Boolean']['output'];\n  mismatched?: Maybe<Array<Scalars['Boolean']['output']>>;\n};\n\nexport enum ErrorType {\n  Custom = 'CUSTOM',\n  Normal = 'NORMAL'\n}\n\nexport type ListCoercion = {\n  enumVal?: InputMaybe<Array<InputMaybe<ErrorType>>>;\n  intVal?: InputMaybe<Array<InputMaybe<Scalars['Int']['input']>>>;\n  scalarVal?: InputMaybe<Array<InputMaybe<Scalars['Map']['input']>>>;\n  strVal?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\nexport type Query = {\n  __typename?: 'Query';\n  coercion: Scalars['Boolean']['output'];\n  complexity: Scalars['Boolean']['output'];\n  date: Scalars['Boolean']['output'];\n  error: Scalars['Boolean']['output'];\n  jsonEncoding: Scalars['String']['output'];\n  path?: Maybe<Array<Maybe<Element>>>;\n  viewer?: Maybe<Viewer>;\n};\n\n\nexport type QueryCoercionArgs = {\n  value?: InputMaybe<Array<ListCoercion>>;\n};\n\n\nexport type QueryComplexityArgs = {\n  value: Scalars['Int']['input'];\n};\n\n\nexport type QueryDateArgs = {\n  filter: DateFilter;\n};\n\n\nexport type QueryErrorArgs = {\n  type?: InputMaybe<ErrorType>;\n};\n\nexport type RemoteModelWithOmitempty = {\n  __typename?: 'RemoteModelWithOmitempty';\n  newDesc?: Maybe<Scalars['String']['output']>;\n};\n\nexport type User = {\n  __typename?: 'User';\n  likes: Array<Scalars['String']['output']>;\n  name: Scalars['String']['output'];\n  /** @deprecated No longer supported */\n  phoneNumber?: Maybe<Scalars['String']['output']>;\n  query: Query;\n};\n\nexport type Viewer = {\n  __typename?: 'Viewer';\n  user?: Maybe<User>;\n};\n\nexport type CoercionQueryVariables = Exact<{\n  value?: InputMaybe<Array<ListCoercion> | ListCoercion>;\n}>;\n\n\nexport type CoercionQuery = { __typename?: 'Query', coercion: boolean };\n\nexport type ComplexityQueryVariables = Exact<{\n  value: Scalars['Int']['input'];\n}>;\n\n\nexport type ComplexityQuery = { __typename?: 'Query', complexity: boolean };\n\nexport type DateQueryVariables = Exact<{\n  filter: DateFilter;\n}>;\n\n\nexport type DateQuery = { __typename?: 'Query', date: boolean };\n\nexport type ErrorQueryVariables = Exact<{\n  type?: InputMaybe<ErrorType>;\n}>;\n\n\nexport type ErrorQuery = { __typename?: 'Query', error: boolean };\n\nexport type JsonEncodingQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type JsonEncodingQuery = { __typename?: 'Query', jsonEncoding: string };\n\nexport type PathQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type PathQuery = { __typename?: 'Query', path?: Array<{ __typename?: 'Element', cc: { __typename?: 'Element', error: boolean } } | null> | null };\n\nexport type ViewerQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type ViewerQuery = { __typename?: 'Query', viewer?: { __typename?: 'Viewer', user?: { __typename?: 'User', name: string, phoneNumber?: string | null, query: { __typename?: 'Query', jsonEncoding: string } } & (\n      { __typename?: 'User' }\n      & { ' $fragmentRefs'?: { 'UserFragmentFragment': Incremental<UserFragmentFragment> } }\n    ) | null } | null };\n\nexport type UserFragmentFragment = { __typename?: 'User', likes: Array<string> } & { ' $fragmentName'?: 'UserFragmentFragment' };\n\nexport const UserFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"userFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"likes\"}}]}}]} as unknown as DocumentNode<UserFragmentFragment, unknown>;\nexport const CoercionDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"coercion\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ListCoercion\"}}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"coercion\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"}}}]}]}}]} as unknown as DocumentNode<CoercionQuery, CoercionQueryVariables>;\nexport const ComplexityDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"complexity\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Int\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"complexity\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"}}}]}]}}]} as unknown as DocumentNode<ComplexityQuery, ComplexityQueryVariables>;\nexport const DateDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"date\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"filter\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"DateFilter\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"date\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"filter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"filter\"}}}]}]}}]} as unknown as DocumentNode<DateQuery, DateQueryVariables>;\nexport const ErrorDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"error\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ErrorType\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"error\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"}}}]}]}}]} as unknown as DocumentNode<ErrorQuery, ErrorQueryVariables>;\nexport const JsonEncodingDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"jsonEncoding\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"jsonEncoding\"}}]}}]} as unknown as DocumentNode<JsonEncodingQuery, JsonEncodingQueryVariables>;\nexport const PathDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"cc\"},\"name\":{\"kind\":\"Name\",\"value\":\"child\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"error\"}}]}}]}}]}}]} as unknown as DocumentNode<PathQuery, PathQueryVariables>;\nexport const ViewerDocument = {\"__meta__\":{\"deferredFields\":{\"userFragment\":[\"likes\"]}},\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"viewer\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewer\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"user\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"phoneNumber\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"query\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"jsonEncoding\"}}]}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"userFragment\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"defer\"}}]}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"userFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"likes\"}}]}}]} as unknown as DocumentNode<ViewerQuery, ViewerQueryVariables>;"
  },
  {
    "path": "integration/src/generated/index.ts",
    "content": "export * from \"./fragment-masking\";\nexport * from \"./gql\";"
  },
  {
    "path": "integration/src/generated/schema-expected.graphql",
    "content": "\"\"\"\nDirects the executor to defer this fragment when the `if` argument is true or undefined.\n\"\"\"\ndirective @defer(\n  \"\"\"Deferred when true or undefined.\"\"\"\n  if: Boolean = true\n\n  \"\"\"Unique name\"\"\"\n  label: String\n) on FRAGMENT_SPREAD | INLINE_FRAGMENT\n\n\"\"\"This directive does magical things\"\"\"\ndirective @magic(kind: Int) on FIELD_DEFINITION\n\nenum DATE_FILTER_OP {\n  EQ\n  GT\n  GTE\n  LT\n  LTE\n  NEQ\n}\n\ninput DateFilter {\n  op: DATE_FILTER_OP = EQ\n  timezone: String = \"UTC\"\n  value: String!\n}\n\ntype Element {\n  child: Element!\n  error: Boolean!\n  mismatched: [Boolean!]\n}\n\nenum ErrorType {\n  CUSTOM\n  NORMAL\n}\n\ninput ListCoercion {\n  enumVal: [ErrorType]\n  intVal: [Int]\n  scalarVal: [Map]\n  strVal: [String]\n}\n\nscalar Map\n\ntype Query {\n  coercion(value: [ListCoercion!]): Boolean!\n  complexity(value: Int!): Boolean!\n  date(filter: DateFilter!): Boolean!\n  error(type: ErrorType = NORMAL): Boolean!\n  jsonEncoding: String!\n  path: [Element]\n  viewer: Viewer\n}\n\ntype RemoteModelWithOmitempty {\n  newDesc: String\n}\n\ntype User {\n  likes: [String!]!\n  name: String!\n  phoneNumber: String @deprecated\n  query: Query!\n}\n\ntype Viewer {\n  user: User\n}"
  },
  {
    "path": "integration/src/queries/coercion.graphql",
    "content": "query coercion($value: [ListCoercion!]){\n    coercion(value: $value )\n}\n"
  },
  {
    "path": "integration/src/queries/complexity.graphql",
    "content": "query complexity($value: Int!) {\n    complexity(value: $value)\n}\n"
  },
  {
    "path": "integration/src/queries/date.graphql",
    "content": "query date($filter: DateFilter!) {\n    date(filter: $filter)\n}\n"
  },
  {
    "path": "integration/src/queries/error.graphql",
    "content": "query error($type: ErrorType) {\n    error(type: $type)\n}\n"
  },
  {
    "path": "integration/src/queries/jsonEncoding.graphql",
    "content": "query jsonEncoding {\n    jsonEncoding\n}\n"
  },
  {
    "path": "integration/src/queries/path.graphql",
    "content": "query path {\n    path {\n        cc:child {\n            error\n        }\n    }\n}\n"
  },
  {
    "path": "integration/src/queries/viewer.graphql",
    "content": "query viewer {\n    viewer {\n        user {\n            name\n            phoneNumber\n            query {\n                jsonEncoding\n            }\n            ...userFragment @defer\n        }\n    }\n}\n\nfragment userFragment on User {\n    likes\n}\n"
  },
  {
    "path": "integration/tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n    \"target\": \"ES2020\",\n    \"useDefineForClassFields\": true,\n    \"module\": \"ESNext\",\n    \"lib\": [\"ES2020\", \"DOM\", \"DOM.Iterable\"],\n    \"skipLibCheck\": true,\n\n    /* Bundler mode */\n    \"moduleResolution\": \"bundler\",\n    \"allowImportingTsExtensions\": true,\n    \"resolveJsonModule\": true,\n    \"isolatedModules\": true,\n    \"noEmit\": true,\n\n    /* Linting */\n    \"strict\": true,\n    \"noUnusedLocals\": true,\n    \"noUnusedParameters\": true,\n    \"noFallthroughCasesInSwitch\": true\n  },\n  \"include\": [\"src\"]\n}\n"
  },
  {
    "path": "internal/code/alias.go",
    "content": "package code\n\nimport (\n\t\"go/types\"\n\t\"strings\"\n)\n\n// Unalias unwraps an alias type\nfunc Unalias(t types.Type) types.Type {\n\tif alias, ok := t.(*types.Alias); ok {\n\t\t// If the type is an alias type, it must first check if the non-alias\n\t\t// type is in an internal package. Only the last type in the alias\n\t\t// chain is provided as the RHS.\n\t\tif isAliasInternal(t.String(), unalias(t).String()) {\n\t\t\treturn types.NewNamed(alias.Obj(), alias.Underlying(), nil)\n\t\t}\n\t}\n\treturn unalias(t)\n}\n\nfunc unalias(t types.Type) types.Type {\n\tif p, ok := t.(*types.Pointer); ok {\n\t\t// If the type come from auto-binding,\n\t\t// it will be a pointer to an alias type.\n\t\t// (e.g: `type Cursor = entgql.Cursor[int]`)\n\t\t// *ent.Cursor is the type we got from auto-binding.\n\t\treturn types.NewPointer(Unalias(p.Elem()))\n\t}\n\treturn types.Unalias(t)\n}\n\n// isAliasInternal checks if an alias type path is declared for a type within\n// an internal package. A best-effort attempt is made to mirror the Go internal\n// visibility rules by finding the root for the rhs, and checking to ensure\n// that the types both share the same root.\nfunc isAliasInternal(lhs, rhs string) bool {\n\tidx := strings.LastIndex(lhs, \"internal\")\n\tif idx != -1 {\n\t\t// If the alias type contains an internal package, there is no reason\n\t\t// to continue.\n\t\treturn false\n\t}\n\tidx = strings.LastIndex(rhs, \"internal\")\n\tif idx < 0 {\n\t\treturn false\n\t}\n\troot := rhs[:idx]\n\tswitch {\n\t// The alias type path is checked against the root of the non-alias type to\n\t// ensure the types being aliased share the same root.\n\tcase strings.HasPrefix(lhs, root):\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n"
  },
  {
    "path": "internal/code/alias_test.go",
    "content": "package code\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestIsAliasInternal(t *testing.T) {\n\tisInternal := []struct {\n\t\tname string\n\t\tlhs  string\n\t\trhs  string\n\t}{\n\t\t{\n\t\t\tname: \"same root internal alias\",\n\t\t\tlhs:  \"github.com/org/repo/graph/model\",\n\t\t\trhs:  \"github.com/org/repo/internal/store/example\",\n\t\t},\n\t\t{\n\t\t\tname: \"same root internal alias, path begins with internal\",\n\t\t\tlhs:  \"graph/model\",\n\t\t\trhs:  \"internal/store/example\",\n\t\t},\n\t}\n\n\tfor _, tc := range isInternal {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\trequire.True(t, isAliasInternal(tc.lhs, tc.rhs))\n\t\t})\n\t}\n\n\tisNotInternal := []struct {\n\t\tname string\n\t\tlhs  string\n\t\trhs  string\n\t}{\n\t\t{\n\t\t\tname: \"same root not internal alias\",\n\t\t\tlhs:  \"github.com/org/repo/graph/model\",\n\t\t\trhs:  \"github.com/org/repo/store/example\",\n\t\t},\n\t\t{\n\t\t\tname: \"same root both internal\",\n\t\t\tlhs:  \"github.com/org/repo/internal/model\",\n\t\t\trhs:  \"github.com/org/repo/internal/store/example\",\n\t\t},\n\t\t{\n\t\t\tname: \"diff root not internal alias\",\n\t\t\tlhs:  \"github.com/org/repo/graph/model\",\n\t\t\trhs:  \"github.com/org/repoB/store/example\",\n\t\t},\n\t\t{\n\t\t\tname: \"diff root internal alias\",\n\t\t\tlhs:  \"github.com/org/repo/graph/model\",\n\t\t\trhs:  \"github.com/org/repoB/internal/store/example\",\n\t\t},\n\t}\n\n\tfor _, tc := range isNotInternal {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\trequire.False(t, isAliasInternal(tc.lhs, tc.rhs))\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "internal/code/compare.go",
    "content": "package code\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"go/types\"\n)\n\n// CompatibleTypes isnt a strict comparison, it allows for pointer differences\nfunc CompatibleTypes(expected, actual types.Type) error {\n\t// Unwrap any aliases\n\texpected, actual = Unalias(expected), Unalias(actual)\n\t// Special case to deal with pointer mismatches\n\t{\n\t\texpectedPtr, expectedIsPtr := expected.(*types.Pointer)\n\t\tactualPtr, actualIsPtr := actual.(*types.Pointer)\n\n\t\tif expectedIsPtr && actualIsPtr {\n\t\t\treturn CompatibleTypes(expectedPtr.Elem(), actualPtr.Elem())\n\t\t}\n\t\tif expectedIsPtr && !actualIsPtr {\n\t\t\treturn CompatibleTypes(expectedPtr.Elem(), actual)\n\t\t}\n\t\tif !expectedIsPtr && actualIsPtr {\n\t\t\treturn CompatibleTypes(expected, actualPtr.Elem())\n\t\t}\n\t}\n\n\tswitch expected := expected.(type) {\n\tcase *types.Slice:\n\t\tif actual, ok := actual.(*types.Slice); ok {\n\t\t\treturn CompatibleTypes(expected.Elem(), actual.Elem())\n\t\t}\n\n\tcase *types.Array:\n\t\tif actual, ok := actual.(*types.Array); ok {\n\t\t\tif expected.Len() != actual.Len() {\n\t\t\t\treturn errors.New(\"array length differs\")\n\t\t\t}\n\n\t\t\treturn CompatibleTypes(expected.Elem(), actual.Elem())\n\t\t}\n\n\tcase *types.Basic:\n\t\tif actual, ok := actual.(*types.Basic); ok {\n\t\t\tif actual.Kind() != expected.Kind() {\n\t\t\t\treturn fmt.Errorf(\"basic kind differs, %s != %s\", expected.Name(), actual.Name())\n\t\t\t}\n\n\t\t\treturn nil\n\t\t}\n\n\tcase *types.Struct:\n\t\tif actual, ok := actual.(*types.Struct); ok {\n\t\t\tif expected.NumFields() != actual.NumFields() {\n\t\t\t\treturn errors.New(\"number of struct fields differ\")\n\t\t\t}\n\n\t\t\tfor i := 0; i < expected.NumFields(); i++ {\n\t\t\t\tif expected.Field(i).Name() != actual.Field(i).Name() {\n\t\t\t\t\treturn fmt.Errorf(\n\t\t\t\t\t\t\"struct field %d name differs, %s != %s\",\n\t\t\t\t\t\ti,\n\t\t\t\t\t\texpected.Field(i).Name(),\n\t\t\t\t\t\tactual.Field(i).Name(),\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tif err := CompatibleTypes(\n\t\t\t\t\texpected.Field(i).Type(),\n\t\t\t\t\tactual.Field(i).Type(),\n\t\t\t\t); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\n\tcase *types.Tuple:\n\t\tif actual, ok := actual.(*types.Tuple); ok {\n\t\t\tif expected.Len() != actual.Len() {\n\t\t\t\treturn fmt.Errorf(\"tuple length differs, %d != %d\", expected.Len(), actual.Len())\n\t\t\t}\n\n\t\t\tfor i := 0; i < expected.Len(); i++ {\n\t\t\t\tif err := CompatibleTypes(expected.At(i).Type(), actual.At(i).Type()); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn nil\n\t\t}\n\n\tcase *types.Signature:\n\t\tif actual, ok := actual.(*types.Signature); ok {\n\t\t\tif err := CompatibleTypes(expected.Params(), actual.Params()); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\terr := CompatibleTypes(expected.Results(), actual.Results())\n\t\t\treturn err\n\t\t}\n\tcase *types.Interface:\n\t\tif actual, ok := actual.(*types.Interface); ok {\n\t\t\tif expected.NumMethods() != actual.NumMethods() {\n\t\t\t\treturn fmt.Errorf(\n\t\t\t\t\t\"interface method count differs, %d != %d\",\n\t\t\t\t\texpected.NumMethods(),\n\t\t\t\t\tactual.NumMethods(),\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tfor i := 0; i < expected.NumMethods(); i++ {\n\t\t\t\tif expected.Method(i).Name() != actual.Method(i).Name() {\n\t\t\t\t\treturn fmt.Errorf(\n\t\t\t\t\t\t\"interface method %d name differs, %s != %s\",\n\t\t\t\t\t\ti,\n\t\t\t\t\t\texpected.Method(i).Name(),\n\t\t\t\t\t\tactual.Method(i).Name(),\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tif err := CompatibleTypes(\n\t\t\t\t\texpected.Method(i).Type(),\n\t\t\t\t\tactual.Method(i).Type(),\n\t\t\t\t); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn nil\n\t\t}\n\n\tcase *types.Map:\n\t\tif actual, ok := actual.(*types.Map); ok {\n\t\t\tif err := CompatibleTypes(expected.Key(), actual.Key()); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\terr := CompatibleTypes(expected.Elem(), actual.Elem())\n\t\t\treturn err\n\t\t}\n\n\tcase *types.Chan:\n\t\tif actual, ok := actual.(*types.Chan); ok {\n\t\t\treturn CompatibleTypes(expected.Elem(), actual.Elem())\n\t\t}\n\n\tcase *types.Named:\n\t\tif actual, ok := actual.(*types.Named); ok {\n\t\t\tif NormalizeVendor(\n\t\t\t\texpected.Obj().Pkg().Path(),\n\t\t\t) != NormalizeVendor(\n\t\t\t\tactual.Obj().Pkg().Path(),\n\t\t\t) {\n\t\t\t\treturn fmt.Errorf(\n\t\t\t\t\t\"package name of named type differs, %s != %s\",\n\t\t\t\t\tNormalizeVendor(expected.Obj().Pkg().Path()),\n\t\t\t\t\tNormalizeVendor(actual.Obj().Pkg().Path()),\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tif expected.Obj().Name() != actual.Obj().Name() {\n\t\t\t\treturn fmt.Errorf(\n\t\t\t\t\t\"named type name differs, %s != %s\",\n\t\t\t\t\tNormalizeVendor(expected.Obj().Name()),\n\t\t\t\t\tNormalizeVendor(actual.Obj().Name()),\n\t\t\t\t)\n\t\t\t}\n\n\t\t\treturn nil\n\t\t}\n\n\t\t// Before models are generated all missing references will be Invalid Basic references.\n\t\t// lets assume these are valid too.\n\t\tif actual, ok := actual.(*types.Basic); ok && actual.Kind() == types.Invalid {\n\t\t\treturn nil\n\t\t}\n\n\tdefault:\n\t\treturn fmt.Errorf(\"missing support for %T\", expected)\n\t}\n\n\treturn fmt.Errorf(\"type mismatch %T != %T\", expected, actual)\n}\n"
  },
  {
    "path": "internal/code/compare_test.go",
    "content": "package code\n\nimport (\n\t\"go/ast\"\n\t\"go/importer\"\n\t\"go/parser\"\n\t\"go/token\"\n\t\"go/types\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestCompatibleTypes(t *testing.T) {\n\tvalid := []struct {\n\t\texpected string\n\t\tactual   string\n\t}{\n\t\t{\"string\", \"string\"},\n\t\t{\"*string\", \"string\"},\n\t\t{\"string\", \"*string\"},\n\t\t{\"*string\", \"*string\"},\n\t\t{\"[]string\", \"[]string\"},\n\t\t{\"*[]string\", \"[]string\"},\n\t\t{\"*[]string\", \"[]*string\"},\n\t\t{\"*[]*[]*[]string\", \"[][][]string\"},\n\t\t{\"map[string]any\", \"map[string]any\"},\n\t\t{\"map[string]string\", \"map[string]string\"},\n\t\t{\"Bar\", \"Bar\"},\n\t\t{\"any\", \"any\"},\n\t\t{\"interface{Foo() bool}\", \"interface{Foo() bool}\"},\n\t\t{\"struct{Foo bool}\", \"struct{Foo bool}\"},\n\t}\n\n\tfor _, tc := range valid {\n\t\tt.Run(tc.expected+\"=\"+tc.actual, func(t *testing.T) {\n\t\t\texpectedType := parseTypeStr(t, tc.expected)\n\t\t\tactualType := parseTypeStr(t, tc.actual)\n\t\t\trequire.NoError(t, CompatibleTypes(expectedType, actualType))\n\t\t})\n\t}\n\n\tinvalid := []struct {\n\t\texpected string\n\t\tactual   string\n\t}{\n\t\t{\"string\", \"int\"},\n\t\t{\"*string\", \"[]string\"},\n\t\t{\"[]string\", \"[][]string\"},\n\t\t{\"Bar\", \"Baz\"},\n\t\t{\"map[string]any\", \"map[string]string\"},\n\t\t{\"map[string]string\", \"[]string\"},\n\t\t{\"interface{Foo() bool}\", \"any\"},\n\t\t{\"struct{Foo bool}\", \"struct{Bar bool}\"},\n\t}\n\n\tfor _, tc := range invalid {\n\t\tt.Run(tc.expected+\"!=\"+tc.actual, func(t *testing.T) {\n\t\t\texpectedType := parseTypeStr(t, tc.expected)\n\t\t\tactualType := parseTypeStr(t, tc.actual)\n\t\t\trequire.Error(t, CompatibleTypes(expectedType, actualType))\n\t\t})\n\t}\n}\n\nfunc parseTypeStr(t *testing.T, s string) types.Type {\n\tt.Helper()\n\n\tfset := token.NewFileSet()\n\tf, err := parser.ParseFile(fset, \"test.go\", `package test\n\t\ttype Bar string\n\t\ttype Baz string\n\n\t\ttype Foo struct {\n\t\t\tField `+s+`\n\t\t}\n\t`, 0)\n\trequire.NoError(t, err)\n\n\tconf := types.Config{Importer: importer.Default()}\n\tpkg, err := conf.Check(\"test\", fset, []*ast.File{f}, nil)\n\trequire.NoError(t, err)\n\n\treturn pkg.Scope().Lookup(\"Foo\").Type().(*types.Named).Underlying().(*types.Struct).Field(0).\n\t\tType()\n}\n"
  },
  {
    "path": "internal/code/imports.go",
    "content": "package code\n\nimport (\n\t\"bufio\"\n\t\"fmt\"\n\t\"go/build\"\n\t\"go/parser\"\n\t\"go/token\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"regexp\"\n\t\"strings\"\n)\n\nvar gopaths []string\n\nfunc init() {\n\tgopaths = filepath.SplitList(build.Default.GOPATH)\n\tfor i, p := range gopaths {\n\t\tgopaths[i] = filepath.ToSlash(filepath.Join(p, \"src\"))\n\t}\n}\n\n// NameForDir manually looks for package stanzas in files located in the given directory. This can\n// be\n// much faster than having to consult go list, because we already know exactly where to look.\nfunc NameForDir(dir string) string {\n\tdir, err := filepath.Abs(dir)\n\tif err != nil {\n\t\treturn SanitizePackageName(filepath.Base(dir))\n\t}\n\tfiles, err := os.ReadDir(dir)\n\tif err != nil {\n\t\treturn SanitizePackageName(filepath.Base(dir))\n\t}\n\tfset := token.NewFileSet()\n\tfor _, file := range files {\n\t\tif !strings.HasSuffix(strings.ToLower(file.Name()), \".go\") {\n\t\t\tcontinue\n\t\t}\n\n\t\tfilename := filepath.Join(dir, file.Name())\n\t\tif src, err := parser.ParseFile(fset, filename, nil, parser.PackageClauseOnly); err == nil {\n\t\t\treturn src.Name.Name\n\t\t}\n\t}\n\n\treturn SanitizePackageName(filepath.Base(dir))\n}\n\ntype goModuleSearchResult struct {\n\tpath       string\n\tgoModPath  string\n\tmoduleName string\n}\n\nvar goModuleRootCache = map[string]goModuleSearchResult{}\n\n// goModuleRoot returns the root of the current go module if there is a go.mod file in the directory\n// tree\n// If not, it returns false\nfunc goModuleRoot(dir string) (string, bool) {\n\tdir, err := filepath.Abs(dir)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tdir = filepath.ToSlash(dir)\n\n\tdirs := []string{dir}\n\tresult := goModuleSearchResult{}\n\n\tfor {\n\t\tmodDir := dirs[len(dirs)-1]\n\n\t\tif val, ok := goModuleRootCache[dir]; ok {\n\t\t\tresult = val\n\t\t\tbreak\n\t\t}\n\n\t\tif content, err := os.ReadFile(filepath.Join(modDir, \"go.mod\")); err == nil {\n\t\t\tmoduleName := extractModuleName(content)\n\t\t\tresult = goModuleSearchResult{\n\t\t\t\tpath:       moduleName,\n\t\t\t\tgoModPath:  modDir,\n\t\t\t\tmoduleName: moduleName,\n\t\t\t}\n\t\t\tgoModuleRootCache[modDir] = result\n\t\t\tbreak\n\t\t}\n\n\t\tif modDir == \"\" || modDir == \".\" || modDir == \"/\" || strings.HasSuffix(modDir, \"\\\\\") {\n\t\t\t// Reached the top of the file tree which means go.mod file is not found\n\t\t\t// Set root folder with a sentinel cache value\n\t\t\tgoModuleRootCache[modDir] = result\n\t\t\tbreak\n\t\t}\n\n\t\tdirs = append(dirs, filepath.Dir(modDir))\n\t}\n\n\t// create a cache for each path in a tree traversed, except the top one as it is already cached\n\tfor _, d := range dirs[:len(dirs)-1] {\n\t\tif result.moduleName == \"\" {\n\t\t\t// go.mod is not found in the tree, so the same sentinel value fits all the directories\n\t\t\t// in a tree\n\t\t\tgoModuleRootCache[d] = result\n\t\t} else {\n\t\t\trelPath, err := filepath.Rel(result.goModPath, d)\n\t\t\tif err != nil {\n\t\t\t\tpanic(err)\n\t\t\t}\n\t\t\tpath := result.moduleName\n\t\t\trelPath = filepath.ToSlash(relPath)\n\t\t\tif !strings.HasSuffix(relPath, \"/\") {\n\t\t\t\tpath += \"/\"\n\t\t\t}\n\t\t\tpath += relPath\n\n\t\t\tgoModuleRootCache[d] = goModuleSearchResult{\n\t\t\t\tpath:       path,\n\t\t\t\tgoModPath:  result.goModPath,\n\t\t\t\tmoduleName: result.moduleName,\n\t\t\t}\n\t\t}\n\t}\n\n\tres := goModuleRootCache[dir]\n\tif res.moduleName == \"\" {\n\t\treturn \"\", false\n\t}\n\treturn res.path, true\n}\n\nfunc extractModuleName(content []byte) string {\n\tfor {\n\t\tadvance, tkn, err := bufio.ScanLines(content, false)\n\t\tif err != nil {\n\t\t\tpanic(fmt.Errorf(\"error parsing mod file: %w\", err))\n\t\t}\n\t\tif advance == 0 {\n\t\t\tbreak\n\t\t}\n\t\ts := strings.Trim(string(tkn), \" \\t\")\n\t\tif s != \"\" && !strings.HasPrefix(s, \"//\") {\n\t\t\tbreak\n\t\t}\n\t\tif advance <= len(content) {\n\t\t\tcontent = content[advance:]\n\t\t}\n\t}\n\tmoduleName := string(modregex.FindSubmatch(content)[1])\n\treturn moduleName\n}\n\n// ImportPathForDir takes a path and returns a golang import path for the package\nfunc ImportPathForDir(dir string) (res string) {\n\tdir, err := filepath.Abs(dir)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tdir = filepath.ToSlash(dir)\n\n\tmodDir, ok := goModuleRoot(dir)\n\tif ok {\n\t\treturn modDir\n\t}\n\n\tfor _, gopath := range gopaths {\n\t\tif len(gopath) < len(dir) && strings.EqualFold(gopath, dir[0:len(gopath)]) {\n\t\t\treturn dir[len(gopath)+1:]\n\t\t}\n\t}\n\n\treturn \"\"\n}\n\nvar modregex = regexp.MustCompile(`module (\\S*)`)\n"
  },
  {
    "path": "internal/code/imports_test.go",
    "content": "package code\n\nimport (\n\t\"os\"\n\t\"path/filepath\"\n\t\"runtime\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestExtractModuleName(t *testing.T) {\n\twd, err := os.Getwd()\n\trequire.NoError(t, err)\n\n\tmodDir := filepath.Join(wd, \"..\", \"..\", \"testdata\")\n\tcontent, err := os.ReadFile(filepath.Join(modDir, \"gomod-with-leading-comments.mod\"))\n\trequire.NoError(t, err)\n\tassert.Equal(t, \"github.com/99designs/gqlgen\", extractModuleName(content))\n}\n\nfunc TestImportPathForDir(t *testing.T) {\n\twd, err := os.Getwd()\n\n\trequire.NoError(t, err)\n\n\tassert.Equal(t, \"github.com/99designs/gqlgen/internal/code\", ImportPathForDir(wd))\n\n\tassert.Equal(t, \"github.com/99designs/gqlgen/internal/code\", ImportPathForDir(wd))\n\tassert.Equal(\n\t\tt,\n\t\t\"github.com/99designs/gqlgen/api\",\n\t\tImportPathForDir(filepath.Join(wd, \"..\", \"..\", \"api\")),\n\t)\n\n\t// doesnt contain go code, but should still give a valid import path\n\tassert.Equal(\n\t\tt,\n\t\t\"github.com/99designs/gqlgen/docs\",\n\t\tImportPathForDir(filepath.Join(wd, \"..\", \"..\", \"docs\")),\n\t)\n\n\t// directory does not exist\n\tassert.Equal(\n\t\tt,\n\t\t\"github.com/99designs/gqlgen/dos\",\n\t\tImportPathForDir(filepath.Join(wd, \"..\", \"..\", \"dos\")),\n\t)\n\n\t// out of module\n\tassert.Empty(t, ImportPathForDir(filepath.Join(wd, \"..\", \"..\", \"..\")))\n\n\tif runtime.GOOS == \"windows\" {\n\t\tassert.Empty(t, ImportPathForDir(\"C:/doesnotexist\"))\n\t} else {\n\t\tassert.Empty(t, ImportPathForDir(\"/doesnotexist\"))\n\t}\n}\n\nfunc TestNameForDir(t *testing.T) {\n\twd, err := os.Getwd()\n\trequire.NoError(t, err)\n\n\tassert.Equal(t, \"tmp\", NameForDir(\"/tmp\"))\n\tassert.Equal(t, \"code\", NameForDir(wd))\n\tassert.Equal(t, \"docs\", NameForDir(wd+\"/../../docs\"))\n\tassert.Equal(t, \"main\", NameForDir(wd+\"/../..\"))\n}\n"
  },
  {
    "path": "internal/code/packages.go",
    "content": "package code\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"os/exec\"\n\t\"path/filepath\"\n\t\"strings\"\n\n\t\"golang.org/x/tools/go/packages\"\n)\n\n// lightMode is used for operations that don't need full type info (fast)\nvar lightMode = packages.NeedName |\n\tpackages.NeedFiles |\n\tpackages.NeedModule\n\n// fullMode is used when type information is required (slow - triggers compilation)\nvar fullMode = packages.NeedName |\n\tpackages.NeedFiles |\n\tpackages.NeedTypes |\n\tpackages.NeedSyntax |\n\tpackages.NeedTypesInfo |\n\tpackages.NeedModule\n\n// mode is the default mode for backwards compatibility\nvar mode = fullMode\n\ntype (\n\t// Packages is a wrapper around x/tools/go/packages that maintains a (hopefully prewarmed) cache\n\t// of packages\n\t// that can be invalidated as writes are made and packages are known to change.\n\tPackages struct {\n\t\tpackages              map[string]*packages.Package\n\t\timportToName          map[string]string\n\t\tloadErrors            []error\n\t\tbuildFlags            []string\n\t\tpackagesToCachePrefix string\n\t\tuseLightModePrefetch  bool // Use lightMode instead of fullMode for LoadAll\n\n\t\tnumLoadCalls int // stupid test steam. ignore.\n\t\tnumNameCalls int // stupid test steam. ignore.\n\t}\n\t// Option is a function that can be passed to NewPackages to configure the package loader\n\tOption func(p *Packages)\n)\n\n// WithBuildTags option for NewPackages adds build tags to the packages.Load call\nfunc WithBuildTags(tags ...string) func(p *Packages) {\n\treturn func(p *Packages) {\n\t\tp.buildFlags = append(p.buildFlags, \"-tags\", strings.Join(tags, \",\"))\n\t}\n}\n\nfunc WithPreloadNames(importPaths ...string) func(p *Packages) {\n\treturn func(p *Packages) {\n\t\tp.LoadAllNames(importPaths...)\n\t}\n}\n\n// PackagePrefixToCache option for NewPackages\n// will not reset gqlgen packages in packages.Load call\nfunc PackagePrefixToCache(prefixPath string) func(p *Packages) {\n\treturn func(p *Packages) {\n\t\tp.packagesToCachePrefix = prefixPath\n\t}\n}\n\n// WithLightModePrefetch option for NewPackages uses lightMode (NeedName|NeedFiles|NeedModule)\n// instead of fullMode for LoadAll, avoiding compilation until types are needed.\nfunc WithLightModePrefetch(enabled bool) func(p *Packages) {\n\treturn func(p *Packages) {\n\t\tp.useLightModePrefetch = enabled\n\t}\n}\n\n// NewPackages creates a new packages cache\n// It will load all packages in the current module, and any packages that are passed to Load or\n// LoadAll\nfunc NewPackages(opts ...Option) *Packages {\n\tp := &Packages{\n\t\tuseLightModePrefetch: false, // Default to full mode for backwards compatibility\n\t}\n\tfor _, opt := range opts {\n\t\topt(p)\n\t}\n\treturn p\n}\n\nfunc dedupPackages(packages []string) []string {\n\tpackageMap := make(map[string]struct{})\n\tdedupedPackages := make([]string, 0, len(packageMap))\n\tfor _, p := range packages {\n\t\tif _, ok := packageMap[p]; ok {\n\t\t\tcontinue\n\t\t}\n\t\tpackageMap[p] = struct{}{}\n\t\tdedupedPackages = append(dedupedPackages, p)\n\t}\n\n\treturn dedupedPackages\n}\n\nfunc (p *Packages) CleanupUserPackages() {\n\tif p.packagesToCachePrefix == \"\" {\n\t\t// Cleanup all packages if we don't know which ones to keep\n\t\tp.packages = nil\n\t} else {\n\t\t// Don't clean up github.com/99designs/gqlgen prefixed packages,\n\t\t// they haven't changed and do not need to be reloaded\n\t\t// if you are using a fork, then you need to have customized\n\t\t// the prefix using PackagePrefixToCache\n\t\tvar toRemove []string\n\t\tfor k := range p.packages {\n\t\t\tif !strings.HasPrefix(k, p.packagesToCachePrefix) {\n\t\t\t\ttoRemove = append(toRemove, k)\n\t\t\t}\n\t\t}\n\t\tfor _, k := range toRemove {\n\t\t\tdelete(p.packages, k)\n\t\t}\n\t}\n}\n\n// ReloadAll will call LoadAll after clearing the package cache, so we can reload\n// packages in the case that the packages have changed\nfunc (p *Packages) ReloadAll(importPaths ...string) []*packages.Package {\n\tif p.packages != nil {\n\t\tp.CleanupUserPackages()\n\t}\n\treturn p.LoadAll(importPaths...)\n}\n\n// LoadAll will call packages.Load and return the package data for the given packages,\n// but if the package already have been loaded it will return cached values instead.\n// If useLightModePrefetch is true, uses lightMode (faster, no type info).\n// Otherwise uses fullMode (slower but includes type information).\nfunc (p *Packages) LoadAll(importPaths ...string) []*packages.Package {\n\tif p.useLightModePrefetch {\n\t\treturn p.loadAllWithMode(lightMode, importPaths...)\n\t}\n\treturn p.loadAllWithMode(fullMode, importPaths...)\n}\n\n// LoadAllLight loads packages with minimal info (no type checking).\n// This is ~200x faster than LoadAll because it doesn't trigger compilation.\n// Use this when you only need package names/files, not type information.\nfunc (p *Packages) LoadAllLight(importPaths ...string) []*packages.Package {\n\treturn p.loadAllWithMode(lightMode, importPaths...)\n}\n\n// loadAllWithMode is the internal implementation that supports different modes.\nfunc (p *Packages) loadAllWithMode(\n\tloadMode packages.LoadMode,\n\timportPaths ...string,\n) []*packages.Package {\n\tif p.packages == nil {\n\t\tp.packages = map[string]*packages.Package{}\n\t}\n\n\tneedsTypes := loadMode&packages.NeedTypes != 0\n\n\tmissing := make([]string, 0, len(importPaths))\n\tfor _, path := range importPaths {\n\t\tcached, ok := p.packages[path]\n\t\tif !ok {\n\t\t\tmissing = append(missing, path)\n\t\t\tcontinue\n\t\t}\n\t\t// If we need types but cached package doesn't have them, reload\n\t\tif needsTypes && cached.Types == nil {\n\t\t\tmissing = append(missing, path)\n\t\t}\n\t}\n\n\tif len(missing) > 0 {\n\t\tp.numLoadCalls++\n\t\tpkgs, err := packages.Load(&packages.Config{\n\t\t\tMode:       loadMode,\n\t\t\tBuildFlags: p.buildFlags,\n\t\t}, missing...)\n\t\tif err != nil {\n\t\t\tp.loadErrors = append(p.loadErrors, err)\n\t\t}\n\n\t\tfor _, pkg := range pkgs {\n\t\t\tp.addToCache(pkg)\n\t\t}\n\t}\n\n\tres := make([]*packages.Package, 0, len(importPaths))\n\tfor _, path := range importPaths {\n\t\tpkg, ok := p.loadFromCache(path)\n\t\tif ok {\n\t\t\tres = append(res, pkg)\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (p *Packages) addToCache(pkg *packages.Package) {\n\timp := NormalizeVendor(pkg.PkgPath)\n\tp.packages[imp] = pkg\n\tp.packages[pkg.Dir] = pkg // also cache by dir for relative path bindings\n}\n\nfunc (p *Packages) loadFromCache(importPath string) (*packages.Package, bool) {\n\tpkg, ok := p.packages[importPath]\n\tif ok {\n\t\treturn pkg, true\n\t}\n\n\tpkg, ok = p.packages[NormalizeVendor(importPath)]\n\tif ok {\n\t\treturn pkg, true\n\t}\n\n\t// Special case relative paths. For example \"./mypkg\" or \"../otherpkg\"\n\tif strings.HasPrefix(importPath, \"./\") || strings.HasPrefix(importPath, \"../\") {\n\t\twd, err := os.Getwd()\n\t\tif err != nil {\n\t\t\tp.loadErrors = append(p.loadErrors,\n\t\t\t\tfmt.Errorf(\"unable to get working directory: %w\", err))\n\t\t\treturn nil, false\n\t\t}\n\t\tif pkg, ok := p.packages[filepath.Clean(filepath.Join(wd, importPath))]; ok {\n\t\t\treturn pkg, true\n\t\t}\n\t}\n\n\treturn nil, false\n}\n\n// Load works the same as LoadAll, except a single package at a time.\nfunc (p *Packages) Load(importPath string) *packages.Package {\n\tpkg, ok := p.loadFromCache(importPath)\n\tif ok {\n\t\treturn pkg\n\t}\n\tpkgs := p.LoadAll(importPath)\n\tif len(pkgs) == 0 {\n\t\treturn nil\n\t}\n\treturn pkgs[0]\n}\n\n// LoadWithTypes tries a standard load, which may not have enough type info (TypesInfo== nil)\n// available if the imported package is a second order dependency. Fortunately this doesnt happen\n// very often, so we can just issue a load when we detect it.\nfunc (p *Packages) LoadWithTypes(importPath string) *packages.Package {\n\tpkg := p.Load(importPath)\n\tif pkg == nil || pkg.TypesInfo == nil {\n\t\tp.numLoadCalls++\n\t\tpkgs, err := packages.Load(&packages.Config{\n\t\t\tMode:       mode,\n\t\t\tBuildFlags: p.buildFlags,\n\t\t}, importPath)\n\t\tif err != nil {\n\t\t\tp.loadErrors = append(p.loadErrors, err)\n\t\t\treturn nil\n\t\t}\n\t\tp.addToCache(pkgs[0])\n\t\tpkg = pkgs[0]\n\t}\n\treturn pkg\n}\n\n// LoadAllNames will call packages.Load with the NeedName mode only and will store the package name\n// in a cache. it does not return any package data, but after calling this you can call\n// NameForPackage to get the package name without loading the full package data.\nfunc (p *Packages) LoadAllNames(importPaths ...string) {\n\timportPaths = dedupPackages(importPaths)\n\tmissing := make([]string, 0, len(importPaths))\n\tfor _, importPath := range importPaths {\n\t\tif importPath == \"\" {\n\t\t\tpanic(errors.New(\"import path can not be empty\"))\n\t\t}\n\n\t\tif p.importToName == nil {\n\t\t\tp.importToName = map[string]string{}\n\t\t}\n\n\t\timportPath = NormalizeVendor(importPath)\n\n\t\t// if it's in the name cache use it\n\t\tif name := p.importToName[importPath]; name != \"\" {\n\t\t\tcontinue\n\t\t}\n\n\t\t// otherwise we might have already loaded the full package data for it cached\n\t\tpkg := p.packages[importPath]\n\t\tif pkg != nil {\n\t\t\tif _, ok := p.importToName[importPath]; !ok {\n\t\t\t\tp.importToName[importPath] = pkg.Name\n\t\t\t}\n\n\t\t\tcontinue\n\t\t}\n\n\t\tmissing = append(missing, importPath)\n\t}\n\n\tif len(missing) > 0 {\n\t\tpkgs, err := packages.Load(&packages.Config{\n\t\t\tMode:       packages.NeedName,\n\t\t\tBuildFlags: p.buildFlags,\n\t\t}, missing...)\n\t\tif err != nil {\n\t\t\tp.loadErrors = append(p.loadErrors, err)\n\t\t}\n\n\t\tfor _, pkg := range pkgs {\n\t\t\tif pkg.Name == \"\" {\n\t\t\t\tpkg.Name = SanitizePackageName(filepath.Base(pkg.PkgPath))\n\t\t\t}\n\n\t\t\tp.importToName[pkg.PkgPath] = pkg.Name\n\t\t}\n\t}\n}\n\n// NameForPackage looks up the package name from the package stanza in the go files at the given\n// import path.\nfunc (p *Packages) NameForPackage(importPath string) string {\n\tp.numNameCalls++\n\tp.LoadAllNames(importPath)\n\n\timportPath = NormalizeVendor(importPath)\n\treturn p.importToName[importPath]\n}\n\n// Evict removes a given package import path from the cache. Further calls to Load will fetch it\n// from disk.\nfunc (p *Packages) Evict(importPath string) {\n\tpkg, ok := p.packages[importPath]\n\tif !ok {\n\t\treturn\n\t}\n\tdelete(p.packages, importPath)\n\tdelete(p.packages, pkg.Dir)\n}\n\nfunc (p *Packages) ModTidy() error {\n\tp.packages = nil\n\ttidyCmd := exec.Command(\"go\", \"mod\", \"tidy\")\n\ttidyCmd.Stdout = os.Stdout\n\ttidyCmd.Stderr = os.Stdout\n\tif err := tidyCmd.Run(); err != nil {\n\t\treturn fmt.Errorf(\"go mod tidy failed: %w\", err)\n\t}\n\treturn nil\n}\n\n// disableOptimizationsFlag is passed to go build to skip compiler optimizations.\n// This makes cold cache builds ~2x faster since we only need error checking.\nconst disableOptimizationsFlag = \"-gcflags=-N -l\"\n\n// ValidateWithBuild validates packages by running `go build` instead of loading\n// with NeedTypes. This is more efficient because:\n// 1. It reuses the existing build cache\n// 2. The user will likely run `go build` anyway after generation\n// 3. It avoids double-loading type information\n//\n// If fastValidation is true, disables compiler optimizations for faster builds.\nfunc ValidateWithBuild(fastValidation bool, importPaths ...string) error {\n\targs := []string{\"build\"}\n\tif fastValidation {\n\t\targs = append(args, disableOptimizationsFlag)\n\t}\n\targs = append(args, importPaths...)\n\n\tcmd := exec.Command(\"go\", args...)\n\toutput, err := cmd.CombinedOutput()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"validation failed: %w\\n%s\", err, string(output))\n\t}\n\treturn nil\n}\n\n// Errors returns any errors that were returned by Load, either from the call itself or any of the\n// loaded packages.\nfunc (p *Packages) Errors() PkgErrors {\n\tres := append([]error{}, p.loadErrors...)\n\tfor _, pkg := range p.packages {\n\t\tfor _, err := range pkg.Errors {\n\t\t\tres = append(res, err)\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (p *Packages) Count() int {\n\treturn len(p.packages)\n}\n\ntype PkgErrors []error\n\nfunc (p PkgErrors) Error() string {\n\tvar b bytes.Buffer\n\tb.WriteString(\"packages.Load: \")\n\tfor _, e := range p {\n\t\tb.WriteString(e.Error() + \"\\n\")\n\t}\n\treturn b.String()\n}\n"
  },
  {
    "path": "internal/code/packages_test.go",
    "content": "package code\n\nimport (\n\t\"errors\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\t\"golang.org/x/tools/go/packages\"\n)\n\nfunc TestPackages(t *testing.T) {\n\tt.Run(\"name for existing package does not load again\", func(t *testing.T) {\n\t\tp := initialState(t)\n\t\trequire.Equal(\n\t\t\tt,\n\t\t\t\"a\",\n\t\t\tp.NameForPackage(\"github.com/99designs/gqlgen/internal/code/testdata/a\"),\n\t\t)\n\t\trequire.Equal(t, 1, p.numLoadCalls)\n\t})\n\n\tt.Run(\"name for unknown package makes name only load\", func(t *testing.T) {\n\t\tp := initialState(t)\n\t\trequire.Equal(\n\t\t\tt,\n\t\t\t\"c\",\n\t\t\tp.NameForPackage(\"github.com/99designs/gqlgen/internal/code/testdata/c\"),\n\t\t)\n\t\trequire.Equal(t, 1, p.numLoadCalls)\n\t\trequire.Equal(t, 1, p.numNameCalls)\n\t})\n\n\tt.Run(\"evicting a package causes it to load again\", func(t *testing.T) {\n\t\tp := initialState(t)\n\t\tp.Evict(\"github.com/99designs/gqlgen/internal/code/testdata/b\")\n\t\trequire.Equal(t, \"a\", p.Load(\"github.com/99designs/gqlgen/internal/code/testdata/a\").Name)\n\t\trequire.Equal(t, 1, p.numLoadCalls)\n\t\trequire.Equal(t, \"b\", p.Load(\"github.com/99designs/gqlgen/internal/code/testdata/b\").Name)\n\t\trequire.Equal(t, 2, p.numLoadCalls)\n\t})\n\n\tt.Run(\"able to load private package with build tags\", func(t *testing.T) {\n\t\tp := initialState(t, WithBuildTags(\"private\"))\n\t\tp.Evict(\"github.com/99designs/gqlgen/internal/code/testdata/a\")\n\t\trequire.Equal(t, \"a\", p.Load(\"github.com/99designs/gqlgen/internal/code/testdata/a\").Name)\n\t\trequire.Equal(t, 2, p.numLoadCalls)\n\t\trequire.Equal(t, \"p\", p.Load(\"github.com/99designs/gqlgen/internal/code/testdata/p\").Name)\n\t\trequire.Equal(t, 3, p.numLoadCalls)\n\t})\n\n\tt.Run(\"able to load packages by relative path\", func(t *testing.T) {\n\t\tp := initialState(t)\n\t\trequire.Equal(t, \"a\", p.Load(\"./testdata/a\").Name)\n\t\trequire.Equal(t, 1, p.numLoadCalls)\n\t\trequire.Equal(t, \"b\", p.Load(\"./testdata/b\").Name)\n\t\trequire.Equal(t, 1, p.numLoadCalls)\n\t})\n\n\tt.Run(\"able to load relative package again after evict\", func(t *testing.T) {\n\t\tp := initialState(t)\n\t\tp.Evict(\"github.com/99designs/gqlgen/internal/code/testdata/b\")\n\t\trequire.Equal(t, \"a\", p.Load(\"./testdata/a\").Name)\n\t\trequire.Equal(t, 1, p.numLoadCalls)\n\t\trequire.Equal(t, \"b\", p.Load(\"./testdata/b\").Name)\n\t\trequire.Equal(t, 2, p.numLoadCalls)\n\t})\n}\n\nfunc TestPackagesErrors(t *testing.T) {\n\tloadFirstErr := errors.New(\"first\")\n\tloadSecondErr := errors.New(\"second\")\n\tpackageErr := packages.Error{Msg: \"package\"}\n\tp := &Packages{\n\t\tloadErrors: []error{loadFirstErr, loadSecondErr},\n\t\tpackages: map[string]*packages.Package{\n\t\t\t\"github.com/99designs/gqlgen/internal/code/testdata/a\": {\n\t\t\t\tErrors: []packages.Error{packageErr},\n\t\t\t},\n\t\t},\n\t}\n\n\terrs := p.Errors()\n\n\tassert.Equal(t, PkgErrors([]error{loadFirstErr, loadSecondErr, packageErr}), errs)\n}\n\nfunc TestNameForPackage(t *testing.T) {\n\tvar p Packages\n\n\tassert.Equal(t, \"api\", p.NameForPackage(\"github.com/99designs/gqlgen/api\"))\n\n\t// does not contain go code, should still give a valid name\n\tassert.Equal(t, \"docs\", p.NameForPackage(\"github.com/99designs/gqlgen/docs\"))\n\tassert.Equal(t, \"github_com\", p.NameForPackage(\"github.com\"))\n}\n\nfunc TestLoadAllNames(t *testing.T) {\n\tvar p Packages\n\n\tp.LoadAllNames(\n\t\t\"github.com/99designs/gqlgen/api\",\n\t\t\"github.com/99designs/gqlgen/docs\",\n\t\t\"github.com\",\n\t)\n\n\t// should now be cached\n\tassert.Equal(t, 0, p.numNameCalls)\n\tassert.Equal(t, \"api\", p.importToName[\"github.com/99designs/gqlgen/api\"])\n\tassert.Equal(t, \"docs\", p.importToName[\"github.com/99designs/gqlgen/docs\"])\n\tassert.Equal(t, \"github_com\", p.importToName[\"github.com\"])\n}\n\nfunc TestWithLightModePrefetch(t *testing.T) {\n\tt.Run(\"default is false\", func(t *testing.T) {\n\t\tp := NewPackages()\n\t\trequire.False(t, p.useLightModePrefetch)\n\t})\n\n\tt.Run(\"can be enabled\", func(t *testing.T) {\n\t\tp := NewPackages(WithLightModePrefetch(true))\n\t\trequire.True(t, p.useLightModePrefetch)\n\t})\n\n\tt.Run(\"can be disabled\", func(t *testing.T) {\n\t\tp := NewPackages(WithLightModePrefetch(false))\n\t\trequire.False(t, p.useLightModePrefetch)\n\t})\n\n\tt.Run(\"LoadAll uses full mode when disabled\", func(t *testing.T) {\n\t\tp := NewPackages(WithLightModePrefetch(false))\n\t\tpkgs := p.LoadAll(\"github.com/99designs/gqlgen/internal/code/testdata/a\")\n\t\trequire.NotEmpty(t, pkgs)\n\t\t// Full mode includes type info\n\t\trequire.NotNil(t, pkgs[0].Types)\n\t})\n\n\tt.Run(\"LoadAll uses light mode when enabled\", func(t *testing.T) {\n\t\tp := NewPackages(WithLightModePrefetch(true))\n\t\tpkgs := p.LoadAll(\"github.com/99designs/gqlgen/internal/code/testdata/a\")\n\t\trequire.NotEmpty(t, pkgs)\n\t\t// Light mode does not include type info\n\t\trequire.Nil(t, pkgs[0].Types)\n\t})\n}\n\nfunc initialState(t *testing.T, opts ...Option) *Packages {\n\tt.Helper()\n\tp := NewPackages(opts...)\n\tpkgs := p.LoadAll(\n\t\t\"github.com/99designs/gqlgen/internal/code/testdata/a\",\n\t\t\"github.com/99designs/gqlgen/internal/code/testdata/b\",\n\t\t\"./testdata/a\",\n\t\t\"./testdata/b\",\n\t)\n\n\trequire.Empty(t, p.Errors())\n\trequire.Equal(t, 1, p.numLoadCalls)\n\trequire.Equal(t, 0, p.numNameCalls)\n\trequire.Equal(t, \"a\", pkgs[0].Name)\n\trequire.Equal(t, \"b\", pkgs[1].Name)\n\treturn p\n}\n"
  },
  {
    "path": "internal/code/testdata/a/a.go",
    "content": "package a\n\nvar A = \"A\"\n"
  },
  {
    "path": "internal/code/testdata/b/b.go",
    "content": "package b\n\nimport \"github.com/99designs/gqlgen/internal/code/testdata/a\"\n\nvar B = a.A + \" B\"\n"
  },
  {
    "path": "internal/code/testdata/c/c.go",
    "content": "package c\n\nimport (\n\t\"github.com/99designs/gqlgen/internal/code/testdata/b\"\n)\n\nvar C = b.B + \" C\"\n"
  },
  {
    "path": "internal/code/testdata/p/p.go",
    "content": "//go:build private\n\n// This file is excluded from the build unless the \"private\" build tag is set.\n// This is used to test loading private packages.\n// See internal/code/packages_test.go for more details.\npackage p\n\nimport (\n\t\"github.com/99designs/gqlgen/internal/code/testdata/b\"\n)\n\nvar P = b.C + \" P\"\n"
  },
  {
    "path": "internal/code/util.go",
    "content": "package code\n\nimport (\n\t\"go/build\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"regexp\"\n\t\"strings\"\n)\n\n// take a string in the form github.com/package/blah.Type and split it into package and type\nfunc PkgAndType(name string) (string, string) {\n\tparts := strings.Split(name, \".\")\n\tif len(parts) == 1 {\n\t\treturn \"\", name\n\t}\n\n\treturn strings.Join(parts[:len(parts)-1], \".\"), parts[len(parts)-1]\n}\n\nvar modsRegex = regexp.MustCompile(`^(\\*|\\[\\])*`)\n\n// NormalizeVendor takes a qualified package path and turns it into normal one.\n// eg .\n// github.com/foo/vendor/github.com/99designs/gqlgen/graphql becomes\n// github.com/99designs/gqlgen/graphql\nfunc NormalizeVendor(pkg string) string {\n\tmodifiers := modsRegex.FindAllString(pkg, 1)[0]\n\tpkg = strings.TrimPrefix(pkg, modifiers)\n\tparts := strings.Split(pkg, \"/vendor/\")\n\treturn modifiers + parts[len(parts)-1]\n}\n\n// QualifyPackagePath takes an import and fully qualifies it with a vendor dir, if one is required.\n// eg .\n// github.com/99designs/gqlgen/graphql becomes\n// github.com/foo/vendor/github.com/99designs/gqlgen/graphql\n//\n// x/tools/packages only supports 'qualified package paths' so this will need to be done prior to\n// calling it\n// See https://github.com/golang/go/issues/30289\nfunc QualifyPackagePath(importPath string) string {\n\twd, _ := os.Getwd()\n\n\t// in go module mode, the import path doesn't need fixing\n\tif _, ok := goModuleRoot(wd); ok {\n\t\treturn importPath\n\t}\n\n\tpkg, err := build.Import(importPath, wd, 0)\n\tif err != nil {\n\t\treturn importPath\n\t}\n\n\treturn pkg.ImportPath\n}\n\nvar invalidPackageNameChar = regexp.MustCompile(`\\W`)\n\nfunc SanitizePackageName(pkg string) string {\n\treturn invalidPackageNameChar.ReplaceAllLiteralString(filepath.Base(pkg), \"_\")\n}\n"
  },
  {
    "path": "internal/code/util_test.go",
    "content": "package code\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestNormalizeVendor(t *testing.T) {\n\trequire.Equal(t, \"bar/baz\", NormalizeVendor(\"foo/vendor/bar/baz\"))\n\trequire.Equal(t, \"[]bar/baz\", NormalizeVendor(\"[]foo/vendor/bar/baz\"))\n\trequire.Equal(t, \"*bar/baz\", NormalizeVendor(\"*foo/vendor/bar/baz\"))\n\trequire.Equal(t, \"*[]*bar/baz\", NormalizeVendor(\"*[]*foo/vendor/bar/baz\"))\n\trequire.Equal(t, \"[]*bar/baz\", NormalizeVendor(\"[]*foo/vendor/bar/baz\"))\n}\n"
  },
  {
    "path": "internal/imports/prune.go",
    "content": "// Wrapper around x/tools/imports that only removes imports, never adds new ones.\n\npackage imports\n\nimport (\n\t\"bytes\"\n\t\"go/ast\"\n\t\"go/format\"\n\t\"go/parser\"\n\t\"go/printer\"\n\t\"go/token\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"golang.org/x/tools/go/ast/astutil\"\n\t\"golang.org/x/tools/imports\"\n\n\t\"github.com/99designs/gqlgen/internal/code\"\n)\n\n// bufPool reuses buffers across Prune calls to reduce allocations.\nvar bufPool = sync.Pool{\n\tNew: func() any {\n\t\treturn new(bytes.Buffer)\n\t},\n}\n\n// getBuffer returns a buffer and a release function.\n// If usePool is true, the buffer is obtained from the pool and release returns it.\n// If usePool is false, a new buffer is allocated and release is a no-op.\nfunc getBuffer(usePool bool) (*bytes.Buffer, func()) {\n\tif usePool {\n\t\tbuf := bufPool.Get().(*bytes.Buffer)\n\t\tbuf.Reset()\n\t\treturn buf, func() { bufPool.Put(buf) }\n\t}\n\treturn new(bytes.Buffer), func() {}\n}\n\n// defaultTabWidth is the standard Go tab width used by gofmt.\nconst defaultTabWidth = 8\n\ntype visitFn func(node ast.Node)\n\nfunc (fn visitFn) Visit(node ast.Node) ast.Visitor {\n\tfn(node)\n\treturn fn\n}\n\n// PruneOptions configures the behavior of the Prune function.\ntype PruneOptions struct {\n\t// SkipImportGrouping uses format.Source instead of imports.Process.\n\t// Faster but doesn't group imports by stdlib/external/internal.\n\tSkipImportGrouping bool\n\t// UseBufferPooling reuses buffers via sync.Pool to reduce GC pressure.\n\tUseBufferPooling bool\n}\n\n// Prune removes any unused imports from Go source code.\nfunc Prune(\n\tfilename string,\n\tsrc []byte,\n\tpackages *code.Packages,\n\topts PruneOptions,\n) ([]byte, error) {\n\tfset := token.NewFileSet()\n\n\tfile, err := parser.ParseFile(fset, filename, src, parser.ParseComments|parser.AllErrors)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tunused := getUnusedImports(file, packages)\n\tfor ipath, name := range unused {\n\t\tastutil.DeleteNamedImport(fset, file, name, ipath)\n\t}\n\n\tbuf, release := getBuffer(opts.UseBufferPooling)\n\tdefer release()\n\n\tprintConfig := &printer.Config{Mode: printer.TabIndent, Tabwidth: defaultTabWidth}\n\tif err := printConfig.Fprint(buf, fset, file); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif opts.SkipImportGrouping {\n\t\treturn formatSourceFast(buf.Bytes())\n\t}\n\treturn formatSourceWithGrouping(filename, buf.Bytes())\n}\n\n// formatSourceFast formats source code using go/format.Source.\n// This is fast but doesn't group imports by category.\nfunc formatSourceFast(src []byte) ([]byte, error) {\n\treturn format.Source(src)\n}\n\n// formatSourceWithGrouping formats source code using imports.Process.\n// This groups imports by stdlib/external/internal but is slower.\nfunc formatSourceWithGrouping(filename string, src []byte) ([]byte, error) {\n\topts := &imports.Options{\n\t\tFormatOnly: true,\n\t\tComments:   true,\n\t\tTabIndent:  true,\n\t\tTabWidth:   defaultTabWidth,\n\t}\n\treturn imports.Process(filename, src, opts)\n}\n\nfunc getUnusedImports(file ast.Node, packages *code.Packages) map[string]string {\n\timported := map[string]*ast.ImportSpec{}\n\tused := map[string]bool{}\n\n\tast.Walk(visitFn(func(node ast.Node) {\n\t\tif node == nil {\n\t\t\treturn\n\t\t}\n\t\tswitch v := node.(type) {\n\t\tcase *ast.ImportSpec:\n\t\t\tif v.Name != nil {\n\t\t\t\timported[v.Name.Name] = v\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tipath := strings.Trim(v.Path.Value, `\"`)\n\t\t\tif ipath == \"C\" {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tlocal := packages.NameForPackage(ipath)\n\n\t\t\timported[local] = v\n\t\tcase *ast.SelectorExpr:\n\t\t\txident, ok := v.X.(*ast.Ident)\n\t\t\tif !ok {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif xident.Obj != nil {\n\t\t\t\t// if the parser can resolve it, it's not a package ref\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tused[xident.Name] = true\n\t\t}\n\t}), file)\n\n\tfor pkg := range used {\n\t\tdelete(imported, pkg)\n\t}\n\n\tunusedImport := map[string]string{}\n\tfor pkg, is := range imported {\n\t\tif !used[pkg] && pkg != \"_\" && pkg != \".\" {\n\t\t\tname := \"\"\n\t\t\tif is.Name != nil {\n\t\t\t\tname = is.Name.Name\n\t\t\t}\n\t\t\tunusedImport[strings.Trim(is.Path.Value, `\"`)] = name\n\t\t}\n\t}\n\n\treturn unusedImport\n}\n"
  },
  {
    "path": "internal/imports/prune_test.go",
    "content": "package imports\n\nimport (\n\t\"os\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/internal/code\"\n)\n\nfunc TestPrune(t *testing.T) {\n\ttestFile := \"testdata/unused.go\"\n\texpectedFile := \"testdata/unused.expected.go\"\n\n\tt.Run(\"default behavior (imports.Process)\", func(t *testing.T) {\n\t\tb, err := Prune(testFile, mustReadFile(testFile), code.NewPackages(), PruneOptions{})\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(\n\t\t\tt,\n\t\t\tstrings.ReplaceAll(string(mustReadFile(expectedFile)), \"\\r\\n\", \"\\n\"),\n\t\t\tstring(b),\n\t\t)\n\t})\n\n\tt.Run(\"with skip_import_grouping\", func(t *testing.T) {\n\t\tb, err := Prune(testFile, mustReadFile(testFile), code.NewPackages(), PruneOptions{\n\t\t\tSkipImportGrouping: true,\n\t\t})\n\t\trequire.NoError(t, err)\n\t\trequire.Contains(t, string(b), \"package testdata\")\n\t})\n\n\tt.Run(\"with buffer_pooling only\", func(t *testing.T) {\n\t\tb, err := Prune(testFile, mustReadFile(testFile), code.NewPackages(), PruneOptions{\n\t\t\tUseBufferPooling: true,\n\t\t})\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(\n\t\t\tt,\n\t\t\tstrings.ReplaceAll(string(mustReadFile(expectedFile)), \"\\r\\n\", \"\\n\"),\n\t\t\tstring(b),\n\t\t)\n\t})\n\n\tt.Run(\"with both options\", func(t *testing.T) {\n\t\tb, err := Prune(testFile, mustReadFile(testFile), code.NewPackages(), PruneOptions{\n\t\t\tSkipImportGrouping: true,\n\t\t\tUseBufferPooling:   true,\n\t\t})\n\t\trequire.NoError(t, err)\n\t\trequire.Contains(t, string(b), \"package testdata\")\n\t})\n}\n\nfunc mustReadFile(filename string) []byte {\n\tb, err := os.ReadFile(filename)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "internal/imports/testdata/unused.expected.go",
    "content": "package testdata\n\nimport (\n\ta \"fmt\"\n\t\"time\"\n\n\t_ \"underscore\"\n)\n\ntype foo struct {\n\tTime time.Time `json:\"text\"`\n}\n\nfunc fn() {\n\ta.Println(\"hello\")\n}\n\ntype Message struct {\n\tID        string    `json:\"id\"`\n\tText      string    `json:\"text\"`\n\tCreatedBy string    `json:\"createdBy\"`\n\tCreatedAt time.Time `json:\"createdAt\"`\n}\n"
  },
  {
    "path": "internal/imports/testdata/unused.go",
    "content": "package testdata\n\nimport (\n\ta \"fmt\"\n\t\"time\"\n\n\t_ \"underscore\"\n)\n\ntype foo struct {\n\tTime time.Time `json:\"text\"`\n}\n\nfunc fn() {\n\ta.Println(\"hello\")\n}\n\ntype Message struct {\n\tID        string    `json:\"id\"`\n\tText      string    `json:\"text\"`\n\tCreatedBy string    `json:\"createdBy\"`\n\tCreatedAt time.Time `json:\"createdAt\"`\n}\n"
  },
  {
    "path": "internal/rewrite/rewriter.go",
    "content": "package rewrite\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"go/ast\"\n\t\"go/token\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"golang.org/x/tools/go/packages\"\n\n\t\"github.com/99designs/gqlgen/internal/code\"\n)\n\ntype Rewriter struct {\n\tpkg    *packages.Package\n\tfiles  map[string]string\n\tcopied map[ast.Decl]bool\n}\n\nfunc New(dir string) (*Rewriter, error) {\n\timportPath := code.ImportPathForDir(dir)\n\tif importPath == \"\" {\n\t\treturn nil, fmt.Errorf(\"import path not found for directory: %q\", dir)\n\t}\n\tpkgs, err := packages.Load(&packages.Config{\n\t\tMode: packages.NeedSyntax | packages.NeedTypes,\n\t}, importPath)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif len(pkgs) == 0 {\n\t\treturn nil, fmt.Errorf(\"package not found for importPath: %s\", importPath)\n\t}\n\n\treturn &Rewriter{\n\t\tpkg:    pkgs[0],\n\t\tfiles:  map[string]string{},\n\t\tcopied: map[ast.Decl]bool{},\n\t}, nil\n}\n\nfunc (r *Rewriter) getSource(start, end token.Pos) string {\n\tstartPos := r.pkg.Fset.Position(start)\n\tendPos := r.pkg.Fset.Position(end)\n\n\tif startPos.Filename != endPos.Filename {\n\t\tpanic(\"cant get source spanning multiple files\")\n\t}\n\n\tfile := r.getFile(startPos.Filename)\n\treturn file[startPos.Offset:endPos.Offset]\n}\n\nfunc (r *Rewriter) getFile(filename string) string {\n\tif _, ok := r.files[filename]; !ok {\n\t\tb, err := os.ReadFile(filename)\n\t\tif err != nil {\n\t\t\tpanic(fmt.Errorf(\"unable to load file, already exists: %w\", err))\n\t\t}\n\n\t\tr.files[filename] = string(b)\n\t}\n\n\treturn r.files[filename]\n}\n\nfunc (r *Rewriter) GetPrevDecl(structname, methodname string) *ast.FuncDecl {\n\tfor _, f := range r.pkg.Syntax {\n\t\tfor _, d := range f.Decls {\n\t\t\td, isFunc := d.(*ast.FuncDecl)\n\t\t\tif !isFunc {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif d.Name.Name != methodname {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif d.Recv == nil || len(d.Recv.List) == 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\trecv := d.Recv.List[0].Type\n\t\t\tif star, isStar := recv.(*ast.StarExpr); isStar {\n\t\t\t\trecv = star.X\n\t\t\t}\n\t\t\tident, ok := recv.(*ast.Ident)\n\t\t\tif !ok {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif ident.Name != structname {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tr.copied[d] = true\n\t\t\treturn d\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (r *Rewriter) GetMethodComment(structname, methodname string) string {\n\td := r.GetPrevDecl(structname, methodname)\n\tif d != nil && d.Doc != nil {\n\t\tcomments := make([]string, len(d.Doc.List))\n\n\t\tfor i := range d.Doc.List {\n\t\t\tc := d.Doc.List[i].Text\n\n\t\t\tswitch c[1] {\n\t\t\tcase '/':\n\t\t\t\t//-style comment (no newline at the end)\n\t\t\t\tc = c[2:]\n\t\t\tcase '*':\n\t\t\t\t/*-style comment */\n\t\t\t\tc = c[2 : len(c)-2]\n\t\t\t}\n\n\t\t\tcomments[i] = c\n\t\t}\n\n\t\treturn strings.Join(comments, \"\\n\")\n\t}\n\n\treturn \"\"\n}\n\nfunc (r *Rewriter) GetMethodBody(structname, methodname string) string {\n\td := r.GetPrevDecl(structname, methodname)\n\tif d != nil {\n\t\treturn r.getSource(d.Body.Pos()+1, d.Body.End()-1)\n\t}\n\treturn \"\"\n}\n\nfunc (r *Rewriter) MarkStructCopied(name string) {\n\tfor _, f := range r.pkg.Syntax {\n\t\tfor _, d := range f.Decls {\n\t\t\td, isGen := d.(*ast.GenDecl)\n\t\t\tif !isGen {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif d.Tok != token.TYPE || len(d.Specs) == 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tspec, isTypeSpec := d.Specs[0].(*ast.TypeSpec)\n\t\t\tif !isTypeSpec {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif spec.Name.Name != name {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tr.copied[d] = true\n\t\t}\n\t}\n}\n\nfunc (r *Rewriter) ExistingImports(filename string) []Import {\n\tfilename, err := filepath.Abs(filename)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tfor _, f := range r.pkg.Syntax {\n\t\tpos := r.pkg.Fset.Position(f.Pos())\n\n\t\tif filename != pos.Filename {\n\t\t\tcontinue\n\t\t}\n\n\t\tvar imps []Import\n\t\tfor _, i := range f.Imports {\n\t\t\tname := \"\"\n\t\t\tif i.Name != nil {\n\t\t\t\tname = i.Name.Name\n\t\t\t}\n\t\t\tpath, err := strconv.Unquote(i.Path.Value)\n\t\t\tif err != nil {\n\t\t\t\tpanic(err)\n\t\t\t}\n\t\t\timps = append(imps, Import{name, path})\n\t\t}\n\t\treturn imps\n\t}\n\treturn nil\n}\n\nfunc (r *Rewriter) RemainingSource(filename string) string {\n\tfilename, err := filepath.Abs(filename)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tfor _, f := range r.pkg.Syntax {\n\t\tpos := r.pkg.Fset.Position(f.Pos())\n\n\t\tif filename != pos.Filename {\n\t\t\tcontinue\n\t\t}\n\n\t\tvar buf bytes.Buffer\n\n\t\tfor _, d := range f.Decls {\n\t\t\tif r.copied[d] {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif d, isGen := d.(*ast.GenDecl); isGen && d.Tok == token.IMPORT {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tbuf.WriteString(r.getSource(d.Pos(), d.End()))\n\t\t\tbuf.WriteString(\"\\n\")\n\t\t}\n\n\t\treturn strings.TrimSpace(buf.String())\n\t}\n\treturn \"\"\n}\n\ntype Import struct {\n\tAlias      string\n\tImportPath string\n}\n"
  },
  {
    "path": "internal/rewrite/rewriter_test.go",
    "content": "package rewrite\n\nimport (\n\t\"go/ast\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\t\"golang.org/x/tools/go/packages\"\n)\n\nfunc TestRewriter(t *testing.T) {\n\tt.Run(\"default\", func(t *testing.T) {\n\t\tr, err := New(\"testdata\")\n\t\trequire.NoError(t, err)\n\n\t\tbody := r.GetMethodBody(\"Foo\", \"Method\")\n\t\trequire.Equal(t, `\n\t// leading comment\n\n\t// field comment\n\tm.Field++\n\n\t// trailing comment\n`, strings.ReplaceAll(body, \"\\r\\n\", \"\\n\"))\n\n\t\timps := r.ExistingImports(\"testdata/example.go\")\n\t\trequire.Len(t, imps, 2)\n\t\tassert.Equal(t, []Import{\n\t\t\t{\n\t\t\t\tAlias:      \"lol\",\n\t\t\t\tImportPath: \"bytes\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tAlias:      \"\",\n\t\t\t\tImportPath: \"fmt\",\n\t\t\t},\n\t\t}, imps)\n\t})\n\n\tt.Run(\"out of scope dir\", func(t *testing.T) {\n\t\t_, err := New(\"../../../out-of-gomod/package\")\n\t\trequire.Error(t, err)\n\t})\n}\n\nfunc TestRewriter_GetMethodComment(t *testing.T) {\n\ttype fields struct {\n\t\tpkg    *packages.Package\n\t\tfiles  map[string]string\n\t\tcopied map[ast.Decl]bool\n\t}\n\ttype args struct {\n\t\tstructname string\n\t\tmethodname string\n\t}\n\ttests := []struct {\n\t\tname   string\n\t\tfields fields\n\t\targs   args\n\t\twant   string\n\t}{\n\t\t{\n\t\t\tname: \"comments\",\n\t\t\tfields: fields{\n\t\t\t\tpkg: &packages.Package{\n\t\t\t\t\tSyntax: []*ast.File{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tDecls: []ast.Decl{\n\t\t\t\t\t\t\t\t&ast.FuncDecl{\n\t\t\t\t\t\t\t\t\tName: &ast.Ident{Name: \"Method\"},\n\t\t\t\t\t\t\t\t\tDoc: &ast.CommentGroup{\n\t\t\t\t\t\t\t\t\t\tList: []*ast.Comment{\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tText: \"// comment\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tText: \"// comment\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tRecv: &ast.FieldList{\n\t\t\t\t\t\t\t\t\t\tList: []*ast.Field{\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tType: &ast.Ident{Name: \"Foo\"},\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tcopied: map[ast.Decl]bool{},\n\t\t\t},\n\t\t\targs: args{\n\t\t\t\tstructname: \"Foo\",\n\t\t\t\tmethodname: \"Method\",\n\t\t\t},\n\t\t\twant: \" comment\\n comment\", //nolint: dupword // this is for the test\n\t\t},\n\t\t{\n\t\t\tname: \"directive in comment\",\n\t\t\tfields: fields{\n\t\t\t\tpkg: &packages.Package{\n\t\t\t\t\tSyntax: []*ast.File{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tDecls: []ast.Decl{\n\t\t\t\t\t\t\t\t&ast.FuncDecl{\n\t\t\t\t\t\t\t\t\tName: &ast.Ident{Name: \"Method\"},\n\t\t\t\t\t\t\t\t\tDoc: &ast.CommentGroup{\n\t\t\t\t\t\t\t\t\t\tList: []*ast.Comment{\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tText: \"// comment\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tText: \"//nolint:test // test\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tRecv: &ast.FieldList{\n\t\t\t\t\t\t\t\t\t\tList: []*ast.Field{\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tType: &ast.Ident{Name: \"Foo\"},\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tcopied: map[ast.Decl]bool{},\n\t\t\t},\n\t\t\targs: args{\n\t\t\t\tstructname: \"Foo\",\n\t\t\t\tmethodname: \"Method\",\n\t\t\t},\n\t\t\twant: \" comment\\nnolint:test // test\",\n\t\t},\n\t}\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tr := &Rewriter{\n\t\t\t\tpkg:    tt.fields.pkg,\n\t\t\t\tfiles:  tt.fields.files,\n\t\t\t\tcopied: tt.fields.copied,\n\t\t\t}\n\t\t\tassert.Equalf(\n\t\t\t\tt,\n\t\t\t\ttt.want,\n\t\t\t\tr.GetMethodComment(tt.args.structname, tt.args.methodname),\n\t\t\t\t\"GetMethodComment(%v, %v)\",\n\t\t\t\ttt.args.structname,\n\t\t\t\ttt.args.methodname,\n\t\t\t)\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "internal/rewrite/testdata/example.go",
    "content": "package testdata\n\nimport (\n\tlol \"bytes\"\n\t\"fmt\"\n)\n\ntype Foo struct {\n\tField int\n}\n\nfunc (m *Foo) Method(arg int) {\n\t// leading comment\n\n\t// field comment\n\tm.Field++\n\n\t// trailing comment\n}\n\nfunc (m *Foo) String() string {\n\tvar buf lol.Buffer\n\tbuf.WriteString(fmt.Sprintf(\"%d\", m.Field))\n\treturn buf.String()\n}\n"
  },
  {
    "path": "internal/tools.go",
    "content": "//go:build tools\n\npackage main\n\nimport (\n\t_ \"github.com/matryer/moq\"\n)\n"
  },
  {
    "path": "main.go",
    "content": "package main\n\n//go:generate sh -c \"cd _examples && go generate ./...\"\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t_ \"embed\"\n\t\"errors\"\n\t\"fmt\"\n\t\"html/template\"\n\t\"io\"\n\t\"io/fs\"\n\t\"log\"\n\t\"os\"\n\t\"path/filepath\"\n\n\t\"github.com/urfave/cli/v3\"\n\n\t\"github.com/99designs/gqlgen/api\"\n\t\"github.com/99designs/gqlgen/codegen/config\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/internal/code\"\n\t\"github.com/99designs/gqlgen/plugin/servergen\"\n)\n\n//go:embed init-templates/schema.graphqls\nvar schemaFileContent string\n\n//go:embed init-templates/gqlgen.yml.gotmpl\nvar configFileTemplate string\n\nfunc getConfigFileContent(pkgName string) string {\n\tvar buf bytes.Buffer\n\tif err := template.Must(template.New(\"gqlgen.yml\").Parse(configFileTemplate)).\n\t\tExecute(&buf, pkgName); err != nil {\n\t\tpanic(err)\n\t}\n\treturn buf.String()\n}\n\nfunc fileExists(filename string) bool {\n\t_, err := os.Stat(filename)\n\treturn !errors.Is(err, fs.ErrNotExist)\n}\n\n// see Go source code:\n// https://github.com/golang/go/blob/f57ebed35132d02e5cf016f324853217fb545e91/src/cmd/go/internal/modload/init.go#L1283\nfunc findModuleRoot(dir string) (roots string) {\n\tif dir == \"\" {\n\t\tpanic(\"dir not set\")\n\t}\n\tdir = filepath.Clean(dir)\n\n\t// Look for enclosing go.mod.\n\tfor {\n\t\tif fi, err := os.Stat(filepath.Join(dir, \"go.mod\")); err == nil && !fi.IsDir() {\n\t\t\treturn dir\n\t\t}\n\t\td := filepath.Dir(dir)\n\t\tif d == dir { // the parent of the root is itself, so we can go no further\n\t\t\tbreak\n\t\t}\n\t\tdir = d\n\t}\n\treturn \"\"\n}\n\nfunc initFile(filename, contents string) error {\n\tif err := os.MkdirAll(filepath.Dir(filename), 0o755); err != nil {\n\t\treturn fmt.Errorf(\"unable to create directory for file '%s': %w\", filename, err)\n\t}\n\tif err := os.WriteFile(filename, []byte(contents), 0o644); err != nil {\n\t\treturn fmt.Errorf(\"unable to write file '%s': %w\", filename, err)\n\t}\n\n\treturn nil\n}\n\nvar initCmd = &cli.Command{\n\tName:  \"init\",\n\tUsage: \"create a new gqlgen project\",\n\tFlags: []cli.Flag{\n\t\t&cli.BoolFlag{Name: \"verbose, v\", Usage: \"show logs\"},\n\t\t&cli.StringFlag{Name: \"config, c\", Usage: \"the config filename\", Value: \"gqlgen.yml\"},\n\t\t&cli.StringFlag{\n\t\t\tName:  \"server\",\n\t\t\tUsage: \"where to write the server stub to\",\n\t\t\tValue: \"server.go\",\n\t\t},\n\t\t&cli.StringFlag{\n\t\t\tName:  \"schema\",\n\t\t\tUsage: \"where to write the schema stub to\",\n\t\t\tValue: \"graph/schema.graphqls\",\n\t\t},\n\t},\n\tAction: func(ctx context.Context, c *cli.Command) error {\n\t\tconfigFilename := c.String(\"config\")\n\t\tserverFilename := c.String(\"server\")\n\t\tschemaFilename := c.String(\"schema\")\n\n\t\tcwd, err := os.Getwd()\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"unable to determine current directory: %w\", err)\n\t\t}\n\t\tpkgName := code.ImportPathForDir(cwd)\n\t\tif pkgName == \"\" {\n\t\t\treturn errors.New(\n\t\t\t\t\"unable to determine import path for current directory, you probably need to run 'go mod init' first\",\n\t\t\t)\n\t\t}\n\t\tmodRoot := findModuleRoot(cwd)\n\t\tif modRoot == \"\" {\n\t\t\treturn cli.Exit(\"go.mod is missing. Please, do 'go mod init' first\\n\", 1)\n\t\t}\n\n\t\t// check schema and config don't already exist\n\t\tfor _, filename := range []string{configFilename, schemaFilename, serverFilename} {\n\t\t\tif fileExists(filename) {\n\t\t\t\treturn fmt.Errorf(\"%s already exists\", filename)\n\t\t\t}\n\t\t}\n\t\t_, err = config.LoadConfigFromDefaultLocations()\n\t\tif err == nil {\n\t\t\treturn cli.Exit(\"gqlgen.yml already exists in a parent directory\\n\", 1)\n\t\t}\n\n\t\t// create config\n\t\tfmt.Println(\"Creating\", configFilename)\n\t\tif err := initFile(configFilename, getConfigFileContent(pkgName)); err != nil {\n\t\t\treturn cli.Exit(err.Error()+\"\\n\", 1)\n\t\t}\n\n\t\t// create schema\n\t\tfmt.Println(\"Creating\", schemaFilename)\n\n\t\tif err := initFile(schemaFilename, schemaFileContent); err != nil {\n\t\t\treturn cli.Exit(err.Error()+\"\\n\", 1)\n\t\t}\n\n\t\t// create the package directory with a temporary file so that go recognises it as a package\n\t\t// and autobinding doesn't error out\n\t\ttmpPackageNameFile := \"graph/model/_tmp_gqlgen_init.go\"\n\t\tif err := initFile(tmpPackageNameFile, \"package model\"); err != nil {\n\t\t\treturn cli.Exit(err.Error()+\"\\n\", 1)\n\t\t}\n\t\tdefer os.Remove(tmpPackageNameFile)\n\n\t\tvar cfg *config.Config\n\t\tif cfg, err = config.LoadConfig(configFilename); err != nil {\n\t\t\tpanic(err)\n\t\t}\n\n\t\tfmt.Println(\"Creating\", serverFilename)\n\t\tfmt.Println(\"Generating...\")\n\t\tif err := api.Generate(cfg, api.AddPlugin(servergen.New(serverFilename))); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tfmt.Printf(\"\\nExec \\\"go run ./%s\\\" to start GraphQL server\\n\", serverFilename)\n\t\treturn nil\n\t},\n}\n\nvar generateCmd = &cli.Command{\n\tName:  \"generate\",\n\tUsage: \"generate a graphql server based on schema\",\n\tFlags: []cli.Flag{\n\t\t&cli.BoolFlag{Name: \"verbose, v\", Usage: \"show logs\"},\n\t\t&cli.StringFlag{Name: \"config, c\", Usage: \"the config filename\"},\n\t},\n\tAction: func(ctx context.Context, c *cli.Command) error {\n\t\tvar cfg *config.Config\n\t\tvar err error\n\t\tif configFilename := c.String(\"config\"); configFilename != \"\" {\n\t\t\tcfg, err = config.LoadConfig(configFilename)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t} else {\n\t\t\tcfg, err = config.LoadConfigFromDefaultLocations()\n\t\t\tif errors.Is(err, fs.ErrNotExist) {\n\t\t\t\tcfg, err = config.LoadDefaultConfig()\n\t\t\t}\n\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\treturn api.Generate(cfg)\n\t},\n}\n\nvar versionCmd = &cli.Command{\n\tName:  \"version\",\n\tUsage: \"print the version string\",\n\tAction: func(ctx context.Context, c *cli.Command) error {\n\t\tfmt.Println(graphql.Version)\n\t\treturn nil\n\t},\n}\n\nfunc main() {\n\tapp := &cli.Command{}\n\tapp.Name = \"gqlgen\"\n\tapp.Usage = generateCmd.Usage\n\tapp.Description = \"This is a library for quickly creating strictly typed graphql servers in golang. See https://gqlgen.com/ for a getting started guide.\"\n\tapp.HideVersion = true\n\tapp.Flags = generateCmd.Flags\n\tapp.Version = graphql.Version\n\tapp.Before = func(ctx context.Context, c *cli.Command) (context.Context, error) {\n\t\tif c.Bool(\"verbose\") {\n\t\t\tlog.SetFlags(0)\n\t\t} else {\n\t\t\tlog.SetOutput(io.Discard)\n\t\t}\n\t\treturn ctx, nil\n\t}\n\n\tapp.Action = generateCmd.Action\n\tapp.Commands = []*cli.Command{\n\t\tgenerateCmd,\n\t\tinitCmd,\n\t\tversionCmd,\n\t}\n\n\tif err := app.Run(context.Background(), os.Args); err != nil {\n\t\tfmt.Fprint(os.Stderr, err.Error()+\"\\n\")\n\t\tos.Exit(1)\n\t}\n}\n"
  },
  {
    "path": "plugin/federation/constants.go",
    "content": "package federation\n\nimport (\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\n\t\"github.com/99designs/gqlgen/codegen/config\"\n)\n\n// The name of the field argument that is injected into the resolver to support @requires.\nconst fieldArgRequires = \"_federationRequires\"\n\n// The name of the scalar type used in the injected field argument to support @requires.\nconst mapTypeName = \"_RequiresMap\"\n\n// The @key directive that defines the key fields for an entity.\nconst dirNameKey = \"key\"\n\n// The @requires directive that defines the required fields for an entity to be resolved.\nconst dirNameRequires = \"requires\"\n\n// The @entityResolver directive allows users to specify entity resolvers as batch lookups\nconst dirNameEntityResolver = \"entityResolver\"\n\nconst dirNamePopulateFromRepresentations = \"populateFromRepresentations\"\n\nvar populateFromRepresentationsImplementation = `func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error) {\n\tfc := graphql.GetFieldContext(ctx)\n\n\t// We get the Federation representations argument from the _entities resolver\n\trepresentations, ok := fc.Parent.Parent.Args[\"representations\"].([]map[string]any)\n\tif !ok {\n\t\treturn nil, errors.New(\"must be called from within _entities\")\n\t}\n\n\t// Get the index of the current entity in the representations list. This is\n\t// set by the execution context after the _entities resolver is called.\n\tindex := fc.Parent.Index\n\tif index == nil {\n\t\treturn nil, errors.New(\"couldn't find input index for entity\")\n\t}\n\n\tif len(representations) < *index {\n\t\treturn nil, errors.New(\"representation not found\")\n\t}\n\n\treturn representations[*index], nil\n}`\n\nconst DirNameEntityReference = \"entityReference\"\n\n// The fields arguments must be provided to both key and requires directives.\nconst DirArgFields = \"fields\"\n\n// Tells the code generator what type the directive is referencing\nconst DirArgType = \"type\"\n\n// The file name for Federation directives\nconst dirGraphQLQFile = \"federation/directives.graphql\"\n\n// The file name for Federation entities\nconst entityGraphQLQFile = \"federation/entity.graphql\"\n\nconst federationVersion1Schema = `\n\tdirective @key(fields: _FieldSet!) repeatable on OBJECT | INTERFACE\n\tdirective @requires(fields: _FieldSet!) on FIELD_DEFINITION\n\tdirective @provides(fields: _FieldSet!) on FIELD_DEFINITION\n\tdirective @extends on OBJECT | INTERFACE\n\tdirective @external on FIELD_DEFINITION\n\tscalar _Any\n\tscalar _FieldSet\n`\n\nconst federationVersion2Schema = `\n\tdirective @authenticated on FIELD_DEFINITION | OBJECT | INTERFACE | SCALAR | ENUM\n\tdirective @composeDirective(name: String!) repeatable on SCHEMA\n\tdirective @extends on OBJECT | INTERFACE\n\tdirective @external on OBJECT | FIELD_DEFINITION\n\tdirective @key(fields: FieldSet!, resolvable: Boolean = true) repeatable on OBJECT | INTERFACE\n\tdirective @inaccessible on\n\t  | ARGUMENT_DEFINITION\n\t  | ENUM\n\t  | ENUM_VALUE\n\t  | FIELD_DEFINITION\n\t  | INPUT_FIELD_DEFINITION\n\t  | INPUT_OBJECT\n\t  | INTERFACE\n\t  | OBJECT\n\t  | SCALAR\n\t  | UNION\n\tdirective @interfaceObject on OBJECT\n\tdirective @link(import: [String!], url: String!) repeatable on SCHEMA\n\tdirective @override(from: String!, label: String) on FIELD_DEFINITION\n\tdirective @policy(policies: [[federation__Policy!]!]!) on\n\t  | FIELD_DEFINITION\n\t  | OBJECT\n\t  | INTERFACE\n\t  | SCALAR\n\t  | ENUM\n\tdirective @provides(fields: FieldSet!) on FIELD_DEFINITION\n\tdirective @requires(fields: FieldSet!) on FIELD_DEFINITION\n\tdirective @requiresScopes(scopes: [[federation__Scope!]!]!) on\n\t  | FIELD_DEFINITION\n\t  | OBJECT\n\t  | INTERFACE\n\t  | SCALAR\n\t  | ENUM\n\tdirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\tdirective @tag(name: String!) repeatable on\n\t  | ARGUMENT_DEFINITION\n\t  | ENUM\n\t  | ENUM_VALUE\n\t  | FIELD_DEFINITION\n\t  | INPUT_FIELD_DEFINITION\n\t  | INPUT_OBJECT\n\t  | INTERFACE\n\t  | OBJECT\n\t  | SCALAR\n\t  | UNION\n\tscalar _Any\n\tscalar FieldSet\n\tscalar federation__Policy\n\tscalar federation__Scope\n`\n\nvar builtins = config.TypeMap{\n\t\"_Service\": {\n\t\tModel: config.StringList{\n\t\t\t\"github.com/99designs/gqlgen/plugin/federation/fedruntime.Service\",\n\t\t},\n\t},\n\t\"_Entity\": {\n\t\tModel: config.StringList{\n\t\t\t\"github.com/99designs/gqlgen/plugin/federation/fedruntime.Entity\",\n\t\t},\n\t},\n\t\"Entity\": {\n\t\tModel: config.StringList{\n\t\t\t\"github.com/99designs/gqlgen/plugin/federation/fedruntime.Entity\",\n\t\t},\n\t},\n\t\"_Any\": {\n\t\tModel: config.StringList{\"github.com/99designs/gqlgen/graphql.Map\"},\n\t},\n\t\"federation__Scope\": {\n\t\tModel: config.StringList{\"github.com/99designs/gqlgen/graphql.String\"},\n\t},\n\t\"federation__Policy\": {\n\t\tModel: config.StringList{\"github.com/99designs/gqlgen/graphql.String\"},\n\t},\n}\n\nvar dirPopulateFromRepresentations = &ast.DirectiveDefinition{\n\tName:         dirNamePopulateFromRepresentations,\n\tIsRepeatable: false,\n\tDescription: `This is a runtime directive used to implement @requires. It's automatically placed\non the generated _federationRequires argument, and the implementation of it extracts the\ncorrect value from the input representations list.`,\n\tLocations: []ast.DirectiveLocation{ast.LocationArgumentDefinition},\n\tPosition: &ast.Position{Src: &ast.Source{\n\t\tName: dirGraphQLQFile,\n\t}},\n}\n\nvar dirEntityReference = &ast.DirectiveDefinition{\n\tName:         DirNameEntityReference,\n\tIsRepeatable: false,\n\tDescription: `This is a compile-time directive used to implement @requires.\nIt tells the code generator how to generate the model for the scalar.`,\n\tLocations: []ast.DirectiveLocation{ast.LocationScalar},\n\tArguments: ast.ArgumentDefinitionList{\n\t\t{\n\t\t\tName: DirArgType,\n\t\t\tType: ast.NonNullNamedType(\"String\", nil),\n\t\t\tDescription: `The name of the entity that the fields selection\nset should be validated against.`,\n\t\t},\n\t\t{\n\t\t\tName:        DirArgFields,\n\t\t\tType:        ast.NonNullNamedType(\"FieldSet\", nil),\n\t\t\tDescription: \"The selection that the scalar should generate into.\",\n\t\t},\n\t},\n\tPosition: &ast.Position{Src: &ast.Source{\n\t\tName: dirGraphQLQFile,\n\t}},\n}\n"
  },
  {
    "path": "plugin/federation/entity.go",
    "content": "package federation\n\nimport (\n\t\"go/types\"\n\t\"slices\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\n\t\"github.com/99designs/gqlgen/codegen\"\n\t\"github.com/99designs/gqlgen/codegen/config\"\n\t\"github.com/99designs/gqlgen/codegen/templates\"\n\t\"github.com/99designs/gqlgen/plugin/federation/fieldset\"\n)\n\n// Entity represents a federated type\n// that was declared in the GQL schema.\ntype Entity struct {\n\tName      string // The same name as the type declaration\n\tDef       *ast.Definition\n\tResolvers []*EntityResolver\n\tRequires  []*Requires\n\tMulti     bool\n\tType      types.Type\n\t// ImplDirectives are the resolved non-federation OBJECT-level directives\n\t// with full type information, populated in GenerateCode for use in the\n\t// federation template to wrap entity resolver calls.\n\tImplDirectives []*codegen.Directive\n}\n\ntype EntityResolver struct {\n\tResolverName   string      // The resolver name, such as FindUserByID\n\tKeyFields      []*KeyField // The fields declared in @key.\n\tInputType      types.Type  // The Go generated input type for multi entity resolvers\n\tInputTypeName  string\n\tReturnType     types.Type // The Go generated return type for the entity\n\tReturnTypeName string\n}\n\nfunc (e *EntityResolver) LookupInputType() string {\n\treturn templates.CurrentImports.LookupType(e.InputType)\n}\n\nfunc (e *EntityResolver) LookupReturnType() string {\n\treturn templates.CurrentImports.LookupType(e.ReturnType)\n}\n\n// IsPointerReturnType returns true if the resolver's return type is a pointer\nfunc (e *EntityResolver) IsPointerReturnType() bool {\n\tif e.ReturnType == nil {\n\t\treturn false\n\t}\n\tlookupType := templates.CurrentImports.LookupType(e.ReturnType)\n\treturn lookupType != \"\" && lookupType[0] == '*'\n}\n\ntype KeyField struct {\n\tDefinition *ast.FieldDefinition\n\tField      fieldset.Field        // len > 1 for nested fields\n\tType       *config.TypeReference // The Go representation of that field type\n}\n\n// Requires represents an @requires clause\ntype Requires struct {\n\tName  string                // the name of the field\n\tField fieldset.Field        // source Field, len > 1 for nested fields\n\tType  *config.TypeReference // The Go representation of that field type\n}\n\nfunc (e *Entity) allFieldsAreExternal(federationVersion int) bool {\n\tfor _, field := range e.Def.Fields {\n\t\tif !e.isFieldImplicitlyExternal(field, federationVersion) &&\n\t\t\tfield.Directives.ForName(\"external\") == nil {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// In federation v2, key fields are implicitly external.\nfunc (e *Entity) isFieldImplicitlyExternal(field *ast.FieldDefinition, federationVersion int) bool {\n\t// Key fields are only implicitly external in Federation 2\n\tif federationVersion != 2 {\n\t\treturn false\n\t}\n\t// TODO: From the spec, it seems like if an entity is not resolvable then it should not only not\n\t// have a resolver, but should not appear in the _Entity union. The current implementation is a\n\t// less drastic departure from the previous behavior, but should probably be reviewed.\n\t// See https://www.apollographql.com/docs/federation/subgraph-spec/\n\tif e.isResolvable() {\n\t\treturn false\n\t}\n\t// If the field is a key field, it is implicitly external\n\tif e.isKeyField(field) {\n\t\treturn true\n\t}\n\n\treturn false\n}\n\n// Determine if the entity is resolvable.\nfunc (e *Entity) isResolvable() bool {\n\tkey := e.Def.Directives.ForName(dirNameKey)\n\tif key == nil {\n\t\t// If there is no key directive, the entity is resolvable.\n\t\treturn true\n\t}\n\tresolvable := key.Arguments.ForName(\"resolvable\")\n\tif resolvable == nil {\n\t\t// If there is no resolvable argument, the entity is resolvable.\n\t\treturn true\n\t}\n\t// only if resolvable: false has been set on the @key directive do we consider the entity\n\t// non-resolvable.\n\treturn resolvable.Value.Raw != \"false\"\n}\n\n// Determine if a field is part of the entities key.\nfunc (e *Entity) isKeyField(field *ast.FieldDefinition) bool {\n\treturn slices.Contains(e.keyFields(), field.Name)\n}\n\n// Get the key fields for this entity.\nfunc (e *Entity) keyFields() []string {\n\tkey := e.Def.Directives.ForName(dirNameKey)\n\tif key == nil {\n\t\treturn []string{}\n\t}\n\tfields := key.Arguments.ForName(DirArgFields)\n\tif fields == nil {\n\t\treturn []string{}\n\t}\n\tfieldSet := fieldset.New(fields.Value.Raw, nil)\n\tkeyFields := make([]string, len(fieldSet))\n\tfor i, field := range fieldSet {\n\t\tkeyFields[i] = field[0]\n\t}\n\treturn keyFields\n}\n\n// GetTypeInfo - get the imported package & type name combo.  package.TypeName\nfunc (e Entity) GetTypeInfo() string {\n\treturn templates.CurrentImports.LookupType(e.Type)\n}\n"
  },
  {
    "path": "plugin/federation/entity_directives.go",
    "content": "package federation\n\nimport (\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// federationDirectiveNames lists directives that are internal to Apollo\n// Federation or gqlgen and must NOT be applied as user-facing runtime\n// middleware when resolving entities via the _entities query.\nvar federationDirectiveNames = map[string]bool{\n\t// Federation v1\n\t\"key\":      true,\n\t\"requires\": true,\n\t\"provides\": true,\n\t\"external\": true,\n\t\"extends\":  true,\n\n\t// Federation v2\n\t\"tag\":              true,\n\t\"inaccessible\":     true,\n\t\"shareable\":        true,\n\t\"interfaceObject\":  true,\n\t\"override\":         true,\n\t\"composeDirective\": true,\n\t\"link\":             true,\n\n\t// Federation v2.5+\n\t\"authenticated\":  true,\n\t\"requiresScopes\": true,\n\t\"policy\":         true,\n\n\t// gqlgen-specific\n\t\"entityResolver\": true,\n\t\"goModel\":        true,\n\t\"goField\":        true,\n\t\"goTag\":          true,\n}\n\n// HasObjectDirectives reports whether this entity's type definition carries\n// any non-federation user-defined directives that should be applied at\n// runtime when the entity is resolved through the _entities query.\nfunc (e *Entity) HasObjectDirectives() bool {\n\treturn len(e.ImplDirectives) > 0\n}\n\n// NonFederationDirectives returns the AST directives applied to this entity,\n// excluding federation-internal and gqlgen-internal directives.\nfunc (e *Entity) NonFederationDirectives() ast.DirectiveList {\n\tif e.Def == nil {\n\t\treturn nil\n\t}\n\tvar result ast.DirectiveList\n\tfor _, d := range e.Def.Directives {\n\t\tif !federationDirectiveNames[d.Name] {\n\t\t\tresult = append(result, d)\n\t\t}\n\t}\n\treturn result\n}\n"
  },
  {
    "path": "plugin/federation/entity_directives_test.go",
    "content": "package federation\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\n\t\"github.com/99designs/gqlgen/codegen\"\n)\n\nfunc TestEntity_HasObjectDirectives(t *testing.T) {\n\tassert.False(t, (&Entity{}).HasObjectDirectives())\n\tassert.False(t, (&Entity{ImplDirectives: nil}).HasObjectDirectives())\n\tassert.True(\n\t\tt,\n\t\t(&Entity{ImplDirectives: []*codegen.Directive{{Name: \"guard\"}}}).HasObjectDirectives(),\n\t)\n}\n\nfunc TestEntity_NonFederationDirectives(t *testing.T) {\n\ttests := []struct {\n\t\tname      string\n\t\tentity    *Entity\n\t\twantNames []string\n\t}{\n\t\t{\n\t\t\tname:      \"nil Def\",\n\t\t\tentity:    &Entity{Def: nil},\n\t\t\twantNames: nil,\n\t\t},\n\t\t{\n\t\t\tname: \"filters all federation directives\",\n\t\t\tentity: &Entity{Def: &ast.Definition{\n\t\t\t\tDirectives: ast.DirectiveList{\n\t\t\t\t\t{Name: \"key\"},\n\t\t\t\t\t{Name: \"requires\"},\n\t\t\t\t\t{Name: \"provides\"},\n\t\t\t\t\t{Name: \"external\"},\n\t\t\t\t\t{Name: \"extends\"},\n\t\t\t\t\t{Name: \"tag\"},\n\t\t\t\t\t{Name: \"inaccessible\"},\n\t\t\t\t\t{Name: \"shareable\"},\n\t\t\t\t\t{Name: \"interfaceObject\"},\n\t\t\t\t\t{Name: \"override\"},\n\t\t\t\t\t{Name: \"composeDirective\"},\n\t\t\t\t\t{Name: \"link\"},\n\t\t\t\t\t{Name: \"authenticated\"},\n\t\t\t\t\t{Name: \"requiresScopes\"},\n\t\t\t\t\t{Name: \"policy\"},\n\t\t\t\t\t{Name: \"entityResolver\"},\n\t\t\t\t\t{Name: \"goModel\"},\n\t\t\t\t\t{Name: \"goField\"},\n\t\t\t\t\t{Name: \"goTag\"},\n\t\t\t\t},\n\t\t\t}},\n\t\t\twantNames: nil,\n\t\t},\n\t\t{\n\t\t\tname: \"keeps user directives in order\",\n\t\t\tentity: &Entity{Def: &ast.Definition{\n\t\t\t\tDirectives: ast.DirectiveList{\n\t\t\t\t\t{Name: \"key\"},\n\t\t\t\t\t{Name: \"guard\"},\n\t\t\t\t\t{Name: \"shareable\"},\n\t\t\t\t\t{Name: \"hasRole\"},\n\t\t\t\t},\n\t\t\t}},\n\t\t\twantNames: []string{\"guard\", \"hasRole\"},\n\t\t},\n\t}\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tgot := tt.entity.NonFederationDirectives()\n\t\t\tif tt.wantNames == nil {\n\t\t\t\tassert.Nil(t, got)\n\t\t\t\treturn\n\t\t\t}\n\t\t\trequire.Len(t, got, len(tt.wantNames))\n\t\t\tfor i, d := range got {\n\t\t\t\tassert.Equal(t, tt.wantNames[i], d.Name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestFederationDirectiveNames_Completeness(t *testing.T) {\n\tfor _, name := range []string{\n\t\t\"key\", \"requires\", \"provides\", \"external\", \"extends\",\n\t\t\"tag\", \"inaccessible\", \"shareable\", \"interfaceObject\",\n\t\t\"override\", \"composeDirective\", \"link\",\n\t\t\"authenticated\", \"requiresScopes\", \"policy\",\n\t\t\"entityResolver\", \"goModel\", \"goField\", \"goTag\",\n\t} {\n\t\tassert.True(t, federationDirectiveNames[name], \"%q missing\", name)\n\t}\n}\n\n// TestEntity_NonFederationDirectives_Filtering validates that user-defined\n// directives are preserved while federation directives are filtered.\nfunc TestEntity_NonFederationDirectives_Filtering(t *testing.T) {\n\ttests := []struct {\n\t\tname      string\n\t\tentity    *Entity\n\t\twantNames []string\n\t\tdesc      string\n\t}{\n\t\t{\n\t\t\tname: \"user directive preserved\",\n\t\t\tentity: &Entity{Def: &ast.Definition{\n\t\t\t\tDirectives: ast.DirectiveList{\n\t\t\t\t\t{Name: \"key\"},\n\t\t\t\t\t{Name: \"guard\"},\n\t\t\t\t},\n\t\t\t}},\n\t\t\twantNames: []string{\"guard\"},\n\t\t\tdesc:      \"User-defined @guard directive should be preserved while @key is filtered\",\n\t\t},\n\t\t{\n\t\t\tname: \"multiple user directives\",\n\t\t\tentity: &Entity{Def: &ast.Definition{\n\t\t\t\tDirectives: ast.DirectiveList{\n\t\t\t\t\t{Name: \"shareable\"},\n\t\t\t\t\t{Name: \"auth\"},\n\t\t\t\t\t{Name: \"guard\"},\n\t\t\t\t\t{Name: \"key\"},\n\t\t\t\t},\n\t\t\t}},\n\t\t\twantNames: []string{\"auth\", \"guard\"},\n\t\t\tdesc:      \"Multiple user directives should be preserved in order\",\n\t\t},\n\t\t{\n\t\t\tname: \"only federation directives\",\n\t\t\tentity: &Entity{Def: &ast.Definition{\n\t\t\t\tDirectives: ast.DirectiveList{\n\t\t\t\t\t{Name: \"key\"},\n\t\t\t\t\t{Name: \"shareable\"},\n\t\t\t\t\t{Name: \"tag\"},\n\t\t\t\t},\n\t\t\t}},\n\t\t\twantNames: nil,\n\t\t\tdesc:      \"Only federation directives should result in empty list\",\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tgot := tt.entity.NonFederationDirectives()\n\t\t\tif tt.wantNames == nil {\n\t\t\t\tassert.Nil(t, got, tt.desc)\n\t\t\t\treturn\n\t\t\t}\n\t\t\trequire.Len(t, got, len(tt.wantNames), tt.desc)\n\t\t\tfor i, d := range got {\n\t\t\t\tassert.Equal(t, tt.wantNames[i], d.Name)\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "plugin/federation/federation.go",
    "content": "package federation\n\nimport (\n\t_ \"embed\"\n\t\"errors\"\n\t\"fmt\"\n\t\"go/types\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\n\t\"github.com/99designs/gqlgen/codegen\"\n\t\"github.com/99designs/gqlgen/codegen/config\"\n\t\"github.com/99designs/gqlgen/codegen/templates\"\n\t\"github.com/99designs/gqlgen/internal/rewrite\"\n\t\"github.com/99designs/gqlgen/plugin/federation/fieldset\"\n)\n\n//go:embed federation.gotpl\nvar federationTemplate string\n\n//go:embed requires.gotpl\nvar explicitRequiresTemplate string\n\ntype Federation struct {\n\tEntities         []*Entity\n\tRequiresEntities map[string]*Entity\n\tPackageOptions   PackageOptions\n\n\tversion int\n\n\t// true if @requires is used in the schema\n\tusesRequires bool\n}\n\ntype PackageOptions struct {\n\t// ExplicitRequires will generate a function in the execution context\n\t// to populate fields using the @required directive into the entity.\n\t//\n\t// You can only set one of ExplicitRequires or ComputedRequires to true.\n\tExplicitRequires bool\n\t// ComputedRequires generates resolver functions to compute values for\n\t// fields using the @required directive.\n\tComputedRequires bool\n\t// EntityResolverMulti is default engine for entityResolver generation.\n\t// This can be overriding by @entityResolver(multi: Boolean) directive.\n\t// false by default.\n\tEntityResolverMulti bool\n}\n\n// New returns a federation plugin that injects\n// federated directives and types into the schema\nfunc New(version int, cfg *config.Config) (*Federation, error) {\n\tif version == 0 {\n\t\tversion = 1\n\t}\n\n\toptions, err := buildPackageOptions(cfg)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"invalid federation package options: %w\", err)\n\t}\n\treturn &Federation{\n\t\tversion:        version,\n\t\tPackageOptions: options,\n\t}, nil\n}\n\nfunc buildPackageOptions(cfg *config.Config) (PackageOptions, error) {\n\tpackageOptions := cfg.Federation.Options\n\n\tconst (\n\t\toptionExplicitRequires    = \"explicit_requires\"\n\t\toptionComputedRequires    = \"computed_requires\"\n\t\toptionEntityResolverMulti = \"entity_resolver_multi\"\n\t)\n\n\tvar explicitRequires,\n\t\tcomputedRequires,\n\t\tentityResolverMulti bool\n\n\tfor k, v := range packageOptions {\n\t\tswitch k {\n\t\tcase optionExplicitRequires:\n\t\t\texplicitRequires = v\n\t\tcase optionComputedRequires:\n\t\t\tcomputedRequires = v\n\t\tcase optionEntityResolverMulti:\n\t\t\tentityResolverMulti = v\n\t\tdefault:\n\t\t\treturn PackageOptions{}, fmt.Errorf(\"unknown package option: %s\", k)\n\t\t}\n\t}\n\n\tif explicitRequires && computedRequires {\n\t\treturn PackageOptions{}, fmt.Errorf(\n\t\t\t\"only one of %s or %s can be set to true\",\n\t\t\toptionExplicitRequires,\n\t\t\toptionComputedRequires,\n\t\t)\n\t}\n\n\tif computedRequires {\n\t\tif cfg.Federation.Version != 2 {\n\t\t\treturn PackageOptions{}, fmt.Errorf(\n\t\t\t\t\"when using federation.options.%s you must be using Federation 2\",\n\t\t\t\toptionComputedRequires,\n\t\t\t)\n\t\t}\n\n\t\t// We rely on injecting a null argument with a directives for fields with @requires, so we\n\t\t// need to ensure\n\t\t// our directive is always called.\n\t\tif !cfg.CallArgumentDirectivesWithNull {\n\t\t\treturn PackageOptions{}, fmt.Errorf(\n\t\t\t\t\"when using federation.options.%s, call_argument_directives_with_null must be set to true\",\n\t\t\t\toptionComputedRequires,\n\t\t\t)\n\t\t}\n\t}\n\n\t// We rely on injecting a null argument with a directives for fields with @requires, so we need\n\t// to ensure\n\t// our directive is always called.\n\treturn PackageOptions{\n\t\tExplicitRequires:    explicitRequires,\n\t\tComputedRequires:    computedRequires,\n\t\tEntityResolverMulti: entityResolverMulti,\n\t}, nil\n}\n\n// Name returns the plugin name\nfunc (f *Federation) Name() string {\n\treturn \"federation\"\n}\n\n// MutateConfig mutates the configuration\nfunc (f *Federation) MutateConfig(cfg *config.Config) error {\n\tfor typeName, entry := range builtins {\n\t\tif cfg.Models.Exists(typeName) {\n\t\t\treturn fmt.Errorf(\n\t\t\t\t\"%v already exists which must be reserved when Federation is enabled\",\n\t\t\t\ttypeName,\n\t\t\t)\n\t\t}\n\t\tcfg.Models[typeName] = entry\n\t}\n\tcfg.Directives[\"external\"] = config.DirectiveConfig{SkipRuntime: true}\n\tcfg.Directives[dirNameRequires] = config.DirectiveConfig{SkipRuntime: true}\n\tcfg.Directives[\"provides\"] = config.DirectiveConfig{SkipRuntime: true}\n\tcfg.Directives[dirNameKey] = config.DirectiveConfig{SkipRuntime: true}\n\tcfg.Directives[\"extends\"] = config.DirectiveConfig{SkipRuntime: true}\n\tcfg.Directives[dirNameEntityResolver] = config.DirectiveConfig{SkipRuntime: true}\n\n\t// Federation 2 specific directives\n\tif f.version == 2 {\n\t\tcfg.Directives[\"shareable\"] = config.DirectiveConfig{SkipRuntime: true}\n\t\tcfg.Directives[\"link\"] = config.DirectiveConfig{SkipRuntime: true}\n\t\tcfg.Directives[\"tag\"] = config.DirectiveConfig{SkipRuntime: true}\n\t\tcfg.Directives[\"override\"] = config.DirectiveConfig{SkipRuntime: true}\n\t\tcfg.Directives[\"inaccessible\"] = config.DirectiveConfig{SkipRuntime: true}\n\t\tcfg.Directives[\"authenticated\"] = config.DirectiveConfig{SkipRuntime: true}\n\t\tcfg.Directives[\"requiresScopes\"] = config.DirectiveConfig{SkipRuntime: true}\n\t\tcfg.Directives[\"policy\"] = config.DirectiveConfig{SkipRuntime: true}\n\t\tcfg.Directives[\"interfaceObject\"] = config.DirectiveConfig{SkipRuntime: true}\n\t\tcfg.Directives[\"composeDirective\"] = config.DirectiveConfig{SkipRuntime: true}\n\t}\n\n\tif f.usesRequires && f.PackageOptions.ComputedRequires {\n\t\tcfg.Schema.Directives[dirPopulateFromRepresentations.Name] = dirPopulateFromRepresentations\n\t\tcfg.Directives[dirPopulateFromRepresentations.Name] = config.DirectiveConfig{\n\t\t\tImplementation: &populateFromRepresentationsImplementation,\n\t\t}\n\n\t\tcfg.Schema.Directives[dirEntityReference.Name] = dirEntityReference\n\t\tcfg.Directives[dirEntityReference.Name] = config.DirectiveConfig{SkipRuntime: true}\n\n\t\tf.addMapType(cfg)\n\t\tf.mutateSchemaForRequires(cfg.Schema, cfg)\n\t}\n\n\treturn nil\n}\n\nfunc (f *Federation) InjectSourcesEarly() ([]*ast.Source, error) {\n\tinput := ``\n\n\t// add version-specific changes on key directive, as well as adding the new directives for\n\t// federation 2\n\tswitch f.version {\n\tcase 1:\n\t\tinput += federationVersion1Schema\n\tcase 2:\n\t\tinput += federationVersion2Schema\n\t}\n\n\treturn []*ast.Source{{\n\t\tName:    dirGraphQLQFile,\n\t\tInput:   input,\n\t\tBuiltIn: true,\n\t}}, nil\n}\n\n// InjectSourcesLate creates a GraphQL Entity type with all\n// the fields that had the @key directive\nfunc (f *Federation) InjectSourcesLate(schema *ast.Schema) ([]*ast.Source, error) {\n\tf.Entities = f.buildEntities(schema, f.version)\n\n\tentities := make([]string, 0)\n\tresolvers := make([]string, 0)\n\tentityResolverInputDefinitions := make([]string, 0)\n\tfor _, e := range f.Entities {\n\t\tif e.Def.Kind != ast.Interface {\n\t\t\tentities = append(entities, e.Name)\n\t\t} else if len(schema.GetPossibleTypes(e.Def)) == 0 {\n\t\t\tfmt.Println(\n\t\t\t\t\"skipping @key field on interface \" + e.Def.Name + \" as no types implement it\",\n\t\t\t)\n\t\t}\n\n\t\tfor _, r := range e.Resolvers {\n\t\t\tresolverSDL, entityResolverInputSDL := buildResolverSDL(r, e.Multi)\n\t\t\tresolvers = append(resolvers, resolverSDL)\n\t\t\tif entityResolverInputSDL != \"\" {\n\t\t\t\tentityResolverInputDefinitions = append(\n\t\t\t\t\tentityResolverInputDefinitions,\n\t\t\t\t\tentityResolverInputSDL,\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n\n\tvar blocks []string\n\tif len(entities) > 0 {\n\t\tentitiesSDL := `# a union of all types that use the @key directive\nunion _Entity = ` + strings.Join(entities, \" | \")\n\t\tblocks = append(blocks, entitiesSDL)\n\t}\n\n\t// resolvers can be empty if a service defines only \"empty\n\t// extend\" types.  This should be rare.\n\tif len(resolvers) > 0 {\n\t\tif len(entityResolverInputDefinitions) > 0 {\n\t\t\tinputSDL := strings.Join(entityResolverInputDefinitions, \"\\n\\n\")\n\t\t\tblocks = append(blocks, inputSDL)\n\t\t}\n\t\tresolversSDL := `# fake type to build resolver interfaces for users to implement\ntype Entity {\n` + strings.Join(resolvers, \"\\n\") + `\n}`\n\t\tblocks = append(blocks, resolversSDL)\n\t}\n\n\t_serviceTypeDef := `type _Service {\n  sdl: String\n}`\n\tblocks = append(blocks, _serviceTypeDef)\n\n\tvar additionalQueryFields string\n\t// Quote from the Apollo Federation subgraph specification:\n\t// If no types are annotated with the key directive, then the\n\t// _Entity union and _entities field should be removed from the schema\n\tif len(f.Entities) > 0 {\n\t\tadditionalQueryFields += `  _entities(representations: [_Any!]!): [_Entity]!\n`\n\t}\n\t// _service field is required in any case\n\tadditionalQueryFields += `  _service: _Service!`\n\n\textendTypeQueryDef := `extend type ` + schema.Query.Name + ` {\n` + additionalQueryFields + `\n}`\n\tblocks = append(blocks, extendTypeQueryDef)\n\n\treturn []*ast.Source{{\n\t\tName:    entityGraphQLQFile,\n\t\tBuiltIn: true,\n\t\tInput:   \"\\n\" + strings.Join(blocks, \"\\n\\n\") + \"\\n\",\n\t}}, nil\n}\n\nfunc (f *Federation) GenerateCode(data *codegen.Data) error {\n\t// requires imports\n\trequiresImports := make(map[string]bool, 0)\n\trequiresImports[\"context\"] = true\n\trequiresImports[\"fmt\"] = true\n\n\trequiresEntities := make(map[string]*Entity, 0)\n\n\t// Save package options on f for template use\n\tpackageOptions, err := buildPackageOptions(data.Config)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"invalid federation package options: %w\", err)\n\t}\n\tf.PackageOptions = packageOptions\n\n\tif len(f.Entities) > 0 {\n\t\tif data.Objects.ByName(\"Entity\") != nil {\n\t\t\tdata.Objects.ByName(\"Entity\").Root = true\n\t\t}\n\t\tfor _, e := range f.Entities {\n\t\t\tobj := data.Objects.ByName(e.Def.Name)\n\n\t\t\tif e.Def.Kind == ast.Interface {\n\t\t\t\tif len(data.Interfaces[e.Def.Name].Implementors) == 0 {\n\t\t\t\t\tfmt.Println(\n\t\t\t\t\t\t\"skipping @key field on interface \" + e.Def.Name + \" as no types implement it\",\n\t\t\t\t\t)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tobj = data.Objects.ByName(data.Interfaces[e.Def.Name].Implementors[0].Name)\n\t\t\t}\n\n\t\t\tfor _, r := range e.Resolvers {\n\t\t\t\tpopulateKeyFieldTypes(r, obj, data.Objects, e.Def.Name)\n\t\t\t}\n\n\t\t\t// fill in types for requires fields\n\t\t\t//\n\t\t\tfor _, reqField := range e.Requires {\n\t\t\t\tif len(reqField.Field) == 0 {\n\t\t\t\t\tfmt.Println(\"skipping @requires field \" + reqField.Name + \" in \" + e.Def.Name)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\t// keep track of which entities have requires\n\t\t\t\trequiresEntities[e.Def.Name] = e\n\t\t\t\t// make a proper import path\n\t\t\t\ttypeString := strings.Split(obj.Type.String(), \".\")\n\t\t\t\trequiresImports[strings.Join(typeString[:len(typeString)-1], \".\")] = true\n\n\t\t\t\tif containsUnionField(reqField) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tcgField := reqField.Field.TypeReference(obj, data.Objects)\n\t\t\t\treqField.Type = cgField.TypeReference\n\t\t\t}\n\t\t\t// add type info to entity\n\t\t\te.Type = obj.Type\n\t\t}\n\t}\n\n\t// fill in types for resolver inputs\n\t//\n\tfor _, entity := range f.Entities {\n\t\tif !entity.Multi {\n\t\t\tcontinue\n\t\t}\n\n\t\tfor _, resolver := range entity.Resolvers {\n\t\t\tobj := data.Inputs.ByName(resolver.InputTypeName)\n\t\t\tif obj == nil {\n\t\t\t\treturn fmt.Errorf(\"input object %s not found\", resolver.InputTypeName)\n\t\t\t}\n\n\t\t\tresolver.InputType = obj.Type\n\t\t}\n\t}\n\n\t// fill in return types for all entity resolvers\n\t// Entity resolvers always return pointers in Federation\n\tfor _, entity := range f.Entities {\n\t\tfor _, resolver := range entity.Resolvers {\n\t\t\t// Ensure the return type is a pointer\n\t\t\tif ptr, ok := entity.Type.(*types.Pointer); ok {\n\t\t\t\t// Already a pointer\n\t\t\t\tresolver.ReturnType = ptr\n\t\t\t} else {\n\t\t\t\t// Make it a pointer\n\t\t\t\tresolver.ReturnType = types.NewPointer(entity.Type)\n\t\t\t}\n\t\t}\n\t}\n\n\tif f.PackageOptions.ExplicitRequires && len(requiresEntities) > 0 {\n\t\terr := f.generateExplicitRequires(\n\t\t\tdata,\n\t\t\trequiresEntities,\n\t\t\trequiresImports,\n\t\t)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tf.RequiresEntities = requiresEntities\n\n\t// Populate ImplDirectives on each entity by extracting the resolved\n\t// OBJECT-level directives from the corresponding codegen.Object.\n\t// These are the user-defined directives (e.g. @guard, @auth) that\n\t// should wrap entity resolver calls — federation-internal directives\n\t// are excluded.\n\tfor _, e := range f.Entities {\n\t\tobj := data.Objects.ByName(e.Def.Name)\n\t\tif obj == nil || len(obj.Fields) == 0 {\n\t\t\tcontinue\n\t\t}\n\t\t// OBJECT-level directives are propagated to every field during\n\t\t// codegen.  Pick them from the first field's directive list.\n\t\tfor _, d := range obj.Fields[0].Directives {\n\t\t\tif d.SkipRuntime {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif d.IsLocation(ast.LocationObject) && !federationDirectiveNames[d.Name] {\n\t\t\t\te.ImplDirectives = append(e.ImplDirectives, d)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn templates.Render(templates.Options{\n\t\tPackageName: data.Config.Federation.Package,\n\t\tFilename:    data.Config.Federation.Filename,\n\t\tData: struct {\n\t\t\tFederation\n\t\t\tUsePointers                          bool\n\t\t\tUseFunctionSyntaxForExecutionContext bool\n\t\t}{*f, data.Config.ResolversAlwaysReturnPointers, data.Config.UseFunctionSyntaxForExecutionContext},\n\t\tGeneratedHeader: true,\n\t\tPackages:        data.Config.Packages,\n\t\tTemplate:        federationTemplate,\n\t\tPruneOptions:    data.Config.GetPruneOptions(),\n\t})\n}\n\nfunc containsUnionField(reqField *Requires) bool {\n\tfor _, requireFields := range reqField.Field {\n\t\tif strings.HasPrefix(requireFields, \"... on\") {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// Fill in types for key fields\nfunc populateKeyFieldTypes(\n\tresolver *EntityResolver,\n\tobj *codegen.Object,\n\tallObjects codegen.Objects,\n\tname string,\n) {\n\tfor _, keyField := range resolver.KeyFields {\n\t\tif len(keyField.Field) == 0 {\n\t\t\tfmt.Println(\n\t\t\t\t\"skipping @key field \" + keyField.Definition.Name + \" in \" + resolver.ResolverName + \" in \" + name,\n\t\t\t)\n\t\t\tcontinue\n\t\t}\n\t\tcgField := keyField.Field.TypeReference(obj, allObjects)\n\t\tkeyField.Type = cgField.TypeReference\n\t}\n}\n\nfunc (f *Federation) buildEntities(schema *ast.Schema, version int) []*Entity {\n\tentities := make([]*Entity, 0)\n\tfor _, schemaType := range schema.Types {\n\t\tentity := f.buildEntity(schemaType, schema, version)\n\t\tif entity != nil {\n\t\t\tentities = append(entities, entity)\n\t\t}\n\t}\n\n\t// make sure order remains stable across multiple builds\n\tsort.Slice(entities, func(i, j int) bool {\n\t\treturn entities[i].Name < entities[j].Name\n\t})\n\n\treturn entities\n}\n\nfunc (f *Federation) buildEntity(\n\tschemaType *ast.Definition,\n\tschema *ast.Schema,\n\tversion int,\n) *Entity {\n\tkeys, ok := isFederatedEntity(schemaType)\n\tif !ok {\n\t\treturn nil\n\t}\n\n\tif (schemaType.Kind == ast.Interface) && (len(schema.GetPossibleTypes(schemaType)) == 0) {\n\t\tfmt.Printf(\n\t\t\t\"@key directive found on unused \\\"interface %s\\\". Will be ignored.\\n\",\n\t\t\tschemaType.Name,\n\t\t)\n\t\treturn nil\n\t}\n\n\tentity := &Entity{\n\t\tName:      schemaType.Name,\n\t\tDef:       schemaType,\n\t\tResolvers: nil,\n\t\tRequires:  nil,\n\t\tMulti:     f.isMultiEntity(schemaType),\n\t}\n\n\t// If our schema has a field with a type defined in\n\t// another service, then we need to define an \"empty\n\t// extend\" of that type in this service, so this service\n\t// knows what the type is like.  But the graphql-server\n\t// will never ask us to actually resolve this \"empty\n\t// extend\", so we don't require a resolver function for\n\t// it.  (Well, it will never ask in practice; it's\n\t// unclear whether the spec guarantees this.  See\n\t// https://github.com/apollographql/apollo-server/issues/3852\n\t// ).  Example:\n\t//    type MyType {\n\t//       myvar: TypeDefinedInOtherService\n\t//    }\n\t//    // Federation needs this type, but\n\t//    // it doesn't need a resolver for it!\n\t//    extend TypeDefinedInOtherService @key(fields: \"id\") {\n\t//       id: ID @external\n\t//    }\n\tif entity.allFieldsAreExternal(version) {\n\t\treturn entity\n\t}\n\n\tentity.Resolvers = buildResolvers(schemaType, schema, keys, entity.Multi)\n\tentity.Requires = buildRequires(schemaType)\n\tif len(entity.Requires) > 0 {\n\t\tf.usesRequires = true\n\t}\n\n\treturn entity\n}\n\n// isMultiEntity returns @entityResolver(multi) value, if directive is not defined,\n// then global configuration parameter will be used.\nfunc (f *Federation) isMultiEntity(schemaType *ast.Definition) bool {\n\tdir := schemaType.Directives.ForName(dirNameEntityResolver)\n\tif dir == nil {\n\t\treturn f.PackageOptions.EntityResolverMulti\n\t}\n\n\tif dirArg := dir.Arguments.ForName(\"multi\"); dirArg != nil {\n\t\tif dirVal, err := dirArg.Value.Value(nil); err == nil {\n\t\t\treturn dirVal.(bool)\n\t\t}\n\t}\n\n\treturn f.PackageOptions.EntityResolverMulti\n}\n\nfunc buildResolvers(\n\tschemaType *ast.Definition,\n\tschema *ast.Schema,\n\tkeys []*ast.Directive,\n\tmulti bool,\n) []*EntityResolver {\n\tresolvers := make([]*EntityResolver, 0)\n\tfor _, dir := range keys {\n\t\tif len(dir.Arguments) > 2 {\n\t\t\tpanic(\"More than two arguments provided for @key declaration.\")\n\t\t}\n\t\tkeyFields, resolverFields := buildKeyFields(\n\t\t\tschemaType,\n\t\t\tschema,\n\t\t\tdir,\n\t\t)\n\n\t\tresolverFieldsToGo := schemaType.Name + \"By\" + strings.Join(resolverFields, \"And\")\n\t\tvar resolverName string\n\t\tif multi {\n\t\t\tresolverFieldsToGo += \"s\" // Pluralize for better API readability\n\t\t\tresolverName = fmt.Sprintf(\"findMany%s\", resolverFieldsToGo)\n\t\t} else {\n\t\t\tresolverName = fmt.Sprintf(\"find%s\", resolverFieldsToGo)\n\t\t}\n\n\t\tresolvers = append(resolvers, &EntityResolver{\n\t\t\tResolverName:   resolverName,\n\t\t\tKeyFields:      keyFields,\n\t\t\tInputTypeName:  resolverFieldsToGo + \"Input\",\n\t\t\tReturnTypeName: schemaType.Name,\n\t\t})\n\t}\n\n\treturn resolvers\n}\n\nfunc extractFields(\n\tdir *ast.Directive,\n) (string, error) {\n\tvar arg *ast.Argument\n\n\t// since directives are able to now have multiple arguments, we need to check both possible for\n\t// a possible @key(fields=\"\" fields=\"\")\n\tfor _, a := range dir.Arguments {\n\t\tif a.Name == DirArgFields {\n\t\t\tif arg != nil {\n\t\t\t\treturn \"\", errors.New(\"more than one \\\"fields\\\" argument provided for declaration\")\n\t\t\t}\n\t\t\targ = a\n\t\t}\n\t}\n\n\treturn arg.Value.Raw, nil\n}\n\nfunc buildKeyFields(\n\tschemaType *ast.Definition,\n\tschema *ast.Schema,\n\tdir *ast.Directive,\n) ([]*KeyField, []string) {\n\tfieldsRaw, err := extractFields(dir)\n\tif err != nil {\n\t\tpanic(\"More than one `fields` argument provided for declaration.\")\n\t}\n\n\tkeyFieldSet := fieldset.New(fieldsRaw, nil)\n\n\tkeyFields := make([]*KeyField, len(keyFieldSet))\n\tresolverFields := []string{}\n\tfor i, field := range keyFieldSet {\n\t\tdef := field.FieldDefinition(schemaType, schema)\n\n\t\tif def == nil {\n\t\t\tpanic(fmt.Sprintf(\"no field for %v\", field))\n\t\t}\n\n\t\tkeyFields[i] = &KeyField{Definition: def, Field: field}\n\t\tresolverFields = append(resolverFields, keyFields[i].Field.ToGo())\n\t}\n\n\treturn keyFields, resolverFields\n}\n\nfunc buildRequires(schemaType *ast.Definition) []*Requires {\n\trequires := make([]*Requires, 0)\n\tfor _, f := range schemaType.Fields {\n\t\tdir := f.Directives.ForName(dirNameRequires)\n\t\tif dir == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tfieldsRaw, err := extractFields(dir)\n\t\tif err != nil {\n\t\t\tpanic(\"Exactly one `fields` argument needed for @requires declaration.\")\n\t\t}\n\t\trequiresFieldSet := fieldset.New(fieldsRaw, nil)\n\t\tfor _, field := range requiresFieldSet {\n\t\t\trequires = append(requires, &Requires{\n\t\t\t\tName:  field.ToGoPrivate(),\n\t\t\t\tField: field,\n\t\t\t})\n\t\t}\n\t}\n\n\treturn requires\n}\n\nfunc isFederatedEntity(schemaType *ast.Definition) ([]*ast.Directive, bool) {\n\tswitch schemaType.Kind {\n\tcase ast.Object:\n\t\tkeys := schemaType.Directives.ForNames(dirNameKey)\n\t\tif len(keys) > 0 {\n\t\t\treturn keys, true\n\t\t}\n\tcase ast.Interface:\n\t\tkeys := schemaType.Directives.ForNames(dirNameKey)\n\t\tif len(keys) > 0 {\n\t\t\treturn keys, true\n\t\t}\n\n\t\t// TODO: support @extends for interfaces\n\t\tif dir := schemaType.Directives.ForName(\"extends\"); dir != nil {\n\t\t\tpanic(\n\t\t\t\tfmt.Sprintf(\n\t\t\t\t\t\"@extends directive is not currently supported for interfaces, use \\\"extend interface %s\\\" instead.\",\n\t\t\t\t\tschemaType.Name,\n\t\t\t\t))\n\t\t}\n\tdefault:\n\t\t// ignore\n\t}\n\treturn nil, false\n}\n\nfunc (f *Federation) generateExplicitRequires(\n\tdata *codegen.Data,\n\trequiresEntities map[string]*Entity,\n\trequiresImports map[string]bool,\n) error {\n\t// check for existing requires functions\n\ttype Populator struct {\n\t\tFuncName       string\n\t\tExists         bool\n\t\tComment        string\n\t\tImplementation string\n\t\tEntity         *Entity\n\t}\n\tpopulators := make([]Populator, 0)\n\n\trewriter, err := rewrite.New(data.Config.Federation.Dir())\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor name, entity := range requiresEntities {\n\t\tpopulator := Populator{\n\t\t\tFuncName: fmt.Sprintf(\"Populate%sRequires\", name),\n\t\t\tEntity:   entity,\n\t\t}\n\n\t\tpopulator.Comment = strings.TrimSpace(\n\t\t\tstrings.TrimLeft(\n\t\t\t\trewriter.GetMethodComment(\"executionContext\", populator.FuncName),\n\t\t\t\t`\\`,\n\t\t\t),\n\t\t)\n\t\tpopulator.Implementation = strings.TrimSpace(\n\t\t\trewriter.GetMethodBody(\"executionContext\", populator.FuncName),\n\t\t)\n\n\t\tif populator.Implementation == \"\" {\n\t\t\tpopulator.Exists = false\n\t\t\tpopulator.Implementation = fmt.Sprintf(\n\t\t\t\t\"panic(fmt.Errorf(\\\"not implemented: %v\\\"))\",\n\t\t\t\tpopulator.FuncName,\n\t\t\t)\n\t\t}\n\t\tpopulators = append(populators, populator)\n\t}\n\n\tsort.Slice(populators, func(i, j int) bool {\n\t\treturn populators[i].FuncName < populators[j].FuncName\n\t})\n\n\trequiresFile := data.Config.Federation.Dir() + \"/federation.requires.go\"\n\texistingImports := rewriter.ExistingImports(requiresFile)\n\tfor _, imp := range existingImports {\n\t\tif imp.Alias == \"\" {\n\t\t\t// import exists in both places, remove\n\t\t\tdelete(requiresImports, imp.ImportPath)\n\t\t}\n\t}\n\n\tfor k := range requiresImports {\n\t\texistingImports = append(existingImports, rewrite.Import{ImportPath: k})\n\t}\n\n\t// render requires populators\n\treturn templates.Render(templates.Options{\n\t\tPackageName: data.Config.Federation.Package,\n\t\tFilename:    requiresFile,\n\t\tData: struct {\n\t\t\tFederation\n\t\t\tExistingImports []rewrite.Import\n\t\t\tPopulators      []Populator\n\t\t\tOriginalSource  string\n\t\t}{*f, existingImports, populators, \"\"},\n\t\tGeneratedHeader: false,\n\t\tPackages:        data.Config.Packages,\n\t\tTemplate:        explicitRequiresTemplate,\n\t\tPruneOptions:    data.Config.GetPruneOptions(),\n\t})\n}\n\nfunc buildResolverSDL(\n\tresolver *EntityResolver,\n\tmulti bool,\n) (resolverSDL, entityResolverInputSDL string) {\n\tif multi {\n\t\tentityResolverInputSDL = buildEntityResolverInputDefinitionSDL(resolver)\n\t\tresolverSDL := fmt.Sprintf(\n\t\t\t\"\\t%s(reps: [%s]!): [%s]\",\n\t\t\tresolver.ResolverName,\n\t\t\tresolver.InputTypeName,\n\t\t\tresolver.ReturnTypeName,\n\t\t)\n\t\treturn resolverSDL, entityResolverInputSDL\n\t}\n\n\tresolverArgs := \"\"\n\tvar resolverArgsSb705 strings.Builder\n\tfor _, keyField := range resolver.KeyFields {\n\t\tfmt.Fprintf(\n\t\t\t&resolverArgsSb705,\n\t\t\t\"%s: %s,\",\n\t\t\tkeyField.Field.ToGoPrivate(),\n\t\t\tkeyField.Definition.Type.String(),\n\t\t)\n\t}\n\tresolverArgs += resolverArgsSb705.String()\n\tresolverSDL = fmt.Sprintf(\n\t\t\"\\t%s(%s): %s!\",\n\t\tresolver.ResolverName,\n\t\tresolverArgs,\n\t\tresolver.ReturnTypeName,\n\t)\n\treturn resolverSDL, \"\"\n}\n\nfunc buildEntityResolverInputDefinitionSDL(resolver *EntityResolver) string {\n\tentityResolverInputDefinition := \"input \" + resolver.InputTypeName + \" {\\n\"\n\tvar entityResolverInputDefinitionSb714 strings.Builder\n\tfor _, keyField := range resolver.KeyFields {\n\t\tfmt.Fprintf(&entityResolverInputDefinitionSb714,\n\t\t\t\"\\t%s: %s\\n\",\n\t\t\tkeyField.Field.ToGo(),\n\t\t\tkeyField.Definition.Type.String(),\n\t\t)\n\t}\n\tentityResolverInputDefinition += entityResolverInputDefinitionSb714.String()\n\treturn entityResolverInputDefinition + \"}\"\n}\n\nfunc (f *Federation) addMapType(cfg *config.Config) {\n\tcfg.Models[mapTypeName] = config.TypeMapEntry{\n\t\tModel: config.StringList{\"github.com/99designs/gqlgen/graphql.Map\"},\n\t}\n\tcfg.Schema.Types[mapTypeName] = &ast.Definition{\n\t\tKind:        ast.Scalar,\n\t\tName:        mapTypeName,\n\t\tDescription: \"Maps an arbitrary GraphQL value to a map[string]any Go type.\",\n\t}\n}\n\nfunc (f *Federation) mutateSchemaForRequires(\n\tschema *ast.Schema,\n\tcfg *config.Config,\n) {\n\tfor _, schemaType := range schema.Types {\n\t\tfor _, field := range schemaType.Fields {\n\t\t\tif dir := field.Directives.ForName(dirNameRequires); dir != nil {\n\t\t\t\t// ensure we always generate a resolver for any @requires field\n\t\t\t\tmodel := cfg.Models[schemaType.Name]\n\t\t\t\tfieldConfig := model.Fields[field.Name]\n\t\t\t\tfieldConfig.Resolver = true\n\t\t\t\tif model.Fields == nil {\n\t\t\t\t\tmodel.Fields = make(map[string]config.TypeMapField)\n\t\t\t\t}\n\t\t\t\tmodel.Fields[field.Name] = fieldConfig\n\t\t\t\tcfg.Models[schemaType.Name] = model\n\n\t\t\t\trequiresArgument := &ast.ArgumentDefinition{\n\t\t\t\t\tName: fieldArgRequires,\n\t\t\t\t\tType: ast.NamedType(mapTypeName, nil),\n\t\t\t\t\tDirectives: ast.DirectiveList{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tName:       dirNamePopulateFromRepresentations,\n\t\t\t\t\t\t\tDefinition: dirPopulateFromRepresentations,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t\tfield.Arguments = append(field.Arguments, requiresArgument)\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "plugin/federation/federation.gotpl",
    "content": "{{ reserveImport \"context\"  }}\n{{ reserveImport \"errors\"  }}\n{{ reserveImport \"fmt\"  }}\n{{ reserveImport \"strings\"  }}\n{{ reserveImport \"sync\"  }}\n\n{{ reserveImport \"github.com/99designs/gqlgen/plugin/federation/fedruntime\" }}\n{{ $options := .PackageOptions }}\n{{ $usePointers := .UsePointers }}\n\n{{ $useFunctionSyntaxForExecutionContext := .UseFunctionSyntaxForExecutionContext }}\n\nvar (\n\tErrUnknownType = errors.New(\"unknown type\")\n\tErrTypeNotFound = errors.New(\"type not found\")\n)\n\nfunc (ec *executionContext) __resolve__service(ctx context.Context) (fedruntime.Service, error) {\n\tif ec.DisableIntrospection {\n\t\treturn fedruntime.Service{}, errors.New(\"federated introspection disabled\")\n\t}\n\n\tvar sdl []string\n\n\tfor _, src := range sources {\n\t\tif src.BuiltIn {\n\t\t\tcontinue\n\t\t}\n\t\tsdl = append(sdl, src.Input)\n\t}\n\n\treturn fedruntime.Service{\n\t\tSDL: strings.Join(sdl, \"\\n\"),\n\t}, nil\n}\n\n{{if .Entities}}\nfunc (ec *executionContext) __resolve_entities(ctx context.Context, representations []map[string]any) []fedruntime.Entity {\n\tlist := make([]fedruntime.Entity, len(representations))\n\n\trepsMap := ec.buildRepresentationGroups(ctx, representations)\n\n\tswitch len(repsMap) {\n\tcase 0:\n\t\treturn list\n\tcase 1:\n\t\tfor typeName, reps := range repsMap {\n\t\t\tec.resolveEntityGroup(ctx, typeName, reps, list)\n\t\t}\n\t\treturn list\n\tdefault:\n\t\tvar g sync.WaitGroup\n\t\tg.Add(len(repsMap))\n\t\tfor typeName, reps := range repsMap {\n\t\t\tgo func(typeName string, reps []EntityWithIndex) {\n\t\t\t\tec.resolveEntityGroup(ctx, typeName, reps, list)\n\t\t\t\tg.Done()\n\t\t\t}(typeName, reps)\n\t\t}\n\t\tg.Wait()\n\t\treturn list\n\t}\n}\n\ntype EntityWithIndex struct {\n\t// The index in the original representation array\n\tindex int\n\tentity EntityRepresentation\n}\n\n// EntityRepresentation is the JSON representation of an entity sent by the Router\n// used as the inputs for us to resolve.\n//\n// We make it a map because we know the top level JSON is always an object.\ntype EntityRepresentation map[string]any\n\n\t// We group entities by typename so that we can parallelize their resolution.\n\t// This is particularly helpful when there are entity groups in multi mode.\nfunc (ec *executionContext) buildRepresentationGroups(\n\tctx context.Context,\n\trepresentations []map[string]any,\n) map[string][]EntityWithIndex {\n\trepsMap := make(map[string][]EntityWithIndex)\n\tfor i, rep := range representations {\n\t\t\ttypeName, ok := rep[\"__typename\"].(string)\n\t\t\tif !ok {\n\t\t\t\t// If there is no __typename, we just skip the representation;\n\t\t\t\t// we just won't be resolving these unknown types.\n\t\t\t\tec.Error(ctx, errors.New(\"__typename must be an existing string\"))\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\trepsMap[typeName] = append(repsMap[typeName], EntityWithIndex{\n\t\t\tindex: i,\n\t\t\tentity: rep,\n\t\t})\n\t}\n\n\treturn repsMap\n}\n\nfunc (ec *executionContext) resolveEntityGroup(\n\tctx context.Context,\n\ttypeName string,\n\treps []EntityWithIndex,\n\tlist []fedruntime.Entity,\n) {\n\tif isMulti(typeName) {\n\t\terr := ec.resolveManyEntities(ctx, typeName, reps, list)\n\t\tif err != nil {\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t} else {\n\t\t// if there are multiple entities to resolve, parallelize (similar to\n\t\t// graphql.FieldSet.Dispatch)\n\t\tvar e sync.WaitGroup\n\t\te.Add(len(reps))\n\t\tfor i, rep := range reps {\n\t\t\ti, rep := i, rep\n\t\t\tgo func(i int, rep EntityWithIndex) {\n\t\t\t\tentity, err := ec.resolveEntity(ctx, typeName, rep.entity)\n\t\t\t\tif err != nil {\n\t\t\t\t\tec.Error(ctx, err)\n\t\t\t\t} else {\n\t\t\t\t\tlist[rep.index] = entity\n\t\t\t\t}\n\t\t\t\te.Done()\n\t\t\t}(i, rep)\n\t\t}\n\t\te.Wait()\n\t}\n}\n\nfunc isMulti(typeName string) bool {\n\t\tswitch typeName {\n\t\t{{- range .Entities -}}\n\t\t\t{{- if .Resolvers -}}\n\t\t\t\t{{- if .Multi -}}\n\t\t\tcase \"{{.Def.Name}}\":\n\t\t\t\treturn true\n\t\t\t\t{{ end }}\n\t\t\t{{- end -}}\n\t\t{{- end -}}\n\t\tdefault:\n\t\t\treturn false\n\t\t}\n\t}\n\nfunc (ec *executionContext) resolveEntity(\n\tctx context.Context,\n\ttypeName string,\n\trep EntityRepresentation,\n) (e fedruntime.Entity, err error) {\n\t\t// we need to do our own panic handling, because we may be called in a\n\t\t// goroutine, where the usual panic handling can't catch us\n\t\tdefer func () {\n\t\t\tif r := recover(); r != nil {\n\t\t\t\terr = ec.Recover(ctx, r)\n\t\t\t}\n\t\t}()\n\n\t\tswitch typeName {\n\t\t\t{{ range $_, $entity := .Entities }}\n\t\t\t\t{{- if and .Resolvers (not .Multi) -}}\n\t\t\t\tcase \"{{.Def.Name}}\":\n\t\t\t\t\tresolverName, err := entityResolverNameFor{{.Def.Name}}(ctx, rep)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"{{.Def.Name}}\": %w`, err)\n\t\t\t\t\t}\n\t\t\t\t\tswitch resolverName {\n\t\t\t\t\t{{ range $i, $resolver := .Resolvers }}\n\t\t\t\t\tcase \"{{.ResolverName}}\":\n\t\t\t\t\t\t{{- range $j, $keyField := .KeyFields }}\n\t\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\t\tid{{$j}}, err := {{.Type.UnmarshalFunc}}(ctx, ec, rep[\"{{.Field.Join `\"].(map[string]any)[\"`}}\"])\n\t\t\t\t\t\t{{- else -}}\n\t\t\t\t\t\tid{{$j}}, err := ec.{{.Type.UnmarshalFunc}}(ctx, rep[\"{{.Field.Join `\"].(map[string]any)[\"`}}\"])\n\t\t\t\t\t\t{{- end }}\n\t\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param {{$j}} for {{$resolver.ResolverName}}(): %w`, err)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t{{- end}}\n\t\t\t\t\t\tentity, err := ec.Resolvers.Entity().{{.ResolverName | go}}(ctx, {{- range $j, $_ := .KeyFields -}} id{{$j}}, {{end}})\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"{{$entity.Def.Name}}\": %w`, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t\t{{- if $options.ComputedRequires }}\n\t\t\t\t\t\t\t{{/* We don't do anything in this case, computed requires are handled by standard resolvers */}}\n\t\t\t\t\t\t{{- else if and $options.ExplicitRequires $entity.Requires }}\n\t\t\t\t\t\t\terr = ec.Populate{{$entity.Def.Name}}Requires(ctx, {{- if (not $usePointers) -}}&{{- end -}}entity, rep)\n\t\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\t\treturn nil, fmt.Errorf(`populating requires for Entity \"{{$entity.Def.Name}}\": %w`, err)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t{{- else }}\n\t\t\t\t\t\t\t{{ range $entity.Requires }}\n\t\t\t\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\t\t\t\tentity.{{.Field.JoinGo `.`}}, err = {{.Type.UnmarshalFunc}}(ctx, ec, rep[\"{{.Field.Join `\"].(map[string]any)[\"`}}\"])\n\t\t\t\t\t\t\t\t{{- else -}}\n\t\t\t\t\t\t\t\tentity.{{.Field.JoinGo `.`}}, err = ec.{{.Type.UnmarshalFunc}}(ctx, rep[\"{{.Field.Join `\"].(map[string]any)[\"`}}\"])\n\t\t\t\t\t\t\t\t{{- end }}\n\t\t\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{{- end }}\n\t\t\t\t\t\t{{- end }}\n\t\t\t\t\t\treturn entity, nil\n\t\t\t\t\t{{- end }}\n\t\t\t\t\t}\n\t\t\t\t{{ end }}\n\t\t\t{{- end }}\n\t\t}\n\treturn nil, fmt.Errorf(\"%w: %s\", ErrUnknownType, typeName)\n\t}\n\nfunc (ec *executionContext) resolveManyEntities(\n\tctx context.Context,\n\ttypeName string,\n\treps []EntityWithIndex,\n\tlist []fedruntime.Entity,\n) (err error) {\n\t\t// we need to do our own panic handling, because we may be called in a\n\t\t// goroutine, where the usual panic handling can't catch us\n\t\tdefer func () {\n\t\t\tif r := recover(); r != nil {\n\t\t\t\terr = ec.Recover(ctx, r)\n\t\t\t}\n\t\t}()\n\n\t\tswitch typeName {\n\t\t\t{{ range $_, $entity := .Entities }}\n\t\t\t\t{{ if and .Resolvers .Multi -}}\n\t\t\t\tcase \"{{.Def.Name}}\":\n\t\t\t\tresolverName, err := entityResolverNameFor{{.Def.Name}}(ctx, reps[0].entity)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn fmt.Errorf(`finding resolver for Entity \"{{.Def.Name}}\": %w`, err)\n\t\t\t\t\t}\n\t\t\t\t\tswitch resolverName {\n\t\t\t\t\t{{ range $i, $resolver := .Resolvers }}\n\t\t\t\t\tcase \"{{.ResolverName}}\":\n\t\t\t\t\ttypedReps := make([]*{{.LookupInputType}}, len(reps))\n\n\t\t\t\t\t\tfor i, rep := range reps {\n\t\t\t\t\t\t\t{{ range $i, $keyField := .KeyFields -}}\n\t\t\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\t\t\tid{{$i}}, err := {{.Type.UnmarshalFunc}}(ctx, ec, rep.entity[\"{{.Field.Join `\"].(map[string]any)[\"`}}\"])\n\t\t\t\t\t\t\t{{- else -}}\n\t\t\t\t\t\t\tid{{$i}}, err := ec.{{.Type.UnmarshalFunc}}(ctx, rep.entity[\"{{.Field.Join `\"].(map[string]any)[\"`}}\"])\n\t\t\t\t\t\t\t{{- end }}\n\t\t\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\t\t\treturn errors.New(fmt.Sprintf(\"Field %s undefined in schema.\", \"{{.Definition.Name}}\"))\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{{end}}\n\n\t\t\t\t\t\ttypedReps[i] = &{{.LookupInputType}} {\n\t\t\t\t\t\t\t{{ range $i, $keyField := .KeyFields -}}\n\t\t\t\t\t\t\t\t{{$keyField.Field.ToGo}}: id{{$i}},\n\t\t\t\t\t\t\t{{end}}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\tentities, err := ec.Resolvers.Entity().{{.ResolverName | go}}(ctx, typedReps)\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\treturn err\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor i, entity := range entities {\n\t\t\t\t\t\t\t{{- if and $.PackageOptions.ExplicitRequires (index $.RequiresEntities $entity.Def.Name) }}\n\t\t\t\t\t\t\t\terr = ec.Populate{{$entity.Def.Name}}Requires(ctx, {{- if not $usePointers -}}&{{- end -}}entity, reps[i].entity)\n\t\t\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\t\t\treturn fmt.Errorf(`populating requires for Entity \"{{$entity.Def.Name}}\": %w`, err)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{{- end }}\n\t\t\t\t\t\t\t{{- range $entity.Requires }}\n\t\t\t\t\t\t\t\t{{- if $options.ComputedRequires }}\n\t\t\t\t\t\t\t\t\t{{/* We don't do anything in this case, computed requires are handled by standard resolvers */}}\n\t\t\t\t\t\t\t\t{{- else if $.PackageOptions.ExplicitRequires }}\n\t\t\t\t\t\t\t\t\t{{/* already handled above */}}\n\t\t\t\t\t\t\t\t{{- else }}\n\t\t\t\t\t\t\t\t\t{{ if $useFunctionSyntaxForExecutionContext -}}\n\t\t\t\t\t\t\t\t\t\tentity.{{.Field.JoinGo `.`}}, err = {{.Type.UnmarshalFunc}}(ctx, ec, reps[i].entity[\"{{.Field.Join `\"].(map[string]any)[\"`}}\"])\n\t\t\t\t\t\t\t\t\t\t{{- else -}}\n\t\t\t\t\t\t\t\t\t\tentity.{{.Field.JoinGo `.`}}, err = ec.{{.Type.UnmarshalFunc}}(ctx, reps[i].entity[\"{{.Field.Join `\"].(map[string]any)[\"`}}\"])\n\t\t\t\t\t\t\t\t\t{{- end }}\n\t\t\t\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\t\t\t\treturn err\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t{{- end}}\n\t\t\t\t\t\t\t{{- end}}\n\t\t\t\t\t\tlist[reps[i].index] = entity\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn nil\n\t\t\t\t\t{{ end }}\n\t\t\t\t\tdefault:\n                    \treturn fmt.Errorf(\"unknown resolver: %s\", resolverName)\n\t\t\t\t\t}\n\t\t\t\t{{ end }}\n\t\t\t{{- end }}\n\t\tdefault:\n\t\t\treturn errors.New(\"unknown type: \"+typeName)\n\t}\n}\n\n{{- /* Make sure the required fields are in the given entity representation and return the name of the proper resolver. */ -}}\n\n{{ range $_, $entity := .Entities }}\n\t{{- if .Resolvers }}\n\n\t\tfunc entityResolverNameFor{{$entity.Name}}(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t\t\t// we collect errors because a later entity resolver may work fine\n\t\t\t// when an entity has multiple keys\n\t\t\tentityResolverErrs := []error{}\n\t\t\t{{- range .Resolvers }}\n\t\t\t\tfor {\n\t\t\t\t\tvar (\n\t\t\t\t\t\tm   EntityRepresentation\n\t\t\t\t\t\tval any\n\t\t\t\t\t\tok  bool\n\t\t\t\t\t)\n\t\t\t\t\t_ = val\n\t\t\t\t\t// if all of the KeyFields values for this resolver are null,\n\t\t\t\t\t// we shouldn't use use it\n\t\t\t\t\tallNull := true\n\t\t\t\t\t{{- range $_, $keyField := .KeyFields }}\n\t\t\t\t\t\tm = rep\n\t\t\t\t\t\t{{- range $i, $field := .Field }}\n\t\t\t\t\t\t\tval, ok = m[\"{{.}}\"]\n\t\t\t\t\t\t\tif !ok {\n\t\t\t\t\t\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\t\t\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"{{.}}\\\" for {{$entity.Name}}\", ErrTypeNotFound))\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{{- if (ne $i $keyField.Field.LastIndex ) }}\n\t\t\t\t\t\t\t\tif m, ok = val.(map[string]any); !ok {\n\t\t\t\t\t\t\t\t\t// nested field value is not a map[string]interface so don't use it\n\t\t\t\t\t\t\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\t\t\t\t\t\t\tfmt.Errorf(\"%w due to nested Key Field \\\"{{.}}\\\" value not matching map[string]any for {{$entity.Name}}\", ErrTypeNotFound))\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{{- else}}\n\t\t\t\t\t\t\t\tif allNull {\n\t\t\t\t\t\t\t\t\tallNull = val == nil\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{{- end}}\n\t\t\t\t\t\t{{- end}}\n\t\t\t\t\t{{- end }}\n\t\t\t\t\tif allNull {\n\t\t\t\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for {{$entity.Name}}\", ErrTypeNotFound))\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\treturn \"{{.ResolverName}}\", nil\n\t\t\t\t}\n\t\t\t{{- end }}\n\t\t\treturn \"\", fmt.Errorf(\"%w for {{$entity.Name}} due to %v\", ErrTypeNotFound,\n\t\t\t\terrors.Join(entityResolverErrs...).Error())\n\t\t}\n\t{{- end }}\n{{- end }}\n\n{{end}}\n"
  },
  {
    "path": "plugin/federation/federation_computedrequires_test.go",
    "content": "//go:generate go run ../../testdata/gqlgen.go -config testdata/computedrequires/gqlgen.yml\npackage federation\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/plugin/federation/testdata/computedrequires\"\n\t\"github.com/99designs/gqlgen/plugin/federation/testdata/computedrequires/generated\"\n)\n\nfunc TestComputedRequires(t *testing.T) {\n\tsrv := handler.New(\n\t\tgenerated.NewExecutableSchema(generated.Config{\n\t\t\tResolvers: &computedrequires.Resolver{},\n\t\t}),\n\t)\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"PlanetRequires entities with requires directive\", func(t *testing.T) {\n\t\trepresentations := []map[string]any{\n\t\t\t{\n\t\t\t\t\"__typename\": \"PlanetRequires\",\n\t\t\t\t\"name\":       \"earth\",\n\t\t\t\t\"diameter\":   12,\n\t\t\t}, {\n\t\t\t\t\"__typename\": \"PlanetRequires\",\n\t\t\t\t\"name\":       \"mars\",\n\t\t\t\t\"diameter\":   10,\n\t\t\t},\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tEntities []struct {\n\t\t\t\tName string `json:\"name\"`\n\t\t\t\tSize int    `json:\"size\"`\n\t\t\t} `json:\"_entities\"`\n\t\t}\n\n\t\terr := c.Post(\n\t\t\tentityQuery([]string{\n\t\t\t\t\"PlanetRequires {name size}\",\n\t\t\t}),\n\t\t\t&resp,\n\t\t\tclient.Var(\"representations\", representations),\n\t\t)\n\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"earth\", resp.Entities[0].Name)\n\t\trequire.Equal(t, 12, resp.Entities[0].Size)\n\t\trequire.Equal(t, \"mars\", resp.Entities[1].Name)\n\t\trequire.Equal(t, 10, resp.Entities[1].Size)\n\t})\n\n\tt.Run(\"PlanetRequires entities with multiple required fields directive\", func(t *testing.T) {\n\t\trepresentations := []map[string]any{\n\t\t\t{\n\t\t\t\t\"__typename\": \"PlanetMultipleRequires\",\n\t\t\t\t\"name\":       \"earth\",\n\t\t\t\t\"density\":    800,\n\t\t\t\t\"diameter\":   12,\n\t\t\t}, {\n\t\t\t\t\"__typename\": \"PlanetMultipleRequires\",\n\t\t\t\t\"name\":       \"mars\",\n\t\t\t\t\"density\":    850,\n\t\t\t\t\"diameter\":   10,\n\t\t\t},\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tEntities []struct {\n\t\t\t\tName   string `json:\"name\"`\n\t\t\t\tWeight int    `json:\"weight\"`\n\t\t\t} `json:\"_entities\"`\n\t\t}\n\n\t\terr := c.Post(\n\t\t\tentityQuery([]string{\n\t\t\t\t\"PlanetMultipleRequires {name weight}\",\n\t\t\t}),\n\t\t\t&resp,\n\t\t\tclient.Var(\"representations\", representations),\n\t\t)\n\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"earth\", resp.Entities[0].Name)\n\t\trequire.Equal(t, 812, resp.Entities[0].Weight)\n\t\trequire.Equal(t, \"mars\", resp.Entities[1].Name)\n\t\trequire.Equal(t, 860, resp.Entities[1].Weight)\n\t})\n\n\tt.Run(\n\t\t\"PlanetRequiresNested entities with requires directive having nested field\",\n\t\tfunc(t *testing.T) {\n\t\t\trepresentations := []map[string]any{\n\t\t\t\t{\n\t\t\t\t\t\"__typename\": \"PlanetRequiresNested\",\n\t\t\t\t\t\"name\":       \"earth\",\n\t\t\t\t\t\"world\": map[string]any{\n\t\t\t\t\t\t\"foo\": \"A\",\n\t\t\t\t\t},\n\t\t\t\t}, {\n\t\t\t\t\t\"__typename\": \"PlanetRequiresNested\",\n\t\t\t\t\t\"name\":       \"mars\",\n\t\t\t\t\t\"world\": map[string]any{\n\t\t\t\t\t\t\"foo\": \"B\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}\n\n\t\t\tvar resp struct {\n\t\t\t\tEntities []struct {\n\t\t\t\t\tName  string `json:\"name\"`\n\t\t\t\t\tWorld struct {\n\t\t\t\t\t\tFoo string `json:\"foo\"`\n\t\t\t\t\t} `json:\"world\"`\n\t\t\t\t} `json:\"_entities\"`\n\t\t\t}\n\n\t\t\terr := c.Post(\n\t\t\t\tentityQuery([]string{\n\t\t\t\t\t\"PlanetRequiresNested {name, world { foo }}\",\n\t\t\t\t}),\n\t\t\t\t&resp,\n\t\t\t\tclient.Var(\"representations\", representations),\n\t\t\t)\n\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Equal(t, \"earth\", resp.Entities[0].Name)\n\t\t\trequire.Equal(t, \"A\", resp.Entities[0].World.Foo)\n\t\t\trequire.Equal(t, \"mars\", resp.Entities[1].Name)\n\t\t\trequire.Equal(t, \"B\", resp.Entities[1].World.Foo)\n\t\t},\n\t)\n}\n\nfunc TestMultiComputedRequires(t *testing.T) {\n\tsrv := handler.New(\n\t\tgenerated.NewExecutableSchema(generated.Config{\n\t\t\tResolvers: &computedrequires.Resolver{},\n\t\t}),\n\t)\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"MultiHelloRequires entities with requires directive\", func(t *testing.T) {\n\t\trepresentations := []map[string]any{\n\t\t\t{\n\t\t\t\t\"__typename\": \"MultiHelloRequires\",\n\t\t\t\t\"name\":       \"first name - 1\",\n\t\t\t\t\"key1\":       \"key1 - 1\",\n\t\t\t}, {\n\t\t\t\t\"__typename\": \"MultiHelloRequires\",\n\t\t\t\t\"name\":       \"first name - 2\",\n\t\t\t\t\"key1\":       \"key1 - 2\",\n\t\t\t},\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tEntities []struct {\n\t\t\t\tName string `json:\"name\"`\n\t\t\t\tKey1 string `json:\"key1\"`\n\t\t\t\tKey2 string `json:\"key2\"`\n\t\t\t} `json:\"_entities\"`\n\t\t}\n\n\t\terr := c.Post(\n\t\t\tentityQuery([]string{\n\t\t\t\t\"MultiHelloRequires {name, key2}\",\n\t\t\t}),\n\t\t\t&resp,\n\t\t\tclient.Var(\"representations\", representations),\n\t\t)\n\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"first name - 1\", resp.Entities[0].Name)\n\t\trequire.Equal(t, \"key1 - 1\", resp.Entities[0].Key2)\n\t\trequire.Equal(t, \"first name - 2\", resp.Entities[1].Name)\n\t\trequire.Equal(t, \"key1 - 2\", resp.Entities[1].Key2)\n\t})\n\n\tt.Run(\"MultiHelloMultipleRequires entities with multiple required fields\", func(t *testing.T) {\n\t\trepresentations := []map[string]any{\n\t\t\t{\n\t\t\t\t\"__typename\": \"MultiHelloMultipleRequires\",\n\t\t\t\t\"name\":       \"first name - 1\",\n\t\t\t\t\"key1\":       \"key1 - 1\",\n\t\t\t\t\"key2\":       \"key2 - 1\",\n\t\t\t}, {\n\t\t\t\t\"__typename\": \"MultiHelloMultipleRequires\",\n\t\t\t\t\"name\":       \"first name - 2\",\n\t\t\t\t\"key1\":       \"key1 - 2\",\n\t\t\t\t\"key2\":       \"key2 - 2\",\n\t\t\t},\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tEntities []struct {\n\t\t\t\tName string `json:\"name\"`\n\t\t\t\tKey1 string `json:\"key1\"`\n\t\t\t\tKey2 string `json:\"key2\"`\n\t\t\t\tKey3 string `json:\"key3\"`\n\t\t\t} `json:\"_entities\"`\n\t\t}\n\n\t\terr := c.Post(\n\t\t\tentityQuery([]string{\n\t\t\t\t\"MultiHelloMultipleRequires {name, key3}\",\n\t\t\t}),\n\t\t\t&resp,\n\t\t\tclient.Var(\"representations\", representations),\n\t\t)\n\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"first name - 1\", resp.Entities[0].Name)\n\t\trequire.Equal(t, \"key1 - 1:key2 - 1\", resp.Entities[0].Key3)\n\t\trequire.Equal(t, \"first name - 2\", resp.Entities[1].Name)\n\t\trequire.Equal(t, \"key1 - 2:key2 - 2\", resp.Entities[1].Key3)\n\t})\n\n\tt.Run(\n\t\t\"MultiPlanetRequiresNested entities with requires directive having nested field\",\n\t\tfunc(t *testing.T) {\n\t\t\trepresentations := []map[string]any{\n\t\t\t\t{\n\t\t\t\t\t\"__typename\": \"MultiPlanetRequiresNested\",\n\t\t\t\t\t\"name\":       \"earth\",\n\t\t\t\t\t\"world\": map[string]any{\n\t\t\t\t\t\t\"foo\": \"A\",\n\t\t\t\t\t},\n\t\t\t\t}, {\n\t\t\t\t\t\"__typename\": \"MultiPlanetRequiresNested\",\n\t\t\t\t\t\"name\":       \"mars\",\n\t\t\t\t\t\"world\": map[string]any{\n\t\t\t\t\t\t\"foo\": \"B\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}\n\n\t\t\tvar resp struct {\n\t\t\t\tEntities []struct {\n\t\t\t\t\tName  string `json:\"name\"`\n\t\t\t\t\tWorld struct {\n\t\t\t\t\t\tFoo string `json:\"foo\"`\n\t\t\t\t\t} `json:\"world\"`\n\t\t\t\t} `json:\"_entities\"`\n\t\t\t}\n\n\t\t\terr := c.Post(\n\t\t\t\tentityQuery([]string{\n\t\t\t\t\t\"MultiPlanetRequiresNested {name, world { foo }}\",\n\t\t\t\t}),\n\t\t\t\t&resp,\n\t\t\t\tclient.Var(\"representations\", representations),\n\t\t\t)\n\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Equal(t, \"earth\", resp.Entities[0].Name)\n\t\t\trequire.Equal(t, \"A\", resp.Entities[0].World.Foo)\n\t\t\trequire.Equal(t, \"mars\", resp.Entities[1].Name)\n\t\t\trequire.Equal(t, \"B\", resp.Entities[1].World.Foo)\n\t\t},\n\t)\n}\n"
  },
  {
    "path": "plugin/federation/federation_entitydirectives_test.go",
    "content": "package federation\n\n//go:generate go run ../../testdata/gqlgen.go -config testdata/entitydirectives/gqlgen.yml\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n)\n\n// TestEntityObjectDirectives validates that OBJECT-level directives\n// are correctly identified and filtered on federated entities.\nfunc TestEntityObjectDirectives(t *testing.T) {\n\tt.Run(\"entities_identified_with_directives\", func(t *testing.T) {\n\t\tf, _ := load(t, \"testdata/entitydirectives/gqlgen.yml\")\n\n\t\t// Verify entities are created with @key directives\n\t\trequire.Len(t, f.Entities, 3, \"should have 3 entities with @key directives\")\n\n\t\t// Find entities\n\t\tvar personEntity *Entity\n\t\tvar productEntity *Entity\n\t\tvar basicEntity *Entity\n\t\tfor _, e := range f.Entities {\n\t\t\tswitch e.Name {\n\t\t\tcase \"Person\":\n\t\t\t\tpersonEntity = e\n\t\t\tcase \"Product\":\n\t\t\t\tproductEntity = e\n\t\t\tcase \"Basic\":\n\t\t\t\tbasicEntity = e\n\t\t\t}\n\t\t}\n\n\t\trequire.NotNil(t, personEntity, \"Person entity should exist\")\n\t\trequire.NotNil(t, productEntity, \"Product entity should exist\")\n\t\trequire.NotNil(t, basicEntity, \"Basic entity should exist\")\n\n\t\t// Verify NonFederationDirectives filters correctly at AST level\n\t\t// Person has @key and @guard, should only return @guard\n\t\tpersonNonFedDirectives := personEntity.NonFederationDirectives()\n\t\trequire.Len(t, personNonFedDirectives, 1, \"Person should have 1 non-federation directive\")\n\t\tassert.Equal(t, \"guard\", personNonFedDirectives[0].Name)\n\n\t\t// Product has @key, @auth, and @guard, should return @auth and @guard\n\t\tproductNonFedDirectives := productEntity.NonFederationDirectives()\n\t\trequire.Len(\n\t\t\tt,\n\t\t\tproductNonFedDirectives,\n\t\t\t2,\n\t\t\t\"Product should have 2 non-federation directives\",\n\t\t)\n\t\tdirectiveNames := []string{productNonFedDirectives[0].Name, productNonFedDirectives[1].Name}\n\t\tassert.Contains(t, directiveNames, \"guard\")\n\t\tassert.Contains(t, directiveNames, \"auth\")\n\n\t\t// Basic has only @key, should have no non-federation directives\n\t\tbasicNonFedDirectives := basicEntity.NonFederationDirectives()\n\t\tassert.Nil(t, basicNonFedDirectives, \"Basic should have no non-federation directives\")\n\t})\n\n\tt.Run(\"federation_directives_excluded\", func(t *testing.T) {\n\t\t// Verify that federation directives are correctly filtered\n\t\ttestCases := []string{\n\t\t\t\"key\", \"requires\", \"provides\", \"external\", \"extends\",\n\t\t\t\"tag\", \"inaccessible\", \"shareable\", \"interfaceObject\",\n\t\t\t\"override\", \"composeDirective\", \"link\",\n\t\t\t\"authenticated\", \"requiresScopes\", \"policy\",\n\t\t\t\"entityResolver\", \"goModel\", \"goField\", \"goTag\",\n\t\t}\n\n\t\tfor _, name := range testCases {\n\t\t\tassert.True(t, federationDirectiveNames[name],\n\t\t\t\t\"federation directive %q should be in exclusion list\", name)\n\t\t}\n\t})\n\n\tt.Run(\"non_federation_directives_preserved\", func(t *testing.T) {\n\t\tf, cfg := load(t, \"testdata/entitydirectives/gqlgen.yml\")\n\t\trequire.NoError(t, f.MutateConfig(cfg))\n\n\t\t// Find Person entity and check AST-level directives\n\t\tvar personEntity *Entity\n\t\tfor _, e := range f.Entities {\n\t\t\tif e.Name == \"Person\" {\n\t\t\t\tpersonEntity = e\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\trequire.NotNil(t, personEntity)\n\n\t\t// NonFederationDirectives should return only @guard (not @key)\n\t\tnonFedDirectives := personEntity.NonFederationDirectives()\n\t\trequire.Len(t, nonFedDirectives, 1)\n\t\tassert.Equal(t, \"guard\", nonFedDirectives[0].Name)\n\n\t\t// Verify @key is filtered out\n\t\tallDirectives := personEntity.Def.Directives\n\t\thasKey := false\n\t\tfor _, d := range allDirectives {\n\t\t\tif d.Name == \"key\" {\n\t\t\t\thasKey = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tassert.True(t, hasKey, \"Person should have @key in full directive list\")\n\t})\n}\n"
  },
  {
    "path": "plugin/federation/federation_entityresolver_test.go",
    "content": "//go:generate go run ../../testdata/gqlgen.go -config testdata/entityresolver/gqlgen.yml\npackage federation\n\nimport (\n\t\"encoding/json\"\n\t\"strconv\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/plugin/federation/testdata/entityresolver\"\n\t\"github.com/99designs/gqlgen/plugin/federation/testdata/entityresolver/generated\"\n)\n\nfunc TestEntityResolver(t *testing.T) {\n\tsrv := handler.New(\n\t\tgenerated.NewExecutableSchema(generated.Config{\n\t\t\tResolvers: &entityresolver.Resolver{},\n\t\t}),\n\t)\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"Hello entities\", func(t *testing.T) {\n\t\trepresentations := []map[string]any{\n\t\t\t{\n\t\t\t\t\"__typename\": \"Hello\",\n\t\t\t\t\"name\":       \"first name - 1\",\n\t\t\t}, {\n\t\t\t\t\"__typename\": \"Hello\",\n\t\t\t\t\"name\":       \"first name - 2\",\n\t\t\t},\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tEntities []struct {\n\t\t\t\tName string `json:\"name\"`\n\t\t\t} `json:\"_entities\"`\n\t\t}\n\n\t\terr := c.Post(\n\t\t\tentityQuery([]string{\n\t\t\t\t\"Hello {name}\",\n\t\t\t}),\n\t\t\t&resp,\n\t\t\tclient.Var(\"representations\", representations),\n\t\t)\n\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"first name - 1\", resp.Entities[0].Name)\n\t\trequire.Equal(t, \"first name - 2\", resp.Entities[1].Name)\n\t})\n\n\tt.Run(\"HelloWithError entities\", func(t *testing.T) {\n\t\trepresentations := []map[string]any{\n\t\t\t{\n\t\t\t\t\"__typename\": \"HelloWithErrors\",\n\t\t\t\t\"name\":       \"first name - 1\",\n\t\t\t}, {\n\t\t\t\t\"__typename\": \"HelloWithErrors\",\n\t\t\t\t\"name\":       \"first name - 2\",\n\t\t\t}, {\n\t\t\t\t\"__typename\": \"HelloWithErrors\",\n\t\t\t\t\"name\":       \"inject error\",\n\t\t\t}, {\n\t\t\t\t\"__typename\": \"HelloWithErrors\",\n\t\t\t\t\"name\":       \"first name - 3\",\n\t\t\t}, {\n\t\t\t\t\"__typename\": \"HelloWithErrors\",\n\t\t\t\t\"name\":       \"\",\n\t\t\t},\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tEntities []struct {\n\t\t\t\tName string `json:\"name\"`\n\t\t\t} `json:\"_entities\"`\n\t\t}\n\n\t\terr := c.Post(\n\t\t\tentityQuery([]string{\n\t\t\t\t\"HelloWithErrors {name}\",\n\t\t\t}),\n\t\t\t&resp,\n\t\t\tclient.Var(\"representations\", representations),\n\t\t)\n\n\t\trequire.Error(t, err)\n\t\tentityErrors, err := getEntityErrors(err)\n\t\trequire.NoError(t, err)\n\t\trequire.Len(t, entityErrors, 2)\n\t\terrMessages := []string{\n\t\t\tentityErrors[0].Message,\n\t\t\tentityErrors[1].Message,\n\t\t}\n\n\t\trequire.Contains(\n\t\t\tt,\n\t\t\terrMessages,\n\t\t\t\"resolving Entity \\\"HelloWithErrors\\\": error (empty key) resolving HelloWithErrorsByName\",\n\t\t)\n\t\trequire.Contains(\n\t\t\tt,\n\t\t\terrMessages,\n\t\t\t\"resolving Entity \\\"HelloWithErrors\\\": error resolving HelloWithErrorsByName\",\n\t\t)\n\n\t\trequire.Len(t, resp.Entities, 5)\n\t\trequire.Equal(t, \"first name - 1\", resp.Entities[0].Name)\n\t\trequire.Equal(t, \"first name - 2\", resp.Entities[1].Name)\n\t\trequire.Empty(t, resp.Entities[2].Name)\n\t\trequire.Equal(t, \"first name - 3\", resp.Entities[3].Name)\n\t\trequire.Empty(t, resp.Entities[4].Name)\n\t})\n\n\tt.Run(\"World entities with nested key\", func(t *testing.T) {\n\t\trepresentations := []map[string]any{\n\t\t\t{\n\t\t\t\t\"__typename\": \"World\",\n\t\t\t\t\"hello\": map[string]any{\n\t\t\t\t\t\"name\": \"world name - 1\",\n\t\t\t\t},\n\t\t\t\t\"foo\": \"foo 1\",\n\t\t\t}, {\n\t\t\t\t\"__typename\": \"World\",\n\t\t\t\t\"hello\": map[string]any{\n\t\t\t\t\t\"name\": \"world name - 2\",\n\t\t\t\t},\n\t\t\t\t\"foo\": \"foo 2\",\n\t\t\t},\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tEntities []struct {\n\t\t\t\tFoo   string `json:\"foo\"`\n\t\t\t\tHello struct {\n\t\t\t\t\tName string `json:\"name\"`\n\t\t\t\t} `json:\"hello\"`\n\t\t\t} `json:\"_entities\"`\n\t\t}\n\n\t\terr := c.Post(\n\t\t\tentityQuery([]string{\n\t\t\t\t\"World {foo hello {name}}\",\n\t\t\t}),\n\t\t\t&resp,\n\t\t\tclient.Var(\"representations\", representations),\n\t\t)\n\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"foo 1\", resp.Entities[0].Foo)\n\t\trequire.Equal(t, \"world name - 1\", resp.Entities[0].Hello.Name)\n\t\trequire.Equal(t, \"foo 2\", resp.Entities[1].Foo)\n\t\trequire.Equal(t, \"world name - 2\", resp.Entities[1].Hello.Name)\n\t})\n\n\tt.Run(\"World entities with multiple keys\", func(t *testing.T) {\n\t\trepresentations := []map[string]any{\n\t\t\t{\n\t\t\t\t\"__typename\": \"WorldWithMultipleKeys\",\n\t\t\t\t\"hello\": map[string]any{\n\t\t\t\t\t\"name\": \"world name - 1\",\n\t\t\t\t},\n\t\t\t\t\"foo\": \"foo 1\",\n\t\t\t}, {\n\t\t\t\t\"__typename\": \"WorldWithMultipleKeys\",\n\t\t\t\t\"bar\":        11,\n\t\t\t},\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tEntities []struct {\n\t\t\t\tFoo   string `json:\"foo\"`\n\t\t\t\tHello struct {\n\t\t\t\t\tName string `json:\"name\"`\n\t\t\t\t} `json:\"hello\"`\n\t\t\t\tBar int `json:\"bar\"`\n\t\t\t} `json:\"_entities\"`\n\t\t}\n\t\teq := entityQuery([]string{\n\t\t\t\"WorldWithMultipleKeys {foo hello {name}}\",\n\t\t\t\"WorldWithMultipleKeys {bar}\",\n\t\t})\n\t\terr := c.Post(\n\t\t\teq,\n\t\t\t&resp,\n\t\t\tclient.Var(\"representations\", representations),\n\t\t)\n\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"foo 1\", resp.Entities[0].Foo)\n\t\trequire.Equal(t, \"world name - 1\", resp.Entities[0].Hello.Name)\n\t\trequire.Equal(t, 11, resp.Entities[1].Bar)\n\t})\n\n\tt.Run(\n\t\t\"World entities with one single-key nil should hit resolver without nils\",\n\t\tfunc(t *testing.T) {\n\t\t\trepresentations := []map[string]any{\n\t\t\t\t{\n\t\t\t\t\t\"__typename\": \"WorldWithMultipleKeys\",\n\t\t\t\t\t\"hello\": map[string]any{\n\t\t\t\t\t\t\"name\": \"world name - 1\",\n\t\t\t\t\t},\n\t\t\t\t\t\"foo\": \"foo 1\",\n\t\t\t\t\t\"bar\": nil,\n\t\t\t\t},\n\t\t\t}\n\n\t\t\tvar resp struct {\n\t\t\t\tEntities []struct {\n\t\t\t\t\tFoo   string `json:\"foo\"`\n\t\t\t\t\tHello struct {\n\t\t\t\t\t\tName string `json:\"name\"`\n\t\t\t\t\t} `json:\"hello\"`\n\t\t\t\t\tBar int `json:\"bar\"`\n\t\t\t\t} `json:\"_entities\"`\n\t\t\t}\n\n\t\t\terr := c.Post(\n\t\t\t\tentityQuery([]string{\n\t\t\t\t\t\"WorldWithMultipleKeys {foo hello {name} bar}\",\n\t\t\t\t}),\n\t\t\t\t&resp,\n\t\t\t\tclient.Var(\"representations\", representations),\n\t\t\t)\n\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Len(t, resp.Entities, 1)\n\t\t\trequire.Equal(t, \"foo 1\", resp.Entities[0].Foo)\n\t\t\trequire.Equal(t, \"world name - 1\", resp.Entities[0].Hello.Name)\n\t\t\trequire.Equal(\n\t\t\t\tt,\n\t\t\t\tentityresolver.FindWorldWithMultipleKeysByHelloNameAndFooBarValue,\n\t\t\t\tresp.Entities[0].Bar,\n\t\t\t)\n\t\t},\n\t)\n\n\tt.Run(\"Hello WorldName entities (heterogeneous)\", func(t *testing.T) {\n\t\t// Entity resolution can handle heterogenenous representations. Meaning,\n\t\t// the representations for resolving entities can be of different\n\t\t// __typename. So the tests here will interleve two different entity\n\t\t// types so that we can test support for resolving different types and\n\t\t// correctly handle ordering.\n\t\trepresentations := []map[string]any{}\n\t\tcount := 10\n\n\t\tfor i := range count {\n\t\t\tif i%2 == 0 {\n\t\t\t\trepresentations = append(representations, map[string]any{\n\t\t\t\t\t\"__typename\": \"Hello\",\n\t\t\t\t\t\"name\":       \"hello - \" + strconv.Itoa(i),\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\trepresentations = append(representations, map[string]any{\n\t\t\t\t\t\"__typename\": \"WorldName\",\n\t\t\t\t\t\"name\":       \"world name - \" + strconv.Itoa(i),\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tEntities []struct {\n\t\t\t\tName string `json:\"name\"`\n\t\t\t} `json:\"_entities\"`\n\t\t}\n\n\t\terr := c.Post(\n\t\t\tentityQuery([]string{\n\t\t\t\t\"Hello {name}\",\n\t\t\t\t\"WorldName {name}\",\n\t\t\t}),\n\t\t\t&resp,\n\t\t\tclient.Var(\"representations\", representations),\n\t\t)\n\n\t\trequire.NoError(t, err)\n\t\trequire.Len(t, resp.Entities, count)\n\n\t\tfor i := range count {\n\t\t\tif i%2 == 0 {\n\t\t\t\trequire.Equal(t, resp.Entities[i].Name, \"hello - \"+strconv.Itoa(i))\n\t\t\t} else {\n\t\t\t\trequire.Equal(t, resp.Entities[i].Name, \"world name - \"+strconv.Itoa(i))\n\t\t\t}\n\t\t}\n\t})\n\n\tt.Run(\"PlanetRequires entities with requires directive\", func(t *testing.T) {\n\t\trepresentations := []map[string]any{\n\t\t\t{\n\t\t\t\t\"__typename\": \"PlanetRequires\",\n\t\t\t\t\"name\":       \"earth\",\n\t\t\t\t\"diameter\":   12,\n\t\t\t}, {\n\t\t\t\t\"__typename\": \"PlanetRequires\",\n\t\t\t\t\"name\":       \"mars\",\n\t\t\t\t\"diameter\":   10,\n\t\t\t},\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tEntities []struct {\n\t\t\t\tName     string `json:\"name\"`\n\t\t\t\tDiameter int    `json:\"diameter\"`\n\t\t\t} `json:\"_entities\"`\n\t\t}\n\n\t\terr := c.Post(\n\t\t\tentityQuery([]string{\n\t\t\t\t\"PlanetRequires {name, diameter}\",\n\t\t\t}),\n\t\t\t&resp,\n\t\t\tclient.Var(\"representations\", representations),\n\t\t)\n\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"earth\", resp.Entities[0].Name)\n\t\trequire.Equal(t, 12, resp.Entities[0].Diameter)\n\t\trequire.Equal(t, \"mars\", resp.Entities[1].Name)\n\t\trequire.Equal(t, 10, resp.Entities[1].Diameter)\n\t})\n\n\tt.Run(\"PlanetRequires entities with multiple required fields directive\", func(t *testing.T) {\n\t\trepresentations := []map[string]any{\n\t\t\t{\n\t\t\t\t\"__typename\": \"PlanetMultipleRequires\",\n\t\t\t\t\"name\":       \"earth\",\n\t\t\t\t\"density\":    800,\n\t\t\t\t\"diameter\":   12,\n\t\t\t}, {\n\t\t\t\t\"__typename\": \"PlanetMultipleRequires\",\n\t\t\t\t\"name\":       \"mars\",\n\t\t\t\t\"density\":    850,\n\t\t\t\t\"diameter\":   10,\n\t\t\t},\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tEntities []struct {\n\t\t\t\tName     string `json:\"name\"`\n\t\t\t\tDensity  int    `json:\"density\"`\n\t\t\t\tDiameter int    `json:\"diameter\"`\n\t\t\t} `json:\"_entities\"`\n\t\t}\n\n\t\terr := c.Post(\n\t\t\tentityQuery([]string{\n\t\t\t\t\"PlanetMultipleRequires {name, diameter, density}\",\n\t\t\t}),\n\t\t\t&resp,\n\t\t\tclient.Var(\"representations\", representations),\n\t\t)\n\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"earth\", resp.Entities[0].Name)\n\t\trequire.Equal(t, 12, resp.Entities[0].Diameter)\n\t\trequire.Equal(t, 800, resp.Entities[0].Density)\n\t\trequire.Equal(t, \"mars\", resp.Entities[1].Name)\n\t\trequire.Equal(t, 10, resp.Entities[1].Diameter)\n\t\trequire.Equal(t, 850, resp.Entities[1].Density)\n\t})\n\n\tt.Run(\n\t\t\"PlanetRequiresNested entities with requires directive having nested field\",\n\t\tfunc(t *testing.T) {\n\t\t\trepresentations := []map[string]any{\n\t\t\t\t{\n\t\t\t\t\t\"__typename\": \"PlanetRequiresNested\",\n\t\t\t\t\t\"name\":       \"earth\",\n\t\t\t\t\t\"world\": map[string]any{\n\t\t\t\t\t\t\"foo\": \"A\",\n\t\t\t\t\t},\n\t\t\t\t}, {\n\t\t\t\t\t\"__typename\": \"PlanetRequiresNested\",\n\t\t\t\t\t\"name\":       \"mars\",\n\t\t\t\t\t\"world\": map[string]any{\n\t\t\t\t\t\t\"foo\": \"B\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}\n\n\t\t\tvar resp struct {\n\t\t\t\tEntities []struct {\n\t\t\t\t\tName  string `json:\"name\"`\n\t\t\t\t\tWorld struct {\n\t\t\t\t\t\tFoo string `json:\"foo\"`\n\t\t\t\t\t} `json:\"world\"`\n\t\t\t\t} `json:\"_entities\"`\n\t\t\t}\n\n\t\t\terr := c.Post(\n\t\t\t\tentityQuery([]string{\n\t\t\t\t\t\"PlanetRequiresNested {name, world { foo }}\",\n\t\t\t\t}),\n\t\t\t\t&resp,\n\t\t\t\tclient.Var(\"representations\", representations),\n\t\t\t)\n\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Equal(t, \"earth\", resp.Entities[0].Name)\n\t\t\trequire.Equal(t, \"A\", resp.Entities[0].World.Foo)\n\t\t\trequire.Equal(t, \"mars\", resp.Entities[1].Name)\n\t\t\trequire.Equal(t, \"B\", resp.Entities[1].World.Foo)\n\t\t},\n\t)\n}\n\nfunc TestMultiEntityResolver(t *testing.T) {\n\tsrv := handler.New(\n\t\tgenerated.NewExecutableSchema(generated.Config{\n\t\t\tResolvers: &entityresolver.Resolver{},\n\t\t}),\n\t)\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"MultiHello entities\", func(t *testing.T) {\n\t\titemCount := 10\n\t\trepresentations := []map[string]any{}\n\n\t\tfor i := range itemCount {\n\t\t\trepresentations = append(representations, map[string]any{\n\t\t\t\t\"__typename\": \"MultiHello\",\n\t\t\t\t\"name\":       \"world name - \" + strconv.Itoa(i),\n\t\t\t})\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tEntities []struct {\n\t\t\t\tName string `json:\"name\"`\n\t\t\t} `json:\"_entities\"`\n\t\t}\n\n\t\terr := c.Post(\n\t\t\tentityQuery([]string{\n\t\t\t\t\"MultiHello {name}\",\n\t\t\t}),\n\t\t\t&resp,\n\t\t\tclient.Var(\"representations\", representations),\n\t\t)\n\n\t\trequire.NoError(t, err)\n\n\t\tfor i := range itemCount {\n\t\t\trequire.Equal(\n\t\t\t\tt,\n\t\t\t\tresp.Entities[i].Name,\n\t\t\t\t\"world name - \"+strconv.Itoa(i)+\" - from multiget\",\n\t\t\t)\n\t\t}\n\t})\n\n\tt.Run(\"MultiHello and Hello (heterogeneous) entities\", func(t *testing.T) {\n\t\titemCount := 20\n\t\trepresentations := []map[string]any{}\n\n\t\tfor i := range itemCount {\n\t\t\t// Let's interleve the representations to test ordering of the\n\t\t\t// responses from the entity query\n\t\t\tif i%2 == 0 {\n\t\t\t\trepresentations = append(representations, map[string]any{\n\t\t\t\t\t\"__typename\": \"MultiHello\",\n\t\t\t\t\t\"name\":       \"world name - \" + strconv.Itoa(i),\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\trepresentations = append(representations, map[string]any{\n\t\t\t\t\t\"__typename\": \"Hello\",\n\t\t\t\t\t\"name\":       \"hello - \" + strconv.Itoa(i),\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tEntities []struct {\n\t\t\t\tName string `json:\"name\"`\n\t\t\t} `json:\"_entities\"`\n\t\t}\n\n\t\terr := c.Post(\n\t\t\tentityQuery([]string{\n\t\t\t\t\"MultiHello {name}\",\n\t\t\t\t\"Hello {name}\",\n\t\t\t}),\n\t\t\t&resp,\n\t\t\tclient.Var(\"representations\", representations),\n\t\t)\n\n\t\trequire.NoError(t, err)\n\n\t\tfor i := range itemCount {\n\t\t\tif i%2 == 0 {\n\t\t\t\trequire.Equal(\n\t\t\t\t\tt,\n\t\t\t\t\tresp.Entities[i].Name,\n\t\t\t\t\t\"world name - \"+strconv.Itoa(i)+\" - from multiget\",\n\t\t\t\t)\n\t\t\t} else {\n\t\t\t\trequire.Equal(t, resp.Entities[i].Name, \"hello - \"+strconv.Itoa(i))\n\t\t\t}\n\t\t}\n\t})\n\n\tt.Run(\"MultiHelloWithError entities\", func(t *testing.T) {\n\t\titemCount := 10\n\t\trepresentations := []map[string]any{}\n\n\t\tfor i := range itemCount {\n\t\t\trepresentations = append(representations, map[string]any{\n\t\t\t\t\"__typename\": \"MultiHelloWithError\",\n\t\t\t\t\"name\":       \"world name - \" + strconv.Itoa(i),\n\t\t\t})\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tEntities []struct {\n\t\t\t\tName string `json:\"name\"`\n\t\t\t} `json:\"_entities\"`\n\t\t}\n\n\t\terr := c.Post(\n\t\t\tentityQuery([]string{\n\t\t\t\t\"MultiHelloWithError {name}\",\n\t\t\t}),\n\t\t\t&resp,\n\t\t\tclient.Var(\"representations\", representations),\n\t\t)\n\n\t\trequire.Error(t, err)\n\t\tentityErrors, err := getEntityErrors(err)\n\t\trequire.NoError(t, err)\n\t\trequire.Len(t, entityErrors, 1)\n\t\trequire.Contains(t, entityErrors[0].Message, \"error resolving MultiHelloWorldWithError\")\n\t})\n\n\tt.Run(\"MultiHelloRequires entities with requires directive\", func(t *testing.T) {\n\t\trepresentations := []map[string]any{\n\t\t\t{\n\t\t\t\t\"__typename\": \"MultiHelloRequires\",\n\t\t\t\t\"name\":       \"first name - 1\",\n\t\t\t\t\"key1\":       \"key1 - 1\",\n\t\t\t}, {\n\t\t\t\t\"__typename\": \"MultiHelloRequires\",\n\t\t\t\t\"name\":       \"first name - 2\",\n\t\t\t\t\"key1\":       \"key1 - 2\",\n\t\t\t},\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tEntities []struct {\n\t\t\t\tName string `json:\"name\"`\n\t\t\t\tKey1 string `json:\"key1\"`\n\t\t\t} `json:\"_entities\"`\n\t\t}\n\n\t\terr := c.Post(\n\t\t\tentityQuery([]string{\n\t\t\t\t\"MultiHelloRequires {name, key1}\",\n\t\t\t}),\n\t\t\t&resp,\n\t\t\tclient.Var(\"representations\", representations),\n\t\t)\n\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"first name - 1\", resp.Entities[0].Name)\n\t\trequire.Equal(t, \"key1 - 1\", resp.Entities[0].Key1)\n\t\trequire.Equal(t, \"first name - 2\", resp.Entities[1].Name)\n\t\trequire.Equal(t, \"key1 - 2\", resp.Entities[1].Key1)\n\t})\n\n\tt.Run(\"MultiHelloMultipleRequires entities with multiple required fields\", func(t *testing.T) {\n\t\trepresentations := []map[string]any{\n\t\t\t{\n\t\t\t\t\"__typename\": \"MultiHelloMultipleRequires\",\n\t\t\t\t\"name\":       \"first name - 1\",\n\t\t\t\t\"key1\":       \"key1 - 1\",\n\t\t\t\t\"key2\":       \"key2 - 1\",\n\t\t\t}, {\n\t\t\t\t\"__typename\": \"MultiHelloMultipleRequires\",\n\t\t\t\t\"name\":       \"first name - 2\",\n\t\t\t\t\"key1\":       \"key1 - 2\",\n\t\t\t\t\"key2\":       \"key2 - 2\",\n\t\t\t},\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tEntities []struct {\n\t\t\t\tName string `json:\"name\"`\n\t\t\t\tKey1 string `json:\"key1\"`\n\t\t\t\tKey2 string `json:\"key2\"`\n\t\t\t} `json:\"_entities\"`\n\t\t}\n\n\t\terr := c.Post(\n\t\t\tentityQuery([]string{\n\t\t\t\t\"MultiHelloMultipleRequires {name, key1, key2}\",\n\t\t\t}),\n\t\t\t&resp,\n\t\t\tclient.Var(\"representations\", representations),\n\t\t)\n\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"first name - 1\", resp.Entities[0].Name)\n\t\trequire.Equal(t, \"key1 - 1\", resp.Entities[0].Key1)\n\t\trequire.Equal(t, \"key2 - 1\", resp.Entities[0].Key2)\n\t\trequire.Equal(t, \"first name - 2\", resp.Entities[1].Name)\n\t\trequire.Equal(t, \"key1 - 2\", resp.Entities[1].Key1)\n\t\trequire.Equal(t, \"key2 - 2\", resp.Entities[1].Key2)\n\t})\n\n\tt.Run(\n\t\t\"MultiPlanetRequiresNested entities with requires directive having nested field\",\n\t\tfunc(t *testing.T) {\n\t\t\trepresentations := []map[string]any{\n\t\t\t\t{\n\t\t\t\t\t\"__typename\": \"MultiPlanetRequiresNested\",\n\t\t\t\t\t\"name\":       \"earth\",\n\t\t\t\t\t\"world\": map[string]any{\n\t\t\t\t\t\t\"foo\": \"A\",\n\t\t\t\t\t},\n\t\t\t\t}, {\n\t\t\t\t\t\"__typename\": \"MultiPlanetRequiresNested\",\n\t\t\t\t\t\"name\":       \"mars\",\n\t\t\t\t\t\"world\": map[string]any{\n\t\t\t\t\t\t\"foo\": \"B\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}\n\n\t\t\tvar resp struct {\n\t\t\t\tEntities []struct {\n\t\t\t\t\tName  string `json:\"name\"`\n\t\t\t\t\tWorld struct {\n\t\t\t\t\t\tFoo string `json:\"foo\"`\n\t\t\t\t\t} `json:\"world\"`\n\t\t\t\t} `json:\"_entities\"`\n\t\t\t}\n\n\t\t\terr := c.Post(\n\t\t\t\tentityQuery([]string{\n\t\t\t\t\t\"MultiPlanetRequiresNested {name, world { foo }}\",\n\t\t\t\t}),\n\t\t\t\t&resp,\n\t\t\t\tclient.Var(\"representations\", representations),\n\t\t\t)\n\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Equal(t, \"earth\", resp.Entities[0].Name)\n\t\t\trequire.Equal(t, \"A\", resp.Entities[0].World.Foo)\n\t\t\trequire.Equal(t, \"mars\", resp.Entities[1].Name)\n\t\t\trequire.Equal(t, \"B\", resp.Entities[1].World.Foo)\n\t\t},\n\t)\n}\n\nfunc entityQuery(queries []string) string {\n\t// What we want!\n\t// query($representations:[_Any!]!){_entities(representations:$representations){ ...on\n\t// Hello{secondary} }}\n\tentityQueries := make([]string, len(queries))\n\tfor i, query := range queries {\n\t\tentityQueries[i] = \" ... on \" + query\n\t}\n\n\treturn \"query($representations:[_Any!]!){_entities(representations:$representations){\" + strings.Join(\n\t\tentityQueries,\n\t\t\"\",\n\t) + \"}}\"\n}\n\ntype entityResolverError struct {\n\tMessage string   `json:\"message\"`\n\tPath    []string `json:\"path\"`\n}\n\nfunc getEntityErrors(err error) ([]*entityResolverError, error) {\n\tvar errors []*entityResolverError\n\terr = json.Unmarshal([]byte(err.Error()), &errors)\n\treturn errors, err\n}\n"
  },
  {
    "path": "plugin/federation/federation_explicitrequires_test.go",
    "content": "//go:generate go run ../../testdata/gqlgen.go -config testdata/explicitrequires/gqlgen.yml\npackage federation\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/plugin/federation/testdata/explicitrequires\"\n\t\"github.com/99designs/gqlgen/plugin/federation/testdata/explicitrequires/generated\"\n)\n\nfunc TestExplicitRequires(t *testing.T) {\n\tsrv := handler.New(\n\t\tgenerated.NewExecutableSchema(generated.Config{\n\t\t\tResolvers: &explicitrequires.Resolver{},\n\t\t}),\n\t)\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"PlanetRequires entities with requires directive\", func(t *testing.T) {\n\t\trepresentations := []map[string]any{\n\t\t\t{\n\t\t\t\t\"__typename\": \"PlanetRequires\",\n\t\t\t\t\"name\":       \"earth\",\n\t\t\t\t\"diameter\":   12,\n\t\t\t}, {\n\t\t\t\t\"__typename\": \"PlanetRequires\",\n\t\t\t\t\"name\":       \"mars\",\n\t\t\t\t\"diameter\":   10,\n\t\t\t},\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tEntities []struct {\n\t\t\t\tName     string `json:\"name\"`\n\t\t\t\tDiameter int    `json:\"diameter\"`\n\t\t\t} `json:\"_entities\"`\n\t\t}\n\n\t\terr := c.Post(\n\t\t\tentityQuery([]string{\n\t\t\t\t\"PlanetRequires {name, diameter}\",\n\t\t\t}),\n\t\t\t&resp,\n\t\t\tclient.Var(\"representations\", representations),\n\t\t)\n\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"earth\", resp.Entities[0].Name)\n\t\trequire.Equal(t, 12, resp.Entities[0].Diameter)\n\t\trequire.Equal(t, \"mars\", resp.Entities[1].Name)\n\t\trequire.Equal(t, 10, resp.Entities[1].Diameter)\n\t})\n\n\tt.Run(\n\t\t\"PlanetMultipleRequires entities with multiple required fields directive\",\n\t\tfunc(t *testing.T) {\n\t\t\trepresentations := []map[string]any{\n\t\t\t\t{\n\t\t\t\t\t\"__typename\": \"PlanetMultipleRequires\",\n\t\t\t\t\t\"name\":       \"earth\",\n\t\t\t\t\t\"density\":    800,\n\t\t\t\t\t\"diameter\":   12,\n\t\t\t\t}, {\n\t\t\t\t\t\"__typename\": \"PlanetMultipleRequires\",\n\t\t\t\t\t\"name\":       \"mars\",\n\t\t\t\t\t\"density\":    850,\n\t\t\t\t\t\"diameter\":   10,\n\t\t\t\t},\n\t\t\t}\n\n\t\t\tvar resp struct {\n\t\t\t\tEntities []struct {\n\t\t\t\t\tName     string `json:\"name\"`\n\t\t\t\t\tDensity  int    `json:\"density\"`\n\t\t\t\t\tDiameter int    `json:\"diameter\"`\n\t\t\t\t} `json:\"_entities\"`\n\t\t\t}\n\n\t\t\terr := c.Post(\n\t\t\t\tentityQuery([]string{\n\t\t\t\t\t\"PlanetMultipleRequires {name, diameter, density}\",\n\t\t\t\t}),\n\t\t\t\t&resp,\n\t\t\t\tclient.Var(\"representations\", representations),\n\t\t\t)\n\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Equal(t, \"earth\", resp.Entities[0].Name)\n\t\t\trequire.Equal(t, 12, resp.Entities[0].Diameter)\n\t\t\trequire.Equal(t, 800, resp.Entities[0].Density)\n\t\t\trequire.Equal(t, \"mars\", resp.Entities[1].Name)\n\t\t\trequire.Equal(t, 10, resp.Entities[1].Diameter)\n\t\t\trequire.Equal(t, 850, resp.Entities[1].Density)\n\t\t},\n\t)\n\n\tt.Run(\n\t\t\"PlanetRequiresNested entities with requires directive having nested field\",\n\t\tfunc(t *testing.T) {\n\t\t\trepresentations := []map[string]any{\n\t\t\t\t{\n\t\t\t\t\t\"__typename\": \"PlanetRequiresNested\",\n\t\t\t\t\t\"name\":       \"earth\",\n\t\t\t\t\t\"world\": map[string]any{\n\t\t\t\t\t\t\"foo\": \"A\",\n\t\t\t\t\t},\n\t\t\t\t}, {\n\t\t\t\t\t\"__typename\": \"PlanetRequiresNested\",\n\t\t\t\t\t\"name\":       \"mars\",\n\t\t\t\t\t\"world\": map[string]any{\n\t\t\t\t\t\t\"foo\": \"B\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}\n\n\t\t\tvar resp struct {\n\t\t\t\tEntities []struct {\n\t\t\t\t\tName  string `json:\"name\"`\n\t\t\t\t\tWorld struct {\n\t\t\t\t\t\tFoo string `json:\"foo\"`\n\t\t\t\t\t} `json:\"world\"`\n\t\t\t\t} `json:\"_entities\"`\n\t\t\t}\n\n\t\t\terr := c.Post(\n\t\t\t\tentityQuery([]string{\n\t\t\t\t\t\"PlanetRequiresNested {name, world { foo }}\",\n\t\t\t\t}),\n\t\t\t\t&resp,\n\t\t\t\tclient.Var(\"representations\", representations),\n\t\t\t)\n\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Equal(t, \"earth\", resp.Entities[0].Name)\n\t\t\trequire.Equal(t, \"A\", resp.Entities[0].World.Foo)\n\t\t\trequire.Equal(t, \"mars\", resp.Entities[1].Name)\n\t\t\trequire.Equal(t, \"B\", resp.Entities[1].World.Foo)\n\t\t},\n\t)\n}\n\nfunc TestMultiExplicitRequires(t *testing.T) {\n\tsrv := handler.New(\n\t\tgenerated.NewExecutableSchema(generated.Config{\n\t\t\tResolvers: &explicitrequires.Resolver{},\n\t\t}),\n\t)\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"MultiHelloRequires entities with requires directive\", func(t *testing.T) {\n\t\trepresentations := []map[string]any{\n\t\t\t{\n\t\t\t\t\"__typename\": \"MultiHelloRequires\",\n\t\t\t\t\"name\":       \"first name - 1\",\n\t\t\t\t\"key1\":       \"key1 - 1\",\n\t\t\t}, {\n\t\t\t\t\"__typename\": \"MultiHelloRequires\",\n\t\t\t\t\"name\":       \"first name - 2\",\n\t\t\t\t\"key1\":       \"key1 - 2\",\n\t\t\t},\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tEntities []struct {\n\t\t\t\tName string `json:\"name\"`\n\t\t\t\tKey1 string `json:\"key1\"`\n\t\t\t} `json:\"_entities\"`\n\t\t}\n\n\t\terr := c.Post(\n\t\t\tentityQuery([]string{\n\t\t\t\t\"MultiHelloRequires {name, key1}\",\n\t\t\t}),\n\t\t\t&resp,\n\t\t\tclient.Var(\"representations\", representations),\n\t\t)\n\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"first name - 1\", resp.Entities[0].Name)\n\t\trequire.Equal(t, \"key1 - 1\", resp.Entities[0].Key1)\n\t\trequire.Equal(t, \"first name - 2\", resp.Entities[1].Name)\n\t\trequire.Equal(t, \"key1 - 2\", resp.Entities[1].Key1)\n\t})\n\n\tt.Run(\"MultiHelloMultipleRequires entities with multiple required fields\", func(t *testing.T) {\n\t\trepresentations := []map[string]any{\n\t\t\t{\n\t\t\t\t\"__typename\": \"MultiHelloMultipleRequires\",\n\t\t\t\t\"name\":       \"first name - 1\",\n\t\t\t\t\"key1\":       \"key1 - 1\",\n\t\t\t\t\"key2\":       \"key2 - 1\",\n\t\t\t}, {\n\t\t\t\t\"__typename\": \"MultiHelloMultipleRequires\",\n\t\t\t\t\"name\":       \"first name - 2\",\n\t\t\t\t\"key1\":       \"key1 - 2\",\n\t\t\t\t\"key2\":       \"key2 - 2\",\n\t\t\t},\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tEntities []struct {\n\t\t\t\tName string `json:\"name\"`\n\t\t\t\tKey1 string `json:\"key1\"`\n\t\t\t\tKey2 string `json:\"key2\"`\n\t\t\t} `json:\"_entities\"`\n\t\t}\n\n\t\terr := c.Post(\n\t\t\tentityQuery([]string{\n\t\t\t\t\"MultiHelloMultipleRequires {name, key1, key2}\",\n\t\t\t}),\n\t\t\t&resp,\n\t\t\tclient.Var(\"representations\", representations),\n\t\t)\n\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"first name - 1\", resp.Entities[0].Name)\n\t\trequire.Equal(t, \"key1 - 1\", resp.Entities[0].Key1)\n\t\trequire.Equal(t, \"key2 - 1\", resp.Entities[0].Key2)\n\t\trequire.Equal(t, \"first name - 2\", resp.Entities[1].Name)\n\t\trequire.Equal(t, \"key1 - 2\", resp.Entities[1].Key1)\n\t\trequire.Equal(t, \"key2 - 2\", resp.Entities[1].Key2)\n\t})\n\n\tt.Run(\n\t\t\"MultiPlanetRequiresNested entities with requires directive having nested field\",\n\t\tfunc(t *testing.T) {\n\t\t\trepresentations := []map[string]any{\n\t\t\t\t{\n\t\t\t\t\t\"__typename\": \"MultiPlanetRequiresNested\",\n\t\t\t\t\t\"name\":       \"earth\",\n\t\t\t\t\t\"world\": map[string]any{\n\t\t\t\t\t\t\"foo\": \"A\",\n\t\t\t\t\t},\n\t\t\t\t}, {\n\t\t\t\t\t\"__typename\": \"MultiPlanetRequiresNested\",\n\t\t\t\t\t\"name\":       \"mars\",\n\t\t\t\t\t\"world\": map[string]any{\n\t\t\t\t\t\t\"foo\": \"B\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}\n\n\t\t\tvar resp struct {\n\t\t\t\tEntities []struct {\n\t\t\t\t\tName  string `json:\"name\"`\n\t\t\t\t\tWorld struct {\n\t\t\t\t\t\tFoo string `json:\"foo\"`\n\t\t\t\t\t} `json:\"world\"`\n\t\t\t\t} `json:\"_entities\"`\n\t\t\t}\n\n\t\t\terr := c.Post(\n\t\t\t\tentityQuery([]string{\n\t\t\t\t\t\"MultiPlanetRequiresNested {name, world { foo }}\",\n\t\t\t\t}),\n\t\t\t\t&resp,\n\t\t\t\tclient.Var(\"representations\", representations),\n\t\t\t)\n\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Equal(t, \"earth\", resp.Entities[0].Name)\n\t\t\trequire.Equal(t, \"A\", resp.Entities[0].World.Foo)\n\t\t\trequire.Equal(t, \"mars\", resp.Entities[1].Name)\n\t\t\trequire.Equal(t, \"B\", resp.Entities[1].World.Foo)\n\t\t},\n\t)\n}\n"
  },
  {
    "path": "plugin/federation/federation_test.go",
    "content": "package federation\n\n//go:generate go run ../../testdata/gqlgen.go -config testdata/entityinterfaces/interface.yml\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/codegen\"\n\t\"github.com/99designs/gqlgen/codegen/config\"\n\t\"github.com/99designs/gqlgen/plugin/federation/fieldset\"\n)\n\nfunc TestNew(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"success_no_options\", func(t *testing.T) {\n\t\tcfg := &config.Config{\n\t\t\tFederation: config.PackageConfig{\n\t\t\t\tOptions: map[string]bool{},\n\t\t\t},\n\t\t}\n\t\tplugin, err := New(1, cfg)\n\t\trequire.NoError(t, err)\n\t\tassert.NotNil(t, plugin)\n\t})\n\n\tt.Run(\"success_computed\", func(t *testing.T) {\n\t\tcfg := &config.Config{\n\t\t\tFederation: config.PackageConfig{\n\t\t\t\tVersion: 2,\n\t\t\t\tOptions: map[string]bool{\n\t\t\t\t\t\"computed_requires\": true,\n\t\t\t\t},\n\t\t\t},\n\t\t\tCallArgumentDirectivesWithNull: true,\n\t\t}\n\t\tplugin, err := New(1, cfg)\n\t\trequire.NoError(t, err)\n\t\tassert.NotNil(t, plugin)\n\t})\n\n\tt.Run(\"error_computed_verion_1\", func(t *testing.T) {\n\t\tcfg := &config.Config{\n\t\t\tFederation: config.PackageConfig{\n\t\t\t\tVersion: 1,\n\t\t\t\tOptions: map[string]bool{\n\t\t\t\t\t\"computed_requires\": true,\n\t\t\t\t},\n\t\t\t},\n\t\t\tCallArgumentDirectivesWithNull: true,\n\t\t}\n\t\tplugin, err := New(1, cfg)\n\t\trequire.Error(t, err)\n\t\tassert.Nil(t, plugin)\n\t})\n\n\tt.Run(\"error_computed_CallArgumentDirectivesWithNull_is_false\", func(t *testing.T) {\n\t\tcfg := &config.Config{\n\t\t\tFederation: config.PackageConfig{\n\t\t\t\tVersion: 2,\n\t\t\t\tOptions: map[string]bool{\n\t\t\t\t\t\"computed_requires\": true,\n\t\t\t\t},\n\t\t\t},\n\t\t\tCallArgumentDirectivesWithNull: false,\n\t\t}\n\t\tplugin, err := New(1, cfg)\n\t\trequire.Error(t, err)\n\t\tassert.Nil(t, plugin)\n\t})\n\n\tt.Run(\"error_both_explicit_and_computed_set\", func(t *testing.T) {\n\t\tcfg := &config.Config{\n\t\t\tFederation: config.PackageConfig{\n\t\t\t\tVersion: 2,\n\t\t\t\tOptions: map[string]bool{\n\t\t\t\t\t\"explicit_requires\": true,\n\t\t\t\t\t\"computed_requires\": true,\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tplugin, err := New(1, cfg)\n\t\trequire.Error(t, err)\n\t\tassert.Nil(t, plugin)\n\t})\n}\n\nfunc TestWithEntities(t *testing.T) {\n\tf, cfg := load(t, \"testdata/allthethings/gqlgen.yml\")\n\n\trequire.Equal(\n\t\tt,\n\t\t[]string{\n\t\t\t\"ExternalExtension\",\n\t\t\t\"Hello\",\n\t\t\t\"MoreNesting\",\n\t\t\t\"MultiHelloMultiKey\",\n\t\t\t\"NestedKey\",\n\t\t\t\"VeryNestedKey\",\n\t\t\t\"World\",\n\t\t},\n\t\tcfg.Schema.Types[\"_Entity\"].Types,\n\t)\n\n\trequire.Len(t, cfg.Schema.Types[\"Entity\"].Fields, 8)\n\n\trequire.Equal(t, \"findExternalExtensionByUpc\", cfg.Schema.Types[\"Entity\"].Fields[0].Name)\n\trequire.Equal(t, \"findHelloByName\", cfg.Schema.Types[\"Entity\"].Fields[1].Name)\n\t// missing on purpose: all @external fields:\n\t// require.Equal(t, \"findMoreNestingByID\", cfg.Schema.Types[\"Entity\"].Fields[2].Name)\n\trequire.Equal(t, \"findManyMultiHelloMultiKeyByNames\", cfg.Schema.Types[\"Entity\"].Fields[2].Name)\n\trequire.Equal(t, \"findManyMultiHelloMultiKeyByKey2s\", cfg.Schema.Types[\"Entity\"].Fields[3].Name)\n\trequire.Equal(t, \"findNestedKeyByIDAndHelloName\", cfg.Schema.Types[\"Entity\"].Fields[4].Name)\n\trequire.Equal(\n\t\tt,\n\t\t\"findVeryNestedKeyByIDAndHelloNameAndWorldFooAndWorldBarAndMoreWorldFoo\",\n\t\tcfg.Schema.Types[\"Entity\"].Fields[5].Name,\n\t)\n\trequire.Equal(t, \"findWorldByFoo\", cfg.Schema.Types[\"Entity\"].Fields[6].Name)\n\trequire.Equal(t, \"findWorldByBar\", cfg.Schema.Types[\"Entity\"].Fields[7].Name)\n\n\trequire.NoError(t, f.MutateConfig(cfg))\n\n\trequire.Len(t, f.Entities, 7)\n\n\trequire.Equal(t, \"ExternalExtension\", f.Entities[0].Name)\n\trequire.Len(t, f.Entities[0].Resolvers, 1)\n\trequire.Len(t, f.Entities[0].Resolvers[0].KeyFields, 1)\n\trequire.Equal(t, \"upc\", f.Entities[0].Resolvers[0].KeyFields[0].Definition.Name)\n\trequire.Equal(t, \"String\", f.Entities[0].Resolvers[0].KeyFields[0].Definition.Type.Name())\n\n\trequire.Equal(t, \"Hello\", f.Entities[1].Name)\n\trequire.Len(t, f.Entities[1].Resolvers, 1)\n\trequire.Len(t, f.Entities[1].Resolvers[0].KeyFields, 1)\n\trequire.Equal(t, \"name\", f.Entities[1].Resolvers[0].KeyFields[0].Definition.Name)\n\trequire.Equal(t, \"String\", f.Entities[1].Resolvers[0].KeyFields[0].Definition.Type.Name())\n\n\trequire.Equal(t, \"MoreNesting\", f.Entities[2].Name)\n\trequire.Empty(t, f.Entities[2].Resolvers)\n\n\trequire.Equal(t, \"MultiHelloMultiKey\", f.Entities[3].Name)\n\trequire.Len(t, f.Entities[3].Resolvers, 2)\n\trequire.Len(t, f.Entities[3].Resolvers[0].KeyFields, 1)\n\trequire.Len(t, f.Entities[3].Resolvers[1].KeyFields, 1)\n\trequire.Equal(t, \"name\", f.Entities[3].Resolvers[0].KeyFields[0].Definition.Name)\n\trequire.Equal(t, \"String\", f.Entities[3].Resolvers[0].KeyFields[0].Definition.Type.Name())\n\trequire.Equal(t, \"key2\", f.Entities[3].Resolvers[1].KeyFields[0].Definition.Name)\n\trequire.Equal(t, \"String\", f.Entities[3].Resolvers[1].KeyFields[0].Definition.Type.Name())\n\n\trequire.Equal(t, \"NestedKey\", f.Entities[4].Name)\n\trequire.Len(t, f.Entities[4].Resolvers, 1)\n\trequire.Len(t, f.Entities[4].Resolvers[0].KeyFields, 2)\n\trequire.Equal(t, \"id\", f.Entities[4].Resolvers[0].KeyFields[0].Definition.Name)\n\trequire.Equal(t, \"String\", f.Entities[4].Resolvers[0].KeyFields[0].Definition.Type.Name())\n\trequire.Equal(t, \"helloName\", f.Entities[4].Resolvers[0].KeyFields[1].Definition.Name)\n\trequire.Equal(t, \"String\", f.Entities[4].Resolvers[0].KeyFields[1].Definition.Type.Name())\n\n\trequire.Equal(t, \"VeryNestedKey\", f.Entities[5].Name)\n\trequire.Len(t, f.Entities[5].Resolvers, 1)\n\trequire.Len(t, f.Entities[5].Resolvers[0].KeyFields, 5)\n\trequire.Equal(t, \"id\", f.Entities[5].Resolvers[0].KeyFields[0].Definition.Name)\n\trequire.Equal(t, \"String\", f.Entities[5].Resolvers[0].KeyFields[0].Definition.Type.Name())\n\trequire.Equal(t, \"helloName\", f.Entities[5].Resolvers[0].KeyFields[1].Definition.Name)\n\trequire.Equal(t, \"String\", f.Entities[5].Resolvers[0].KeyFields[1].Definition.Type.Name())\n\trequire.Equal(t, \"worldFoo\", f.Entities[5].Resolvers[0].KeyFields[2].Definition.Name)\n\trequire.Equal(t, \"String\", f.Entities[5].Resolvers[0].KeyFields[2].Definition.Type.Name())\n\trequire.Equal(t, \"worldBar\", f.Entities[5].Resolvers[0].KeyFields[3].Definition.Name)\n\trequire.Equal(t, \"Int\", f.Entities[5].Resolvers[0].KeyFields[3].Definition.Type.Name())\n\trequire.Equal(t, \"moreWorldFoo\", f.Entities[5].Resolvers[0].KeyFields[4].Definition.Name)\n\trequire.Equal(t, \"String\", f.Entities[5].Resolvers[0].KeyFields[4].Definition.Type.Name())\n\n\trequire.Len(t, f.Entities[5].Requires, 2)\n\trequire.Equal(t, \"id\", f.Entities[5].Requires[0].Name)\n\trequire.Equal(t, \"helloSecondary\", f.Entities[5].Requires[1].Name)\n\n\trequire.Equal(t, \"World\", f.Entities[6].Name)\n\trequire.Len(t, f.Entities[6].Resolvers, 2)\n\trequire.Len(t, f.Entities[6].Resolvers[0].KeyFields, 1)\n\trequire.Equal(t, \"foo\", f.Entities[6].Resolvers[0].KeyFields[0].Definition.Name)\n\trequire.Equal(t, \"String\", f.Entities[6].Resolvers[0].KeyFields[0].Definition.Type.Name())\n\trequire.Len(t, f.Entities[6].Resolvers[1].KeyFields, 1)\n\trequire.Equal(t, \"bar\", f.Entities[6].Resolvers[1].KeyFields[0].Definition.Name)\n\trequire.Equal(t, \"Int\", f.Entities[6].Resolvers[1].KeyFields[0].Definition.Type.Name())\n}\n\nfunc TestNoEntities(t *testing.T) {\n\tf, cfg := load(t, \"testdata/entities/nokey.yml\")\n\n\terr := f.MutateConfig(cfg)\n\trequire.NoError(t, err)\n\trequire.Empty(t, f.Entities)\n}\n\nfunc TestUnusedInterfaceKeyDirective(t *testing.T) {\n\tf, cfg := load(t, \"testdata/interfaces/unused_key.yml\")\n\n\terr := f.MutateConfig(cfg)\n\trequire.NoError(t, err)\n\trequire.Empty(t, f.Entities)\n}\n\nfunc TestInterfaceKeyDirective(t *testing.T) {\n\tf, cfg := load(t, \"testdata/interfaces/key.yml\")\n\n\terr := f.MutateConfig(cfg)\n\trequire.NoError(t, err)\n\trequire.Len(t, cfg.Schema.Types[\"_Entity\"].Types, 1)\n\trequire.Len(t, f.Entities, 2)\n}\n\nfunc TestInterfaceExtendsDirective(t *testing.T) {\n\trequire.Panics(t, func() {\n\t\tload(t, \"testdata/interfaces/extends.yml\")\n\t})\n}\n\nfunc TestEntityInterfaces(t *testing.T) {\n\tf, cfg := load(t, \"testdata/entityinterfaces/interface.yml\")\n\terr := f.MutateConfig(cfg)\n\n\trequire.NoError(t, err)\n\trequire.Len(t, f.Entities[0].Resolvers, 1)\n\trequire.Equal(t, \"Hello\", f.Entities[0].Name)\n\trequire.NotEmpty(t, f.Entities[1].Resolvers)\n}\n\nfunc TestCodeGeneration(t *testing.T) {\n\tf, cfg := load(t, \"testdata/allthethings/gqlgen.yml\")\n\n\trequire.Len(t, cfg.Schema.Types[\"_Entity\"].Types, 7)\n\trequire.Len(t, f.Entities, 7)\n\n\trequire.NoError(t, f.MutateConfig(cfg))\n\n\tdata, err := codegen.BuildData(cfg)\n\trequire.NoError(t, err)\n\trequire.NoError(t, f.GenerateCode(data))\n}\n\nfunc TestCodeGenerationFederation2(t *testing.T) {\n\tf, cfg := load(t, \"testdata/federation2/federation2.yml\")\n\terr := f.MutateConfig(cfg)\n\n\trequire.NoError(t, err)\n\trequire.Equal(t, \"ExternalExtension\", f.Entities[0].Name)\n\trequire.Len(t, f.Entities[0].Resolvers, 1)\n\trequire.Equal(t, \"Hello\", f.Entities[1].Name)\n\trequire.Empty(t, f.Entities[1].Resolvers)\n\trequire.Equal(t, \"World\", f.Entities[2].Name)\n\trequire.Empty(t, f.Entities[2].Resolvers)\n\n\tdata, err := codegen.BuildData(cfg)\n\trequire.NoError(t, err)\n\trequire.NoError(t, f.GenerateCode(data))\n}\n\n// This test is to ensure that the input arguments are not\n// changed when cfg.OmitSliceElementPointers is false OR true\nfunc TestMultiWithOmitSliceElemPointersCfg(t *testing.T) {\n\tstaticRepsString := \"reps: [HelloByNamesInput]!\"\n\tt.Run(\"OmitSliceElementPointers true\", func(t *testing.T) {\n\t\tf, cfg := load(t, \"testdata/multi/multi.yml\")\n\t\tcfg.OmitSliceElementPointers = true\n\t\terr := f.MutateConfig(cfg)\n\t\trequire.NoError(t, err)\n\t\trequire.Len(t, cfg.Schema.Types[\"_Entity\"].Types, 1)\n\t\trequire.Len(t, f.Entities, 1)\n\n\t\tentityGraphqlGenerated := false\n\t\tfor _, source := range cfg.Sources {\n\t\t\tif source.Name != \"federation/entity.graphql\" {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tentityGraphqlGenerated = true\n\t\t\trequire.Contains(t, source.Input, staticRepsString)\n\t\t}\n\t\trequire.True(t, entityGraphqlGenerated)\n\t})\n\n\tt.Run(\"OmitSliceElementPointers false\", func(t *testing.T) {\n\t\tf, cfg := load(t, \"testdata/multi/multi.yml\")\n\t\tcfg.OmitSliceElementPointers = false\n\t\terr := f.MutateConfig(cfg)\n\t\trequire.NoError(t, err)\n\t\trequire.Len(t, cfg.Schema.Types[\"_Entity\"].Types, 1)\n\t\trequire.Len(t, f.Entities, 1)\n\n\t\tentityGraphqlGenerated := false\n\t\tfor _, source := range cfg.Sources {\n\t\t\tif source.Name != \"federation/entity.graphql\" {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tentityGraphqlGenerated = true\n\t\t\trequire.Contains(t, source.Input, staticRepsString)\n\t\t}\n\t\trequire.True(t, entityGraphqlGenerated)\n\t})\n}\n\nfunc TestHandlesRequiresArgumentCorrectlyIfNoSpace(t *testing.T) {\n\trequiresFieldSet := fieldset.New(\"foo bar baz(limit:4)\", nil)\n\tassert.Len(t, requiresFieldSet, 3)\n\tassert.Equal(t, \"Foo\", requiresFieldSet[0].ToGo())\n\tassert.Equal(t, \"Bar\", requiresFieldSet[1].ToGo())\n\tassert.Equal(t, \"Baz(limit:4)\", requiresFieldSet[2].ToGo())\n}\n\nfunc TestHandlesArgumentGeneration(t *testing.T) {\n\te := &Entity{\n\t\tName:      \"\",\n\t\tDef:       nil,\n\t\tResolvers: nil,\n\t\tRequires:  nil,\n\t}\n\n\traw := \"foo bar baz(limit:4)\"\n\trequiresFieldSet := fieldset.New(raw, nil)\n\tfor _, field := range requiresFieldSet {\n\t\te.Requires = append(e.Requires, &Requires{\n\t\t\tName:  field.ToGoPrivate(),\n\t\t\tField: field,\n\t\t})\n\t}\n}\n\nfunc TestInjectSourceLate(t *testing.T) {\n\t_, cfg := load(t, \"testdata/allthethings/gqlgen.yml\")\n\tentityGraphqlGenerated := false\n\tfor _, source := range cfg.Sources {\n\t\tif source.Name != \"federation/entity.graphql\" {\n\t\t\tcontinue\n\t\t}\n\t\tentityGraphqlGenerated = true\n\t\trequire.Contains(t, source.Input, \"union _Entity\")\n\t\trequire.Contains(t, source.Input, \"type _Service {\")\n\t\trequire.Contains(t, source.Input, \"extend type Query {\")\n\t\trequire.Contains(t, source.Input, \"_entities(representations: [_Any!]!): [_Entity]!\")\n\t\trequire.Contains(t, source.Input, \"_service: _Service!\")\n\t}\n\trequire.True(t, entityGraphqlGenerated)\n\n\t_, cfg = load(t, \"testdata/entities/nokey.yml\")\n\tentityGraphqlGenerated = false\n\tfor _, source := range cfg.Sources {\n\t\tif source.Name != \"federation/entity.graphql\" {\n\t\t\tcontinue\n\t\t}\n\t\tentityGraphqlGenerated = true\n\t\trequire.NotContains(t, source.Input, \"union _Entity\")\n\t\trequire.Contains(t, source.Input, \"type _Service {\")\n\t\trequire.Contains(t, source.Input, \"extend type Query {\")\n\t\trequire.NotContains(t, source.Input, \"_entities(representations: [_Any!]!): [_Entity]!\")\n\t\trequire.Contains(t, source.Input, \"_service: _Service!\")\n\t}\n\trequire.True(t, entityGraphqlGenerated)\n\n\t_, cfg = load(t, \"testdata/schema/customquerytype.yml\")\n\tfor _, source := range cfg.Sources {\n\t\tif source.Name != \"federation/entity.graphql\" {\n\t\t\tcontinue\n\t\t}\n\t\trequire.Contains(t, source.Input, \"extend type CustomQuery {\")\n\t}\n}\n\nfunc load(t *testing.T, name string) (*Federation, *config.Config) {\n\tt.Helper()\n\n\tcfg, err := config.LoadConfig(name)\n\trequire.NoError(t, err)\n\n\tif cfg.Federation.Version == 0 {\n\t\tcfg.Federation.Version = 1\n\t}\n\n\tf := &Federation{version: cfg.Federation.Version}\n\ts, err := f.InjectSourcesEarly()\n\trequire.NoError(t, err)\n\tcfg.Sources = append(cfg.Sources, s...)\n\trequire.NoError(t, cfg.LoadSchema())\n\n\tl, err := f.InjectSourcesLate(cfg.Schema)\n\trequire.NoError(t, err)\n\tif l != nil {\n\t\tcfg.Sources = append(cfg.Sources, l...)\n\t}\n\trequire.NoError(t, cfg.LoadSchema())\n\n\trequire.NoError(t, cfg.Init())\n\treturn f, cfg\n}\n"
  },
  {
    "path": "plugin/federation/federation_use_function_syntax_for_execution_context_test.go",
    "content": "//go:generate go run ../../testdata/gqlgen.go -config testdata/usefunctionsyntaxforexecutioncontext/gqlgen.yml\npackage federation\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/client\"\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/plugin/federation/testdata/usefunctionsyntaxforexecutioncontext\"\n\t\"github.com/99designs/gqlgen/plugin/federation/testdata/usefunctionsyntaxforexecutioncontext/generated\"\n)\n\nfunc TestFederationWithUseFunctionSyntaxForExecutionContext(t *testing.T) {\n\tsrv := handler.New(\n\t\tgenerated.NewExecutableSchema(generated.Config{\n\t\t\tResolvers: &usefunctionsyntaxforexecutioncontext.Resolver{},\n\t\t}),\n\t)\n\tsrv.AddTransport(transport.POST{})\n\tc := client.New(srv)\n\n\tt.Run(\"Hello entities\", func(t *testing.T) {\n\t\trepresentations := []map[string]any{\n\t\t\t{\n\t\t\t\t\"__typename\": \"Hello\",\n\t\t\t\t\"name\":       \"first name - 1\",\n\t\t\t}, {\n\t\t\t\t\"__typename\": \"Hello\",\n\t\t\t\t\"name\":       \"first name - 2\",\n\t\t\t},\n\t\t}\n\n\t\tvar resp struct {\n\t\t\tEntities []struct {\n\t\t\t\tName string `json:\"name\"`\n\t\t\t} `json:\"_entities\"`\n\t\t}\n\n\t\terr := c.Post(\n\t\t\tentityQuery([]string{\n\t\t\t\t\"Hello {name}\",\n\t\t\t}),\n\t\t\t&resp,\n\t\t\tclient.Var(\"representations\", representations),\n\t\t)\n\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"first name - 1\", resp.Entities[0].Name)\n\t\trequire.Equal(t, \"first name - 2\", resp.Entities[1].Name)\n\t})\n}\n"
  },
  {
    "path": "plugin/federation/fedruntime/directives.go",
    "content": "package fedruntime\n\nimport (\n\t\"context\"\n\t\"fmt\"\n)\n\n// ResolverFunc is a function that resolves a value in the context of federation entity resolution.\n// It matches the signature used throughout the GraphQL execution pipeline.\ntype ResolverFunc func(context.Context) (any, error)\n\n// DirectiveFunc wraps a resolver with directive middleware logic.\n// It receives the context and the next resolver in the chain, and returns the result.\ntype DirectiveFunc func(context.Context, ResolverFunc) (any, error)\n\n// ChainDirectives applies a chain of directives to a base resolver function.\n// Directives are applied in reverse order, with each directive wrapping the next one.\nfunc ChainDirectives(\n\tctx context.Context, base ResolverFunc, directives []DirectiveFunc,\n) (any, error) {\n\tif len(directives) == 0 {\n\t\treturn base(ctx)\n\t}\n\n\t// Build chain from the end to the beginning (outermost to innermost)\n\t// The last directive in the slice wraps the base resolver\n\t// Each previous directive wraps the result of the next directive\n\tresolver := base\n\tfor i := len(directives) - 1; i >= 0; i-- {\n\t\tdirective := directives[i]\n\t\tnext := resolver\n\t\tresolver = func(ctx context.Context) (any, error) {\n\t\t\treturn directive(ctx, next)\n\t\t}\n\t}\n\n\treturn resolver(ctx)\n}\n\n// WrapEntityResolver wraps an entity resolver with directive middleware.\n// If no directives are provided, the resolver is called directly.\n// Otherwise, directives are applied and the result is type-checked.\nfunc WrapEntityResolver[T any](\n\tctx context.Context,\n\ttypedResolver func(context.Context) (T, error),\n\tdirectives []DirectiveFunc,\n) (T, error) {\n\tvar zero T\n\n\t// Fast path: no directives, call resolver directly\n\tif len(directives) == 0 {\n\t\treturn typedResolver(ctx)\n\t}\n\n\t// Slow path: wrap with directives\n\t// Convert typed resolver to untyped for directive chain\n\tbase := func(ctx context.Context) (any, error) {\n\t\treturn typedResolver(ctx)\n\t}\n\n\tresult, err := ChainDirectives(ctx, base, directives)\n\tif err != nil {\n\t\treturn zero, err\n\t}\n\n\t// Type assert the result back to the expected type\n\ttypedResult, ok := result.(T)\n\tif !ok {\n\t\treturn zero, fmt.Errorf(\n\t\t\t\"unexpected type %T from directive chain, expected %T\",\n\t\t\tresult,\n\t\t\tzero,\n\t\t)\n\t}\n\n\treturn typedResult, nil\n}\n"
  },
  {
    "path": "plugin/federation/fedruntime/directives_test.go",
    "content": "package fedruntime\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestChainDirectives_NoDirectives(t *testing.T) {\n\tctx := context.Background()\n\tbase := func(ctx context.Context) (any, error) {\n\t\treturn \"base result\", nil\n\t}\n\n\tresult, err := ChainDirectives(ctx, base, nil)\n\trequire.NoError(t, err)\n\tassert.Equal(t, \"base result\", result)\n}\n\nfunc TestChainDirectives_SingleDirective(t *testing.T) {\n\tctx := context.Background()\n\tbase := func(ctx context.Context) (any, error) {\n\t\treturn \"base\", nil\n\t}\n\n\tdirectives := []DirectiveFunc{\n\t\tfunc(ctx context.Context, next ResolverFunc) (any, error) {\n\t\t\tresult, err := next(ctx)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\treturn fmt.Sprintf(\"directive1(%v)\", result), nil\n\t\t},\n\t}\n\n\tresult, err := ChainDirectives(ctx, base, directives)\n\trequire.NoError(t, err)\n\tassert.Equal(t, \"directive1(base)\", result)\n}\n\nfunc TestChainDirectives_MultipleDirectives(t *testing.T) {\n\tctx := context.Background()\n\tbase := func(ctx context.Context) (any, error) {\n\t\treturn \"base\", nil\n\t}\n\n\t// Directives are applied in order: directive1 wraps directive2 wraps base\n\tdirectives := []DirectiveFunc{\n\t\tfunc(ctx context.Context, next ResolverFunc) (any, error) {\n\t\t\tresult, err := next(ctx)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\treturn fmt.Sprintf(\"d1(%v)\", result), nil\n\t\t},\n\t\tfunc(ctx context.Context, next ResolverFunc) (any, error) {\n\t\t\tresult, err := next(ctx)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\treturn fmt.Sprintf(\"d2(%v)\", result), nil\n\t\t},\n\t\tfunc(ctx context.Context, next ResolverFunc) (any, error) {\n\t\t\tresult, err := next(ctx)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\treturn fmt.Sprintf(\"d3(%v)\", result), nil\n\t\t},\n\t}\n\n\tresult, err := ChainDirectives(ctx, base, directives)\n\trequire.NoError(t, err)\n\t// Execution order: d1 -> d2 -> d3 -> base\n\t// Result builds up: base -> d3(base) -> d2(d3(base)) -> d1(d2(d3(base)))\n\tassert.Equal(t, \"d1(d2(d3(base)))\", result)\n}\n\nfunc TestChainDirectives_ErrorPropagation(t *testing.T) {\n\tctx := context.Background()\n\n\tt.Run(\"error from base\", func(t *testing.T) {\n\t\tbase := func(ctx context.Context) (any, error) {\n\t\t\treturn nil, errors.New(\"base error\")\n\t\t}\n\n\t\tdirectives := []DirectiveFunc{\n\t\t\tfunc(ctx context.Context, next ResolverFunc) (any, error) {\n\t\t\t\treturn next(ctx)\n\t\t\t},\n\t\t}\n\n\t\tresult, err := ChainDirectives(ctx, base, directives)\n\t\trequire.Error(t, err)\n\t\tassert.Nil(t, result)\n\t\tassert.Equal(t, \"base error\", err.Error())\n\t})\n\n\tt.Run(\"error from directive\", func(t *testing.T) {\n\t\tbase := func(ctx context.Context) (any, error) {\n\t\t\treturn \"base\", nil\n\t\t}\n\n\t\tdirectives := []DirectiveFunc{\n\t\t\tfunc(ctx context.Context, next ResolverFunc) (any, error) {\n\t\t\t\treturn next(ctx)\n\t\t\t},\n\t\t\tfunc(ctx context.Context, next ResolverFunc) (any, error) {\n\t\t\t\treturn nil, errors.New(\"directive error\")\n\t\t\t},\n\t\t}\n\n\t\tresult, err := ChainDirectives(ctx, base, directives)\n\t\trequire.Error(t, err)\n\t\tassert.Nil(t, result)\n\t\tassert.Equal(t, \"directive error\", err.Error())\n\t})\n}\n\nfunc TestChainDirectives_ContextPropagation(t *testing.T) {\n\ttype contextKey string\n\tkey := contextKey(\"test-key\")\n\n\tctx := context.WithValue(context.Background(), key, \"test-value\")\n\tbase := func(ctx context.Context) (any, error) {\n\t\tval := ctx.Value(key)\n\t\treturn val, nil\n\t}\n\n\tdirectives := []DirectiveFunc{\n\t\tfunc(ctx context.Context, next ResolverFunc) (any, error) {\n\t\t\t// Verify context is passed through\n\t\t\tassert.Equal(t, \"test-value\", ctx.Value(key))\n\t\t\treturn next(ctx)\n\t\t},\n\t}\n\n\tresult, err := ChainDirectives(ctx, base, directives)\n\trequire.NoError(t, err)\n\tassert.Equal(t, \"test-value\", result)\n}\n\nfunc TestChainDirectives_DirectiveModifiesContext(t *testing.T) {\n\ttype contextKey string\n\tkey := contextKey(\"counter\")\n\n\tctx := context.WithValue(context.Background(), key, 0)\n\tbase := func(ctx context.Context) (any, error) {\n\t\tval := ctx.Value(key)\n\t\treturn val, nil\n\t}\n\n\tdirectives := []DirectiveFunc{\n\t\tfunc(ctx context.Context, next ResolverFunc) (any, error) {\n\t\t\t// Directive 1 increments counter\n\t\t\tcurrentVal := ctx.Value(key).(int)\n\t\t\tctx = context.WithValue(ctx, key, currentVal+1)\n\t\t\treturn next(ctx)\n\t\t},\n\t\tfunc(ctx context.Context, next ResolverFunc) (any, error) {\n\t\t\t// Directive 2 increments counter\n\t\t\tcurrentVal := ctx.Value(key).(int)\n\t\t\tctx = context.WithValue(ctx, key, currentVal+1)\n\t\t\treturn next(ctx)\n\t\t},\n\t}\n\n\tresult, err := ChainDirectives(ctx, base, directives)\n\trequire.NoError(t, err)\n\t// Both directives increment, so base should see 2\n\tassert.Equal(t, 2, result)\n}\n\nfunc TestChainDirectives_RealWorldAuthExample(t *testing.T) {\n\ttype contextKey string\n\tuserKey := contextKey(\"user\")\n\n\tt.Run(\"authenticated request\", func(t *testing.T) {\n\t\tctx := context.WithValue(context.Background(), userKey, \"alice\")\n\t\tbase := func(ctx context.Context) (any, error) {\n\t\t\treturn map[string]string{\"user\": \"alice\", \"email\": \"alice@example.com\"}, nil\n\t\t}\n\n\t\t// Simulate @auth directive\n\t\tauthDirective := func(ctx context.Context, next ResolverFunc) (any, error) {\n\t\t\tuser := ctx.Value(userKey)\n\t\t\tif user == nil {\n\t\t\t\treturn nil, errors.New(\"unauthorized\")\n\t\t\t}\n\t\t\treturn next(ctx)\n\t\t}\n\n\t\t// Simulate @log directive\n\t\tlogDirective := func(ctx context.Context, next ResolverFunc) (any, error) {\n\t\t\tt.Logf(\"@log: before resolver\")\n\t\t\tresult, err := next(ctx)\n\t\t\tt.Logf(\"@log: after resolver, result=%v, err=%v\", result, err)\n\t\t\treturn result, err\n\t\t}\n\n\t\tdirectives := []DirectiveFunc{authDirective, logDirective}\n\n\t\tresult, err := ChainDirectives(ctx, base, directives)\n\t\trequire.NoError(t, err)\n\t\tassert.NotNil(t, result)\n\t})\n\n\tt.Run(\"unauthenticated request blocked\", func(t *testing.T) {\n\t\tctx := context.Background() // No user in context\n\t\tbase := func(ctx context.Context) (any, error) {\n\t\t\tt.Fatal(\"base should not be called\")\n\t\t\treturn nil, nil\n\t\t}\n\n\t\tauthDirective := func(ctx context.Context, next ResolverFunc) (any, error) {\n\t\t\tuser := ctx.Value(userKey)\n\t\t\tif user == nil {\n\t\t\t\treturn nil, errors.New(\"unauthorized\")\n\t\t\t}\n\t\t\treturn next(ctx)\n\t\t}\n\n\t\tdirectives := []DirectiveFunc{authDirective}\n\n\t\tresult, err := ChainDirectives(ctx, base, directives)\n\t\trequire.Error(t, err)\n\t\tassert.Nil(t, result)\n\t\tassert.Equal(t, \"unauthorized\", err.Error())\n\t})\n}\n\nfunc TestWrapEntityResolver_NoDirectives(t *testing.T) {\n\tctx := context.Background()\n\tresolver := func(ctx context.Context) (string, error) {\n\t\treturn \"result\", nil\n\t}\n\n\tresult, err := WrapEntityResolver(ctx, resolver, nil)\n\trequire.NoError(t, err)\n\tassert.Equal(t, \"result\", result)\n}\n\nfunc TestWrapEntityResolver_WithDirectives(t *testing.T) {\n\tctx := context.Background()\n\tresolver := func(ctx context.Context) (string, error) {\n\t\treturn \"base\", nil\n\t}\n\n\tdirective := func(ctx context.Context, next ResolverFunc) (any, error) {\n\t\tresult, err := next(ctx)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn result.(string) + \" + wrapped\", nil\n\t}\n\n\tresult, err := WrapEntityResolver(ctx, resolver, []DirectiveFunc{directive})\n\trequire.NoError(t, err)\n\tassert.Equal(t, \"base + wrapped\", result)\n}\n\nfunc TestWrapEntityResolver_TypeAssertion(t *testing.T) {\n\tctx := context.Background()\n\n\tt.Run(\"correct type returned\", func(t *testing.T) {\n\t\ttype User struct {\n\t\t\tID   string\n\t\t\tName string\n\t\t}\n\n\t\tresolver := func(ctx context.Context) (*User, error) {\n\t\t\treturn &User{ID: \"1\", Name: \"Alice\"}, nil\n\t\t}\n\n\t\tdirective := func(ctx context.Context, next ResolverFunc) (any, error) {\n\t\t\tresult, err := next(ctx)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tuser := result.(*User)\n\t\t\tuser.Name += \" (modified)\"\n\t\t\treturn user, nil\n\t\t}\n\n\t\tresult, err := WrapEntityResolver(ctx, resolver, []DirectiveFunc{directive})\n\t\trequire.NoError(t, err)\n\t\tassert.Equal(t, \"Alice (modified)\", result.Name)\n\t})\n\n\tt.Run(\"wrong type from directive\", func(t *testing.T) {\n\t\tresolver := func(ctx context.Context) (string, error) {\n\t\t\treturn \"correct type\", nil\n\t\t}\n\n\t\t// Directive returns wrong type\n\t\tdirective := func(ctx context.Context, next ResolverFunc) (any, error) {\n\t\t\t_, err := next(ctx)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\treturn 123, nil // wrong type - should be string\n\t\t}\n\n\t\t_, err := WrapEntityResolver(ctx, resolver, []DirectiveFunc{directive})\n\t\trequire.Error(t, err)\n\t\tassert.Contains(t, err.Error(), \"unexpected type\")\n\t})\n}\n\nfunc TestWrapEntityResolver_ErrorPropagation(t *testing.T) {\n\tctx := context.Background()\n\n\tt.Run(\"resolver error\", func(t *testing.T) {\n\t\texpectedErr := errors.New(\"resolver error\")\n\t\tresolver := func(ctx context.Context) (string, error) {\n\t\t\treturn \"\", expectedErr\n\t\t}\n\n\t\tresult, err := WrapEntityResolver(ctx, resolver, nil)\n\t\trequire.Error(t, err)\n\t\tassert.Equal(t, expectedErr, err)\n\t\tassert.Empty(t, result)\n\t})\n\n\tt.Run(\"directive error\", func(t *testing.T) {\n\t\tresolver := func(ctx context.Context) (string, error) {\n\t\t\treturn \"result\", nil\n\t\t}\n\n\t\texpectedErr := errors.New(\"directive error\")\n\t\tdirective := func(ctx context.Context, next ResolverFunc) (any, error) {\n\t\t\treturn nil, expectedErr\n\t\t}\n\n\t\tresult, err := WrapEntityResolver(ctx, resolver, []DirectiveFunc{directive})\n\t\trequire.Error(t, err)\n\t\tassert.Equal(t, expectedErr, err)\n\t\tassert.Empty(t, result)\n\t})\n}\n\nfunc TestWrapEntityResolver_ComplexTypes(t *testing.T) {\n\ttype EmailHost struct {\n\t\tID     string\n\t\tDomain string\n\t}\n\n\tt.Run(\"pointer to struct\", func(t *testing.T) {\n\t\tctx := context.Background()\n\t\tresolver := func(ctx context.Context) (*EmailHost, error) {\n\t\t\treturn &EmailHost{ID: \"1\", Domain: \"example.com\"}, nil\n\t\t}\n\n\t\tresult, err := WrapEntityResolver(ctx, resolver, nil)\n\t\trequire.NoError(t, err)\n\t\tassert.Equal(t, \"1\", result.ID)\n\t\tassert.Equal(t, \"example.com\", result.Domain)\n\t})\n\n\tt.Run(\"interface type\", func(t *testing.T) {\n\t\tctx := context.Background()\n\t\tresolver := func(ctx context.Context) (any, error) {\n\t\t\treturn map[string]string{\"key\": \"value\"}, nil\n\t\t}\n\n\t\tresult, err := WrapEntityResolver(ctx, resolver, nil)\n\t\trequire.NoError(t, err)\n\t\tassert.Equal(t, map[string]string{\"key\": \"value\"}, result)\n\t})\n\n\tt.Run(\"slice type\", func(t *testing.T) {\n\t\tctx := context.Background()\n\t\tresolver := func(ctx context.Context) ([]string, error) {\n\t\t\treturn []string{\"a\", \"b\", \"c\"}, nil\n\t\t}\n\n\t\tresult, err := WrapEntityResolver(ctx, resolver, nil)\n\t\trequire.NoError(t, err)\n\t\tassert.Equal(t, []string{\"a\", \"b\", \"c\"}, result)\n\t})\n}\n\nfunc TestValidateEntityKeys_SingleResolver(t *testing.T) {\n\tt.Run(\"valid single key field\", func(t *testing.T) {\n\t\trep := map[string]any{\"id\": \"123\"}\n\t\tchecks := []ResolverKeyCheck{\n\t\t\t{\n\t\t\t\tResolverName: \"findUserByID\",\n\t\t\t\tKeyFields: []KeyFieldCheck{\n\t\t\t\t\t{FieldPath: []string{\"id\"}},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tresolverName, err := ValidateEntityKeys(\"User\", rep, checks)\n\t\trequire.NoError(t, err)\n\t\tassert.Equal(t, \"findUserByID\", resolverName)\n\t})\n\n\tt.Run(\"missing key field\", func(t *testing.T) {\n\t\trep := map[string]any{\"name\": \"Alice\"}\n\t\tchecks := []ResolverKeyCheck{\n\t\t\t{\n\t\t\t\tResolverName: \"findUserByID\",\n\t\t\t\tKeyFields: []KeyFieldCheck{\n\t\t\t\t\t{FieldPath: []string{\"id\"}},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\t_, err := ValidateEntityKeys(\"User\", rep, checks)\n\t\trequire.Error(t, err)\n\t\tassert.Contains(t, err.Error(), \"missing Key Field\")\n\t})\n\n\tt.Run(\"null key field\", func(t *testing.T) {\n\t\trep := map[string]any{\"id\": nil}\n\t\tchecks := []ResolverKeyCheck{\n\t\t\t{\n\t\t\t\tResolverName: \"findUserByID\",\n\t\t\t\tKeyFields: []KeyFieldCheck{\n\t\t\t\t\t{FieldPath: []string{\"id\"}},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\t_, err := ValidateEntityKeys(\"User\", rep, checks)\n\t\trequire.Error(t, err)\n\t\tassert.Contains(t, err.Error(), \"all null value KeyFields\")\n\t})\n}\n\nfunc TestValidateEntityKeys_MultipleResolvers(t *testing.T) {\n\tt.Run(\"first resolver matches\", func(t *testing.T) {\n\t\trep := map[string]any{\"id\": \"123\"}\n\t\tchecks := []ResolverKeyCheck{\n\t\t\t{\n\t\t\t\tResolverName: \"findUserByID\",\n\t\t\t\tKeyFields: []KeyFieldCheck{\n\t\t\t\t\t{FieldPath: []string{\"id\"}},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tResolverName: \"findUserByEmail\",\n\t\t\t\tKeyFields: []KeyFieldCheck{\n\t\t\t\t\t{FieldPath: []string{\"email\"}},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tresolverName, err := ValidateEntityKeys(\"User\", rep, checks)\n\t\trequire.NoError(t, err)\n\t\tassert.Equal(t, \"findUserByID\", resolverName)\n\t})\n\n\tt.Run(\"second resolver matches\", func(t *testing.T) {\n\t\trep := map[string]any{\"email\": \"alice@example.com\"}\n\t\tchecks := []ResolverKeyCheck{\n\t\t\t{\n\t\t\t\tResolverName: \"findUserByID\",\n\t\t\t\tKeyFields: []KeyFieldCheck{\n\t\t\t\t\t{FieldPath: []string{\"id\"}},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tResolverName: \"findUserByEmail\",\n\t\t\t\tKeyFields: []KeyFieldCheck{\n\t\t\t\t\t{FieldPath: []string{\"email\"}},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tresolverName, err := ValidateEntityKeys(\"User\", rep, checks)\n\t\trequire.NoError(t, err)\n\t\tassert.Equal(t, \"findUserByEmail\", resolverName)\n\t})\n\n\tt.Run(\"no resolver matches\", func(t *testing.T) {\n\t\trep := map[string]any{\"name\": \"Alice\"}\n\t\tchecks := []ResolverKeyCheck{\n\t\t\t{\n\t\t\t\tResolverName: \"findUserByID\",\n\t\t\t\tKeyFields: []KeyFieldCheck{\n\t\t\t\t\t{FieldPath: []string{\"id\"}},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tResolverName: \"findUserByEmail\",\n\t\t\t\tKeyFields: []KeyFieldCheck{\n\t\t\t\t\t{FieldPath: []string{\"email\"}},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\t_, err := ValidateEntityKeys(\"User\", rep, checks)\n\t\trequire.Error(t, err)\n\t\tassert.Contains(t, err.Error(), \"type not found\")\n\t})\n}\n\nfunc TestValidateEntityKeys_NestedFields(t *testing.T) {\n\tt.Run(\"valid nested field\", func(t *testing.T) {\n\t\trep := map[string]any{\n\t\t\t\"user\": map[string]any{\n\t\t\t\t\"id\": \"123\",\n\t\t\t},\n\t\t}\n\t\tchecks := []ResolverKeyCheck{\n\t\t\t{\n\t\t\t\tResolverName: \"findByUserID\",\n\t\t\t\tKeyFields: []KeyFieldCheck{\n\t\t\t\t\t{FieldPath: []string{\"user\", \"id\"}},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tresolverName, err := ValidateEntityKeys(\"Review\", rep, checks)\n\t\trequire.NoError(t, err)\n\t\tassert.Equal(t, \"findByUserID\", resolverName)\n\t})\n\n\tt.Run(\"missing nested field\", func(t *testing.T) {\n\t\trep := map[string]any{\n\t\t\t\"user\": map[string]any{\n\t\t\t\t\"name\": \"Alice\",\n\t\t\t},\n\t\t}\n\t\tchecks := []ResolverKeyCheck{\n\t\t\t{\n\t\t\t\tResolverName: \"findByUserID\",\n\t\t\t\tKeyFields: []KeyFieldCheck{\n\t\t\t\t\t{FieldPath: []string{\"user\", \"id\"}},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\t_, err := ValidateEntityKeys(\"Review\", rep, checks)\n\t\trequire.Error(t, err)\n\t\tassert.Contains(t, err.Error(), \"missing Key Field\")\n\t})\n\n\tt.Run(\"intermediate field not a map\", func(t *testing.T) {\n\t\trep := map[string]any{\n\t\t\t\"user\": \"not-a-map\",\n\t\t}\n\t\tchecks := []ResolverKeyCheck{\n\t\t\t{\n\t\t\t\tResolverName: \"findByUserID\",\n\t\t\t\tKeyFields: []KeyFieldCheck{\n\t\t\t\t\t{FieldPath: []string{\"user\", \"id\"}},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\t_, err := ValidateEntityKeys(\"Review\", rep, checks)\n\t\trequire.Error(t, err)\n\t\tassert.Contains(t, err.Error(), \"not matching map[string]any\")\n\t})\n}\n\nfunc TestValidateEntityKeys_MultipleKeyFields(t *testing.T) {\n\tt.Run(\"all key fields present\", func(t *testing.T) {\n\t\trep := map[string]any{\n\t\t\t\"manufacturerID\": \"mfg-123\",\n\t\t\t\"productID\":      \"prod-456\",\n\t\t}\n\t\tchecks := []ResolverKeyCheck{\n\t\t\t{\n\t\t\t\tResolverName: \"findProductByManufacturerAndProduct\",\n\t\t\t\tKeyFields: []KeyFieldCheck{\n\t\t\t\t\t{FieldPath: []string{\"manufacturerID\"}},\n\t\t\t\t\t{FieldPath: []string{\"productID\"}},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tresolverName, err := ValidateEntityKeys(\"Product\", rep, checks)\n\t\trequire.NoError(t, err)\n\t\tassert.Equal(t, \"findProductByManufacturerAndProduct\", resolverName)\n\t})\n\n\tt.Run(\"one key field missing\", func(t *testing.T) {\n\t\trep := map[string]any{\n\t\t\t\"manufacturerID\": \"mfg-123\",\n\t\t}\n\t\tchecks := []ResolverKeyCheck{\n\t\t\t{\n\t\t\t\tResolverName: \"findProductByManufacturerAndProduct\",\n\t\t\t\tKeyFields: []KeyFieldCheck{\n\t\t\t\t\t{FieldPath: []string{\"manufacturerID\"}},\n\t\t\t\t\t{FieldPath: []string{\"productID\"}},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\t_, err := ValidateEntityKeys(\"Product\", rep, checks)\n\t\trequire.Error(t, err)\n\t\tassert.Contains(t, err.Error(), \"missing Key Field\")\n\t})\n\n\tt.Run(\"all key fields null\", func(t *testing.T) {\n\t\trep := map[string]any{\n\t\t\t\"manufacturerID\": nil,\n\t\t\t\"productID\":      nil,\n\t\t}\n\t\tchecks := []ResolverKeyCheck{\n\t\t\t{\n\t\t\t\tResolverName: \"findProductByManufacturerAndProduct\",\n\t\t\t\tKeyFields: []KeyFieldCheck{\n\t\t\t\t\t{FieldPath: []string{\"manufacturerID\"}},\n\t\t\t\t\t{FieldPath: []string{\"productID\"}},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\t_, err := ValidateEntityKeys(\"Product\", rep, checks)\n\t\trequire.Error(t, err)\n\t\tassert.Contains(t, err.Error(), \"all null value KeyFields\")\n\t})\n\n\tt.Run(\"some key fields null but not all\", func(t *testing.T) {\n\t\trep := map[string]any{\n\t\t\t\"manufacturerID\": \"mfg-123\",\n\t\t\t\"productID\":      nil,\n\t\t}\n\t\tchecks := []ResolverKeyCheck{\n\t\t\t{\n\t\t\t\tResolverName: \"findProductByManufacturerAndProduct\",\n\t\t\t\tKeyFields: []KeyFieldCheck{\n\t\t\t\t\t{FieldPath: []string{\"manufacturerID\"}},\n\t\t\t\t\t{FieldPath: []string{\"productID\"}},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tresolverName, err := ValidateEntityKeys(\"Product\", rep, checks)\n\t\trequire.NoError(t, err)\n\t\tassert.Equal(t, \"findProductByManufacturerAndProduct\", resolverName)\n\t})\n}\n"
  },
  {
    "path": "plugin/federation/fedruntime/runtime.go",
    "content": "package fedruntime\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n)\n\n// Service is the service object that the\n// generated.go file will return for the _service\n// query\ntype Service struct {\n\tSDL string `json:\"sdl\"`\n}\n\n// Everything with a @key implements this\ntype Entity interface {\n\tIsEntity()\n}\n\n// Used for the Link directive\ntype Link any\n\nvar (\n\t// ErrUnknownType is returned when an unknown entity type is encountered\n\tErrUnknownType = errors.New(\"unknown type\")\n\t// ErrTypeNotFound is returned when an entity type cannot be resolved\n\tErrTypeNotFound = errors.New(\"type not found\")\n)\n\n// KeyFieldCheck represents a key field validation check.\ntype KeyFieldCheck struct {\n\t// FieldPath is the path to the field (e.g., [\"id\"] or [\"user\", \"id\"] for nested fields)\n\tFieldPath []string\n}\n\n// ResolverKeyCheck represents the key requirements for a resolver.\ntype ResolverKeyCheck struct {\n\t// ResolverName is the name of the resolver function\n\tResolverName string\n\t// KeyFields are the required key fields for this resolver\n\tKeyFields []KeyFieldCheck\n}\n\n// ValidateEntityKeys determines which resolver to use for an entity representation.\n// It checks that all required key fields exist and are not all null.\n// Returns the resolver name if valid, or an error if no resolver matches.\nfunc ValidateEntityKeys(\n\tentityName string,\n\trep map[string]any,\n\tresolverChecks []ResolverKeyCheck,\n) (string, error) {\n\tvar allErrors []error\n\n\tfor _, resolverCheck := range resolverChecks {\n\t\tif err := validateResolverKeys(entityName, rep, resolverCheck); err != nil {\n\t\t\tallErrors = append(allErrors, err)\n\t\t\tcontinue\n\t\t}\n\t\t// Found a valid resolver\n\t\treturn resolverCheck.ResolverName, nil\n\t}\n\n\t// No valid resolver found\n\tif len(allErrors) > 0 {\n\t\treturn \"\", fmt.Errorf(\"%w for %s due to %v\",\n\t\t\tErrTypeNotFound, entityName, errors.Join(allErrors...))\n\t}\n\treturn \"\", fmt.Errorf(\"%w for %s: no resolvers defined\", ErrTypeNotFound, entityName)\n}\n\n// validateResolverKeys checks if a resolver's key fields are valid.\nfunc validateResolverKeys(entityName string, rep map[string]any, check ResolverKeyCheck) error {\n\tallNull := true\n\n\tfor _, keyField := range check.KeyFields {\n\t\tval, err := getNestedField(rep, keyField.FieldPath)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"%w: %v\", ErrTypeNotFound, err)\n\t\t}\n\n\t\tif val != nil {\n\t\t\tallNull = false\n\t\t}\n\t}\n\n\tif allNull {\n\t\treturn fmt.Errorf(\"%w due to all null value KeyFields for %s\",\n\t\t\tErrTypeNotFound, entityName)\n\t}\n\n\treturn nil\n}\n\n// getNestedField retrieves a value from a nested map by following a field path.\nfunc getNestedField(rep map[string]any, path []string) (any, error) {\n\tif len(path) == 0 {\n\t\treturn nil, errors.New(\"empty field path\")\n\t}\n\n\tcurrent := rep\n\tfor i, fieldName := range path {\n\t\tval, ok := current[fieldName]\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"missing Key Field %q\", fieldName)\n\t\t}\n\n\t\t// If this is not the last field in the path, it should be a map\n\t\tif i < len(path)-1 {\n\t\t\tnextMap, ok := val.(map[string]any)\n\t\t\tif !ok {\n\t\t\t\treturn nil, fmt.Errorf(\n\t\t\t\t\t\"nested Key Field %q value not matching map[string]any\",\n\t\t\t\t\tfieldName,\n\t\t\t\t)\n\t\t\t}\n\t\t\tcurrent = nextMap\n\t\t} else {\n\t\t\t// Last field - return its value\n\t\t\treturn val, nil\n\t\t}\n\t}\n\n\treturn nil, errors.New(\"unexpected: empty path processed\")\n}\n"
  },
  {
    "path": "plugin/federation/fieldset/fieldset.go",
    "content": "package fieldset\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\n\t\"github.com/99designs/gqlgen/codegen\"\n\t\"github.com/99designs/gqlgen/codegen/templates\"\n)\n\n// Set represents a FieldSet that is used in federation directives @key and @requires.\n// Would be happier to reuse FieldSet parsing from gqlparser, but this suits for now.\ntype Set []Field\n\n// Field represents a single field in a FieldSet\ntype Field []string\n\n// New parses a FieldSet string into a TinyFieldSet.\nfunc New(raw string, prefix []string) Set {\n\tif !strings.Contains(raw, \"{\") {\n\t\treturn parseUnnestedKeyFieldSet(raw, prefix)\n\t}\n\n\tvar (\n\t\tret       = Set{}\n\t\tsubPrefix = prefix\n\t)\n\tbefore, during, after := extractSubs(raw)\n\n\tif before != \"\" {\n\t\tbefores := New(before, prefix)\n\t\tif len(befores) > 0 {\n\t\t\tsubPrefix = befores[len(befores)-1]\n\t\t\tret = append(ret, befores[:len(befores)-1]...)\n\t\t}\n\t}\n\tif during != \"\" {\n\t\tret = append(ret, New(during, subPrefix)...)\n\t}\n\tif after != \"\" {\n\t\tret = append(ret, New(after, prefix)...)\n\t}\n\treturn ret\n}\n\n// FieldDefinition looks up a field in the type.\nfunc (f Field) FieldDefinition(\n\tschemaType *ast.Definition,\n\tschema *ast.Schema,\n) *ast.FieldDefinition {\n\tobjType := schemaType\n\tdef := objType.Fields.ForName(f[0])\n\n\tfor _, part := range f[1:] {\n\t\tif objType.Kind != ast.Object {\n\t\t\tpanic(fmt.Sprintf(`invalid sub-field reference \"%s\" in %v: `, objType.Name, f))\n\t\t}\n\t\tx := def.Type.Name()\n\t\tobjType = schema.Types[x]\n\t\tif objType == nil {\n\t\t\tpanic(\"invalid schema type: \" + x)\n\t\t}\n\t\tdef = objType.Fields.ForName(part)\n\t}\n\tif def == nil {\n\t\treturn nil\n\t}\n\tret := *def // shallow copy\n\tret.Name = f.ToGoPrivate()\n\n\treturn &ret\n}\n\n// TypeReference looks up the type of a field.\nfunc (f Field) TypeReference(obj *codegen.Object, objects codegen.Objects) *codegen.Field {\n\tvar def *codegen.Field\n\n\tfor _, part := range f {\n\t\tdef = fieldByName(obj, part)\n\t\tif def == nil {\n\t\t\tpanic(\"unable to find field \" + f[0])\n\t\t}\n\t\tobj = objects.ByName(def.TypeReference.Definition.Name)\n\t}\n\treturn def\n}\n\n// ToGo converts a (possibly nested) field into a proper public Go name.\nfunc (f Field) ToGo() string {\n\tvar ret string\n\n\tvar retSb91 strings.Builder\n\tfor _, field := range f {\n\t\tretSb91.WriteString(templates.ToGo(field))\n\t}\n\tret += retSb91.String()\n\treturn ret\n}\n\n// ToGoPrivate converts a (possibly nested) field into a proper private Go name.\nfunc (f Field) ToGoPrivate() string {\n\tvar ret string\n\n\tvar retSb101 strings.Builder\n\tfor i, field := range f {\n\t\tif i == 0 {\n\t\t\tfield = trimArgumentFromFieldName(field)\n\t\t\tretSb101.WriteString(templates.ToGoPrivate(field))\n\t\t\tcontinue\n\t\t}\n\t\tretSb101.WriteString(templates.ToGo(field))\n\t}\n\tret += retSb101.String()\n\treturn ret\n}\n\n// Join concatenates the field parts with a string separator between. Useful in templates.\nfunc (f Field) Join(str string) string {\n\treturn strings.Join(f, str)\n}\n\n// JoinGo concatenates the Go name of field parts with a string separator between. Useful in\n// templates.\nfunc (f Field) JoinGo(str string) string {\n\tstrs := []string{}\n\n\tfor _, s := range f {\n\t\tstrs = append(strs, templates.ToGo(s))\n\t}\n\treturn strings.Join(strs, str)\n}\n\nfunc (f Field) LastIndex() int {\n\treturn len(f) - 1\n}\n\n// local functions\n\n// parseUnnestedKeyFieldSet // handles simple case where none of the fields are nested.\nfunc parseUnnestedKeyFieldSet(raw string, prefix []string) Set {\n\tret := Set{}\n\tunionField := false\n\n\tfor s := range strings.FieldsSeq(raw) {\n\t\tif s == \"...\" {\n\t\t\tcontinue\n\t\t}\n\t\tif s == \"on\" {\n\t\t\tunionField = true\n\t\t\tcontinue\n\t\t}\n\n\t\tif unionField {\n\t\t\ts = \"... on \" + s\n\t\t\tunionField = false\n\t\t}\n\n\t\tnext := prefix[0:len(prefix):len(prefix)]\n\t\tnext = append(next, s)\n\t\tret = append(ret, next)\n\t}\n\treturn ret\n}\n\n// extractSubs splits out and trims sub-expressions from before, inside, and after \"{}\".\nfunc extractSubs(str string) (string, string, string) {\n\tstart := strings.Index(str, \"{\")\n\tend := matchingBracketIndex(str, start)\n\n\tif start < 0 || end < 0 {\n\t\tpanic(\"invalid key fieldSet: \" + str)\n\t}\n\treturn trimArgumentFromFieldName(\n\t\t\tstrings.TrimSpace(str[:start]),\n\t\t), strings.TrimSpace(\n\t\t\tstr[start+1 : end],\n\t\t), strings.TrimSpace(\n\t\t\tstr[end+1:],\n\t\t)\n}\n\n// matchingBracketIndex returns the index of the closing bracket, assuming an open bracket at start.\nfunc matchingBracketIndex(str string, start int) int {\n\tif start < 0 || len(str) <= start+1 {\n\t\treturn -1\n\t}\n\tvar depth int\n\n\tfor i, c := range str[start+1:] {\n\t\tswitch c {\n\t\tcase '{':\n\t\t\tdepth++\n\t\tcase '}':\n\t\t\tif depth == 0 {\n\t\t\t\treturn start + 1 + i\n\t\t\t}\n\t\t\tdepth--\n\t\t}\n\t}\n\treturn -1\n}\n\nfunc fieldByName(obj *codegen.Object, name string) *codegen.Field {\n\tfor _, field := range obj.Fields {\n\t\tfield.Name = trimArgumentFromFieldName(field.Name)\n\t\tif field.Name == name {\n\t\t\treturn field\n\t\t}\n\t}\n\treturn nil\n}\n\n// trimArgumentFromFieldName removes any arguments from the field name.\n// It removes any suffixes from the raw string, starting from the argument-open character `(`\nfunc trimArgumentFromFieldName(raw string) string {\n\treturn strings.Split(raw, \"(\")[0]\n}\n"
  },
  {
    "path": "plugin/federation/fieldset/fieldset_test.go",
    "content": "package fieldset\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\n\t\"github.com/99designs/gqlgen/codegen\"\n)\n\nfunc TestUnnestedWithoutPrefix(t *testing.T) {\n\tfieldSet := New(\"foo bar\", nil)\n\n\trequire.Len(t, fieldSet, 2)\n\n\trequire.Len(t, fieldSet[0], 1)\n\trequire.Equal(t, \"foo\", fieldSet[0][0])\n\n\trequire.Len(t, fieldSet[1], 1)\n\trequire.Equal(t, \"bar\", fieldSet[1][0])\n}\n\nfunc TestNestedWithoutPrefix(t *testing.T) {\n\tfieldSet := New(\"foo bar { baz} a b {c{d}}e\", nil)\n\n\trequire.Len(t, fieldSet, 5)\n\n\trequire.Len(t, fieldSet[0], 1)\n\trequire.Equal(t, \"foo\", fieldSet[0][0])\n\n\trequire.Len(t, fieldSet[1], 2)\n\trequire.Equal(t, \"bar\", fieldSet[1][0])\n\trequire.Equal(t, \"baz\", fieldSet[1][1])\n\n\trequire.Len(t, fieldSet[2], 1)\n\trequire.Equal(t, \"a\", fieldSet[2][0])\n\n\trequire.Len(t, fieldSet[3], 3)\n\trequire.Equal(t, \"b\", fieldSet[3][0])\n\trequire.Equal(t, \"c\", fieldSet[3][1])\n\trequire.Equal(t, \"d\", fieldSet[3][2])\n\n\trequire.Len(t, fieldSet[4], 1)\n\trequire.Equal(t, \"e\", fieldSet[4][0])\n}\n\nfunc TestWithPrefix(t *testing.T) {\n\tt.Run(\"prefix with len=capacity\", func(t *testing.T) {\n\t\tfieldSet := New(\"foo bar{id}\", []string{\"prefix\"})\n\n\t\trequire.Len(t, fieldSet, 2)\n\n\t\trequire.Len(t, fieldSet[0], 2)\n\t\trequire.Equal(t, \"prefix\", fieldSet[0][0])\n\t\trequire.Equal(t, \"foo\", fieldSet[0][1])\n\n\t\trequire.Len(t, fieldSet[1], 3)\n\t\trequire.Equal(t, \"prefix\", fieldSet[1][0])\n\t\trequire.Equal(t, \"bar\", fieldSet[1][1])\n\t\trequire.Equal(t, \"id\", fieldSet[1][2])\n\t})\n\tt.Run(\"prefix with len<capacity\", func(t *testing.T) {\n\t\tprefix := make([]string, 0, 2)\n\t\tprefix = append(prefix, \"prefix\")\n\t\tfieldSet := New(\"foo bar{id}\", prefix)\n\n\t\trequire.Len(t, fieldSet, 2)\n\t\tt.Log(fieldSet)\n\n\t\trequire.Len(t, fieldSet[0], 2)\n\t\trequire.Equal(t, \"prefix\", fieldSet[0][0])\n\t\trequire.Equal(t, \"foo\", fieldSet[0][1])\n\n\t\trequire.Len(t, fieldSet[1], 3)\n\t\trequire.Equal(t, \"prefix\", fieldSet[1][0])\n\t\trequire.Equal(t, \"bar\", fieldSet[1][1])\n\t\trequire.Equal(t, \"id\", fieldSet[1][2])\n\t})\n}\n\nfunc TestHandlesRequiresFieldWithArgument(t *testing.T) {\n\tobj := &codegen.Object{\n\t\tFields: []*codegen.Field{\n\t\t\t{\n\t\t\t\tFieldDefinition: &ast.FieldDefinition{\n\t\t\t\t\tName: \"foo(limit:4) { bar }\",\n\t\t\t\t},\n\t\t\t\tTypeReference:    nil,\n\t\t\t\tGoFieldType:      0,\n\t\t\t\tGoReceiverName:   \"\",\n\t\t\t\tGoFieldName:      \"\",\n\t\t\t\tIsResolver:       false,\n\t\t\t\tArgs:             nil,\n\t\t\t\tMethodHasContext: false,\n\t\t\t\tNoErr:            false,\n\t\t\t\tVOkFunc:          false,\n\t\t\t\tObject:           nil,\n\t\t\t\tDefault:          nil,\n\t\t\t\tStream:           false,\n\t\t\t\tDirectives:       nil,\n\t\t\t},\n\t\t},\n\t\tImplements: nil,\n\t}\n\n\trequire.NotNil(t, fieldByName(obj, \"foo\"))\n}\n\nfunc TestInvalid(t *testing.T) {\n\trequire.Panics(t, func() {\n\t\tNew(\"foo bar{baz\", nil)\n\t})\n}\n\nfunc TestToGo(t *testing.T) {\n\trequire.Equal(t, \"Foo\", Field{\"foo\"}.ToGo())\n\trequire.Equal(t, \"FooBar\", Field{\"foo\", \"bar\"}.ToGo())\n\trequire.Equal(t, \"BarID\", Field{\"bar\", \"id\"}.ToGo())\n}\n\nfunc TestToGoPrivate(t *testing.T) {\n\trequire.Equal(t, \"foo\", Field{\"foo\"}.ToGoPrivate())\n\trequire.Equal(t, \"fooBar\", Field{\"foo\", \"bar\"}.ToGoPrivate())\n\trequire.Equal(t, \"barID\", Field{\"bar\", \"id\"}.ToGoPrivate())\n}\n"
  },
  {
    "path": "plugin/federation/readme.md",
    "content": "# Federation plugin\n\nAdd support for graphql federation in your graphql Go server!\n\nTODO(miguel): add details.\n\n# Tests\nThere are several different tests. Some will process the configuration file directly.  You can see those in the `federation_test.go`.  There are also tests for entity resolvers, which will simulate requests from a federation server like Apollo Federation.\n\nRunning entity resolver tests.\n1. Go to `plugin/federation`\n2. Run the command `go generate`\n3. Run the tests with `go test ./...`.\n\n# Architecture\n\nTODO(miguel): add details.\n\n# Entity resolvers - GetMany entities\n\nThe federation plugin implements `GetMany` semantics in which entity resolvers get the entire list of representations that need to be resolved. This functionality is currently option tho, and to enable it you need to specify the directive `@entityResolver` in the federated entity you want this feature for.  E.g.\n\n```\ndirective @entityResolver(multi: Boolean) on OBJECT\n\ntype MultiHello @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String!\n}\n```\n\nThat allows the federation plugin to generate `GetMany` resolver function that can take a list of representations to be resolved.\n\nFrom that entity type, the resolver function would be\n\n```\nfunc (r *entityResolver) FindManyMultiHellosByName(ctx context.Context, reps []*generated.ManyMultiHellosByNameInput) ([]*generated.MultiHello, error) {\n  /// <Your code to resolve the list of items>\n}\n```\n\n**Note:**\nIf you are using `omit_slice_element_pointers: true` option in your config yaml, your `GetMany` resolver will still generate in the example above the same signature `FindManyMultiHellosByName(ctx context.Context, reps []*generated.ManyMultiHellosByNameInput) ([]*generated.MultiHello, error)`. But all other instances will continue to honor `omit_slice_element_pointers: true`\n"
  },
  {
    "path": "plugin/federation/requires.gotpl",
    "content": "{{ range .ExistingImports }}\n{{ if ne .Alias \"\" }}\n{{ reserveImport .ImportPath .Alias }}\n{{ else }}\n{{ reserveImport .ImportPath }}\n{{ end }}\n{{ end }}\n\n{{ range .Populators -}}\n{{ if .Comment -}}\n// {{.Comment}}\n{{- else -}}\n// {{.FuncName}} is the requires populator for the {{.Entity.Def.Name}} entity.\n{{- end }}\nfunc (ec *executionContext) {{.FuncName}}(ctx context.Context, entity *{{.Entity.GetTypeInfo}}, reps map[string]any) error {\n\t{{.Implementation}}\n}\n{{ end }}\n\n{{ .OriginalSource }}\n"
  },
  {
    "path": "plugin/federation/test_data/model/federation.go",
    "content": "package model\n\ntype _FieldSet string //nolint:unused\n\ntype Hello struct {\n\tName      string\n\tSecondary string\n}\n\nfunc (Hello) IsEntity() {}\n\ntype World struct {\n\tFoo string\n\tBar int\n}\n\nfunc (World) IsEntity() {}\n\ntype ExternalExtension struct {\n\tUPC     string\n\tReviews []*World\n}\n\nfunc (ExternalExtension) IsEntity() {}\n\ntype NestedKey struct {\n\tID    string\n\tHello *Hello\n}\n\nfunc (NestedKey) IsEntity() {}\n\ntype MoreNesting struct {\n\tID    string\n\tWorld *World\n}\n\nfunc (MoreNesting) IsEntity() {}\n\ntype VeryNestedKey struct {\n\tID     string\n\tHello  *Hello\n\tWorld  *World\n\tNested *NestedKey\n\tMore   *MoreNesting\n}\n\nfunc (VeryNestedKey) IsEntity() {}\n"
  },
  {
    "path": "plugin/federation/test_data/model2/federation.go",
    "content": "package model2\n\ntype FieldSet string\n\ntype Hello struct {\n\tName      string\n\tSecondary string\n}\n\nfunc (Hello) IsEntity() {}\n\ntype World struct {\n\tFoo string\n\tBar int\n}\n\nfunc (World) IsEntity() {}\n\ntype ExternalExtension struct {\n\tUPC     string\n\tReviews []*World\n}\n\nfunc (ExternalExtension) IsEntity() {}\n\ntype NestedKey struct {\n\tID    string\n\tHello *Hello\n}\n\nfunc (NestedKey) IsEntity() {}\n\ntype MoreNesting struct {\n\tID    string\n\tWorld *World\n}\n\nfunc (MoreNesting) IsEntity() {}\n\ntype VeryNestedKey struct {\n\tID     string\n\tHello  *Hello\n\tWorld  *World\n\tNested *NestedKey\n\tMore   *MoreNesting\n}\n\nfunc (VeryNestedKey) IsEntity() {}\n"
  },
  {
    "path": "plugin/federation/testdata/allthethings/generated/federation.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage generated\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"github.com/99designs/gqlgen/plugin/federation/fedruntime\"\n\t\"github.com/99designs/gqlgen/plugin/federation/testdata/allthethings/model\"\n)\n\nvar (\n\tErrUnknownType  = errors.New(\"unknown type\")\n\tErrTypeNotFound = errors.New(\"type not found\")\n)\n\nfunc (ec *executionContext) __resolve__service(ctx context.Context) (fedruntime.Service, error) {\n\tif ec.DisableIntrospection {\n\t\treturn fedruntime.Service{}, errors.New(\"federated introspection disabled\")\n\t}\n\n\tvar sdl []string\n\n\tfor _, src := range sources {\n\t\tif src.BuiltIn {\n\t\t\tcontinue\n\t\t}\n\t\tsdl = append(sdl, src.Input)\n\t}\n\n\treturn fedruntime.Service{\n\t\tSDL: strings.Join(sdl, \"\\n\"),\n\t}, nil\n}\n\nfunc (ec *executionContext) __resolve_entities(ctx context.Context, representations []map[string]any) []fedruntime.Entity {\n\tlist := make([]fedruntime.Entity, len(representations))\n\n\trepsMap := ec.buildRepresentationGroups(ctx, representations)\n\n\tswitch len(repsMap) {\n\tcase 0:\n\t\treturn list\n\tcase 1:\n\t\tfor typeName, reps := range repsMap {\n\t\t\tec.resolveEntityGroup(ctx, typeName, reps, list)\n\t\t}\n\t\treturn list\n\tdefault:\n\t\tvar g sync.WaitGroup\n\t\tg.Add(len(repsMap))\n\t\tfor typeName, reps := range repsMap {\n\t\t\tgo func(typeName string, reps []EntityWithIndex) {\n\t\t\t\tec.resolveEntityGroup(ctx, typeName, reps, list)\n\t\t\t\tg.Done()\n\t\t\t}(typeName, reps)\n\t\t}\n\t\tg.Wait()\n\t\treturn list\n\t}\n}\n\ntype EntityWithIndex struct {\n\t// The index in the original representation array\n\tindex  int\n\tentity EntityRepresentation\n}\n\n// EntityRepresentation is the JSON representation of an entity sent by the Router\n// used as the inputs for us to resolve.\n//\n// We make it a map because we know the top level JSON is always an object.\ntype EntityRepresentation map[string]any\n\n// We group entities by typename so that we can parallelize their resolution.\n// This is particularly helpful when there are entity groups in multi mode.\nfunc (ec *executionContext) buildRepresentationGroups(\n\tctx context.Context,\n\trepresentations []map[string]any,\n) map[string][]EntityWithIndex {\n\trepsMap := make(map[string][]EntityWithIndex)\n\tfor i, rep := range representations {\n\t\ttypeName, ok := rep[\"__typename\"].(string)\n\t\tif !ok {\n\t\t\t// If there is no __typename, we just skip the representation;\n\t\t\t// we just won't be resolving these unknown types.\n\t\t\tec.Error(ctx, errors.New(\"__typename must be an existing string\"))\n\t\t\tcontinue\n\t\t}\n\n\t\trepsMap[typeName] = append(repsMap[typeName], EntityWithIndex{\n\t\t\tindex:  i,\n\t\t\tentity: rep,\n\t\t})\n\t}\n\n\treturn repsMap\n}\n\nfunc (ec *executionContext) resolveEntityGroup(\n\tctx context.Context,\n\ttypeName string,\n\treps []EntityWithIndex,\n\tlist []fedruntime.Entity,\n) {\n\tif isMulti(typeName) {\n\t\terr := ec.resolveManyEntities(ctx, typeName, reps, list)\n\t\tif err != nil {\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t} else {\n\t\t// if there are multiple entities to resolve, parallelize (similar to\n\t\t// graphql.FieldSet.Dispatch)\n\t\tvar e sync.WaitGroup\n\t\te.Add(len(reps))\n\t\tfor i, rep := range reps {\n\t\t\ti, rep := i, rep\n\t\t\tgo func(i int, rep EntityWithIndex) {\n\t\t\t\tentity, err := ec.resolveEntity(ctx, typeName, rep.entity)\n\t\t\t\tif err != nil {\n\t\t\t\t\tec.Error(ctx, err)\n\t\t\t\t} else {\n\t\t\t\t\tlist[rep.index] = entity\n\t\t\t\t}\n\t\t\t\te.Done()\n\t\t\t}(i, rep)\n\t\t}\n\t\te.Wait()\n\t}\n}\n\nfunc isMulti(typeName string) bool {\n\tswitch typeName {\n\tcase \"MultiHelloMultiKey\":\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\nfunc (ec *executionContext) resolveEntity(\n\tctx context.Context,\n\ttypeName string,\n\trep EntityRepresentation,\n) (e fedruntime.Entity, err error) {\n\t// we need to do our own panic handling, because we may be called in a\n\t// goroutine, where the usual panic handling can't catch us\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t}\n\t}()\n\n\tswitch typeName {\n\tcase \"ExternalExtension\":\n\t\tresolverName, err := entityResolverNameForExternalExtension(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"ExternalExtension\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findExternalExtensionByUpc\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"upc\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findExternalExtensionByUpc(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindExternalExtensionByUpc(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"ExternalExtension\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"Hello\":\n\t\tresolverName, err := entityResolverNameForHello(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"Hello\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findHelloByName\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findHelloByName(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindHelloByName(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"Hello\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"NestedKey\":\n\t\tresolverName, err := entityResolverNameForNestedKey(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"NestedKey\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findNestedKeyByIDAndHelloName\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"id\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findNestedKeyByIDAndHelloName(): %w`, err)\n\t\t\t}\n\t\t\tid1, err := ec.unmarshalNString2string(ctx, rep[\"hello\"].(map[string]any)[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 1 for findNestedKeyByIDAndHelloName(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindNestedKeyByIDAndHelloName(ctx, id0, id1)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"NestedKey\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"VeryNestedKey\":\n\t\tresolverName, err := entityResolverNameForVeryNestedKey(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"VeryNestedKey\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findVeryNestedKeyByIDAndHelloNameAndWorldFooAndWorldBarAndMoreWorldFoo\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"id\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findVeryNestedKeyByIDAndHelloNameAndWorldFooAndWorldBarAndMoreWorldFoo(): %w`, err)\n\t\t\t}\n\t\t\tid1, err := ec.unmarshalNString2string(ctx, rep[\"hello\"].(map[string]any)[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 1 for findVeryNestedKeyByIDAndHelloNameAndWorldFooAndWorldBarAndMoreWorldFoo(): %w`, err)\n\t\t\t}\n\t\t\tid2, err := ec.unmarshalNString2string(ctx, rep[\"world\"].(map[string]any)[\"foo\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 2 for findVeryNestedKeyByIDAndHelloNameAndWorldFooAndWorldBarAndMoreWorldFoo(): %w`, err)\n\t\t\t}\n\t\t\tid3, err := ec.unmarshalNInt2int(ctx, rep[\"world\"].(map[string]any)[\"bar\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 3 for findVeryNestedKeyByIDAndHelloNameAndWorldFooAndWorldBarAndMoreWorldFoo(): %w`, err)\n\t\t\t}\n\t\t\tid4, err := ec.unmarshalNString2string(ctx, rep[\"more\"].(map[string]any)[\"world\"].(map[string]any)[\"foo\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 4 for findVeryNestedKeyByIDAndHelloNameAndWorldFooAndWorldBarAndMoreWorldFoo(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindVeryNestedKeyByIDAndHelloNameAndWorldFooAndWorldBarAndMoreWorldFoo(ctx, id0, id1, id2, id3, id4)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"VeryNestedKey\": %w`, err)\n\t\t\t}\n\n\t\t\tentity.ID, err = ec.unmarshalNString2string(ctx, rep[\"id\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tentity.Hello.Secondary, err = ec.unmarshalNString2string(ctx, rep[\"hello\"].(map[string]any)[\"secondary\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"World\":\n\t\tresolverName, err := entityResolverNameForWorld(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"World\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findWorldByFoo\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"foo\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findWorldByFoo(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindWorldByFoo(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"World\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\tcase \"findWorldByBar\":\n\t\t\tid0, err := ec.unmarshalNInt2int(ctx, rep[\"bar\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findWorldByBar(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindWorldByBar(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"World\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\n\t}\n\treturn nil, fmt.Errorf(\"%w: %s\", ErrUnknownType, typeName)\n}\n\nfunc (ec *executionContext) resolveManyEntities(\n\tctx context.Context,\n\ttypeName string,\n\treps []EntityWithIndex,\n\tlist []fedruntime.Entity,\n) (err error) {\n\t// we need to do our own panic handling, because we may be called in a\n\t// goroutine, where the usual panic handling can't catch us\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t}\n\t}()\n\n\tswitch typeName {\n\n\tcase \"MultiHelloMultiKey\":\n\t\tresolverName, err := entityResolverNameForMultiHelloMultiKey(ctx, reps[0].entity)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(`finding resolver for Entity \"MultiHelloMultiKey\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findManyMultiHelloMultiKeyByNames\":\n\t\t\ttypedReps := make([]*model.MultiHelloMultiKeyByNamesInput, len(reps))\n\n\t\t\tfor i, rep := range reps {\n\t\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep.entity[\"name\"])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn errors.New(fmt.Sprintf(\"Field %s undefined in schema.\", \"name\"))\n\t\t\t\t}\n\n\t\t\t\ttypedReps[i] = &model.MultiHelloMultiKeyByNamesInput{\n\t\t\t\t\tName: id0,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tentities, err := ec.Resolvers.Entity().FindManyMultiHelloMultiKeyByNames(ctx, typedReps)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tfor i, entity := range entities {\n\t\t\t\tlist[reps[i].index] = entity\n\t\t\t}\n\t\t\treturn nil\n\n\t\tcase \"findManyMultiHelloMultiKeyByKey2s\":\n\t\t\ttypedReps := make([]*model.MultiHelloMultiKeyByKey2sInput, len(reps))\n\n\t\t\tfor i, rep := range reps {\n\t\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep.entity[\"key2\"])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn errors.New(fmt.Sprintf(\"Field %s undefined in schema.\", \"key2\"))\n\t\t\t\t}\n\n\t\t\t\ttypedReps[i] = &model.MultiHelloMultiKeyByKey2sInput{\n\t\t\t\t\tKey2: id0,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tentities, err := ec.Resolvers.Entity().FindManyMultiHelloMultiKeyByKey2s(ctx, typedReps)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tfor i, entity := range entities {\n\t\t\t\tlist[reps[i].index] = entity\n\t\t\t}\n\t\t\treturn nil\n\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"unknown resolver: %s\", resolverName)\n\t\t}\n\n\tdefault:\n\t\treturn errors.New(\"unknown type: \" + typeName)\n\t}\n}\n\nfunc entityResolverNameForExternalExtension(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"upc\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"upc\\\" for ExternalExtension\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for ExternalExtension\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findExternalExtensionByUpc\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for ExternalExtension due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForHello(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for Hello\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for Hello\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findHelloByName\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for Hello due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForMultiHelloMultiKey(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for MultiHelloMultiKey\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for MultiHelloMultiKey\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findManyMultiHelloMultiKeyByNames\", nil\n\t}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"key2\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"key2\\\" for MultiHelloMultiKey\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for MultiHelloMultiKey\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findManyMultiHelloMultiKeyByKey2s\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for MultiHelloMultiKey due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForNestedKey(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"id\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"id\\\" for NestedKey\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tm = rep\n\t\tval, ok = m[\"hello\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"hello\\\" for NestedKey\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif m, ok = val.(map[string]any); !ok {\n\t\t\t// nested field value is not a map[string]interface so don't use it\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to nested Key Field \\\"hello\\\" value not matching map[string]any for NestedKey\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for NestedKey\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for NestedKey\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findNestedKeyByIDAndHelloName\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for NestedKey due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForVeryNestedKey(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"id\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"id\\\" for VeryNestedKey\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tm = rep\n\t\tval, ok = m[\"hello\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"hello\\\" for VeryNestedKey\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif m, ok = val.(map[string]any); !ok {\n\t\t\t// nested field value is not a map[string]interface so don't use it\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to nested Key Field \\\"hello\\\" value not matching map[string]any for VeryNestedKey\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for VeryNestedKey\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tm = rep\n\t\tval, ok = m[\"world\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"world\\\" for VeryNestedKey\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif m, ok = val.(map[string]any); !ok {\n\t\t\t// nested field value is not a map[string]interface so don't use it\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to nested Key Field \\\"world\\\" value not matching map[string]any for VeryNestedKey\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tval, ok = m[\"foo\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"foo\\\" for VeryNestedKey\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tm = rep\n\t\tval, ok = m[\"world\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"world\\\" for VeryNestedKey\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif m, ok = val.(map[string]any); !ok {\n\t\t\t// nested field value is not a map[string]interface so don't use it\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to nested Key Field \\\"world\\\" value not matching map[string]any for VeryNestedKey\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tval, ok = m[\"bar\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"bar\\\" for VeryNestedKey\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tm = rep\n\t\tval, ok = m[\"more\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"more\\\" for VeryNestedKey\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif m, ok = val.(map[string]any); !ok {\n\t\t\t// nested field value is not a map[string]interface so don't use it\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to nested Key Field \\\"more\\\" value not matching map[string]any for VeryNestedKey\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tval, ok = m[\"world\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"world\\\" for VeryNestedKey\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif m, ok = val.(map[string]any); !ok {\n\t\t\t// nested field value is not a map[string]interface so don't use it\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to nested Key Field \\\"world\\\" value not matching map[string]any for VeryNestedKey\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tval, ok = m[\"foo\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"foo\\\" for VeryNestedKey\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for VeryNestedKey\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findVeryNestedKeyByIDAndHelloNameAndWorldFooAndWorldBarAndMoreWorldFoo\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for VeryNestedKey due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForWorld(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"foo\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"foo\\\" for World\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for World\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findWorldByFoo\", nil\n\t}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"bar\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"bar\\\" for World\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for World\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findWorldByBar\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for World due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n"
  },
  {
    "path": "plugin/federation/testdata/allthethings/gqlgen.yml",
    "content": "schema:\n  - \"testdata/allthethings/schema.graphql\"\nexec:\n  filename: testdata/allthethings/generated/exec.go\nfederation:\n  filename: testdata/allthethings/generated/federation.go\n\nautobind:\n  - \"github.com/99designs/gqlgen/plugin/federation/testdata/allthethings/model\"\n"
  },
  {
    "path": "plugin/federation/testdata/allthethings/model/federation.go",
    "content": "package model\n\ntype _FieldSet string //nolint:unused\n\ntype Hello struct {\n\tName      string\n\tSecondary string\n}\n\nfunc (Hello) IsEntity() {}\n\ntype World struct {\n\tFoo string\n\tBar int\n}\n\nfunc (World) IsEntity() {}\n\ntype MultiHelloMultiKey struct {\n\tName string\n\tKey2 int\n}\n\nfunc (MultiHelloMultiKey) IsEntity() {}\n\ntype ExternalExtension struct {\n\tUPC     string\n\tReviews []*World\n}\n\nfunc (ExternalExtension) IsEntity() {}\n\ntype NestedKey struct {\n\tID    string\n\tHello *Hello\n}\n\nfunc (NestedKey) IsEntity() {}\n\ntype MoreNesting struct {\n\tID    string\n\tWorld *World\n}\n\nfunc (MoreNesting) IsEntity() {}\n\ntype VeryNestedKey struct {\n\tID     string\n\tHello  *Hello\n\tWorld  *World\n\tNested *NestedKey\n\tMore   *MoreNesting\n}\n\nfunc (VeryNestedKey) IsEntity() {}\n\ntype MultiHelloMultiKeyByNamesInput struct {\n\tNames []string `json:\"Names\"`\n}\n\ntype MultiHelloMultiKeyByKey2sInput struct {\n\tKey2s []string `json:\"Key2s\"`\n}\n"
  },
  {
    "path": "plugin/federation/testdata/allthethings/schema.graphql",
    "content": "type Hello @key(fields: \"name\") {\n    name: String!\n    secondary: String!\n}\n\ntype World @key(fields: \" foo   \") @key(fields: \"bar\") {\n    foo: String!\n    bar: Int!\n}\n\ndirective @entityResolver(multi: Boolean) on OBJECT\n\ntype MultiHelloMultiKey @key(fields: \"name\") @key(fields:\"key2\") @entityResolver(multi: true) {\n    name: String!\n    key2: String!\n}\n\nextend type ExternalExtension @key(fields: \"  upc    \") {\n    upc: String! @external\n    reviews: [World]\n}\n\nextend type NestedKey @key(fields: \"id hello { name}\") {\n    id: String! @external\n    hello: Hello\n}\n\nextend type MoreNesting @key(fields: \"id\") {\n    id: String! @external\n    world: World! @external\n}\n\nextend type VeryNestedKey\n    @key(\n        fields: \"id hello { name} world {foo } world{bar}  more { world { foo }}\"\n    ) {\n    id: String! @external\n    hello: Hello\n    world: World\n    nested: NestedKey @requires(fields: \"id hello {secondary }\")\n    more: MoreNesting\n}\n\ntype Query {\n    hello: Hello!\n    world: World!\n}\n"
  },
  {
    "path": "plugin/federation/testdata/computedrequires/entity.resolvers.go",
    "content": "package computedrequires\n\n// This file will be automatically regenerated based on the schema, any resolver\n// implementations\n// will be copied through when generating and any unknown code will be moved to the end.\n// Code generated by github.com/99designs/gqlgen version v0.17.88-dev\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\tcomputedrequires \"github.com/99designs/gqlgen/plugin/federation/testdata/computedrequires/generated\"\n\tmodel \"github.com/99designs/gqlgen/plugin/federation/testdata/computedrequires/generated/models\"\n)\n\n// FindHelloByName is the resolver for the findHelloByName field.\nfunc (r *entityResolver) FindHelloByName(ctx context.Context, name string) (*model.Hello, error) {\n\treturn &model.Hello{\n\t\tName: name,\n\t}, nil\n}\n\n// FindHelloMultiSingleKeysByKey1AndKey2 is the resolver for the findHelloMultiSingleKeysByKey1AndKey2 field.\nfunc (r *entityResolver) FindHelloMultiSingleKeysByKey1AndKey2(ctx context.Context, key1 string, key2 string) (*model.HelloMultiSingleKeys, error) {\n\tpanic(fmt.Errorf(\"not implemented\"))\n}\n\n// FindHelloWithErrorsByName is the resolver for the findHelloWithErrorsByName field.\nfunc (r *entityResolver) FindHelloWithErrorsByName(ctx context.Context, name string) (*model.HelloWithErrors, error) {\n\tif name == \"inject error\" {\n\t\treturn nil, ErrResolvingHelloWithErrorsByName\n\t} else if name == \"\" {\n\t\treturn nil, ErrEmptyKeyResolvingHelloWithErrorsByName\n\t}\n\n\treturn &model.HelloWithErrors{\n\t\tName: name,\n\t}, nil\n}\n\n// FindManyMultiHelloByNames is the resolver for the findManyMultiHelloByNames field.\nfunc (r *entityResolver) FindManyMultiHelloByNames(ctx context.Context, reps []*model.MultiHelloByNamesInput) ([]*model.MultiHello, error) {\n\tresults := []*model.MultiHello{}\n\n\tfor _, item := range reps {\n\t\tresults = append(results, &model.MultiHello{\n\t\t\tName: item.Name + \" - from multiget\",\n\t\t})\n\t}\n\n\treturn results, nil\n}\n\n// FindManyMultiHelloMultipleRequiresByNames is the resolver for the findManyMultiHelloMultipleRequiresByNames field.\nfunc (r *entityResolver) FindManyMultiHelloMultipleRequiresByNames(ctx context.Context, reps []*model.MultiHelloMultipleRequiresByNamesInput) ([]*model.MultiHelloMultipleRequires, error) {\n\tresults := make([]*model.MultiHelloMultipleRequires, len(reps))\n\n\tfor i := range reps {\n\t\tresults[i] = &model.MultiHelloMultipleRequires{\n\t\t\tName: reps[i].Name,\n\t\t}\n\t}\n\n\treturn results, nil\n}\n\n// FindManyMultiHelloRequiresByNames is the resolver for the findManyMultiHelloRequiresByNames field.\nfunc (r *entityResolver) FindManyMultiHelloRequiresByNames(ctx context.Context, reps []*model.MultiHelloRequiresByNamesInput) ([]*model.MultiHelloRequires, error) {\n\tresults := make([]*model.MultiHelloRequires, len(reps))\n\n\tfor i := range reps {\n\t\tresults[i] = &model.MultiHelloRequires{\n\t\t\tName: reps[i].Name,\n\t\t}\n\t}\n\n\treturn results, nil\n}\n\n// FindManyMultiHelloWithErrorByNames is the resolver for the findManyMultiHelloWithErrorByNames field.\nfunc (r *entityResolver) FindManyMultiHelloWithErrorByNames(ctx context.Context, reps []*model.MultiHelloWithErrorByNamesInput) ([]*model.MultiHelloWithError, error) {\n\treturn nil, fmt.Errorf(\"error resolving MultiHelloWorldWithError\")\n}\n\n// FindManyMultiPlanetRequiresNestedByNames is the resolver for the findManyMultiPlanetRequiresNestedByNames field.\nfunc (r *entityResolver) FindManyMultiPlanetRequiresNestedByNames(ctx context.Context, reps []*model.MultiPlanetRequiresNestedByNamesInput) ([]*model.MultiPlanetRequiresNested, error) {\n\tworlds := map[string]*model.World{\n\t\t\"earth\": {\n\t\t\tFoo: \"A\",\n\t\t},\n\t\t\"mars\": {\n\t\t\tFoo: \"B\",\n\t\t},\n\t}\n\n\tresults := make([]*model.MultiPlanetRequiresNested, len(reps))\n\n\tfor i := range reps {\n\t\tname := reps[i].Name\n\t\tworld, ok := worlds[name]\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"unknown planet: %s\", name)\n\t\t}\n\n\t\tresults[i] = &model.MultiPlanetRequiresNested{\n\t\t\tName:  name,\n\t\t\tWorld: world,\n\t\t}\n\t}\n\n\treturn results, nil\n}\n\n// FindPersonByName is the resolver for the findPersonByName field.\nfunc (r *entityResolver) FindPersonByName(ctx context.Context, name string) (*model.Person, error) {\n\tpanic(fmt.Errorf(\"not implemented: FindPersonByName - findPersonByName\"))\n}\n\n// FindPlanetMultipleRequiresByName is the resolver for the findPlanetMultipleRequiresByName field.\nfunc (r *entityResolver) FindPlanetMultipleRequiresByName(ctx context.Context, name string) (*model.PlanetMultipleRequires, error) {\n\treturn &model.PlanetMultipleRequires{Name: name}, nil\n}\n\n// FindPlanetRequiresByName is the resolver for the findPlanetRequiresByName field.\nfunc (r *entityResolver) FindPlanetRequiresByName(ctx context.Context, name string) (*model.PlanetRequires, error) {\n\treturn &model.PlanetRequires{\n\t\tName: name,\n\t}, nil\n}\n\n// FindPlanetRequiresNestedByName is the resolver for the findPlanetRequiresNestedByName field.\nfunc (r *entityResolver) FindPlanetRequiresNestedByName(ctx context.Context, name string) (*model.PlanetRequiresNested, error) {\n\tworlds := map[string]*model.World{\n\t\t\"earth\": {\n\t\t\tFoo: \"A\",\n\t\t},\n\t\t\"mars\": {\n\t\t\tFoo: \"B\",\n\t\t},\n\t}\n\tworld, ok := worlds[name]\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"unknown planet: %s\", name)\n\t}\n\n\treturn &model.PlanetRequiresNested{\n\t\tName:  name,\n\t\tWorld: world,\n\t}, nil\n}\n\n// FindWorldByHelloNameAndFoo is the resolver for the findWorldByHelloNameAndFoo field.\nfunc (r *entityResolver) FindWorldByHelloNameAndFoo(ctx context.Context, helloName string, foo string) (*model.World, error) {\n\treturn &model.World{\n\t\tHello: &model.Hello{\n\t\t\tName: helloName,\n\t\t},\n\t\tFoo: foo,\n\t}, nil\n}\n\n// FindWorldNameByName is the resolver for the findWorldNameByName field.\nfunc (r *entityResolver) FindWorldNameByName(ctx context.Context, name string) (*model.WorldName, error) {\n\treturn &model.WorldName{\n\t\tName: name,\n\t}, nil\n}\n\n// FindWorldWithMultipleKeysByHelloNameAndFoo is the resolver for the findWorldWithMultipleKeysByHelloNameAndFoo field.\nfunc (r *entityResolver) FindWorldWithMultipleKeysByHelloNameAndFoo(ctx context.Context, helloName string, foo string) (*model.WorldWithMultipleKeys, error) {\n\treturn &model.WorldWithMultipleKeys{\n\t\tHello: &model.Hello{\n\t\t\tName: helloName,\n\t\t},\n\t\tFoo: foo,\n\t}, nil\n}\n\n// FindWorldWithMultipleKeysByBar is the resolver for the findWorldWithMultipleKeysByBar field.\nfunc (r *entityResolver) FindWorldWithMultipleKeysByBar(ctx context.Context, bar int) (*model.WorldWithMultipleKeys, error) {\n\treturn &model.WorldWithMultipleKeys{\n\t\tBar: bar,\n\t}, nil\n}\n\n// Entity returns computedrequires.EntityResolver implementation.\nfunc (r *Resolver) Entity() computedrequires.EntityResolver { return &entityResolver{r} }\n\ntype entityResolver struct{ *Resolver }\n"
  },
  {
    "path": "plugin/federation/testdata/computedrequires/errors.go",
    "content": "package computedrequires\n\nimport \"errors\"\n\n// Errors defined for retained code that we want to stick around between generations.\nvar (\n\tErrResolvingHelloWithErrorsByName         = errors.New(\"error resolving HelloWithErrorsByName\")\n\tErrEmptyKeyResolvingHelloWithErrorsByName = errors.New(\"error (empty key) resolving HelloWithErrorsByName\")\n)\n"
  },
  {
    "path": "plugin/federation/testdata/computedrequires/generated/exec.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage generated\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\t\"github.com/99designs/gqlgen/plugin/federation/fedruntime\"\n\tmodel \"github.com/99designs/gqlgen/plugin/federation/testdata/computedrequires/generated/models\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n}\n\ntype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\ntype ResolverRoot interface {\n\tEntity() EntityResolver\n\tMultiHelloMultipleRequires() MultiHelloMultipleRequiresResolver\n\tMultiHelloRequires() MultiHelloRequiresResolver\n\tMultiPlanetRequiresNested() MultiPlanetRequiresNestedResolver\n\tPerson() PersonResolver\n\tPlanetMultipleRequires() PlanetMultipleRequiresResolver\n\tPlanetRequires() PlanetRequiresResolver\n\tPlanetRequiresNested() PlanetRequiresNestedResolver\n\tQuery() QueryResolver\n}\n\ntype DirectiveRoot struct {\n}\n\ntype ComplexityRoot struct {\n}\n\ntype EntityResolver interface {\n\tFindHelloByName(ctx context.Context, name string) (*model.Hello, error)\n\tFindHelloMultiSingleKeysByKey1AndKey2(ctx context.Context, key1 string, key2 string) (*model.HelloMultiSingleKeys, error)\n\tFindHelloWithErrorsByName(ctx context.Context, name string) (*model.HelloWithErrors, error)\n\tFindManyMultiHelloByNames(ctx context.Context, reps []*model.MultiHelloByNamesInput) ([]*model.MultiHello, error)\n\tFindManyMultiHelloMultipleRequiresByNames(ctx context.Context, reps []*model.MultiHelloMultipleRequiresByNamesInput) ([]*model.MultiHelloMultipleRequires, error)\n\tFindManyMultiHelloRequiresByNames(ctx context.Context, reps []*model.MultiHelloRequiresByNamesInput) ([]*model.MultiHelloRequires, error)\n\tFindManyMultiHelloWithErrorByNames(ctx context.Context, reps []*model.MultiHelloWithErrorByNamesInput) ([]*model.MultiHelloWithError, error)\n\tFindManyMultiPlanetRequiresNestedByNames(ctx context.Context, reps []*model.MultiPlanetRequiresNestedByNamesInput) ([]*model.MultiPlanetRequiresNested, error)\n\tFindPersonByName(ctx context.Context, name string) (*model.Person, error)\n\tFindPlanetMultipleRequiresByName(ctx context.Context, name string) (*model.PlanetMultipleRequires, error)\n\tFindPlanetRequiresByName(ctx context.Context, name string) (*model.PlanetRequires, error)\n\tFindPlanetRequiresNestedByName(ctx context.Context, name string) (*model.PlanetRequiresNested, error)\n\tFindWorldByHelloNameAndFoo(ctx context.Context, helloName string, foo string) (*model.World, error)\n\tFindWorldNameByName(ctx context.Context, name string) (*model.WorldName, error)\n\tFindWorldWithMultipleKeysByHelloNameAndFoo(ctx context.Context, helloName string, foo string) (*model.WorldWithMultipleKeys, error)\n\tFindWorldWithMultipleKeysByBar(ctx context.Context, bar int) (*model.WorldWithMultipleKeys, error)\n}\ntype MultiHelloMultipleRequiresResolver interface {\n\tKey3(ctx context.Context, obj *model.MultiHelloMultipleRequires, federationRequires map[string]any) (string, error)\n}\ntype MultiHelloRequiresResolver interface {\n\tKey2(ctx context.Context, obj *model.MultiHelloRequires, federationRequires map[string]any) (string, error)\n}\ntype MultiPlanetRequiresNestedResolver interface {\n\tSize(ctx context.Context, obj *model.MultiPlanetRequiresNested, federationRequires map[string]any) (int, error)\n\tSizes(ctx context.Context, obj *model.MultiPlanetRequiresNested, federationRequires map[string]any) ([]int, error)\n}\ntype PersonResolver interface {\n\tWelcomeMessage(ctx context.Context, obj *model.Person, federationRequires map[string]any) (*string, error)\n}\ntype PlanetMultipleRequiresResolver interface {\n\tWeight(ctx context.Context, obj *model.PlanetMultipleRequires, foo *string, federationRequires map[string]any) (int, error)\n}\ntype PlanetRequiresResolver interface {\n\tSize(ctx context.Context, obj *model.PlanetRequires, federationRequires map[string]any) (int, error)\n}\ntype PlanetRequiresNestedResolver interface {\n\tSize(ctx context.Context, obj *model.PlanetRequiresNested, federationRequires map[string]any) (int, error)\n\tSizes(ctx context.Context, obj *model.PlanetRequiresNested, federationRequires map[string]any) ([]int, error)\n}\ntype QueryResolver interface {\n\tTest(ctx context.Context) (*string, error)\n}\n\nvar (\n\tbuiltInDirectivePopulateFromRepresentations = func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error) {\n\t\tfc := graphql.GetFieldContext(ctx)\n\n\t\t// We get the Federation representations argument from the _entities resolver\n\t\trepresentations, ok := fc.Parent.Parent.Args[\"representations\"].([]map[string]any)\n\t\tif !ok {\n\t\t\treturn nil, errors.New(\"must be called from within _entities\")\n\t\t}\n\n\t\t// Get the index of the current entity in the representations list. This is\n\t\t// set by the execution context after the _entities resolver is called.\n\t\tindex := fc.Parent.Index\n\t\tif index == nil {\n\t\t\treturn nil, errors.New(\"couldn't find input index for entity\")\n\t\t}\n\n\t\tif len(representations) < *index {\n\t\t\treturn nil, errors.New(\"representation not found\")\n\t\t}\n\n\t\treturn representations[*index], nil\n\t}\n)\n\ntype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.SchemaData != nil {\n\t\treturn e.SchemaData\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := newExecutionContext(nil, e, nil)\n\t_ = ec\n\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap(\n\t\tec.unmarshalInputMultiHelloByNamesInput,\n\t\tec.unmarshalInputMultiHelloMultipleRequiresByNamesInput,\n\t\tec.unmarshalInputMultiHelloRequiresByNamesInput,\n\t\tec.unmarshalInputMultiHelloWithErrorByNamesInput,\n\t\tec.unmarshalInputMultiPlanetRequiresNestedByNamesInput,\n\t)\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"../schema.graphql\", Input: `directive @entityResolver(multi: Boolean) on OBJECT\ndirective @goField(\n    forceResolver: Boolean\n    name: String\n    omittable: Boolean\n    type: String\n) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION\n\ntype Query {\n    test: String\n}\n\ntype Hello @key(fields: \"name\") {\n    name: String!\n    secondary: String!\n}\n\ntype World @key(fields: \"hello { name } foo   \") {\n    foo: String!\n    bar: Int!\n    hello: Hello\n}\n\ntype Person @key(fields: \"name\") {\n    name: String!\n    gender: Gender!\n    welcomeMessage: String\n        @requires(\n            fields: \"gender { ... on Male {description} ... on Female {description}}\"\n        )\n}\n\nunion Gender = Male | Female\n\ntype Male {\n    description: String!\n}\n\ntype Female {\n    description: String!\n}\n\ntype WorldWithMultipleKeys\n    @key(fields: \"hello { name } foo   \")\n    @key(fields: \"bar\") {\n    foo: String!\n    bar: Int!\n    hello: Hello\n}\n\ntype WorldName @key(fields: \"name\") {\n    name: String!\n}\n\ntype HelloWithErrors @key(fields: \"name\") {\n    name: String!\n}\n\ntype PlanetRequires @key(fields: \"name\") {\n    name: String!\n    size: Int! @requires(fields: \"diameter\")\n    diameter: Int!\n}\n\ntype PlanetMultipleRequires @key(fields: \"name\") {\n    name: String! @external\n    diameter: Int! @external\n    density: Int! @external\n    weight(foo: String): Int!\n        @requires(fields: \"diameter density\")\n        @goField(forceResolver: true)\n    anotherField(foobar: String): String\n}\n\ntype PlanetRequiresNested @key(fields: \"name\") {\n    name: String! @external\n    world: World! @external\n    worlds: [World!] @external\n    size: Int! @requires(fields: \"world{ foo }\")\n    sizes: [Int!] @requires(fields: \"worlds{ foo }\")\n}\n\ntype MultiPlanetRequiresNested\n    @key(fields: \"name\")\n    @entityResolver(multi: true) {\n    name: String! @external\n    world: World! @external\n    worlds: [World!] @external\n    size: Int! @requires(fields: \"world{ foo }\")\n    sizes: [Int!] @requires(fields: \"worlds{ foo }\")\n}\n\ntype MultiHello @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String!\n}\n\ntype MultiHelloWithError @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String!\n}\n\ntype HelloMultiSingleKeys @key(fields: \"key1 key2\") {\n    key1: String!\n    key2: String!\n}\n\ntype MultiHelloRequires @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String! @external\n    key1: String! @external\n    key2: String! @requires(fields: \"key1\")\n}\n\ntype MultiHelloMultipleRequires\n    @key(fields: \"name\")\n    @entityResolver(multi: true) {\n    name: String! @external\n    key1: String! @external\n    key2: String! @external\n    key3: String! @requires(fields: \"key1 key2\")\n}\n`, BuiltIn: false},\n\t{Name: \"../../../federation/directives.graphql\", Input: `\n\tdirective @authenticated on FIELD_DEFINITION | OBJECT | INTERFACE | SCALAR | ENUM\n\tdirective @composeDirective(name: String!) repeatable on SCHEMA\n\tdirective @extends on OBJECT | INTERFACE\n\tdirective @external on OBJECT | FIELD_DEFINITION\n\tdirective @key(fields: FieldSet!, resolvable: Boolean = true) repeatable on OBJECT | INTERFACE\n\tdirective @inaccessible on\n\t  | ARGUMENT_DEFINITION\n\t  | ENUM\n\t  | ENUM_VALUE\n\t  | FIELD_DEFINITION\n\t  | INPUT_FIELD_DEFINITION\n\t  | INPUT_OBJECT\n\t  | INTERFACE\n\t  | OBJECT\n\t  | SCALAR\n\t  | UNION\n\tdirective @interfaceObject on OBJECT\n\tdirective @link(import: [String!], url: String!) repeatable on SCHEMA\n\tdirective @override(from: String!, label: String) on FIELD_DEFINITION\n\tdirective @policy(policies: [[federation__Policy!]!]!) on\n\t  | FIELD_DEFINITION\n\t  | OBJECT\n\t  | INTERFACE\n\t  | SCALAR\n\t  | ENUM\n\tdirective @provides(fields: FieldSet!) on FIELD_DEFINITION\n\tdirective @requires(fields: FieldSet!) on FIELD_DEFINITION\n\tdirective @requiresScopes(scopes: [[federation__Scope!]!]!) on\n\t  | FIELD_DEFINITION\n\t  | OBJECT\n\t  | INTERFACE\n\t  | SCALAR\n\t  | ENUM\n\tdirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\tdirective @tag(name: String!) repeatable on\n\t  | ARGUMENT_DEFINITION\n\t  | ENUM\n\t  | ENUM_VALUE\n\t  | FIELD_DEFINITION\n\t  | INPUT_FIELD_DEFINITION\n\t  | INPUT_OBJECT\n\t  | INTERFACE\n\t  | OBJECT\n\t  | SCALAR\n\t  | UNION\n\tscalar _Any\n\tscalar FieldSet\n\tscalar federation__Policy\n\tscalar federation__Scope\n`, BuiltIn: true},\n\t{Name: \"../../../federation/entity.graphql\", Input: `\n# a union of all types that use the @key directive\nunion _Entity = Hello | HelloMultiSingleKeys | HelloWithErrors | MultiHello | MultiHelloMultipleRequires | MultiHelloRequires | MultiHelloWithError | MultiPlanetRequiresNested | Person | PlanetMultipleRequires | PlanetRequires | PlanetRequiresNested | World | WorldName | WorldWithMultipleKeys\n\ninput MultiHelloByNamesInput {\n\tName: String!\n}\n\ninput MultiHelloMultipleRequiresByNamesInput {\n\tName: String!\n}\n\ninput MultiHelloRequiresByNamesInput {\n\tName: String!\n}\n\ninput MultiHelloWithErrorByNamesInput {\n\tName: String!\n}\n\ninput MultiPlanetRequiresNestedByNamesInput {\n\tName: String!\n}\n\n# fake type to build resolver interfaces for users to implement\ntype Entity {\n\tfindHelloByName(name: String!,): Hello!\n\tfindHelloMultiSingleKeysByKey1AndKey2(key1: String!,key2: String!,): HelloMultiSingleKeys!\n\tfindHelloWithErrorsByName(name: String!,): HelloWithErrors!\n\tfindManyMultiHelloByNames(reps: [MultiHelloByNamesInput]!): [MultiHello]\n\tfindManyMultiHelloMultipleRequiresByNames(reps: [MultiHelloMultipleRequiresByNamesInput]!): [MultiHelloMultipleRequires]\n\tfindManyMultiHelloRequiresByNames(reps: [MultiHelloRequiresByNamesInput]!): [MultiHelloRequires]\n\tfindManyMultiHelloWithErrorByNames(reps: [MultiHelloWithErrorByNamesInput]!): [MultiHelloWithError]\n\tfindManyMultiPlanetRequiresNestedByNames(reps: [MultiPlanetRequiresNestedByNamesInput]!): [MultiPlanetRequiresNested]\n\tfindPersonByName(name: String!,): Person!\n\tfindPlanetMultipleRequiresByName(name: String!,): PlanetMultipleRequires!\n\tfindPlanetRequiresByName(name: String!,): PlanetRequires!\n\tfindPlanetRequiresNestedByName(name: String!,): PlanetRequiresNested!\n\tfindWorldByHelloNameAndFoo(helloName: String!,foo: String!,): World!\n\tfindWorldNameByName(name: String!,): WorldName!\n\tfindWorldWithMultipleKeysByHelloNameAndFoo(helloName: String!,foo: String!,): WorldWithMultipleKeys!\n\tfindWorldWithMultipleKeysByBar(bar: Int!,): WorldWithMultipleKeys!\n}\n\ntype _Service {\n  sdl: String\n}\n\nextend type Query {\n  _entities(representations: [_Any!]!): [_Entity]!\n  _service: _Service!\n}\n`, BuiltIn: true},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_Entity_findHelloByName_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findHelloMultiSingleKeysByKey1AndKey2_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"key1\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"key1\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"key2\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"key2\"] = arg1\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findHelloWithErrorsByName_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findManyMultiHelloByNames_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"reps\", ec.unmarshalNMultiHelloByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiHelloByNamesInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"reps\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findManyMultiHelloMultipleRequiresByNames_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"reps\", ec.unmarshalNMultiHelloMultipleRequiresByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiHelloMultipleRequiresByNamesInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"reps\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findManyMultiHelloRequiresByNames_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"reps\", ec.unmarshalNMultiHelloRequiresByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiHelloRequiresByNamesInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"reps\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findManyMultiHelloWithErrorByNames_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"reps\", ec.unmarshalNMultiHelloWithErrorByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiHelloWithErrorByNamesInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"reps\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findManyMultiPlanetRequiresNestedByNames_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"reps\", ec.unmarshalNMultiPlanetRequiresNestedByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiPlanetRequiresNestedByNamesInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"reps\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findPersonByName_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findPlanetMultipleRequiresByName_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findPlanetRequiresByName_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findPlanetRequiresNestedByName_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findWorldByHelloNameAndFoo_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"helloName\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"helloName\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"foo\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"foo\"] = arg1\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findWorldNameByName_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findWorldWithMultipleKeysByBar_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"bar\", ec.unmarshalNInt2int)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"bar\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findWorldWithMultipleKeysByHelloNameAndFoo_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"helloName\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"helloName\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"foo\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"foo\"] = arg1\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_MultiHelloMultipleRequires_key3_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\n\targ0, err := ec.field_MultiHelloMultipleRequires_key3_argsFederationRequires(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"_federationRequires\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_MultiHelloMultipleRequires_key3_argsFederationRequires(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (map[string]any, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"_federationRequires\"))\n\tdirective0 := func(ctx context.Context) (any, error) {\n\t\ttmp, ok := rawArgs[\"_federationRequires\"]\n\t\tif !ok {\n\t\t\tvar zeroVal map[string]any\n\t\t\treturn zeroVal, nil\n\t\t}\n\t\treturn ec.unmarshalO_RequiresMap2map(ctx, tmp)\n\t}\n\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\treturn builtInDirectivePopulateFromRepresentations(ctx, rawArgs, directive0)\n\t}\n\n\ttmp, err := directive1(ctx)\n\tif err != nil {\n\t\tvar zeroVal map[string]any\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(map[string]any); ok {\n\t\treturn data, nil\n\t} else if tmp == nil {\n\t\tvar zeroVal map[string]any\n\t\treturn zeroVal, nil\n\t} else {\n\t\tvar zeroVal map[string]any\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from directive, should be map[string]any`, tmp))\n\t}\n}\n\nfunc (ec *executionContext) field_MultiHelloRequires_key2_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\n\targ0, err := ec.field_MultiHelloRequires_key2_argsFederationRequires(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"_federationRequires\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_MultiHelloRequires_key2_argsFederationRequires(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (map[string]any, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"_federationRequires\"))\n\tdirective0 := func(ctx context.Context) (any, error) {\n\t\ttmp, ok := rawArgs[\"_federationRequires\"]\n\t\tif !ok {\n\t\t\tvar zeroVal map[string]any\n\t\t\treturn zeroVal, nil\n\t\t}\n\t\treturn ec.unmarshalO_RequiresMap2map(ctx, tmp)\n\t}\n\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\treturn builtInDirectivePopulateFromRepresentations(ctx, rawArgs, directive0)\n\t}\n\n\ttmp, err := directive1(ctx)\n\tif err != nil {\n\t\tvar zeroVal map[string]any\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(map[string]any); ok {\n\t\treturn data, nil\n\t} else if tmp == nil {\n\t\tvar zeroVal map[string]any\n\t\treturn zeroVal, nil\n\t} else {\n\t\tvar zeroVal map[string]any\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from directive, should be map[string]any`, tmp))\n\t}\n}\n\nfunc (ec *executionContext) field_MultiPlanetRequiresNested_size_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\n\targ0, err := ec.field_MultiPlanetRequiresNested_size_argsFederationRequires(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"_federationRequires\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_MultiPlanetRequiresNested_size_argsFederationRequires(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (map[string]any, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"_federationRequires\"))\n\tdirective0 := func(ctx context.Context) (any, error) {\n\t\ttmp, ok := rawArgs[\"_federationRequires\"]\n\t\tif !ok {\n\t\t\tvar zeroVal map[string]any\n\t\t\treturn zeroVal, nil\n\t\t}\n\t\treturn ec.unmarshalO_RequiresMap2map(ctx, tmp)\n\t}\n\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\treturn builtInDirectivePopulateFromRepresentations(ctx, rawArgs, directive0)\n\t}\n\n\ttmp, err := directive1(ctx)\n\tif err != nil {\n\t\tvar zeroVal map[string]any\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(map[string]any); ok {\n\t\treturn data, nil\n\t} else if tmp == nil {\n\t\tvar zeroVal map[string]any\n\t\treturn zeroVal, nil\n\t} else {\n\t\tvar zeroVal map[string]any\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from directive, should be map[string]any`, tmp))\n\t}\n}\n\nfunc (ec *executionContext) field_MultiPlanetRequiresNested_sizes_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\n\targ0, err := ec.field_MultiPlanetRequiresNested_sizes_argsFederationRequires(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"_federationRequires\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_MultiPlanetRequiresNested_sizes_argsFederationRequires(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (map[string]any, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"_federationRequires\"))\n\tdirective0 := func(ctx context.Context) (any, error) {\n\t\ttmp, ok := rawArgs[\"_federationRequires\"]\n\t\tif !ok {\n\t\t\tvar zeroVal map[string]any\n\t\t\treturn zeroVal, nil\n\t\t}\n\t\treturn ec.unmarshalO_RequiresMap2map(ctx, tmp)\n\t}\n\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\treturn builtInDirectivePopulateFromRepresentations(ctx, rawArgs, directive0)\n\t}\n\n\ttmp, err := directive1(ctx)\n\tif err != nil {\n\t\tvar zeroVal map[string]any\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(map[string]any); ok {\n\t\treturn data, nil\n\t} else if tmp == nil {\n\t\tvar zeroVal map[string]any\n\t\treturn zeroVal, nil\n\t} else {\n\t\tvar zeroVal map[string]any\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from directive, should be map[string]any`, tmp))\n\t}\n}\n\nfunc (ec *executionContext) field_Person_welcomeMessage_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\n\targ0, err := ec.field_Person_welcomeMessage_argsFederationRequires(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"_federationRequires\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Person_welcomeMessage_argsFederationRequires(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (map[string]any, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"_federationRequires\"))\n\tdirective0 := func(ctx context.Context) (any, error) {\n\t\ttmp, ok := rawArgs[\"_federationRequires\"]\n\t\tif !ok {\n\t\t\tvar zeroVal map[string]any\n\t\t\treturn zeroVal, nil\n\t\t}\n\t\treturn ec.unmarshalO_RequiresMap2map(ctx, tmp)\n\t}\n\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\treturn builtInDirectivePopulateFromRepresentations(ctx, rawArgs, directive0)\n\t}\n\n\ttmp, err := directive1(ctx)\n\tif err != nil {\n\t\tvar zeroVal map[string]any\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(map[string]any); ok {\n\t\treturn data, nil\n\t} else if tmp == nil {\n\t\tvar zeroVal map[string]any\n\t\treturn zeroVal, nil\n\t} else {\n\t\tvar zeroVal map[string]any\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from directive, should be map[string]any`, tmp))\n\t}\n}\n\nfunc (ec *executionContext) field_PlanetMultipleRequires_anotherField_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"foobar\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"foobar\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_PlanetMultipleRequires_weight_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"foo\", ec.unmarshalOString2ᚖstring)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"foo\"] = arg0\n\n\targ1, err := ec.field_PlanetMultipleRequires_weight_argsFederationRequires(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"_federationRequires\"] = arg1\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_PlanetMultipleRequires_weight_argsFederationRequires(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (map[string]any, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"_federationRequires\"))\n\tdirective0 := func(ctx context.Context) (any, error) {\n\t\ttmp, ok := rawArgs[\"_federationRequires\"]\n\t\tif !ok {\n\t\t\tvar zeroVal map[string]any\n\t\t\treturn zeroVal, nil\n\t\t}\n\t\treturn ec.unmarshalO_RequiresMap2map(ctx, tmp)\n\t}\n\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\treturn builtInDirectivePopulateFromRepresentations(ctx, rawArgs, directive0)\n\t}\n\n\ttmp, err := directive1(ctx)\n\tif err != nil {\n\t\tvar zeroVal map[string]any\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(map[string]any); ok {\n\t\treturn data, nil\n\t} else if tmp == nil {\n\t\tvar zeroVal map[string]any\n\t\treturn zeroVal, nil\n\t} else {\n\t\tvar zeroVal map[string]any\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from directive, should be map[string]any`, tmp))\n\t}\n}\n\nfunc (ec *executionContext) field_PlanetRequiresNested_size_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\n\targ0, err := ec.field_PlanetRequiresNested_size_argsFederationRequires(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"_federationRequires\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_PlanetRequiresNested_size_argsFederationRequires(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (map[string]any, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"_federationRequires\"))\n\tdirective0 := func(ctx context.Context) (any, error) {\n\t\ttmp, ok := rawArgs[\"_federationRequires\"]\n\t\tif !ok {\n\t\t\tvar zeroVal map[string]any\n\t\t\treturn zeroVal, nil\n\t\t}\n\t\treturn ec.unmarshalO_RequiresMap2map(ctx, tmp)\n\t}\n\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\treturn builtInDirectivePopulateFromRepresentations(ctx, rawArgs, directive0)\n\t}\n\n\ttmp, err := directive1(ctx)\n\tif err != nil {\n\t\tvar zeroVal map[string]any\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(map[string]any); ok {\n\t\treturn data, nil\n\t} else if tmp == nil {\n\t\tvar zeroVal map[string]any\n\t\treturn zeroVal, nil\n\t} else {\n\t\tvar zeroVal map[string]any\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from directive, should be map[string]any`, tmp))\n\t}\n}\n\nfunc (ec *executionContext) field_PlanetRequiresNested_sizes_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\n\targ0, err := ec.field_PlanetRequiresNested_sizes_argsFederationRequires(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"_federationRequires\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_PlanetRequiresNested_sizes_argsFederationRequires(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (map[string]any, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"_federationRequires\"))\n\tdirective0 := func(ctx context.Context) (any, error) {\n\t\ttmp, ok := rawArgs[\"_federationRequires\"]\n\t\tif !ok {\n\t\t\tvar zeroVal map[string]any\n\t\t\treturn zeroVal, nil\n\t\t}\n\t\treturn ec.unmarshalO_RequiresMap2map(ctx, tmp)\n\t}\n\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\treturn builtInDirectivePopulateFromRepresentations(ctx, rawArgs, directive0)\n\t}\n\n\ttmp, err := directive1(ctx)\n\tif err != nil {\n\t\tvar zeroVal map[string]any\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(map[string]any); ok {\n\t\treturn data, nil\n\t} else if tmp == nil {\n\t\tvar zeroVal map[string]any\n\t\treturn zeroVal, nil\n\t} else {\n\t\tvar zeroVal map[string]any\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from directive, should be map[string]any`, tmp))\n\t}\n}\n\nfunc (ec *executionContext) field_PlanetRequires_size_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\n\targ0, err := ec.field_PlanetRequires_size_argsFederationRequires(ctx, rawArgs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"_federationRequires\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_PlanetRequires_size_argsFederationRequires(\n\tctx context.Context,\n\trawArgs map[string]any,\n) (map[string]any, error) {\n\tctx = graphql.WithPathContext(ctx, graphql.NewPathWithField(\"_federationRequires\"))\n\tdirective0 := func(ctx context.Context) (any, error) {\n\t\ttmp, ok := rawArgs[\"_federationRequires\"]\n\t\tif !ok {\n\t\t\tvar zeroVal map[string]any\n\t\t\treturn zeroVal, nil\n\t\t}\n\t\treturn ec.unmarshalO_RequiresMap2map(ctx, tmp)\n\t}\n\n\tdirective1 := func(ctx context.Context) (any, error) {\n\t\treturn builtInDirectivePopulateFromRepresentations(ctx, rawArgs, directive0)\n\t}\n\n\ttmp, err := directive1(ctx)\n\tif err != nil {\n\t\tvar zeroVal map[string]any\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, err)\n\t}\n\tif data, ok := tmp.(map[string]any); ok {\n\t\treturn data, nil\n\t} else if tmp == nil {\n\t\tvar zeroVal map[string]any\n\t\treturn zeroVal, nil\n\t} else {\n\t\tvar zeroVal map[string]any\n\t\treturn zeroVal, graphql.ErrorOnPath(ctx, fmt.Errorf(`unexpected type %T from directive, should be map[string]any`, tmp))\n\t}\n}\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query__entities_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"representations\", ec.unmarshalN_Any2ᚕmapᚄ)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"representations\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Entity_findHelloByName(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findHelloByName,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindHelloByName(ctx, fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNHello2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐHello,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findHelloByName(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_Hello_name(ctx, field)\n\t\t\tcase \"secondary\":\n\t\t\t\treturn ec.fieldContext_Hello_secondary(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Hello\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findHelloByName_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findHelloMultiSingleKeysByKey1AndKey2(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findHelloMultiSingleKeysByKey1AndKey2,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindHelloMultiSingleKeysByKey1AndKey2(ctx, fc.Args[\"key1\"].(string), fc.Args[\"key2\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNHelloMultiSingleKeys2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐHelloMultiSingleKeys,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findHelloMultiSingleKeysByKey1AndKey2(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"key1\":\n\t\t\t\treturn ec.fieldContext_HelloMultiSingleKeys_key1(ctx, field)\n\t\t\tcase \"key2\":\n\t\t\t\treturn ec.fieldContext_HelloMultiSingleKeys_key2(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type HelloMultiSingleKeys\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findHelloMultiSingleKeysByKey1AndKey2_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findHelloWithErrorsByName(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findHelloWithErrorsByName,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindHelloWithErrorsByName(ctx, fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNHelloWithErrors2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐHelloWithErrors,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findHelloWithErrorsByName(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_HelloWithErrors_name(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type HelloWithErrors\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findHelloWithErrorsByName_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findManyMultiHelloByNames(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findManyMultiHelloByNames,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindManyMultiHelloByNames(ctx, fc.Args[\"reps\"].([]*model.MultiHelloByNamesInput))\n\t\t},\n\t\tnil,\n\t\tec.marshalOMultiHello2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiHello,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findManyMultiHelloByNames(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_MultiHello_name(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type MultiHello\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findManyMultiHelloByNames_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findManyMultiHelloMultipleRequiresByNames(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findManyMultiHelloMultipleRequiresByNames,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindManyMultiHelloMultipleRequiresByNames(ctx, fc.Args[\"reps\"].([]*model.MultiHelloMultipleRequiresByNamesInput))\n\t\t},\n\t\tnil,\n\t\tec.marshalOMultiHelloMultipleRequires2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiHelloMultipleRequires,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findManyMultiHelloMultipleRequiresByNames(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_MultiHelloMultipleRequires_name(ctx, field)\n\t\t\tcase \"key1\":\n\t\t\t\treturn ec.fieldContext_MultiHelloMultipleRequires_key1(ctx, field)\n\t\t\tcase \"key2\":\n\t\t\t\treturn ec.fieldContext_MultiHelloMultipleRequires_key2(ctx, field)\n\t\t\tcase \"key3\":\n\t\t\t\treturn ec.fieldContext_MultiHelloMultipleRequires_key3(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type MultiHelloMultipleRequires\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findManyMultiHelloMultipleRequiresByNames_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findManyMultiHelloRequiresByNames(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findManyMultiHelloRequiresByNames,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindManyMultiHelloRequiresByNames(ctx, fc.Args[\"reps\"].([]*model.MultiHelloRequiresByNamesInput))\n\t\t},\n\t\tnil,\n\t\tec.marshalOMultiHelloRequires2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiHelloRequires,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findManyMultiHelloRequiresByNames(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_MultiHelloRequires_name(ctx, field)\n\t\t\tcase \"key1\":\n\t\t\t\treturn ec.fieldContext_MultiHelloRequires_key1(ctx, field)\n\t\t\tcase \"key2\":\n\t\t\t\treturn ec.fieldContext_MultiHelloRequires_key2(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type MultiHelloRequires\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findManyMultiHelloRequiresByNames_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findManyMultiHelloWithErrorByNames(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findManyMultiHelloWithErrorByNames,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindManyMultiHelloWithErrorByNames(ctx, fc.Args[\"reps\"].([]*model.MultiHelloWithErrorByNamesInput))\n\t\t},\n\t\tnil,\n\t\tec.marshalOMultiHelloWithError2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiHelloWithError,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findManyMultiHelloWithErrorByNames(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_MultiHelloWithError_name(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type MultiHelloWithError\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findManyMultiHelloWithErrorByNames_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findManyMultiPlanetRequiresNestedByNames(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findManyMultiPlanetRequiresNestedByNames,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindManyMultiPlanetRequiresNestedByNames(ctx, fc.Args[\"reps\"].([]*model.MultiPlanetRequiresNestedByNamesInput))\n\t\t},\n\t\tnil,\n\t\tec.marshalOMultiPlanetRequiresNested2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiPlanetRequiresNested,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findManyMultiPlanetRequiresNestedByNames(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_MultiPlanetRequiresNested_name(ctx, field)\n\t\t\tcase \"world\":\n\t\t\t\treturn ec.fieldContext_MultiPlanetRequiresNested_world(ctx, field)\n\t\t\tcase \"worlds\":\n\t\t\t\treturn ec.fieldContext_MultiPlanetRequiresNested_worlds(ctx, field)\n\t\t\tcase \"size\":\n\t\t\t\treturn ec.fieldContext_MultiPlanetRequiresNested_size(ctx, field)\n\t\t\tcase \"sizes\":\n\t\t\t\treturn ec.fieldContext_MultiPlanetRequiresNested_sizes(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type MultiPlanetRequiresNested\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findManyMultiPlanetRequiresNestedByNames_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findPersonByName(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findPersonByName,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindPersonByName(ctx, fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNPerson2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐPerson,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findPersonByName(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_Person_name(ctx, field)\n\t\t\tcase \"gender\":\n\t\t\t\treturn ec.fieldContext_Person_gender(ctx, field)\n\t\t\tcase \"welcomeMessage\":\n\t\t\t\treturn ec.fieldContext_Person_welcomeMessage(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Person\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findPersonByName_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findPlanetMultipleRequiresByName(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findPlanetMultipleRequiresByName,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindPlanetMultipleRequiresByName(ctx, fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNPlanetMultipleRequires2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐPlanetMultipleRequires,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findPlanetMultipleRequiresByName(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_PlanetMultipleRequires_name(ctx, field)\n\t\t\tcase \"diameter\":\n\t\t\t\treturn ec.fieldContext_PlanetMultipleRequires_diameter(ctx, field)\n\t\t\tcase \"density\":\n\t\t\t\treturn ec.fieldContext_PlanetMultipleRequires_density(ctx, field)\n\t\t\tcase \"weight\":\n\t\t\t\treturn ec.fieldContext_PlanetMultipleRequires_weight(ctx, field)\n\t\t\tcase \"anotherField\":\n\t\t\t\treturn ec.fieldContext_PlanetMultipleRequires_anotherField(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type PlanetMultipleRequires\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findPlanetMultipleRequiresByName_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findPlanetRequiresByName(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findPlanetRequiresByName,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindPlanetRequiresByName(ctx, fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNPlanetRequires2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐPlanetRequires,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findPlanetRequiresByName(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_PlanetRequires_name(ctx, field)\n\t\t\tcase \"size\":\n\t\t\t\treturn ec.fieldContext_PlanetRequires_size(ctx, field)\n\t\t\tcase \"diameter\":\n\t\t\t\treturn ec.fieldContext_PlanetRequires_diameter(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type PlanetRequires\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findPlanetRequiresByName_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findPlanetRequiresNestedByName(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findPlanetRequiresNestedByName,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindPlanetRequiresNestedByName(ctx, fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNPlanetRequiresNested2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐPlanetRequiresNested,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findPlanetRequiresNestedByName(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_PlanetRequiresNested_name(ctx, field)\n\t\t\tcase \"world\":\n\t\t\t\treturn ec.fieldContext_PlanetRequiresNested_world(ctx, field)\n\t\t\tcase \"worlds\":\n\t\t\t\treturn ec.fieldContext_PlanetRequiresNested_worlds(ctx, field)\n\t\t\tcase \"size\":\n\t\t\t\treturn ec.fieldContext_PlanetRequiresNested_size(ctx, field)\n\t\t\tcase \"sizes\":\n\t\t\t\treturn ec.fieldContext_PlanetRequiresNested_sizes(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type PlanetRequiresNested\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findPlanetRequiresNestedByName_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findWorldByHelloNameAndFoo(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findWorldByHelloNameAndFoo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindWorldByHelloNameAndFoo(ctx, fc.Args[\"helloName\"].(string), fc.Args[\"foo\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNWorld2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐWorld,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findWorldByHelloNameAndFoo(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"foo\":\n\t\t\t\treturn ec.fieldContext_World_foo(ctx, field)\n\t\t\tcase \"bar\":\n\t\t\t\treturn ec.fieldContext_World_bar(ctx, field)\n\t\t\tcase \"hello\":\n\t\t\t\treturn ec.fieldContext_World_hello(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type World\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findWorldByHelloNameAndFoo_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findWorldNameByName(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findWorldNameByName,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindWorldNameByName(ctx, fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNWorldName2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐWorldName,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findWorldNameByName(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_WorldName_name(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type WorldName\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findWorldNameByName_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findWorldWithMultipleKeysByHelloNameAndFoo(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findWorldWithMultipleKeysByHelloNameAndFoo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindWorldWithMultipleKeysByHelloNameAndFoo(ctx, fc.Args[\"helloName\"].(string), fc.Args[\"foo\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNWorldWithMultipleKeys2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐWorldWithMultipleKeys,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findWorldWithMultipleKeysByHelloNameAndFoo(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"foo\":\n\t\t\t\treturn ec.fieldContext_WorldWithMultipleKeys_foo(ctx, field)\n\t\t\tcase \"bar\":\n\t\t\t\treturn ec.fieldContext_WorldWithMultipleKeys_bar(ctx, field)\n\t\t\tcase \"hello\":\n\t\t\t\treturn ec.fieldContext_WorldWithMultipleKeys_hello(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type WorldWithMultipleKeys\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findWorldWithMultipleKeysByHelloNameAndFoo_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findWorldWithMultipleKeysByBar(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findWorldWithMultipleKeysByBar,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindWorldWithMultipleKeysByBar(ctx, fc.Args[\"bar\"].(int))\n\t\t},\n\t\tnil,\n\t\tec.marshalNWorldWithMultipleKeys2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐWorldWithMultipleKeys,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findWorldWithMultipleKeysByBar(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"foo\":\n\t\t\t\treturn ec.fieldContext_WorldWithMultipleKeys_foo(ctx, field)\n\t\t\tcase \"bar\":\n\t\t\t\treturn ec.fieldContext_WorldWithMultipleKeys_bar(ctx, field)\n\t\t\tcase \"hello\":\n\t\t\t\treturn ec.fieldContext_WorldWithMultipleKeys_hello(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type WorldWithMultipleKeys\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findWorldWithMultipleKeysByBar_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Female_description(ctx context.Context, field graphql.CollectedField, obj *model.Female) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Female_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Female_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Female\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Hello_name(ctx context.Context, field graphql.CollectedField, obj *model.Hello) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Hello_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Hello_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Hello\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Hello_secondary(ctx context.Context, field graphql.CollectedField, obj *model.Hello) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Hello_secondary,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Secondary, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Hello_secondary(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Hello\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _HelloMultiSingleKeys_key1(ctx context.Context, field graphql.CollectedField, obj *model.HelloMultiSingleKeys) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_HelloMultiSingleKeys_key1,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Key1, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_HelloMultiSingleKeys_key1(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"HelloMultiSingleKeys\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _HelloMultiSingleKeys_key2(ctx context.Context, field graphql.CollectedField, obj *model.HelloMultiSingleKeys) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_HelloMultiSingleKeys_key2,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Key2, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_HelloMultiSingleKeys_key2(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"HelloMultiSingleKeys\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _HelloWithErrors_name(ctx context.Context, field graphql.CollectedField, obj *model.HelloWithErrors) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_HelloWithErrors_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_HelloWithErrors_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"HelloWithErrors\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Male_description(ctx context.Context, field graphql.CollectedField, obj *model.Male) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Male_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Male_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Male\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiHello_name(ctx context.Context, field graphql.CollectedField, obj *model.MultiHello) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiHello_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiHello_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHello\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiHelloMultipleRequires_name(ctx context.Context, field graphql.CollectedField, obj *model.MultiHelloMultipleRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiHelloMultipleRequires_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiHelloMultipleRequires_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHelloMultipleRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiHelloMultipleRequires_key1(ctx context.Context, field graphql.CollectedField, obj *model.MultiHelloMultipleRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiHelloMultipleRequires_key1,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Key1, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiHelloMultipleRequires_key1(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHelloMultipleRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiHelloMultipleRequires_key2(ctx context.Context, field graphql.CollectedField, obj *model.MultiHelloMultipleRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiHelloMultipleRequires_key2,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Key2, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiHelloMultipleRequires_key2(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHelloMultipleRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiHelloMultipleRequires_key3(ctx context.Context, field graphql.CollectedField, obj *model.MultiHelloMultipleRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiHelloMultipleRequires_key3,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.MultiHelloMultipleRequires().Key3(ctx, obj, fc.Args[\"_federationRequires\"].(map[string]any))\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiHelloMultipleRequires_key3(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHelloMultipleRequires\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_MultiHelloMultipleRequires_key3_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiHelloRequires_name(ctx context.Context, field graphql.CollectedField, obj *model.MultiHelloRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiHelloRequires_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiHelloRequires_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHelloRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiHelloRequires_key1(ctx context.Context, field graphql.CollectedField, obj *model.MultiHelloRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiHelloRequires_key1,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Key1, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiHelloRequires_key1(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHelloRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiHelloRequires_key2(ctx context.Context, field graphql.CollectedField, obj *model.MultiHelloRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiHelloRequires_key2,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.MultiHelloRequires().Key2(ctx, obj, fc.Args[\"_federationRequires\"].(map[string]any))\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiHelloRequires_key2(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHelloRequires\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_MultiHelloRequires_key2_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiHelloWithError_name(ctx context.Context, field graphql.CollectedField, obj *model.MultiHelloWithError) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiHelloWithError_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiHelloWithError_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHelloWithError\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiPlanetRequiresNested_name(ctx context.Context, field graphql.CollectedField, obj *model.MultiPlanetRequiresNested) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiPlanetRequiresNested_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiPlanetRequiresNested_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiPlanetRequiresNested\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiPlanetRequiresNested_world(ctx context.Context, field graphql.CollectedField, obj *model.MultiPlanetRequiresNested) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiPlanetRequiresNested_world,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.World, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNWorld2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐWorld,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiPlanetRequiresNested_world(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiPlanetRequiresNested\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"foo\":\n\t\t\t\treturn ec.fieldContext_World_foo(ctx, field)\n\t\t\tcase \"bar\":\n\t\t\t\treturn ec.fieldContext_World_bar(ctx, field)\n\t\t\tcase \"hello\":\n\t\t\t\treturn ec.fieldContext_World_hello(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type World\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiPlanetRequiresNested_worlds(ctx context.Context, field graphql.CollectedField, obj *model.MultiPlanetRequiresNested) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiPlanetRequiresNested_worlds,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Worlds, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOWorld2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐWorldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiPlanetRequiresNested_worlds(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiPlanetRequiresNested\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"foo\":\n\t\t\t\treturn ec.fieldContext_World_foo(ctx, field)\n\t\t\tcase \"bar\":\n\t\t\t\treturn ec.fieldContext_World_bar(ctx, field)\n\t\t\tcase \"hello\":\n\t\t\t\treturn ec.fieldContext_World_hello(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type World\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiPlanetRequiresNested_size(ctx context.Context, field graphql.CollectedField, obj *model.MultiPlanetRequiresNested) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiPlanetRequiresNested_size,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.MultiPlanetRequiresNested().Size(ctx, obj, fc.Args[\"_federationRequires\"].(map[string]any))\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiPlanetRequiresNested_size(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiPlanetRequiresNested\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_MultiPlanetRequiresNested_size_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiPlanetRequiresNested_sizes(ctx context.Context, field graphql.CollectedField, obj *model.MultiPlanetRequiresNested) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiPlanetRequiresNested_sizes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.MultiPlanetRequiresNested().Sizes(ctx, obj, fc.Args[\"_federationRequires\"].(map[string]any))\n\t\t},\n\t\tnil,\n\t\tec.marshalOInt2ᚕintᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiPlanetRequiresNested_sizes(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiPlanetRequiresNested\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_MultiPlanetRequiresNested_sizes_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Person_name(ctx context.Context, field graphql.CollectedField, obj *model.Person) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Person_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Person_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Person\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Person_gender(ctx context.Context, field graphql.CollectedField, obj *model.Person) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Person_gender,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Gender, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNGender2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐGender,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Person_gender(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Person\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Gender does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Person_welcomeMessage(ctx context.Context, field graphql.CollectedField, obj *model.Person) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Person_welcomeMessage,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Person().WelcomeMessage(ctx, obj, fc.Args[\"_federationRequires\"].(map[string]any))\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Person_welcomeMessage(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Person\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Person_welcomeMessage_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetMultipleRequires_name(ctx context.Context, field graphql.CollectedField, obj *model.PlanetMultipleRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetMultipleRequires_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetMultipleRequires_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetMultipleRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetMultipleRequires_diameter(ctx context.Context, field graphql.CollectedField, obj *model.PlanetMultipleRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetMultipleRequires_diameter,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Diameter, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetMultipleRequires_diameter(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetMultipleRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetMultipleRequires_density(ctx context.Context, field graphql.CollectedField, obj *model.PlanetMultipleRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetMultipleRequires_density,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Density, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetMultipleRequires_density(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetMultipleRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetMultipleRequires_weight(ctx context.Context, field graphql.CollectedField, obj *model.PlanetMultipleRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetMultipleRequires_weight,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.PlanetMultipleRequires().Weight(ctx, obj, fc.Args[\"foo\"].(*string), fc.Args[\"_federationRequires\"].(map[string]any))\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetMultipleRequires_weight(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetMultipleRequires\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_PlanetMultipleRequires_weight_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetMultipleRequires_anotherField(ctx context.Context, field graphql.CollectedField, obj *model.PlanetMultipleRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetMultipleRequires_anotherField,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.AnotherField, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetMultipleRequires_anotherField(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetMultipleRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_PlanetMultipleRequires_anotherField_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetRequires_name(ctx context.Context, field graphql.CollectedField, obj *model.PlanetRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetRequires_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetRequires_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetRequires_size(ctx context.Context, field graphql.CollectedField, obj *model.PlanetRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetRequires_size,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.PlanetRequires().Size(ctx, obj, fc.Args[\"_federationRequires\"].(map[string]any))\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetRequires_size(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetRequires\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_PlanetRequires_size_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetRequires_diameter(ctx context.Context, field graphql.CollectedField, obj *model.PlanetRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetRequires_diameter,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Diameter, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetRequires_diameter(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetRequiresNested_name(ctx context.Context, field graphql.CollectedField, obj *model.PlanetRequiresNested) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetRequiresNested_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetRequiresNested_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetRequiresNested\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetRequiresNested_world(ctx context.Context, field graphql.CollectedField, obj *model.PlanetRequiresNested) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetRequiresNested_world,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.World, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNWorld2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐWorld,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetRequiresNested_world(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetRequiresNested\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"foo\":\n\t\t\t\treturn ec.fieldContext_World_foo(ctx, field)\n\t\t\tcase \"bar\":\n\t\t\t\treturn ec.fieldContext_World_bar(ctx, field)\n\t\t\tcase \"hello\":\n\t\t\t\treturn ec.fieldContext_World_hello(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type World\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetRequiresNested_worlds(ctx context.Context, field graphql.CollectedField, obj *model.PlanetRequiresNested) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetRequiresNested_worlds,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Worlds, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOWorld2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐWorldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetRequiresNested_worlds(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetRequiresNested\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"foo\":\n\t\t\t\treturn ec.fieldContext_World_foo(ctx, field)\n\t\t\tcase \"bar\":\n\t\t\t\treturn ec.fieldContext_World_bar(ctx, field)\n\t\t\tcase \"hello\":\n\t\t\t\treturn ec.fieldContext_World_hello(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type World\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetRequiresNested_size(ctx context.Context, field graphql.CollectedField, obj *model.PlanetRequiresNested) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetRequiresNested_size,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.PlanetRequiresNested().Size(ctx, obj, fc.Args[\"_federationRequires\"].(map[string]any))\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetRequiresNested_size(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetRequiresNested\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_PlanetRequiresNested_size_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetRequiresNested_sizes(ctx context.Context, field graphql.CollectedField, obj *model.PlanetRequiresNested) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetRequiresNested_sizes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.PlanetRequiresNested().Sizes(ctx, obj, fc.Args[\"_federationRequires\"].(map[string]any))\n\t\t},\n\t\tnil,\n\t\tec.marshalOInt2ᚕintᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetRequiresNested_sizes(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetRequiresNested\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_PlanetRequiresNested_sizes_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_test(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_test,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.Resolvers.Query().Test(ctx)\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_test(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query__entities(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query__entities,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.__resolve_entities(ctx, fc.Args[\"representations\"].([]map[string]any)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN_Entity2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query__entities(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type _Entity does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query__entities_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query__service(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query__service,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.__resolve__service(ctx)\n\t\t},\n\t\tnil,\n\t\tec.marshalN_Service2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐService,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query__service(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"sdl\":\n\t\t\t\treturn ec.fieldContext__Service_sdl(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type _Service\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.IntrospectType(fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___schema,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.IntrospectSchema()\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _World_foo(ctx context.Context, field graphql.CollectedField, obj *model.World) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_World_foo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Foo, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_World_foo(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"World\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _World_bar(ctx context.Context, field graphql.CollectedField, obj *model.World) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_World_bar,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Bar, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_World_bar(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"World\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _World_hello(ctx context.Context, field graphql.CollectedField, obj *model.World) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_World_hello,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Hello, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOHello2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐHello,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_World_hello(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"World\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_Hello_name(ctx, field)\n\t\t\tcase \"secondary\":\n\t\t\t\treturn ec.fieldContext_Hello_secondary(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Hello\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _WorldName_name(ctx context.Context, field graphql.CollectedField, obj *model.WorldName) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_WorldName_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_WorldName_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"WorldName\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _WorldWithMultipleKeys_foo(ctx context.Context, field graphql.CollectedField, obj *model.WorldWithMultipleKeys) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_WorldWithMultipleKeys_foo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Foo, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_WorldWithMultipleKeys_foo(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"WorldWithMultipleKeys\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _WorldWithMultipleKeys_bar(ctx context.Context, field graphql.CollectedField, obj *model.WorldWithMultipleKeys) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_WorldWithMultipleKeys_bar,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Bar, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_WorldWithMultipleKeys_bar(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"WorldWithMultipleKeys\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _WorldWithMultipleKeys_hello(ctx context.Context, field graphql.CollectedField, obj *model.WorldWithMultipleKeys) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_WorldWithMultipleKeys_hello,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Hello, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOHello2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐHello,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_WorldWithMultipleKeys_hello(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"WorldWithMultipleKeys\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_Hello_name(ctx, field)\n\t\t\tcase \"secondary\":\n\t\t\t\treturn ec.fieldContext_Hello_secondary(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Hello\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) __Service_sdl(ctx context.Context, field graphql.CollectedField, obj *fedruntime.Service) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext__Service_sdl,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SDL, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2string,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext__Service_sdl(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"_Service\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_isRepeatable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsRepeatable, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_locations,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Locations, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__DirectiveLocation2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_defaultValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DefaultValue, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_types,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Types(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_queryType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.QueryType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_mutationType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.MutationType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_subscriptionType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SubscriptionType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_directives,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Directives(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_kind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Kind(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__TypeKind2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_specifiedByURL,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SpecifiedByURL(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_fields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_interfaces,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Interfaces(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_possibleTypes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PossibleTypes(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_enumValues,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_inputFields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.InputFields(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_ofType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.OfType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_isOneOf,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsOneOf(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOBoolean2bool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalInputMultiHelloByNamesInput(ctx context.Context, obj any) (model.MultiHelloByNamesInput, error) {\n\tvar it model.MultiHelloByNamesInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"Name\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"Name\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"Name\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Name = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputMultiHelloMultipleRequiresByNamesInput(ctx context.Context, obj any) (model.MultiHelloMultipleRequiresByNamesInput, error) {\n\tvar it model.MultiHelloMultipleRequiresByNamesInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"Name\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"Name\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"Name\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Name = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputMultiHelloRequiresByNamesInput(ctx context.Context, obj any) (model.MultiHelloRequiresByNamesInput, error) {\n\tvar it model.MultiHelloRequiresByNamesInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"Name\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"Name\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"Name\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Name = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputMultiHelloWithErrorByNamesInput(ctx context.Context, obj any) (model.MultiHelloWithErrorByNamesInput, error) {\n\tvar it model.MultiHelloWithErrorByNamesInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"Name\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"Name\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"Name\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Name = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputMultiPlanetRequiresNestedByNamesInput(ctx context.Context, obj any) (model.MultiPlanetRequiresNestedByNamesInput, error) {\n\tvar it model.MultiPlanetRequiresNestedByNamesInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"Name\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"Name\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"Name\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Name = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\nfunc (ec *executionContext) _Gender(ctx context.Context, sel ast.SelectionSet, obj model.Gender) graphql.Marshaler {\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\tcase model.Male:\n\t\treturn ec._Male(ctx, sel, &obj)\n\tcase *model.Male:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Male(ctx, sel, obj)\n\tcase model.Female:\n\t\treturn ec._Female(ctx, sel, &obj)\n\tcase *model.Female:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Female(ctx, sel, obj)\n\tdefault:\n\t\tif typedObj, ok := obj.(graphql.Marshaler); ok {\n\t\t\treturn typedObj\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T; non-generated variants of Gender must implement graphql.Marshaler\", obj))\n\t\t}\n\t}\n}\n\nfunc (ec *executionContext) __Entity(ctx context.Context, sel ast.SelectionSet, obj fedruntime.Entity) graphql.Marshaler {\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\tcase model.WorldWithMultipleKeys:\n\t\treturn ec._WorldWithMultipleKeys(ctx, sel, &obj)\n\tcase *model.WorldWithMultipleKeys:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._WorldWithMultipleKeys(ctx, sel, obj)\n\tcase model.WorldName:\n\t\treturn ec._WorldName(ctx, sel, &obj)\n\tcase *model.WorldName:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._WorldName(ctx, sel, obj)\n\tcase model.World:\n\t\treturn ec._World(ctx, sel, &obj)\n\tcase *model.World:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._World(ctx, sel, obj)\n\tcase model.PlanetRequiresNested:\n\t\treturn ec._PlanetRequiresNested(ctx, sel, &obj)\n\tcase *model.PlanetRequiresNested:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._PlanetRequiresNested(ctx, sel, obj)\n\tcase model.PlanetRequires:\n\t\treturn ec._PlanetRequires(ctx, sel, &obj)\n\tcase *model.PlanetRequires:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._PlanetRequires(ctx, sel, obj)\n\tcase model.PlanetMultipleRequires:\n\t\treturn ec._PlanetMultipleRequires(ctx, sel, &obj)\n\tcase *model.PlanetMultipleRequires:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._PlanetMultipleRequires(ctx, sel, obj)\n\tcase model.Person:\n\t\treturn ec._Person(ctx, sel, &obj)\n\tcase *model.Person:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Person(ctx, sel, obj)\n\tcase model.MultiPlanetRequiresNested:\n\t\treturn ec._MultiPlanetRequiresNested(ctx, sel, &obj)\n\tcase *model.MultiPlanetRequiresNested:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._MultiPlanetRequiresNested(ctx, sel, obj)\n\tcase model.MultiHelloWithError:\n\t\treturn ec._MultiHelloWithError(ctx, sel, &obj)\n\tcase *model.MultiHelloWithError:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._MultiHelloWithError(ctx, sel, obj)\n\tcase model.MultiHelloRequires:\n\t\treturn ec._MultiHelloRequires(ctx, sel, &obj)\n\tcase *model.MultiHelloRequires:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._MultiHelloRequires(ctx, sel, obj)\n\tcase model.MultiHelloMultipleRequires:\n\t\treturn ec._MultiHelloMultipleRequires(ctx, sel, &obj)\n\tcase *model.MultiHelloMultipleRequires:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._MultiHelloMultipleRequires(ctx, sel, obj)\n\tcase model.MultiHello:\n\t\treturn ec._MultiHello(ctx, sel, &obj)\n\tcase *model.MultiHello:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._MultiHello(ctx, sel, obj)\n\tcase model.HelloWithErrors:\n\t\treturn ec._HelloWithErrors(ctx, sel, &obj)\n\tcase *model.HelloWithErrors:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._HelloWithErrors(ctx, sel, obj)\n\tcase model.HelloMultiSingleKeys:\n\t\treturn ec._HelloMultiSingleKeys(ctx, sel, &obj)\n\tcase *model.HelloMultiSingleKeys:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._HelloMultiSingleKeys(ctx, sel, obj)\n\tcase model.Hello:\n\t\treturn ec._Hello(ctx, sel, &obj)\n\tcase *model.Hello:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Hello(ctx, sel, obj)\n\tdefault:\n\t\tif typedObj, ok := obj.(graphql.Marshaler); ok {\n\t\t\treturn typedObj\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T; non-generated variants of _Entity must implement graphql.Marshaler\", obj))\n\t\t}\n\t}\n}\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar entityImplementors = []string{\"Entity\"}\n\nfunc (ec *executionContext) _Entity(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, entityImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Entity\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Entity\")\n\t\tcase \"findHelloByName\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findHelloByName(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findHelloMultiSingleKeysByKey1AndKey2\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findHelloMultiSingleKeysByKey1AndKey2(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findHelloWithErrorsByName\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findHelloWithErrorsByName(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findManyMultiHelloByNames\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findManyMultiHelloByNames(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findManyMultiHelloMultipleRequiresByNames\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findManyMultiHelloMultipleRequiresByNames(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findManyMultiHelloRequiresByNames\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findManyMultiHelloRequiresByNames(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findManyMultiHelloWithErrorByNames\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findManyMultiHelloWithErrorByNames(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findManyMultiPlanetRequiresNestedByNames\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findManyMultiPlanetRequiresNestedByNames(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findPersonByName\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findPersonByName(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findPlanetMultipleRequiresByName\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findPlanetMultipleRequiresByName(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findPlanetRequiresByName\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findPlanetRequiresByName(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findPlanetRequiresNestedByName\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findPlanetRequiresNestedByName(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findWorldByHelloNameAndFoo\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findWorldByHelloNameAndFoo(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findWorldNameByName\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findWorldNameByName(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findWorldWithMultipleKeysByHelloNameAndFoo\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findWorldWithMultipleKeysByHelloNameAndFoo(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findWorldWithMultipleKeysByBar\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findWorldWithMultipleKeysByBar(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar femaleImplementors = []string{\"Female\", \"Gender\"}\n\nfunc (ec *executionContext) _Female(ctx context.Context, sel ast.SelectionSet, obj *model.Female) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, femaleImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Female\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec._Female_description(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar helloImplementors = []string{\"Hello\", \"_Entity\"}\n\nfunc (ec *executionContext) _Hello(ctx context.Context, sel ast.SelectionSet, obj *model.Hello) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, helloImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Hello\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._Hello_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"secondary\":\n\t\t\tout.Values[i] = ec._Hello_secondary(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar helloMultiSingleKeysImplementors = []string{\"HelloMultiSingleKeys\", \"_Entity\"}\n\nfunc (ec *executionContext) _HelloMultiSingleKeys(ctx context.Context, sel ast.SelectionSet, obj *model.HelloMultiSingleKeys) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, helloMultiSingleKeysImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"HelloMultiSingleKeys\")\n\t\tcase \"key1\":\n\t\t\tout.Values[i] = ec._HelloMultiSingleKeys_key1(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"key2\":\n\t\t\tout.Values[i] = ec._HelloMultiSingleKeys_key2(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar helloWithErrorsImplementors = []string{\"HelloWithErrors\", \"_Entity\"}\n\nfunc (ec *executionContext) _HelloWithErrors(ctx context.Context, sel ast.SelectionSet, obj *model.HelloWithErrors) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, helloWithErrorsImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"HelloWithErrors\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._HelloWithErrors_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar maleImplementors = []string{\"Male\", \"Gender\"}\n\nfunc (ec *executionContext) _Male(ctx context.Context, sel ast.SelectionSet, obj *model.Male) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, maleImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Male\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec._Male_description(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar multiHelloImplementors = []string{\"MultiHello\", \"_Entity\"}\n\nfunc (ec *executionContext) _MultiHello(ctx context.Context, sel ast.SelectionSet, obj *model.MultiHello) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, multiHelloImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"MultiHello\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._MultiHello_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar multiHelloMultipleRequiresImplementors = []string{\"MultiHelloMultipleRequires\", \"_Entity\"}\n\nfunc (ec *executionContext) _MultiHelloMultipleRequires(ctx context.Context, sel ast.SelectionSet, obj *model.MultiHelloMultipleRequires) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, multiHelloMultipleRequiresImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"MultiHelloMultipleRequires\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._MultiHelloMultipleRequires_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"key1\":\n\t\t\tout.Values[i] = ec._MultiHelloMultipleRequires_key1(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"key2\":\n\t\t\tout.Values[i] = ec._MultiHelloMultipleRequires_key2(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"key3\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._MultiHelloMultipleRequires_key3(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar multiHelloRequiresImplementors = []string{\"MultiHelloRequires\", \"_Entity\"}\n\nfunc (ec *executionContext) _MultiHelloRequires(ctx context.Context, sel ast.SelectionSet, obj *model.MultiHelloRequires) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, multiHelloRequiresImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"MultiHelloRequires\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._MultiHelloRequires_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"key1\":\n\t\t\tout.Values[i] = ec._MultiHelloRequires_key1(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"key2\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._MultiHelloRequires_key2(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar multiHelloWithErrorImplementors = []string{\"MultiHelloWithError\", \"_Entity\"}\n\nfunc (ec *executionContext) _MultiHelloWithError(ctx context.Context, sel ast.SelectionSet, obj *model.MultiHelloWithError) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, multiHelloWithErrorImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"MultiHelloWithError\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._MultiHelloWithError_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar multiPlanetRequiresNestedImplementors = []string{\"MultiPlanetRequiresNested\", \"_Entity\"}\n\nfunc (ec *executionContext) _MultiPlanetRequiresNested(ctx context.Context, sel ast.SelectionSet, obj *model.MultiPlanetRequiresNested) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, multiPlanetRequiresNestedImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"MultiPlanetRequiresNested\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._MultiPlanetRequiresNested_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"world\":\n\t\t\tout.Values[i] = ec._MultiPlanetRequiresNested_world(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"worlds\":\n\t\t\tout.Values[i] = ec._MultiPlanetRequiresNested_worlds(ctx, field, obj)\n\t\tcase \"size\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._MultiPlanetRequiresNested_size(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"sizes\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._MultiPlanetRequiresNested_sizes(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar personImplementors = []string{\"Person\", \"_Entity\"}\n\nfunc (ec *executionContext) _Person(ctx context.Context, sel ast.SelectionSet, obj *model.Person) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, personImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Person\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._Person_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"gender\":\n\t\t\tout.Values[i] = ec._Person_gender(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"welcomeMessage\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Person_welcomeMessage(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar planetMultipleRequiresImplementors = []string{\"PlanetMultipleRequires\", \"_Entity\"}\n\nfunc (ec *executionContext) _PlanetMultipleRequires(ctx context.Context, sel ast.SelectionSet, obj *model.PlanetMultipleRequires) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, planetMultipleRequiresImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"PlanetMultipleRequires\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._PlanetMultipleRequires_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"diameter\":\n\t\t\tout.Values[i] = ec._PlanetMultipleRequires_diameter(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"density\":\n\t\t\tout.Values[i] = ec._PlanetMultipleRequires_density(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"weight\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._PlanetMultipleRequires_weight(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"anotherField\":\n\t\t\tout.Values[i] = ec._PlanetMultipleRequires_anotherField(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar planetRequiresImplementors = []string{\"PlanetRequires\", \"_Entity\"}\n\nfunc (ec *executionContext) _PlanetRequires(ctx context.Context, sel ast.SelectionSet, obj *model.PlanetRequires) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, planetRequiresImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"PlanetRequires\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._PlanetRequires_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"size\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._PlanetRequires_size(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"diameter\":\n\t\t\tout.Values[i] = ec._PlanetRequires_diameter(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar planetRequiresNestedImplementors = []string{\"PlanetRequiresNested\", \"_Entity\"}\n\nfunc (ec *executionContext) _PlanetRequiresNested(ctx context.Context, sel ast.SelectionSet, obj *model.PlanetRequiresNested) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, planetRequiresNestedImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"PlanetRequiresNested\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._PlanetRequiresNested_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"world\":\n\t\t\tout.Values[i] = ec._PlanetRequiresNested_world(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tatomic.AddUint32(&out.Invalids, 1)\n\t\t\t}\n\t\tcase \"worlds\":\n\t\t\tout.Values[i] = ec._PlanetRequiresNested_worlds(ctx, field, obj)\n\t\tcase \"size\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._PlanetRequiresNested_size(ctx, field, obj)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tcase \"sizes\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._PlanetRequiresNested_sizes(ctx, field, obj)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tif field.Deferrable != nil {\n\t\t\t\tdfs, ok := deferred[field.Deferrable.Label]\n\t\t\t\tdi := 0\n\t\t\t\tif ok {\n\t\t\t\t\tdfs.AddField(field)\n\t\t\t\t\tdi = len(dfs.Values) - 1\n\t\t\t\t} else {\n\t\t\t\t\tdfs = graphql.NewFieldSet([]graphql.CollectedField{field})\n\t\t\t\t\tdeferred[field.Deferrable.Label] = dfs\n\t\t\t\t}\n\t\t\t\tdfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler {\n\t\t\t\t\treturn innerFunc(ctx, dfs)\n\t\t\t\t})\n\n\t\t\t\t// don't run the out.Concurrently() call below\n\t\t\t\tout.Values[i] = graphql.Null\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"test\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_test(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"_entities\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query__entities(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"_service\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query__service(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar worldImplementors = []string{\"World\", \"_Entity\"}\n\nfunc (ec *executionContext) _World(ctx context.Context, sel ast.SelectionSet, obj *model.World) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, worldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"World\")\n\t\tcase \"foo\":\n\t\t\tout.Values[i] = ec._World_foo(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"bar\":\n\t\t\tout.Values[i] = ec._World_bar(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"hello\":\n\t\t\tout.Values[i] = ec._World_hello(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar worldNameImplementors = []string{\"WorldName\", \"_Entity\"}\n\nfunc (ec *executionContext) _WorldName(ctx context.Context, sel ast.SelectionSet, obj *model.WorldName) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, worldNameImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"WorldName\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._WorldName_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar worldWithMultipleKeysImplementors = []string{\"WorldWithMultipleKeys\", \"_Entity\"}\n\nfunc (ec *executionContext) _WorldWithMultipleKeys(ctx context.Context, sel ast.SelectionSet, obj *model.WorldWithMultipleKeys) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, worldWithMultipleKeysImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"WorldWithMultipleKeys\")\n\t\tcase \"foo\":\n\t\t\tout.Values[i] = ec._WorldWithMultipleKeys_foo(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"bar\":\n\t\t\tout.Values[i] = ec._WorldWithMultipleKeys_bar(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"hello\":\n\t\t\tout.Values[i] = ec._WorldWithMultipleKeys_hello(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar _ServiceImplementors = []string{\"_Service\"}\n\nfunc (ec *executionContext) __Service(ctx context.Context, sel ast.SelectionSet, obj *fedruntime.Service) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, _ServiceImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"_Service\")\n\t\tcase \"sdl\":\n\t\t\tout.Values[i] = ec.__Service_sdl(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNFieldSet2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNFieldSet2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNGender2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐGender(ctx context.Context, sel ast.SelectionSet, v model.Gender) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Gender(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNHello2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐHello(ctx context.Context, sel ast.SelectionSet, v model.Hello) graphql.Marshaler {\n\treturn ec._Hello(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNHello2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐHello(ctx context.Context, sel ast.SelectionSet, v *model.Hello) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Hello(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNHelloMultiSingleKeys2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐHelloMultiSingleKeys(ctx context.Context, sel ast.SelectionSet, v model.HelloMultiSingleKeys) graphql.Marshaler {\n\treturn ec._HelloMultiSingleKeys(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNHelloMultiSingleKeys2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐHelloMultiSingleKeys(ctx context.Context, sel ast.SelectionSet, v *model.HelloMultiSingleKeys) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._HelloMultiSingleKeys(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNHelloWithErrors2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐHelloWithErrors(ctx context.Context, sel ast.SelectionSet, v model.HelloWithErrors) graphql.Marshaler {\n\treturn ec._HelloWithErrors(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNHelloWithErrors2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐHelloWithErrors(ctx context.Context, sel ast.SelectionSet, v *model.HelloWithErrors) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._HelloWithErrors(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNInt2int(ctx context.Context, v any) (int, error) {\n\tres, err := graphql.UnmarshalInt(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNInt2int(ctx context.Context, sel ast.SelectionSet, v int) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalInt(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNMultiHelloByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiHelloByNamesInput(ctx context.Context, v any) ([]*model.MultiHelloByNamesInput, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]*model.MultiHelloByNamesInput, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalOMultiHelloByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiHelloByNamesInput(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) unmarshalNMultiHelloMultipleRequiresByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiHelloMultipleRequiresByNamesInput(ctx context.Context, v any) ([]*model.MultiHelloMultipleRequiresByNamesInput, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]*model.MultiHelloMultipleRequiresByNamesInput, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalOMultiHelloMultipleRequiresByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiHelloMultipleRequiresByNamesInput(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) unmarshalNMultiHelloRequiresByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiHelloRequiresByNamesInput(ctx context.Context, v any) ([]*model.MultiHelloRequiresByNamesInput, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]*model.MultiHelloRequiresByNamesInput, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalOMultiHelloRequiresByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiHelloRequiresByNamesInput(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) unmarshalNMultiHelloWithErrorByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiHelloWithErrorByNamesInput(ctx context.Context, v any) ([]*model.MultiHelloWithErrorByNamesInput, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]*model.MultiHelloWithErrorByNamesInput, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalOMultiHelloWithErrorByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiHelloWithErrorByNamesInput(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) unmarshalNMultiPlanetRequiresNestedByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiPlanetRequiresNestedByNamesInput(ctx context.Context, v any) ([]*model.MultiPlanetRequiresNestedByNamesInput, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]*model.MultiPlanetRequiresNestedByNamesInput, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalOMultiPlanetRequiresNestedByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiPlanetRequiresNestedByNamesInput(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalNPerson2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐPerson(ctx context.Context, sel ast.SelectionSet, v model.Person) graphql.Marshaler {\n\treturn ec._Person(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNPerson2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐPerson(ctx context.Context, sel ast.SelectionSet, v *model.Person) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Person(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNPlanetMultipleRequires2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐPlanetMultipleRequires(ctx context.Context, sel ast.SelectionSet, v model.PlanetMultipleRequires) graphql.Marshaler {\n\treturn ec._PlanetMultipleRequires(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNPlanetMultipleRequires2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐPlanetMultipleRequires(ctx context.Context, sel ast.SelectionSet, v *model.PlanetMultipleRequires) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._PlanetMultipleRequires(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNPlanetRequires2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐPlanetRequires(ctx context.Context, sel ast.SelectionSet, v model.PlanetRequires) graphql.Marshaler {\n\treturn ec._PlanetRequires(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNPlanetRequires2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐPlanetRequires(ctx context.Context, sel ast.SelectionSet, v *model.PlanetRequires) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._PlanetRequires(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNPlanetRequiresNested2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐPlanetRequiresNested(ctx context.Context, sel ast.SelectionSet, v model.PlanetRequiresNested) graphql.Marshaler {\n\treturn ec._PlanetRequiresNested(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNPlanetRequiresNested2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐPlanetRequiresNested(ctx context.Context, sel ast.SelectionSet, v *model.PlanetRequiresNested) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._PlanetRequiresNested(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNWorld2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐWorld(ctx context.Context, sel ast.SelectionSet, v model.World) graphql.Marshaler {\n\treturn ec._World(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNWorld2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐWorld(ctx context.Context, sel ast.SelectionSet, v *model.World) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._World(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNWorldName2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐWorldName(ctx context.Context, sel ast.SelectionSet, v model.WorldName) graphql.Marshaler {\n\treturn ec._WorldName(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNWorldName2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐWorldName(ctx context.Context, sel ast.SelectionSet, v *model.WorldName) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._WorldName(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNWorldWithMultipleKeys2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐWorldWithMultipleKeys(ctx context.Context, sel ast.SelectionSet, v model.WorldWithMultipleKeys) graphql.Marshaler {\n\treturn ec._WorldWithMultipleKeys(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNWorldWithMultipleKeys2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐWorldWithMultipleKeys(ctx context.Context, sel ast.SelectionSet, v *model.WorldWithMultipleKeys) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._WorldWithMultipleKeys(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN_Any2map(ctx context.Context, v any) (map[string]any, error) {\n\tres, err := graphql.UnmarshalMap(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN_Any2map(ctx context.Context, sel ast.SelectionSet, v map[string]any) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\tres := graphql.MarshalMap(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN_Any2ᚕmapᚄ(ctx context.Context, v any) ([]map[string]any, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]map[string]any, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN_Any2map(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN_Any2ᚕmapᚄ(ctx context.Context, sel ast.SelectionSet, v []map[string]any) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalN_Any2map(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN_Entity2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity(ctx context.Context, sel ast.SelectionSet, v []fedruntime.Entity) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalO_Entity2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN_Service2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐService(ctx context.Context, sel ast.SelectionSet, v fedruntime.Service) graphql.Marshaler {\n\treturn ec.__Service(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNfederation__Policy2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNfederation__Policy2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNfederation__Policy2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNfederation__Policy2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalNfederation__Policy2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNfederation__Policy2string(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalNfederation__Policy2ᚕᚕstringᚄ(ctx context.Context, v any) ([][]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([][]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNfederation__Policy2ᚕstringᚄ(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalNfederation__Policy2ᚕᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v [][]string) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNfederation__Policy2ᚕstringᚄ(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalNfederation__Scope2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNfederation__Scope2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNfederation__Scope2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNfederation__Scope2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalNfederation__Scope2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNfederation__Scope2string(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalNfederation__Scope2ᚕᚕstringᚄ(ctx context.Context, v any) ([][]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([][]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNfederation__Scope2ᚕstringᚄ(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalNfederation__Scope2ᚕᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v [][]string) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNfederation__Scope2ᚕstringᚄ(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalOHello2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐHello(ctx context.Context, sel ast.SelectionSet, v *model.Hello) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Hello(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOInt2ᚕintᚄ(ctx context.Context, v any) ([]int, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]int, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNInt2int(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalOInt2ᚕintᚄ(ctx context.Context, sel ast.SelectionSet, v []int) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNInt2int(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOMultiHello2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiHello(ctx context.Context, sel ast.SelectionSet, v []*model.MultiHello) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalOMultiHello2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiHello(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOMultiHello2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiHello(ctx context.Context, sel ast.SelectionSet, v *model.MultiHello) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._MultiHello(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOMultiHelloByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiHelloByNamesInput(ctx context.Context, v any) (*model.MultiHelloByNamesInput, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputMultiHelloByNamesInput(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOMultiHelloMultipleRequires2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiHelloMultipleRequires(ctx context.Context, sel ast.SelectionSet, v []*model.MultiHelloMultipleRequires) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalOMultiHelloMultipleRequires2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiHelloMultipleRequires(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOMultiHelloMultipleRequires2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiHelloMultipleRequires(ctx context.Context, sel ast.SelectionSet, v *model.MultiHelloMultipleRequires) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._MultiHelloMultipleRequires(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOMultiHelloMultipleRequiresByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiHelloMultipleRequiresByNamesInput(ctx context.Context, v any) (*model.MultiHelloMultipleRequiresByNamesInput, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputMultiHelloMultipleRequiresByNamesInput(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOMultiHelloRequires2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiHelloRequires(ctx context.Context, sel ast.SelectionSet, v []*model.MultiHelloRequires) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalOMultiHelloRequires2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiHelloRequires(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOMultiHelloRequires2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiHelloRequires(ctx context.Context, sel ast.SelectionSet, v *model.MultiHelloRequires) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._MultiHelloRequires(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOMultiHelloRequiresByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiHelloRequiresByNamesInput(ctx context.Context, v any) (*model.MultiHelloRequiresByNamesInput, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputMultiHelloRequiresByNamesInput(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOMultiHelloWithError2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiHelloWithError(ctx context.Context, sel ast.SelectionSet, v []*model.MultiHelloWithError) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalOMultiHelloWithError2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiHelloWithError(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOMultiHelloWithError2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiHelloWithError(ctx context.Context, sel ast.SelectionSet, v *model.MultiHelloWithError) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._MultiHelloWithError(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOMultiHelloWithErrorByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiHelloWithErrorByNamesInput(ctx context.Context, v any) (*model.MultiHelloWithErrorByNamesInput, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputMultiHelloWithErrorByNamesInput(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOMultiPlanetRequiresNested2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiPlanetRequiresNested(ctx context.Context, sel ast.SelectionSet, v []*model.MultiPlanetRequiresNested) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalOMultiPlanetRequiresNested2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiPlanetRequiresNested(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOMultiPlanetRequiresNested2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiPlanetRequiresNested(ctx context.Context, sel ast.SelectionSet, v *model.MultiPlanetRequiresNested) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._MultiPlanetRequiresNested(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOMultiPlanetRequiresNestedByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐMultiPlanetRequiresNestedByNamesInput(ctx context.Context, v any) (*model.MultiPlanetRequiresNestedByNamesInput, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputMultiPlanetRequiresNestedByNamesInput(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalOString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNString2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalOString2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNString2string(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalOWorld2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐWorldᚄ(ctx context.Context, sel ast.SelectionSet, v []*model.World) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNWorld2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋcomputedrequiresᚋgeneratedᚋmodelsᚐWorld(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO_Entity2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity(ctx context.Context, sel ast.SelectionSet, v fedruntime.Entity) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.__Entity(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalO_RequiresMap2map(ctx context.Context, v any) (map[string]any, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalMap(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalO_RequiresMap2map(ctx context.Context, sel ast.SelectionSet, v map[string]any) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalMap(v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "plugin/federation/testdata/computedrequires/generated/federation.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage generated\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"github.com/99designs/gqlgen/plugin/federation/fedruntime\"\n\tmodel \"github.com/99designs/gqlgen/plugin/federation/testdata/computedrequires/generated/models\"\n)\n\nvar (\n\tErrUnknownType  = errors.New(\"unknown type\")\n\tErrTypeNotFound = errors.New(\"type not found\")\n)\n\nfunc (ec *executionContext) __resolve__service(ctx context.Context) (fedruntime.Service, error) {\n\tif ec.DisableIntrospection {\n\t\treturn fedruntime.Service{}, errors.New(\"federated introspection disabled\")\n\t}\n\n\tvar sdl []string\n\n\tfor _, src := range sources {\n\t\tif src.BuiltIn {\n\t\t\tcontinue\n\t\t}\n\t\tsdl = append(sdl, src.Input)\n\t}\n\n\treturn fedruntime.Service{\n\t\tSDL: strings.Join(sdl, \"\\n\"),\n\t}, nil\n}\n\nfunc (ec *executionContext) __resolve_entities(ctx context.Context, representations []map[string]any) []fedruntime.Entity {\n\tlist := make([]fedruntime.Entity, len(representations))\n\n\trepsMap := ec.buildRepresentationGroups(ctx, representations)\n\n\tswitch len(repsMap) {\n\tcase 0:\n\t\treturn list\n\tcase 1:\n\t\tfor typeName, reps := range repsMap {\n\t\t\tec.resolveEntityGroup(ctx, typeName, reps, list)\n\t\t}\n\t\treturn list\n\tdefault:\n\t\tvar g sync.WaitGroup\n\t\tg.Add(len(repsMap))\n\t\tfor typeName, reps := range repsMap {\n\t\t\tgo func(typeName string, reps []EntityWithIndex) {\n\t\t\t\tec.resolveEntityGroup(ctx, typeName, reps, list)\n\t\t\t\tg.Done()\n\t\t\t}(typeName, reps)\n\t\t}\n\t\tg.Wait()\n\t\treturn list\n\t}\n}\n\ntype EntityWithIndex struct {\n\t// The index in the original representation array\n\tindex  int\n\tentity EntityRepresentation\n}\n\n// EntityRepresentation is the JSON representation of an entity sent by the Router\n// used as the inputs for us to resolve.\n//\n// We make it a map because we know the top level JSON is always an object.\ntype EntityRepresentation map[string]any\n\n// We group entities by typename so that we can parallelize their resolution.\n// This is particularly helpful when there are entity groups in multi mode.\nfunc (ec *executionContext) buildRepresentationGroups(\n\tctx context.Context,\n\trepresentations []map[string]any,\n) map[string][]EntityWithIndex {\n\trepsMap := make(map[string][]EntityWithIndex)\n\tfor i, rep := range representations {\n\t\ttypeName, ok := rep[\"__typename\"].(string)\n\t\tif !ok {\n\t\t\t// If there is no __typename, we just skip the representation;\n\t\t\t// we just won't be resolving these unknown types.\n\t\t\tec.Error(ctx, errors.New(\"__typename must be an existing string\"))\n\t\t\tcontinue\n\t\t}\n\n\t\trepsMap[typeName] = append(repsMap[typeName], EntityWithIndex{\n\t\t\tindex:  i,\n\t\t\tentity: rep,\n\t\t})\n\t}\n\n\treturn repsMap\n}\n\nfunc (ec *executionContext) resolveEntityGroup(\n\tctx context.Context,\n\ttypeName string,\n\treps []EntityWithIndex,\n\tlist []fedruntime.Entity,\n) {\n\tif isMulti(typeName) {\n\t\terr := ec.resolveManyEntities(ctx, typeName, reps, list)\n\t\tif err != nil {\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t} else {\n\t\t// if there are multiple entities to resolve, parallelize (similar to\n\t\t// graphql.FieldSet.Dispatch)\n\t\tvar e sync.WaitGroup\n\t\te.Add(len(reps))\n\t\tfor i, rep := range reps {\n\t\t\ti, rep := i, rep\n\t\t\tgo func(i int, rep EntityWithIndex) {\n\t\t\t\tentity, err := ec.resolveEntity(ctx, typeName, rep.entity)\n\t\t\t\tif err != nil {\n\t\t\t\t\tec.Error(ctx, err)\n\t\t\t\t} else {\n\t\t\t\t\tlist[rep.index] = entity\n\t\t\t\t}\n\t\t\t\te.Done()\n\t\t\t}(i, rep)\n\t\t}\n\t\te.Wait()\n\t}\n}\n\nfunc isMulti(typeName string) bool {\n\tswitch typeName {\n\tcase \"MultiHello\":\n\t\treturn true\n\tcase \"MultiHelloMultipleRequires\":\n\t\treturn true\n\tcase \"MultiHelloRequires\":\n\t\treturn true\n\tcase \"MultiHelloWithError\":\n\t\treturn true\n\tcase \"MultiPlanetRequiresNested\":\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\nfunc (ec *executionContext) resolveEntity(\n\tctx context.Context,\n\ttypeName string,\n\trep EntityRepresentation,\n) (e fedruntime.Entity, err error) {\n\t// we need to do our own panic handling, because we may be called in a\n\t// goroutine, where the usual panic handling can't catch us\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t}\n\t}()\n\n\tswitch typeName {\n\tcase \"Hello\":\n\t\tresolverName, err := entityResolverNameForHello(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"Hello\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findHelloByName\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findHelloByName(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindHelloByName(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"Hello\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"HelloMultiSingleKeys\":\n\t\tresolverName, err := entityResolverNameForHelloMultiSingleKeys(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"HelloMultiSingleKeys\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findHelloMultiSingleKeysByKey1AndKey2\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"key1\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findHelloMultiSingleKeysByKey1AndKey2(): %w`, err)\n\t\t\t}\n\t\t\tid1, err := ec.unmarshalNString2string(ctx, rep[\"key2\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 1 for findHelloMultiSingleKeysByKey1AndKey2(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindHelloMultiSingleKeysByKey1AndKey2(ctx, id0, id1)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"HelloMultiSingleKeys\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"HelloWithErrors\":\n\t\tresolverName, err := entityResolverNameForHelloWithErrors(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"HelloWithErrors\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findHelloWithErrorsByName\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findHelloWithErrorsByName(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindHelloWithErrorsByName(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"HelloWithErrors\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"Person\":\n\t\tresolverName, err := entityResolverNameForPerson(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"Person\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findPersonByName\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findPersonByName(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindPersonByName(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"Person\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"PlanetMultipleRequires\":\n\t\tresolverName, err := entityResolverNameForPlanetMultipleRequires(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"PlanetMultipleRequires\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findPlanetMultipleRequiresByName\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findPlanetMultipleRequiresByName(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindPlanetMultipleRequiresByName(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"PlanetMultipleRequires\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"PlanetRequires\":\n\t\tresolverName, err := entityResolverNameForPlanetRequires(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"PlanetRequires\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findPlanetRequiresByName\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findPlanetRequiresByName(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindPlanetRequiresByName(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"PlanetRequires\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"PlanetRequiresNested\":\n\t\tresolverName, err := entityResolverNameForPlanetRequiresNested(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"PlanetRequiresNested\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findPlanetRequiresNestedByName\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findPlanetRequiresNestedByName(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindPlanetRequiresNestedByName(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"PlanetRequiresNested\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"World\":\n\t\tresolverName, err := entityResolverNameForWorld(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"World\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findWorldByHelloNameAndFoo\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"hello\"].(map[string]any)[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findWorldByHelloNameAndFoo(): %w`, err)\n\t\t\t}\n\t\t\tid1, err := ec.unmarshalNString2string(ctx, rep[\"foo\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 1 for findWorldByHelloNameAndFoo(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindWorldByHelloNameAndFoo(ctx, id0, id1)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"World\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"WorldName\":\n\t\tresolverName, err := entityResolverNameForWorldName(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"WorldName\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findWorldNameByName\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findWorldNameByName(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindWorldNameByName(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"WorldName\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"WorldWithMultipleKeys\":\n\t\tresolverName, err := entityResolverNameForWorldWithMultipleKeys(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"WorldWithMultipleKeys\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findWorldWithMultipleKeysByHelloNameAndFoo\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"hello\"].(map[string]any)[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findWorldWithMultipleKeysByHelloNameAndFoo(): %w`, err)\n\t\t\t}\n\t\t\tid1, err := ec.unmarshalNString2string(ctx, rep[\"foo\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 1 for findWorldWithMultipleKeysByHelloNameAndFoo(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindWorldWithMultipleKeysByHelloNameAndFoo(ctx, id0, id1)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"WorldWithMultipleKeys\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\tcase \"findWorldWithMultipleKeysByBar\":\n\t\t\tid0, err := ec.unmarshalNInt2int(ctx, rep[\"bar\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findWorldWithMultipleKeysByBar(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindWorldWithMultipleKeysByBar(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"WorldWithMultipleKeys\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\n\t}\n\treturn nil, fmt.Errorf(\"%w: %s\", ErrUnknownType, typeName)\n}\n\nfunc (ec *executionContext) resolveManyEntities(\n\tctx context.Context,\n\ttypeName string,\n\treps []EntityWithIndex,\n\tlist []fedruntime.Entity,\n) (err error) {\n\t// we need to do our own panic handling, because we may be called in a\n\t// goroutine, where the usual panic handling can't catch us\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t}\n\t}()\n\n\tswitch typeName {\n\n\tcase \"MultiHello\":\n\t\tresolverName, err := entityResolverNameForMultiHello(ctx, reps[0].entity)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(`finding resolver for Entity \"MultiHello\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findManyMultiHelloByNames\":\n\t\t\ttypedReps := make([]*model.MultiHelloByNamesInput, len(reps))\n\n\t\t\tfor i, rep := range reps {\n\t\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep.entity[\"name\"])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn errors.New(fmt.Sprintf(\"Field %s undefined in schema.\", \"name\"))\n\t\t\t\t}\n\n\t\t\t\ttypedReps[i] = &model.MultiHelloByNamesInput{\n\t\t\t\t\tName: id0,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tentities, err := ec.Resolvers.Entity().FindManyMultiHelloByNames(ctx, typedReps)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tfor i, entity := range entities {\n\t\t\t\tlist[reps[i].index] = entity\n\t\t\t}\n\t\t\treturn nil\n\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"unknown resolver: %s\", resolverName)\n\t\t}\n\n\tcase \"MultiHelloMultipleRequires\":\n\t\tresolverName, err := entityResolverNameForMultiHelloMultipleRequires(ctx, reps[0].entity)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(`finding resolver for Entity \"MultiHelloMultipleRequires\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findManyMultiHelloMultipleRequiresByNames\":\n\t\t\ttypedReps := make([]*model.MultiHelloMultipleRequiresByNamesInput, len(reps))\n\n\t\t\tfor i, rep := range reps {\n\t\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep.entity[\"name\"])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn errors.New(fmt.Sprintf(\"Field %s undefined in schema.\", \"name\"))\n\t\t\t\t}\n\n\t\t\t\ttypedReps[i] = &model.MultiHelloMultipleRequiresByNamesInput{\n\t\t\t\t\tName: id0,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tentities, err := ec.Resolvers.Entity().FindManyMultiHelloMultipleRequiresByNames(ctx, typedReps)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tfor i, entity := range entities {\n\n\t\t\t\tlist[reps[i].index] = entity\n\t\t\t}\n\t\t\treturn nil\n\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"unknown resolver: %s\", resolverName)\n\t\t}\n\n\tcase \"MultiHelloRequires\":\n\t\tresolverName, err := entityResolverNameForMultiHelloRequires(ctx, reps[0].entity)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(`finding resolver for Entity \"MultiHelloRequires\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findManyMultiHelloRequiresByNames\":\n\t\t\ttypedReps := make([]*model.MultiHelloRequiresByNamesInput, len(reps))\n\n\t\t\tfor i, rep := range reps {\n\t\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep.entity[\"name\"])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn errors.New(fmt.Sprintf(\"Field %s undefined in schema.\", \"name\"))\n\t\t\t\t}\n\n\t\t\t\ttypedReps[i] = &model.MultiHelloRequiresByNamesInput{\n\t\t\t\t\tName: id0,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tentities, err := ec.Resolvers.Entity().FindManyMultiHelloRequiresByNames(ctx, typedReps)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tfor i, entity := range entities {\n\n\t\t\t\tlist[reps[i].index] = entity\n\t\t\t}\n\t\t\treturn nil\n\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"unknown resolver: %s\", resolverName)\n\t\t}\n\n\tcase \"MultiHelloWithError\":\n\t\tresolverName, err := entityResolverNameForMultiHelloWithError(ctx, reps[0].entity)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(`finding resolver for Entity \"MultiHelloWithError\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findManyMultiHelloWithErrorByNames\":\n\t\t\ttypedReps := make([]*model.MultiHelloWithErrorByNamesInput, len(reps))\n\n\t\t\tfor i, rep := range reps {\n\t\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep.entity[\"name\"])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn errors.New(fmt.Sprintf(\"Field %s undefined in schema.\", \"name\"))\n\t\t\t\t}\n\n\t\t\t\ttypedReps[i] = &model.MultiHelloWithErrorByNamesInput{\n\t\t\t\t\tName: id0,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tentities, err := ec.Resolvers.Entity().FindManyMultiHelloWithErrorByNames(ctx, typedReps)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tfor i, entity := range entities {\n\t\t\t\tlist[reps[i].index] = entity\n\t\t\t}\n\t\t\treturn nil\n\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"unknown resolver: %s\", resolverName)\n\t\t}\n\n\tcase \"MultiPlanetRequiresNested\":\n\t\tresolverName, err := entityResolverNameForMultiPlanetRequiresNested(ctx, reps[0].entity)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(`finding resolver for Entity \"MultiPlanetRequiresNested\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findManyMultiPlanetRequiresNestedByNames\":\n\t\t\ttypedReps := make([]*model.MultiPlanetRequiresNestedByNamesInput, len(reps))\n\n\t\t\tfor i, rep := range reps {\n\t\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep.entity[\"name\"])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn errors.New(fmt.Sprintf(\"Field %s undefined in schema.\", \"name\"))\n\t\t\t\t}\n\n\t\t\t\ttypedReps[i] = &model.MultiPlanetRequiresNestedByNamesInput{\n\t\t\t\t\tName: id0,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tentities, err := ec.Resolvers.Entity().FindManyMultiPlanetRequiresNestedByNames(ctx, typedReps)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tfor i, entity := range entities {\n\n\t\t\t\tlist[reps[i].index] = entity\n\t\t\t}\n\t\t\treturn nil\n\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"unknown resolver: %s\", resolverName)\n\t\t}\n\n\tdefault:\n\t\treturn errors.New(\"unknown type: \" + typeName)\n\t}\n}\n\nfunc entityResolverNameForHello(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for Hello\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for Hello\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findHelloByName\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for Hello due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForHelloMultiSingleKeys(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"key1\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"key1\\\" for HelloMultiSingleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tm = rep\n\t\tval, ok = m[\"key2\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"key2\\\" for HelloMultiSingleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for HelloMultiSingleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findHelloMultiSingleKeysByKey1AndKey2\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for HelloMultiSingleKeys due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForHelloWithErrors(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for HelloWithErrors\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for HelloWithErrors\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findHelloWithErrorsByName\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for HelloWithErrors due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForMultiHello(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for MultiHello\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for MultiHello\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findManyMultiHelloByNames\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for MultiHello due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForMultiHelloMultipleRequires(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for MultiHelloMultipleRequires\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for MultiHelloMultipleRequires\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findManyMultiHelloMultipleRequiresByNames\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for MultiHelloMultipleRequires due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForMultiHelloRequires(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for MultiHelloRequires\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for MultiHelloRequires\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findManyMultiHelloRequiresByNames\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for MultiHelloRequires due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForMultiHelloWithError(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for MultiHelloWithError\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for MultiHelloWithError\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findManyMultiHelloWithErrorByNames\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for MultiHelloWithError due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForMultiPlanetRequiresNested(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for MultiPlanetRequiresNested\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for MultiPlanetRequiresNested\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findManyMultiPlanetRequiresNestedByNames\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for MultiPlanetRequiresNested due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForPerson(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for Person\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for Person\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findPersonByName\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for Person due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForPlanetMultipleRequires(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for PlanetMultipleRequires\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for PlanetMultipleRequires\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findPlanetMultipleRequiresByName\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for PlanetMultipleRequires due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForPlanetRequires(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for PlanetRequires\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for PlanetRequires\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findPlanetRequiresByName\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for PlanetRequires due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForPlanetRequiresNested(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for PlanetRequiresNested\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for PlanetRequiresNested\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findPlanetRequiresNestedByName\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for PlanetRequiresNested due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForWorld(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"hello\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"hello\\\" for World\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif m, ok = val.(map[string]any); !ok {\n\t\t\t// nested field value is not a map[string]interface so don't use it\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to nested Key Field \\\"hello\\\" value not matching map[string]any for World\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for World\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tm = rep\n\t\tval, ok = m[\"foo\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"foo\\\" for World\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for World\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findWorldByHelloNameAndFoo\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for World due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForWorldName(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for WorldName\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for WorldName\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findWorldNameByName\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for WorldName due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForWorldWithMultipleKeys(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"hello\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"hello\\\" for WorldWithMultipleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif m, ok = val.(map[string]any); !ok {\n\t\t\t// nested field value is not a map[string]interface so don't use it\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to nested Key Field \\\"hello\\\" value not matching map[string]any for WorldWithMultipleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for WorldWithMultipleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tm = rep\n\t\tval, ok = m[\"foo\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"foo\\\" for WorldWithMultipleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for WorldWithMultipleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findWorldWithMultipleKeysByHelloNameAndFoo\", nil\n\t}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"bar\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"bar\\\" for WorldWithMultipleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for WorldWithMultipleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findWorldWithMultipleKeysByBar\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for WorldWithMultipleKeys due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n"
  },
  {
    "path": "plugin/federation/testdata/computedrequires/generated/models/models.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage model\n\ntype Gender interface {\n\tIsGender()\n}\n\ntype Female struct {\n\tDescription string `json:\"description\"`\n}\n\nfunc (Female) IsGender() {}\n\ntype Hello struct {\n\tName      string `json:\"name\"`\n\tSecondary string `json:\"secondary\"`\n}\n\nfunc (Hello) IsEntity() {}\n\ntype HelloMultiSingleKeys struct {\n\tKey1 string `json:\"key1\"`\n\tKey2 string `json:\"key2\"`\n}\n\nfunc (HelloMultiSingleKeys) IsEntity() {}\n\ntype HelloWithErrors struct {\n\tName string `json:\"name\"`\n}\n\nfunc (HelloWithErrors) IsEntity() {}\n\ntype Male struct {\n\tDescription string `json:\"description\"`\n}\n\nfunc (Male) IsGender() {}\n\ntype MultiHello struct {\n\tName string `json:\"name\"`\n}\n\nfunc (MultiHello) IsEntity() {}\n\ntype MultiHelloByNamesInput struct {\n\tName string `json:\"Name\"`\n}\n\ntype MultiHelloMultipleRequires struct {\n\tName string `json:\"name\"`\n\tKey1 string `json:\"key1\"`\n\tKey2 string `json:\"key2\"`\n\tKey3 string `json:\"key3\"`\n}\n\nfunc (MultiHelloMultipleRequires) IsEntity() {}\n\ntype MultiHelloMultipleRequiresByNamesInput struct {\n\tName string `json:\"Name\"`\n}\n\ntype MultiHelloRequires struct {\n\tName string `json:\"name\"`\n\tKey1 string `json:\"key1\"`\n\tKey2 string `json:\"key2\"`\n}\n\nfunc (MultiHelloRequires) IsEntity() {}\n\ntype MultiHelloRequiresByNamesInput struct {\n\tName string `json:\"Name\"`\n}\n\ntype MultiHelloWithError struct {\n\tName string `json:\"name\"`\n}\n\nfunc (MultiHelloWithError) IsEntity() {}\n\ntype MultiHelloWithErrorByNamesInput struct {\n\tName string `json:\"Name\"`\n}\n\ntype MultiPlanetRequiresNested struct {\n\tName   string   `json:\"name\"`\n\tWorld  *World   `json:\"world\"`\n\tWorlds []*World `json:\"worlds,omitempty\"`\n\tSize   int      `json:\"size\"`\n\tSizes  []int    `json:\"sizes,omitempty\"`\n}\n\nfunc (MultiPlanetRequiresNested) IsEntity() {}\n\ntype MultiPlanetRequiresNestedByNamesInput struct {\n\tName string `json:\"Name\"`\n}\n\ntype Person struct {\n\tName           string  `json:\"name\"`\n\tGender         Gender  `json:\"gender\"`\n\tWelcomeMessage *string `json:\"welcomeMessage,omitempty\"`\n}\n\nfunc (Person) IsEntity() {}\n\ntype PlanetMultipleRequires struct {\n\tName         string  `json:\"name\"`\n\tDiameter     int     `json:\"diameter\"`\n\tDensity      int     `json:\"density\"`\n\tWeight       int     `json:\"weight\"`\n\tAnotherField *string `json:\"anotherField,omitempty\"`\n}\n\nfunc (PlanetMultipleRequires) IsEntity() {}\n\ntype PlanetRequires struct {\n\tName     string `json:\"name\"`\n\tSize     int    `json:\"size\"`\n\tDiameter int    `json:\"diameter\"`\n}\n\nfunc (PlanetRequires) IsEntity() {}\n\ntype PlanetRequiresNested struct {\n\tName   string   `json:\"name\"`\n\tWorld  *World   `json:\"world\"`\n\tWorlds []*World `json:\"worlds,omitempty\"`\n\tSize   int      `json:\"size\"`\n\tSizes  []int    `json:\"sizes,omitempty\"`\n}\n\nfunc (PlanetRequiresNested) IsEntity() {}\n\ntype Query struct {\n}\n\ntype World struct {\n\tFoo   string `json:\"foo\"`\n\tBar   int    `json:\"bar\"`\n\tHello *Hello `json:\"hello,omitempty\"`\n}\n\nfunc (World) IsEntity() {}\n\ntype WorldName struct {\n\tName string `json:\"name\"`\n}\n\nfunc (WorldName) IsEntity() {}\n\ntype WorldWithMultipleKeys struct {\n\tFoo   string `json:\"foo\"`\n\tBar   int    `json:\"bar\"`\n\tHello *Hello `json:\"hello,omitempty\"`\n}\n\nfunc (WorldWithMultipleKeys) IsEntity() {}\n"
  },
  {
    "path": "plugin/federation/testdata/computedrequires/gqlgen.yml",
    "content": "schema:\n  - \"testdata/computedrequires/schema.graphql\"\nexec:\n  filename: testdata/computedrequires/generated/exec.go\n  package: generated\nfederation:\n  filename: testdata/computedrequires/generated/federation.go\n  package: generated\n  version: 2\n  options:\n    computed_requires: true\nmodel:\n  package: model\n  filename: testdata/computedrequires/generated/models/models.go\nresolver:\n  filename: testdata/computedrequires/resolver.go\n  layout: follow-schema\n  dir: testdata/computedrequires\n  package: computedrequires\n\nomit_complexity: true\ncall_argument_directives_with_null: true\n"
  },
  {
    "path": "plugin/federation/testdata/computedrequires/main/server.go",
    "content": "package main\n\nimport (\n\t\"log\"\n\t\"net/http\"\n\t\"os\"\n\n\t\"github.com/99designs/gqlgen/graphql/handler\"\n\t\"github.com/99designs/gqlgen/graphql/handler/debug\"\n\t\"github.com/99designs/gqlgen/graphql/handler/transport\"\n\t\"github.com/99designs/gqlgen/graphql/playground\"\n\t\"github.com/99designs/gqlgen/plugin/federation/testdata/computedrequires\"\n\t\"github.com/99designs/gqlgen/plugin/federation/testdata/computedrequires/generated\"\n)\n\nconst defaultPort = \"4003\"\n\nfunc main() {\n\tport := os.Getenv(\"PORT\")\n\tif port == \"\" {\n\t\tport = defaultPort\n\t}\n\n\tsrv := handler.New(\n\t\tgenerated.NewExecutableSchema(generated.Config{Resolvers: &computedrequires.Resolver{}}),\n\t)\n\tsrv.AddTransport(transport.GET{})\n\tsrv.AddTransport(transport.POST{})\n\tsrv.Use(&debug.Tracer{})\n\n\thttp.Handle(\"/\", playground.Handler(\"GraphQL playground\", \"/query\"))\n\thttp.Handle(\"/query\", srv)\n\n\tlog.Printf(\"connect to http://localhost:%s/ for GraphQL playground\", port)\n\tlog.Fatal(http.ListenAndServe(\":\"+port, nil))\n}\n"
  },
  {
    "path": "plugin/federation/testdata/computedrequires/resolver.go",
    "content": "package computedrequires\n\n// This file will not be regenerated automatically.\n//\n// It serves as dependency injection for your app, add any dependencies you require here.\n\ntype Resolver struct{}\n"
  },
  {
    "path": "plugin/federation/testdata/computedrequires/schema.graphql",
    "content": "directive @entityResolver(multi: Boolean) on OBJECT\ndirective @goField(\n    forceResolver: Boolean\n    name: String\n    omittable: Boolean\n    type: String\n) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION\n\ntype Query {\n    test: String\n}\n\ntype Hello @key(fields: \"name\") {\n    name: String!\n    secondary: String!\n}\n\ntype World @key(fields: \"hello { name } foo   \") {\n    foo: String!\n    bar: Int!\n    hello: Hello\n}\n\ntype Person @key(fields: \"name\") {\n    name: String!\n    gender: Gender!\n    welcomeMessage: String\n        @requires(\n            fields: \"gender { ... on Male {description} ... on Female {description}}\"\n        )\n}\n\nunion Gender = Male | Female\n\ntype Male {\n    description: String!\n}\n\ntype Female {\n    description: String!\n}\n\ntype WorldWithMultipleKeys\n    @key(fields: \"hello { name } foo   \")\n    @key(fields: \"bar\") {\n    foo: String!\n    bar: Int!\n    hello: Hello\n}\n\ntype WorldName @key(fields: \"name\") {\n    name: String!\n}\n\ntype HelloWithErrors @key(fields: \"name\") {\n    name: String!\n}\n\ntype PlanetRequires @key(fields: \"name\") {\n    name: String!\n    size: Int! @requires(fields: \"diameter\")\n    diameter: Int!\n}\n\ntype PlanetMultipleRequires @key(fields: \"name\") {\n    name: String! @external\n    diameter: Int! @external\n    density: Int! @external\n    weight(foo: String): Int!\n        @requires(fields: \"diameter density\")\n        @goField(forceResolver: true)\n    anotherField(foobar: String): String\n}\n\ntype PlanetRequiresNested @key(fields: \"name\") {\n    name: String! @external\n    world: World! @external\n    worlds: [World!] @external\n    size: Int! @requires(fields: \"world{ foo }\")\n    sizes: [Int!] @requires(fields: \"worlds{ foo }\")\n}\n\ntype MultiPlanetRequiresNested\n    @key(fields: \"name\")\n    @entityResolver(multi: true) {\n    name: String! @external\n    world: World! @external\n    worlds: [World!] @external\n    size: Int! @requires(fields: \"world{ foo }\")\n    sizes: [Int!] @requires(fields: \"worlds{ foo }\")\n}\n\ntype MultiHello @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String!\n}\n\ntype MultiHelloWithError @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String!\n}\n\ntype HelloMultiSingleKeys @key(fields: \"key1 key2\") {\n    key1: String!\n    key2: String!\n}\n\ntype MultiHelloRequires @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String! @external\n    key1: String! @external\n    key2: String! @requires(fields: \"key1\")\n}\n\ntype MultiHelloMultipleRequires\n    @key(fields: \"name\")\n    @entityResolver(multi: true) {\n    name: String! @external\n    key1: String! @external\n    key2: String! @external\n    key3: String! @requires(fields: \"key1 key2\")\n}\n"
  },
  {
    "path": "plugin/federation/testdata/computedrequires/schema.resolvers.go",
    "content": "package computedrequires\n\n// This file will be automatically regenerated based on the schema, any resolver\n// implementations\n// will be copied through when generating and any unknown code will be moved to the end.\n// Code generated by github.com/99designs/gqlgen version v0.17.88-dev\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\n\texplicitrequires \"github.com/99designs/gqlgen/plugin/federation/testdata/computedrequires/generated\"\n\tmodel \"github.com/99designs/gqlgen/plugin/federation/testdata/computedrequires/generated/models\"\n)\n\n// Key3 is the resolver for the key3 field.\nfunc (r *multiHelloMultipleRequiresResolver) Key3(ctx context.Context, obj *model.MultiHelloMultipleRequires, federationRequires map[string]any) (string, error) {\n\tkey1 := federationRequires[\"key1\"].(string)\n\tkey2 := federationRequires[\"key2\"].(string)\n\treturn key1 + \":\" + key2, nil\n}\n\n// Key2 is the resolver for the key2 field.\nfunc (r *multiHelloRequiresResolver) Key2(ctx context.Context, obj *model.MultiHelloRequires, federationRequires map[string]any) (string, error) {\n\tkey1 := federationRequires[\"key1\"].(string)\n\treturn key1, nil\n}\n\n// Size is the resolver for the size field.\nfunc (r *multiPlanetRequiresNestedResolver) Size(ctx context.Context, obj *model.MultiPlanetRequiresNested, federationRequires map[string]any) (int, error) {\n\tfoo := federationRequires[\"world\"].(map[string]any)[\"foo\"].(string)\n\treturn len(foo), nil\n}\n\n// Sizes is the resolver for the sizes field.\nfunc (r *multiPlanetRequiresNestedResolver) Sizes(ctx context.Context, obj *model.MultiPlanetRequiresNested, federationRequires map[string]any) ([]int, error) {\n\tpanic(fmt.Errorf(\"not implemented: Sizes - sizes\"))\n}\n\n// WelcomeMessage is the resolver for the welcomeMessage field.\nfunc (r *personResolver) WelcomeMessage(ctx context.Context, obj *model.Person, federationRequires map[string]any) (*string, error) {\n\tpanic(fmt.Errorf(\"not implemented: WelcomeMessage - welcomeMessage\"))\n}\n\n// Weight is the resolver for the weight field.\nfunc (r *planetMultipleRequiresResolver) Weight(ctx context.Context, obj *model.PlanetMultipleRequires, foo *string, federationRequires map[string]any) (int, error) {\n\tdiameter, err := federationRequires[\"diameter\"].(json.Number).Int64()\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\tdensity, err := federationRequires[\"density\"].(json.Number).Int64()\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\treturn int(diameter) + int(density), nil\n}\n\n// Size is the resolver for the size field.\nfunc (r *planetRequiresResolver) Size(ctx context.Context, obj *model.PlanetRequires, federationRequires map[string]any) (int, error) {\n\tdiameter, err := federationRequires[\"diameter\"].(json.Number).Int64()\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\treturn int(diameter), nil\n}\n\n// Size is the resolver for the size field.\nfunc (r *planetRequiresNestedResolver) Size(ctx context.Context, obj *model.PlanetRequiresNested, federationRequires map[string]any) (int, error) {\n\tfoo := federationRequires[\"world\"].(map[string]any)[\"foo\"].(string)\n\treturn len(foo), nil\n}\n\n// Sizes is the resolver for the sizes field.\nfunc (r *planetRequiresNestedResolver) Sizes(ctx context.Context, obj *model.PlanetRequiresNested, federationRequires map[string]any) ([]int, error) {\n\tfoo := federationRequires[\"world\"].(map[string]any)[\"foo\"].(string)\n\treturn []int{len(foo)}, nil\n}\n\n// Test is the resolver for the test field.\nfunc (r *queryResolver) Test(ctx context.Context) (*string, error) {\n\tpanic(fmt.Errorf(\"not implemented: Test - test\"))\n}\n\n// MultiHelloMultipleRequires returns explicitrequires.MultiHelloMultipleRequiresResolver implementation.\nfunc (r *Resolver) MultiHelloMultipleRequires() explicitrequires.MultiHelloMultipleRequiresResolver {\n\treturn &multiHelloMultipleRequiresResolver{r}\n}\n\n// MultiHelloRequires returns explicitrequires.MultiHelloRequiresResolver implementation.\nfunc (r *Resolver) MultiHelloRequires() explicitrequires.MultiHelloRequiresResolver {\n\treturn &multiHelloRequiresResolver{r}\n}\n\n// MultiPlanetRequiresNested returns explicitrequires.MultiPlanetRequiresNestedResolver implementation.\nfunc (r *Resolver) MultiPlanetRequiresNested() explicitrequires.MultiPlanetRequiresNestedResolver {\n\treturn &multiPlanetRequiresNestedResolver{r}\n}\n\n// Person returns explicitrequires.PersonResolver implementation.\nfunc (r *Resolver) Person() explicitrequires.PersonResolver { return &personResolver{r} }\n\n// PlanetMultipleRequires returns explicitrequires.PlanetMultipleRequiresResolver implementation.\nfunc (r *Resolver) PlanetMultipleRequires() explicitrequires.PlanetMultipleRequiresResolver {\n\treturn &planetMultipleRequiresResolver{r}\n}\n\n// PlanetRequires returns explicitrequires.PlanetRequiresResolver implementation.\nfunc (r *Resolver) PlanetRequires() explicitrequires.PlanetRequiresResolver {\n\treturn &planetRequiresResolver{r}\n}\n\n// PlanetRequiresNested returns explicitrequires.PlanetRequiresNestedResolver implementation.\nfunc (r *Resolver) PlanetRequiresNested() explicitrequires.PlanetRequiresNestedResolver {\n\treturn &planetRequiresNestedResolver{r}\n}\n\n// Query returns explicitrequires.QueryResolver implementation.\nfunc (r *Resolver) Query() explicitrequires.QueryResolver { return &queryResolver{r} }\n\ntype multiHelloMultipleRequiresResolver struct{ *Resolver }\ntype multiHelloRequiresResolver struct{ *Resolver }\ntype multiPlanetRequiresNestedResolver struct{ *Resolver }\ntype personResolver struct{ *Resolver }\ntype planetMultipleRequiresResolver struct{ *Resolver }\ntype planetRequiresResolver struct{ *Resolver }\ntype planetRequiresNestedResolver struct{ *Resolver }\ntype queryResolver struct{ *Resolver }\n"
  },
  {
    "path": "plugin/federation/testdata/entities/nokey.graphql",
    "content": "type Hello {\n  name: String!\n}\n\ntype Query {\n  hello: Hello!\n}\n\n"
  },
  {
    "path": "plugin/federation/testdata/entities/nokey.yml",
    "content": "schema:\n  - \"testdata/entities/nokey.graphql\"\nexec:\n  filename: testdata/entities/generated/exec.go\nfederation:\n  filename: testdata/entities/generated/federation.go\n\nautobind:\n  - \"github.com/99designs/gqlgen/plugin/federation/test_data/model\"\n"
  },
  {
    "path": "plugin/federation/testdata/entitydirectives/generated/exec.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage generated\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\t\"github.com/99designs/gqlgen/plugin/federation/fedruntime\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n}\n\ntype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\ntype ResolverRoot interface {\n\tEntity() EntityResolver\n\tQuery() QueryResolver\n}\n\ntype DirectiveRoot struct {\n\tAuth  func(ctx context.Context, obj any, next graphql.Resolver, requires string) (res any, err error)\n\tGuard func(ctx context.Context, obj any, next graphql.Resolver, name string) (res any, err error)\n}\n\ntype ComplexityRoot struct {\n\tBasic struct {\n\t\tID    func(childComplexity int) int\n\t\tValue func(childComplexity int) int\n\t}\n\n\tEntity struct {\n\t\tFindBasicByID    func(childComplexity int, id string) int\n\t\tFindPersonByID   func(childComplexity int, id string) int\n\t\tFindProductBySku func(childComplexity int, sku string) int\n\t}\n\n\tPerson struct {\n\t\tEmail func(childComplexity int) int\n\t\tID    func(childComplexity int) int\n\t\tPhone func(childComplexity int) int\n\t}\n\n\tProduct struct {\n\t\tName  func(childComplexity int) int\n\t\tPrice func(childComplexity int) int\n\t\tSku   func(childComplexity int) int\n\t}\n\n\tQuery struct {\n\t\tGetBasic           func(childComplexity int, id string) int\n\t\tGetPerson          func(childComplexity int, id string) int\n\t\tGetProduct         func(childComplexity int, sku string) int\n\t\t__resolve__service func(childComplexity int) int\n\t\t__resolve_entities func(childComplexity int, representations []map[string]any) int\n\t}\n\n\t_Service struct {\n\t\tSDL func(childComplexity int) int\n\t}\n}\n\ntype EntityResolver interface {\n\tFindBasicByID(ctx context.Context, id string) (*Basic, error)\n\tFindPersonByID(ctx context.Context, id string) (*Person, error)\n\tFindProductBySku(ctx context.Context, sku string) (*Product, error)\n}\ntype QueryResolver interface {\n\tGetPerson(ctx context.Context, id string) (*Person, error)\n\tGetProduct(ctx context.Context, sku string) (*Product, error)\n\tGetBasic(ctx context.Context, id string) (*Basic, error)\n}\n\ntype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.SchemaData != nil {\n\t\treturn e.SchemaData\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := newExecutionContext(nil, e, nil)\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"Basic.id\":\n\t\tif e.ComplexityRoot.Basic.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Basic.ID(childComplexity), true\n\tcase \"Basic.value\":\n\t\tif e.ComplexityRoot.Basic.Value == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Basic.Value(childComplexity), true\n\n\tcase \"Entity.findBasicByID\":\n\t\tif e.ComplexityRoot.Entity.FindBasicByID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Entity_findBasicByID_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindBasicByID(childComplexity, args[\"id\"].(string)), true\n\tcase \"Entity.findPersonByID\":\n\t\tif e.ComplexityRoot.Entity.FindPersonByID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Entity_findPersonByID_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindPersonByID(childComplexity, args[\"id\"].(string)), true\n\tcase \"Entity.findProductBySku\":\n\t\tif e.ComplexityRoot.Entity.FindProductBySku == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Entity_findProductBySku_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindProductBySku(childComplexity, args[\"sku\"].(string)), true\n\n\tcase \"Person.email\":\n\t\tif e.ComplexityRoot.Person.Email == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Person.Email(childComplexity), true\n\tcase \"Person.id\":\n\t\tif e.ComplexityRoot.Person.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Person.ID(childComplexity), true\n\tcase \"Person.phone\":\n\t\tif e.ComplexityRoot.Person.Phone == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Person.Phone(childComplexity), true\n\n\tcase \"Product.name\":\n\t\tif e.ComplexityRoot.Product.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Product.Name(childComplexity), true\n\tcase \"Product.price\":\n\t\tif e.ComplexityRoot.Product.Price == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Product.Price(childComplexity), true\n\tcase \"Product.sku\":\n\t\tif e.ComplexityRoot.Product.Sku == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Product.Sku(childComplexity), true\n\n\tcase \"Query.getBasic\":\n\t\tif e.ComplexityRoot.Query.GetBasic == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_getBasic_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.GetBasic(childComplexity, args[\"id\"].(string)), true\n\tcase \"Query.getPerson\":\n\t\tif e.ComplexityRoot.Query.GetPerson == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_getPerson_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.GetPerson(childComplexity, args[\"id\"].(string)), true\n\tcase \"Query.getProduct\":\n\t\tif e.ComplexityRoot.Query.GetProduct == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query_getProduct_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.GetProduct(childComplexity, args[\"sku\"].(string)), true\n\n\tcase \"Query._service\":\n\t\tif e.ComplexityRoot.Query.__resolve__service == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.__resolve__service(childComplexity), true\n\tcase \"Query._entities\":\n\t\tif e.ComplexityRoot.Query.__resolve_entities == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query__entities_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.__resolve_entities(childComplexity, args[\"representations\"].([]map[string]any)), true\n\n\tcase \"_Service.sdl\":\n\t\tif e.ComplexityRoot._Service.SDL == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot._Service.SDL(childComplexity), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap()\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"../schema.graphql\", Input: `directive @guard(name: String!) on OBJECT | FIELD_DEFINITION\ndirective @auth(requires: String!) on OBJECT | FIELD_DEFINITION\n\ntype Person @key(fields: \"id\") @guard(name: \"PersonGuard\") {\n    id: String!\n    email: String!\n    phone: String!\n}\n\ntype Product @key(fields: \"sku\") @auth(requires: \"admin\") @guard(name: \"ProductGuard\") {\n    sku: String!\n    name: String!\n    price: Float!\n}\n\n# Entity without directives for comparison\ntype Basic @key(fields: \"id\") {\n    id: String!\n    value: String!\n}\n\ntype Query {\n    getPerson(id: String!): Person\n    getProduct(sku: String!): Product\n    getBasic(id: String!): Basic\n}\n`, BuiltIn: false},\n\t{Name: \"../../../federation/directives.graphql\", Input: `\n\tdirective @key(fields: _FieldSet!) repeatable on OBJECT | INTERFACE\n\tdirective @requires(fields: _FieldSet!) on FIELD_DEFINITION\n\tdirective @provides(fields: _FieldSet!) on FIELD_DEFINITION\n\tdirective @extends on OBJECT | INTERFACE\n\tdirective @external on FIELD_DEFINITION\n\tscalar _Any\n\tscalar _FieldSet\n`, BuiltIn: true},\n\t{Name: \"../../../federation/entity.graphql\", Input: `\n# a union of all types that use the @key directive\nunion _Entity = Basic | Person | Product\n\n# fake type to build resolver interfaces for users to implement\ntype Entity {\n\tfindBasicByID(id: String!,): Basic!\n\tfindPersonByID(id: String!,): Person!\n\tfindProductBySku(sku: String!,): Product!\n}\n\ntype _Service {\n  sdl: String\n}\n\nextend type Query {\n  _entities(representations: [_Any!]!): [_Entity]!\n  _service: _Service!\n}\n`, BuiltIn: true},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) dir_auth_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"requires\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"requires\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) dir_guard_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findBasicByID_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"id\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"id\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findPersonByID_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"id\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"id\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findProductBySku_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"sku\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"sku\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query__entities_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"representations\", ec.unmarshalN_Any2ᚕmapᚄ)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"representations\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_getBasic_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"id\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"id\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_getPerson_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"id\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"id\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query_getProduct_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"sku\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"sku\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Basic_id(ctx context.Context, field graphql.CollectedField, obj *Basic) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Basic_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Basic_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Basic\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Basic_value(ctx context.Context, field graphql.CollectedField, obj *Basic) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Basic_value,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Value, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Basic_value(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Basic\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findBasicByID(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findBasicByID,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindBasicByID(ctx, fc.Args[\"id\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNBasic2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentitydirectivesᚋgeneratedᚐBasic,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findBasicByID(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Basic_id(ctx, field)\n\t\t\tcase \"value\":\n\t\t\t\treturn ec.fieldContext_Basic_value(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Basic\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findBasicByID_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findPersonByID(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findPersonByID,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindPersonByID(ctx, fc.Args[\"id\"].(string))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tname, err := ec.unmarshalNString2string(ctx, \"PersonGuard\")\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal *Person\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tif ec.Directives.Guard == nil {\n\t\t\t\t\tvar zeroVal *Person\n\t\t\t\t\treturn zeroVal, errors.New(\"directive guard is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Guard(ctx, nil, directive0, name)\n\t\t\t}\n\n\t\t\tnext = directive1\n\t\t\treturn next\n\t\t},\n\t\tec.marshalNPerson2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentitydirectivesᚋgeneratedᚐPerson,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findPersonByID(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Person_id(ctx, field)\n\t\t\tcase \"email\":\n\t\t\t\treturn ec.fieldContext_Person_email(ctx, field)\n\t\t\tcase \"phone\":\n\t\t\t\treturn ec.fieldContext_Person_phone(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Person\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findPersonByID_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findProductBySku(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findProductBySku,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindProductBySku(ctx, fc.Args[\"sku\"].(string))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\trequires, err := ec.unmarshalNString2string(ctx, \"admin\")\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal *Product\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tif ec.Directives.Auth == nil {\n\t\t\t\t\tvar zeroVal *Product\n\t\t\t\t\treturn zeroVal, errors.New(\"directive auth is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Auth(ctx, nil, directive0, requires)\n\t\t\t}\n\t\t\tdirective2 := func(ctx context.Context) (any, error) {\n\t\t\t\tname, err := ec.unmarshalNString2string(ctx, \"ProductGuard\")\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal *Product\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tif ec.Directives.Guard == nil {\n\t\t\t\t\tvar zeroVal *Product\n\t\t\t\t\treturn zeroVal, errors.New(\"directive guard is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Guard(ctx, nil, directive1, name)\n\t\t\t}\n\n\t\t\tnext = directive2\n\t\t\treturn next\n\t\t},\n\t\tec.marshalNProduct2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentitydirectivesᚋgeneratedᚐProduct,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findProductBySku(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"sku\":\n\t\t\t\treturn ec.fieldContext_Product_sku(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_Product_name(ctx, field)\n\t\t\tcase \"price\":\n\t\t\t\treturn ec.fieldContext_Product_price(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Product\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findProductBySku_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Person_id(ctx context.Context, field graphql.CollectedField, obj *Person) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Person_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Person_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Person\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Person_email(ctx context.Context, field graphql.CollectedField, obj *Person) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Person_email,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Email, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Person_email(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Person\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Person_phone(ctx context.Context, field graphql.CollectedField, obj *Person) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Person_phone,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Phone, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Person_phone(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Person\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Product_sku(ctx context.Context, field graphql.CollectedField, obj *Product) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Product_sku,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Sku, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Product_sku(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Product\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Product_name(ctx context.Context, field graphql.CollectedField, obj *Product) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Product_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Product_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Product\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Product_price(ctx context.Context, field graphql.CollectedField, obj *Product) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Product_price,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Price, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNFloat2float64,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Product_price(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Product\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Float does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_getPerson(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_getPerson,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().GetPerson(ctx, fc.Args[\"id\"].(string))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\tname, err := ec.unmarshalNString2string(ctx, \"PersonGuard\")\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal *Person\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tif ec.Directives.Guard == nil {\n\t\t\t\t\tvar zeroVal *Person\n\t\t\t\t\treturn zeroVal, errors.New(\"directive guard is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Guard(ctx, nil, directive0, name)\n\t\t\t}\n\n\t\t\tnext = directive1\n\t\t\treturn next\n\t\t},\n\t\tec.marshalOPerson2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentitydirectivesᚋgeneratedᚐPerson,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_getPerson(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Person_id(ctx, field)\n\t\t\tcase \"email\":\n\t\t\t\treturn ec.fieldContext_Person_email(ctx, field)\n\t\t\tcase \"phone\":\n\t\t\t\treturn ec.fieldContext_Person_phone(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Person\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_getPerson_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_getProduct(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_getProduct,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().GetProduct(ctx, fc.Args[\"sku\"].(string))\n\t\t},\n\t\tfunc(ctx context.Context, next graphql.Resolver) graphql.Resolver {\n\t\t\tdirective0 := next\n\n\t\t\tdirective1 := func(ctx context.Context) (any, error) {\n\t\t\t\trequires, err := ec.unmarshalNString2string(ctx, \"admin\")\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal *Product\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tif ec.Directives.Auth == nil {\n\t\t\t\t\tvar zeroVal *Product\n\t\t\t\t\treturn zeroVal, errors.New(\"directive auth is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Auth(ctx, nil, directive0, requires)\n\t\t\t}\n\t\t\tdirective2 := func(ctx context.Context) (any, error) {\n\t\t\t\tname, err := ec.unmarshalNString2string(ctx, \"ProductGuard\")\n\t\t\t\tif err != nil {\n\t\t\t\t\tvar zeroVal *Product\n\t\t\t\t\treturn zeroVal, err\n\t\t\t\t}\n\t\t\t\tif ec.Directives.Guard == nil {\n\t\t\t\t\tvar zeroVal *Product\n\t\t\t\t\treturn zeroVal, errors.New(\"directive guard is not implemented\")\n\t\t\t\t}\n\t\t\t\treturn ec.Directives.Guard(ctx, nil, directive1, name)\n\t\t\t}\n\n\t\t\tnext = directive2\n\t\t\treturn next\n\t\t},\n\t\tec.marshalOProduct2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentitydirectivesᚋgeneratedᚐProduct,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_getProduct(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"sku\":\n\t\t\t\treturn ec.fieldContext_Product_sku(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_Product_name(ctx, field)\n\t\t\tcase \"price\":\n\t\t\t\treturn ec.fieldContext_Product_price(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Product\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_getProduct_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_getBasic(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query_getBasic,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Query().GetBasic(ctx, fc.Args[\"id\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalOBasic2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentitydirectivesᚋgeneratedᚐBasic,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query_getBasic(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_Basic_id(ctx, field)\n\t\t\tcase \"value\":\n\t\t\t\treturn ec.fieldContext_Basic_value(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Basic\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query_getBasic_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query__entities(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query__entities,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.__resolve_entities(ctx, fc.Args[\"representations\"].([]map[string]any)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN_Entity2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query__entities(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type _Entity does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query__entities_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query__service(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query__service,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.__resolve__service(ctx)\n\t\t},\n\t\tnil,\n\t\tec.marshalN_Service2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐService,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query__service(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"sdl\":\n\t\t\t\treturn ec.fieldContext__Service_sdl(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type _Service\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.IntrospectType(fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___schema,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.IntrospectSchema()\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) __Service_sdl(ctx context.Context, field graphql.CollectedField, obj *fedruntime.Service) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext__Service_sdl,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SDL, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2string,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext__Service_sdl(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"_Service\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_isRepeatable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsRepeatable, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_locations,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Locations, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__DirectiveLocation2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_defaultValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DefaultValue, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_types,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Types(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_queryType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.QueryType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_mutationType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.MutationType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_subscriptionType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SubscriptionType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_directives,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Directives(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_kind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Kind(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__TypeKind2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_specifiedByURL,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SpecifiedByURL(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_fields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_interfaces,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Interfaces(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_possibleTypes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PossibleTypes(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_enumValues,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_inputFields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.InputFields(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_ofType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.OfType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_isOneOf,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsOneOf(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOBoolean2bool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\nfunc (ec *executionContext) __Entity(ctx context.Context, sel ast.SelectionSet, obj fedruntime.Entity) graphql.Marshaler {\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\tcase Product:\n\t\treturn ec._Product(ctx, sel, &obj)\n\tcase *Product:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Product(ctx, sel, obj)\n\tcase Person:\n\t\treturn ec._Person(ctx, sel, &obj)\n\tcase *Person:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Person(ctx, sel, obj)\n\tcase Basic:\n\t\treturn ec._Basic(ctx, sel, &obj)\n\tcase *Basic:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Basic(ctx, sel, obj)\n\tdefault:\n\t\tif typedObj, ok := obj.(graphql.Marshaler); ok {\n\t\t\treturn typedObj\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T; non-generated variants of _Entity must implement graphql.Marshaler\", obj))\n\t\t}\n\t}\n}\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar basicImplementors = []string{\"Basic\", \"_Entity\"}\n\nfunc (ec *executionContext) _Basic(ctx context.Context, sel ast.SelectionSet, obj *Basic) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, basicImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Basic\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._Basic_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"value\":\n\t\t\tout.Values[i] = ec._Basic_value(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar entityImplementors = []string{\"Entity\"}\n\nfunc (ec *executionContext) _Entity(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, entityImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Entity\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Entity\")\n\t\tcase \"findBasicByID\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findBasicByID(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findPersonByID\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findPersonByID(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findProductBySku\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findProductBySku(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar personImplementors = []string{\"Person\", \"_Entity\"}\n\nfunc (ec *executionContext) _Person(ctx context.Context, sel ast.SelectionSet, obj *Person) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, personImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Person\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._Person_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"email\":\n\t\t\tout.Values[i] = ec._Person_email(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"phone\":\n\t\t\tout.Values[i] = ec._Person_phone(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar productImplementors = []string{\"Product\", \"_Entity\"}\n\nfunc (ec *executionContext) _Product(ctx context.Context, sel ast.SelectionSet, obj *Product) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, productImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Product\")\n\t\tcase \"sku\":\n\t\t\tout.Values[i] = ec._Product_sku(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._Product_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"price\":\n\t\t\tout.Values[i] = ec._Product_price(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"getPerson\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_getPerson(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"getProduct\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_getProduct(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"getBasic\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_getBasic(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"_entities\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query__entities(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"_service\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query__service(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar _ServiceImplementors = []string{\"_Service\"}\n\nfunc (ec *executionContext) __Service(ctx context.Context, sel ast.SelectionSet, obj *fedruntime.Service) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, _ServiceImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"_Service\")\n\t\tcase \"sdl\":\n\t\t\tout.Values[i] = ec.__Service_sdl(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) marshalNBasic2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentitydirectivesᚋgeneratedᚐBasic(ctx context.Context, sel ast.SelectionSet, v Basic) graphql.Marshaler {\n\treturn ec._Basic(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNBasic2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentitydirectivesᚋgeneratedᚐBasic(ctx context.Context, sel ast.SelectionSet, v *Basic) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Basic(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNFloat2float64(ctx context.Context, v any) (float64, error) {\n\tres, err := graphql.UnmarshalFloatContext(ctx, v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNFloat2float64(ctx context.Context, sel ast.SelectionSet, v float64) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalFloatContext(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn graphql.WrapContextMarshaler(ctx, res)\n}\n\nfunc (ec *executionContext) marshalNPerson2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentitydirectivesᚋgeneratedᚐPerson(ctx context.Context, sel ast.SelectionSet, v Person) graphql.Marshaler {\n\treturn ec._Person(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNPerson2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentitydirectivesᚋgeneratedᚐPerson(ctx context.Context, sel ast.SelectionSet, v *Person) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Person(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNProduct2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentitydirectivesᚋgeneratedᚐProduct(ctx context.Context, sel ast.SelectionSet, v Product) graphql.Marshaler {\n\treturn ec._Product(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNProduct2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentitydirectivesᚋgeneratedᚐProduct(ctx context.Context, sel ast.SelectionSet, v *Product) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Product(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN_Any2map(ctx context.Context, v any) (map[string]any, error) {\n\tres, err := graphql.UnmarshalMap(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN_Any2map(ctx context.Context, sel ast.SelectionSet, v map[string]any) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\tres := graphql.MarshalMap(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN_Any2ᚕmapᚄ(ctx context.Context, v any) ([]map[string]any, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]map[string]any, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN_Any2map(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN_Any2ᚕmapᚄ(ctx context.Context, sel ast.SelectionSet, v []map[string]any) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalN_Any2map(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN_Entity2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity(ctx context.Context, sel ast.SelectionSet, v []fedruntime.Entity) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalO_Entity2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN_FieldSet2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN_FieldSet2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalN_Service2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐService(ctx context.Context, sel ast.SelectionSet, v fedruntime.Service) graphql.Marshaler {\n\treturn ec.__Service(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalOBasic2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentitydirectivesᚋgeneratedᚐBasic(ctx context.Context, sel ast.SelectionSet, v *Basic) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Basic(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalOPerson2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentitydirectivesᚋgeneratedᚐPerson(ctx context.Context, sel ast.SelectionSet, v *Person) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Person(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOProduct2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentitydirectivesᚋgeneratedᚐProduct(ctx context.Context, sel ast.SelectionSet, v *Product) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Product(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalO_Entity2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity(ctx context.Context, sel ast.SelectionSet, v fedruntime.Entity) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.__Entity(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "plugin/federation/testdata/entitydirectives/generated/federation.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage generated\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"github.com/99designs/gqlgen/plugin/federation/fedruntime\"\n)\n\nvar (\n\tErrUnknownType  = errors.New(\"unknown type\")\n\tErrTypeNotFound = errors.New(\"type not found\")\n)\n\nfunc (ec *executionContext) __resolve__service(ctx context.Context) (fedruntime.Service, error) {\n\tif ec.DisableIntrospection {\n\t\treturn fedruntime.Service{}, errors.New(\"federated introspection disabled\")\n\t}\n\n\tvar sdl []string\n\n\tfor _, src := range sources {\n\t\tif src.BuiltIn {\n\t\t\tcontinue\n\t\t}\n\t\tsdl = append(sdl, src.Input)\n\t}\n\n\treturn fedruntime.Service{\n\t\tSDL: strings.Join(sdl, \"\\n\"),\n\t}, nil\n}\n\nfunc (ec *executionContext) __resolve_entities(ctx context.Context, representations []map[string]any) []fedruntime.Entity {\n\tlist := make([]fedruntime.Entity, len(representations))\n\n\trepsMap := ec.buildRepresentationGroups(ctx, representations)\n\n\tswitch len(repsMap) {\n\tcase 0:\n\t\treturn list\n\tcase 1:\n\t\tfor typeName, reps := range repsMap {\n\t\t\tec.resolveEntityGroup(ctx, typeName, reps, list)\n\t\t}\n\t\treturn list\n\tdefault:\n\t\tvar g sync.WaitGroup\n\t\tg.Add(len(repsMap))\n\t\tfor typeName, reps := range repsMap {\n\t\t\tgo func(typeName string, reps []EntityWithIndex) {\n\t\t\t\tec.resolveEntityGroup(ctx, typeName, reps, list)\n\t\t\t\tg.Done()\n\t\t\t}(typeName, reps)\n\t\t}\n\t\tg.Wait()\n\t\treturn list\n\t}\n}\n\ntype EntityWithIndex struct {\n\t// The index in the original representation array\n\tindex  int\n\tentity EntityRepresentation\n}\n\n// EntityRepresentation is the JSON representation of an entity sent by the Router\n// used as the inputs for us to resolve.\n//\n// We make it a map because we know the top level JSON is always an object.\ntype EntityRepresentation map[string]any\n\n// We group entities by typename so that we can parallelize their resolution.\n// This is particularly helpful when there are entity groups in multi mode.\nfunc (ec *executionContext) buildRepresentationGroups(\n\tctx context.Context,\n\trepresentations []map[string]any,\n) map[string][]EntityWithIndex {\n\trepsMap := make(map[string][]EntityWithIndex)\n\tfor i, rep := range representations {\n\t\ttypeName, ok := rep[\"__typename\"].(string)\n\t\tif !ok {\n\t\t\t// If there is no __typename, we just skip the representation;\n\t\t\t// we just won't be resolving these unknown types.\n\t\t\tec.Error(ctx, errors.New(\"__typename must be an existing string\"))\n\t\t\tcontinue\n\t\t}\n\n\t\trepsMap[typeName] = append(repsMap[typeName], EntityWithIndex{\n\t\t\tindex:  i,\n\t\t\tentity: rep,\n\t\t})\n\t}\n\n\treturn repsMap\n}\n\nfunc (ec *executionContext) resolveEntityGroup(\n\tctx context.Context,\n\ttypeName string,\n\treps []EntityWithIndex,\n\tlist []fedruntime.Entity,\n) {\n\tif isMulti(typeName) {\n\t\terr := ec.resolveManyEntities(ctx, typeName, reps, list)\n\t\tif err != nil {\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t} else {\n\t\t// if there are multiple entities to resolve, parallelize (similar to\n\t\t// graphql.FieldSet.Dispatch)\n\t\tvar e sync.WaitGroup\n\t\te.Add(len(reps))\n\t\tfor i, rep := range reps {\n\t\t\ti, rep := i, rep\n\t\t\tgo func(i int, rep EntityWithIndex) {\n\t\t\t\tentity, err := ec.resolveEntity(ctx, typeName, rep.entity)\n\t\t\t\tif err != nil {\n\t\t\t\t\tec.Error(ctx, err)\n\t\t\t\t} else {\n\t\t\t\t\tlist[rep.index] = entity\n\t\t\t\t}\n\t\t\t\te.Done()\n\t\t\t}(i, rep)\n\t\t}\n\t\te.Wait()\n\t}\n}\n\nfunc isMulti(typeName string) bool {\n\tswitch typeName {\n\tdefault:\n\t\treturn false\n\t}\n}\n\nfunc (ec *executionContext) resolveEntity(\n\tctx context.Context,\n\ttypeName string,\n\trep EntityRepresentation,\n) (e fedruntime.Entity, err error) {\n\t// we need to do our own panic handling, because we may be called in a\n\t// goroutine, where the usual panic handling can't catch us\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t}\n\t}()\n\n\tswitch typeName {\n\tcase \"Basic\":\n\t\tresolverName, err := entityResolverNameForBasic(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"Basic\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findBasicByID\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"id\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findBasicByID(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindBasicByID(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"Basic\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"Person\":\n\t\tresolverName, err := entityResolverNameForPerson(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"Person\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findPersonByID\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"id\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findPersonByID(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindPersonByID(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"Person\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"Product\":\n\t\tresolverName, err := entityResolverNameForProduct(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"Product\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findProductBySku\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"sku\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findProductBySku(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindProductBySku(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"Product\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\n\t}\n\treturn nil, fmt.Errorf(\"%w: %s\", ErrUnknownType, typeName)\n}\n\nfunc (ec *executionContext) resolveManyEntities(\n\tctx context.Context,\n\ttypeName string,\n\treps []EntityWithIndex,\n\tlist []fedruntime.Entity,\n) (err error) {\n\t// we need to do our own panic handling, because we may be called in a\n\t// goroutine, where the usual panic handling can't catch us\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t}\n\t}()\n\n\tswitch typeName {\n\n\tdefault:\n\t\treturn errors.New(\"unknown type: \" + typeName)\n\t}\n}\n\nfunc entityResolverNameForBasic(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"id\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"id\\\" for Basic\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for Basic\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findBasicByID\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for Basic due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForPerson(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"id\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"id\\\" for Person\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for Person\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findPersonByID\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for Person due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForProduct(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"sku\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"sku\\\" for Product\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for Product\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findProductBySku\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for Product due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n"
  },
  {
    "path": "plugin/federation/testdata/entitydirectives/generated/models_gen.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage generated\n\ntype Basic struct {\n\tID    string `json:\"id\"`\n\tValue string `json:\"value\"`\n}\n\nfunc (Basic) IsEntity() {}\n\ntype Person struct {\n\tID    string `json:\"id\"`\n\tEmail string `json:\"email\"`\n\tPhone string `json:\"phone\"`\n}\n\nfunc (Person) IsEntity() {}\n\ntype Product struct {\n\tSku   string  `json:\"sku\"`\n\tName  string  `json:\"name\"`\n\tPrice float64 `json:\"price\"`\n}\n\nfunc (Product) IsEntity() {}\n\ntype Query struct {\n}\n"
  },
  {
    "path": "plugin/federation/testdata/entitydirectives/gqlgen.yml",
    "content": "schema:\n  - \"testdata/entitydirectives/schema.graphql\"\n\nexec:\n  filename: testdata/entitydirectives/generated/exec.go\n\nmodel:\n  filename: testdata/entitydirectives/generated/models_gen.go\n\nfederation:\n  filename: testdata/entitydirectives/generated/federation.go\n  version: 1\n\nmodels:\n  _FieldSet:\n    model: github.com/99designs/gqlgen/graphql.String\n\ndirectives:\n  guard:\n    skip_runtime: false\n  auth:\n    skip_runtime: false\n"
  },
  {
    "path": "plugin/federation/testdata/entitydirectives/schema.graphql",
    "content": "directive @guard(name: String!) on OBJECT | FIELD_DEFINITION\ndirective @auth(requires: String!) on OBJECT | FIELD_DEFINITION\n\ntype Person @key(fields: \"id\") @guard(name: \"PersonGuard\") {\n    id: String!\n    email: String!\n    phone: String!\n}\n\ntype Product @key(fields: \"sku\") @auth(requires: \"admin\") @guard(name: \"ProductGuard\") {\n    sku: String!\n    name: String!\n    price: Float!\n}\n\n# Entity without directives for comparison\ntype Basic @key(fields: \"id\") {\n    id: String!\n    value: String!\n}\n\ntype Query {\n    getPerson(id: String!): Person\n    getProduct(sku: String!): Product\n    getBasic(id: String!): Basic\n}\n"
  },
  {
    "path": "plugin/federation/testdata/entityinterfaces/generated/exec.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage generated\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\t\"github.com/99designs/gqlgen/plugin/federation/fedruntime\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n}\n\ntype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\ntype ResolverRoot interface {\n\tEntity() EntityResolver\n}\n\ntype DirectiveRoot struct {\n}\n\ntype ComplexityRoot struct {\n\tEntity struct {\n\t\tFindHelloByID func(childComplexity int, id string) int\n\t\tFindWorldByID func(childComplexity int, id string) int\n\t}\n\n\tQuery struct {\n\t\t__resolve__service func(childComplexity int) int\n\t\t__resolve_entities func(childComplexity int, representations []map[string]any) int\n\t}\n\n\tWorld struct {\n\t\tID    func(childComplexity int) int\n\t\tTitle func(childComplexity int) int\n\t}\n\n\t_Service struct {\n\t\tSDL func(childComplexity int) int\n\t}\n}\n\ntype EntityResolver interface {\n\tFindHelloByID(ctx context.Context, id string) (Hello, error)\n\tFindWorldByID(ctx context.Context, id string) (*World, error)\n}\n\ntype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.SchemaData != nil {\n\t\treturn e.SchemaData\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := newExecutionContext(nil, e, nil)\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"Entity.findHelloByID\":\n\t\tif e.ComplexityRoot.Entity.FindHelloByID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Entity_findHelloByID_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindHelloByID(childComplexity, args[\"id\"].(string)), true\n\tcase \"Entity.findWorldByID\":\n\t\tif e.ComplexityRoot.Entity.FindWorldByID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Entity_findWorldByID_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindWorldByID(childComplexity, args[\"id\"].(string)), true\n\n\tcase \"Query._service\":\n\t\tif e.ComplexityRoot.Query.__resolve__service == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.__resolve__service(childComplexity), true\n\tcase \"Query._entities\":\n\t\tif e.ComplexityRoot.Query.__resolve_entities == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query__entities_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.__resolve_entities(childComplexity, args[\"representations\"].([]map[string]any)), true\n\n\tcase \"World.id\":\n\t\tif e.ComplexityRoot.World.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.World.ID(childComplexity), true\n\tcase \"World.title\":\n\t\tif e.ComplexityRoot.World.Title == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.World.Title(childComplexity), true\n\n\tcase \"_Service.sdl\":\n\t\tif e.ComplexityRoot._Service.SDL == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot._Service.SDL(childComplexity), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap()\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"../interface.graphql\", Input: `extend schema\n  @link(url: \"https://specs.apollo.dev/federation/v2.3\",\n        import: [\"@key\"])\n\ninterface Hello @key(fields: \"id\"){\n  id: String!\n  title: String!\n}\n\ntype World implements Hello @key(fields: \"id\") {\n  id: String!\n  title: String!\n}`, BuiltIn: false},\n\t{Name: \"../../../federation/directives.graphql\", Input: `\n\tdirective @authenticated on FIELD_DEFINITION | OBJECT | INTERFACE | SCALAR | ENUM\n\tdirective @composeDirective(name: String!) repeatable on SCHEMA\n\tdirective @extends on OBJECT | INTERFACE\n\tdirective @external on OBJECT | FIELD_DEFINITION\n\tdirective @key(fields: FieldSet!, resolvable: Boolean = true) repeatable on OBJECT | INTERFACE\n\tdirective @inaccessible on\n\t  | ARGUMENT_DEFINITION\n\t  | ENUM\n\t  | ENUM_VALUE\n\t  | FIELD_DEFINITION\n\t  | INPUT_FIELD_DEFINITION\n\t  | INPUT_OBJECT\n\t  | INTERFACE\n\t  | OBJECT\n\t  | SCALAR\n\t  | UNION\n\tdirective @interfaceObject on OBJECT\n\tdirective @link(import: [String!], url: String!) repeatable on SCHEMA\n\tdirective @override(from: String!, label: String) on FIELD_DEFINITION\n\tdirective @policy(policies: [[federation__Policy!]!]!) on\n\t  | FIELD_DEFINITION\n\t  | OBJECT\n\t  | INTERFACE\n\t  | SCALAR\n\t  | ENUM\n\tdirective @provides(fields: FieldSet!) on FIELD_DEFINITION\n\tdirective @requires(fields: FieldSet!) on FIELD_DEFINITION\n\tdirective @requiresScopes(scopes: [[federation__Scope!]!]!) on\n\t  | FIELD_DEFINITION\n\t  | OBJECT\n\t  | INTERFACE\n\t  | SCALAR\n\t  | ENUM\n\tdirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\tdirective @tag(name: String!) repeatable on\n\t  | ARGUMENT_DEFINITION\n\t  | ENUM\n\t  | ENUM_VALUE\n\t  | FIELD_DEFINITION\n\t  | INPUT_FIELD_DEFINITION\n\t  | INPUT_OBJECT\n\t  | INTERFACE\n\t  | OBJECT\n\t  | SCALAR\n\t  | UNION\n\tscalar _Any\n\tscalar FieldSet\n\tscalar federation__Policy\n\tscalar federation__Scope\n`, BuiltIn: true},\n\t{Name: \"../../../federation/entity.graphql\", Input: `\n# a union of all types that use the @key directive\nunion _Entity = World\n\n# fake type to build resolver interfaces for users to implement\ntype Entity {\n\tfindHelloByID(id: String!,): Hello!\n\tfindWorldByID(id: String!,): World!\n}\n\ntype _Service {\n  sdl: String\n}\n\nextend type Query {\n  _entities(representations: [_Any!]!): [_Entity]!\n  _service: _Service!\n}\n`, BuiltIn: true},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_Entity_findHelloByID_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"id\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"id\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findWorldByID_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"id\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"id\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query__entities_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"representations\", ec.unmarshalN_Any2ᚕmapᚄ)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"representations\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Entity_findHelloByID(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findHelloByID,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindHelloByID(ctx, fc.Args[\"id\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNHello2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityinterfacesᚋgeneratedᚐHello,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findHelloByID(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"FieldContext.Child cannot be called on type INTERFACE\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findHelloByID_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findWorldByID(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findWorldByID,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindWorldByID(ctx, fc.Args[\"id\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNWorld2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityinterfacesᚋgeneratedᚐWorld,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findWorldByID(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_World_id(ctx, field)\n\t\t\tcase \"title\":\n\t\t\t\treturn ec.fieldContext_World_title(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type World\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findWorldByID_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query__entities(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query__entities,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.__resolve_entities(ctx, fc.Args[\"representations\"].([]map[string]any)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN_Entity2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query__entities(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type _Entity does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query__entities_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query__service(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query__service,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.__resolve__service(ctx)\n\t\t},\n\t\tnil,\n\t\tec.marshalN_Service2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐService,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query__service(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"sdl\":\n\t\t\t\treturn ec.fieldContext__Service_sdl(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type _Service\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.IntrospectType(fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___schema,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.IntrospectSchema()\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _World_id(ctx context.Context, field graphql.CollectedField, obj *World) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_World_id,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.ID, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_World_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"World\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _World_title(ctx context.Context, field graphql.CollectedField, obj *World) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_World_title,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Title, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_World_title(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"World\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) __Service_sdl(ctx context.Context, field graphql.CollectedField, obj *fedruntime.Service) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext__Service_sdl,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SDL, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2string,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext__Service_sdl(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"_Service\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_isRepeatable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsRepeatable, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_locations,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Locations, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__DirectiveLocation2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_defaultValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DefaultValue, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_types,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Types(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_queryType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.QueryType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_mutationType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.MutationType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_subscriptionType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SubscriptionType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_directives,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Directives(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_kind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Kind(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__TypeKind2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_specifiedByURL,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SpecifiedByURL(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_fields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_interfaces,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Interfaces(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_possibleTypes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PossibleTypes(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_enumValues,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_inputFields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.InputFields(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_ofType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.OfType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_isOneOf,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsOneOf(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOBoolean2bool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\nfunc (ec *executionContext) _Hello(ctx context.Context, sel ast.SelectionSet, obj Hello) graphql.Marshaler {\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\tcase World:\n\t\treturn ec._World(ctx, sel, &obj)\n\tcase *World:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._World(ctx, sel, obj)\n\tdefault:\n\t\tif typedObj, ok := obj.(graphql.Marshaler); ok {\n\t\t\treturn typedObj\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T; non-generated variants of Hello must implement graphql.Marshaler\", obj))\n\t\t}\n\t}\n}\n\nfunc (ec *executionContext) __Entity(ctx context.Context, sel ast.SelectionSet, obj fedruntime.Entity) graphql.Marshaler {\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\tcase World:\n\t\treturn ec._World(ctx, sel, &obj)\n\tcase *World:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._World(ctx, sel, obj)\n\tdefault:\n\t\tif typedObj, ok := obj.(graphql.Marshaler); ok {\n\t\t\treturn typedObj\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T; non-generated variants of _Entity must implement graphql.Marshaler\", obj))\n\t\t}\n\t}\n}\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar entityImplementors = []string{\"Entity\"}\n\nfunc (ec *executionContext) _Entity(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, entityImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Entity\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Entity\")\n\t\tcase \"findHelloByID\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findHelloByID(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findWorldByID\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findWorldByID(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"_entities\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query__entities(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"_service\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query__service(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar worldImplementors = []string{\"World\", \"Hello\", \"_Entity\"}\n\nfunc (ec *executionContext) _World(ctx context.Context, sel ast.SelectionSet, obj *World) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, worldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"World\")\n\t\tcase \"id\":\n\t\t\tout.Values[i] = ec._World_id(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"title\":\n\t\t\tout.Values[i] = ec._World_title(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar _ServiceImplementors = []string{\"_Service\"}\n\nfunc (ec *executionContext) __Service(ctx context.Context, sel ast.SelectionSet, obj *fedruntime.Service) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, _ServiceImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"_Service\")\n\t\tcase \"sdl\":\n\t\t\tout.Values[i] = ec.__Service_sdl(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNFieldSet2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNFieldSet2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNHello2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityinterfacesᚋgeneratedᚐHello(ctx context.Context, sel ast.SelectionSet, v Hello) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Hello(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNWorld2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityinterfacesᚋgeneratedᚐWorld(ctx context.Context, sel ast.SelectionSet, v World) graphql.Marshaler {\n\treturn ec._World(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNWorld2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityinterfacesᚋgeneratedᚐWorld(ctx context.Context, sel ast.SelectionSet, v *World) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._World(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN_Any2map(ctx context.Context, v any) (map[string]any, error) {\n\tres, err := graphql.UnmarshalMap(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN_Any2map(ctx context.Context, sel ast.SelectionSet, v map[string]any) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\tres := graphql.MarshalMap(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN_Any2ᚕmapᚄ(ctx context.Context, v any) ([]map[string]any, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]map[string]any, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN_Any2map(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN_Any2ᚕmapᚄ(ctx context.Context, sel ast.SelectionSet, v []map[string]any) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalN_Any2map(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN_Entity2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity(ctx context.Context, sel ast.SelectionSet, v []fedruntime.Entity) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalO_Entity2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN_Service2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐService(ctx context.Context, sel ast.SelectionSet, v fedruntime.Service) graphql.Marshaler {\n\treturn ec.__Service(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNfederation__Policy2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNfederation__Policy2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNfederation__Policy2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNfederation__Policy2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalNfederation__Policy2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNfederation__Policy2string(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalNfederation__Policy2ᚕᚕstringᚄ(ctx context.Context, v any) ([][]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([][]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNfederation__Policy2ᚕstringᚄ(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalNfederation__Policy2ᚕᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v [][]string) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNfederation__Policy2ᚕstringᚄ(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalNfederation__Scope2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNfederation__Scope2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNfederation__Scope2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNfederation__Scope2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalNfederation__Scope2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNfederation__Scope2string(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalNfederation__Scope2ᚕᚕstringᚄ(ctx context.Context, v any) ([][]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([][]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNfederation__Scope2ᚕstringᚄ(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalNfederation__Scope2ᚕᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v [][]string) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNfederation__Scope2ᚕstringᚄ(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNString2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalOString2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNString2string(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalO_Entity2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity(ctx context.Context, sel ast.SelectionSet, v fedruntime.Entity) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.__Entity(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "plugin/federation/testdata/entityinterfaces/generated/federation.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage generated\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"github.com/99designs/gqlgen/plugin/federation/fedruntime\"\n)\n\nvar (\n\tErrUnknownType  = errors.New(\"unknown type\")\n\tErrTypeNotFound = errors.New(\"type not found\")\n)\n\nfunc (ec *executionContext) __resolve__service(ctx context.Context) (fedruntime.Service, error) {\n\tif ec.DisableIntrospection {\n\t\treturn fedruntime.Service{}, errors.New(\"federated introspection disabled\")\n\t}\n\n\tvar sdl []string\n\n\tfor _, src := range sources {\n\t\tif src.BuiltIn {\n\t\t\tcontinue\n\t\t}\n\t\tsdl = append(sdl, src.Input)\n\t}\n\n\treturn fedruntime.Service{\n\t\tSDL: strings.Join(sdl, \"\\n\"),\n\t}, nil\n}\n\nfunc (ec *executionContext) __resolve_entities(ctx context.Context, representations []map[string]any) []fedruntime.Entity {\n\tlist := make([]fedruntime.Entity, len(representations))\n\n\trepsMap := ec.buildRepresentationGroups(ctx, representations)\n\n\tswitch len(repsMap) {\n\tcase 0:\n\t\treturn list\n\tcase 1:\n\t\tfor typeName, reps := range repsMap {\n\t\t\tec.resolveEntityGroup(ctx, typeName, reps, list)\n\t\t}\n\t\treturn list\n\tdefault:\n\t\tvar g sync.WaitGroup\n\t\tg.Add(len(repsMap))\n\t\tfor typeName, reps := range repsMap {\n\t\t\tgo func(typeName string, reps []EntityWithIndex) {\n\t\t\t\tec.resolveEntityGroup(ctx, typeName, reps, list)\n\t\t\t\tg.Done()\n\t\t\t}(typeName, reps)\n\t\t}\n\t\tg.Wait()\n\t\treturn list\n\t}\n}\n\ntype EntityWithIndex struct {\n\t// The index in the original representation array\n\tindex  int\n\tentity EntityRepresentation\n}\n\n// EntityRepresentation is the JSON representation of an entity sent by the Router\n// used as the inputs for us to resolve.\n//\n// We make it a map because we know the top level JSON is always an object.\ntype EntityRepresentation map[string]any\n\n// We group entities by typename so that we can parallelize their resolution.\n// This is particularly helpful when there are entity groups in multi mode.\nfunc (ec *executionContext) buildRepresentationGroups(\n\tctx context.Context,\n\trepresentations []map[string]any,\n) map[string][]EntityWithIndex {\n\trepsMap := make(map[string][]EntityWithIndex)\n\tfor i, rep := range representations {\n\t\ttypeName, ok := rep[\"__typename\"].(string)\n\t\tif !ok {\n\t\t\t// If there is no __typename, we just skip the representation;\n\t\t\t// we just won't be resolving these unknown types.\n\t\t\tec.Error(ctx, errors.New(\"__typename must be an existing string\"))\n\t\t\tcontinue\n\t\t}\n\n\t\trepsMap[typeName] = append(repsMap[typeName], EntityWithIndex{\n\t\t\tindex:  i,\n\t\t\tentity: rep,\n\t\t})\n\t}\n\n\treturn repsMap\n}\n\nfunc (ec *executionContext) resolveEntityGroup(\n\tctx context.Context,\n\ttypeName string,\n\treps []EntityWithIndex,\n\tlist []fedruntime.Entity,\n) {\n\tif isMulti(typeName) {\n\t\terr := ec.resolveManyEntities(ctx, typeName, reps, list)\n\t\tif err != nil {\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t} else {\n\t\t// if there are multiple entities to resolve, parallelize (similar to\n\t\t// graphql.FieldSet.Dispatch)\n\t\tvar e sync.WaitGroup\n\t\te.Add(len(reps))\n\t\tfor i, rep := range reps {\n\t\t\ti, rep := i, rep\n\t\t\tgo func(i int, rep EntityWithIndex) {\n\t\t\t\tentity, err := ec.resolveEntity(ctx, typeName, rep.entity)\n\t\t\t\tif err != nil {\n\t\t\t\t\tec.Error(ctx, err)\n\t\t\t\t} else {\n\t\t\t\t\tlist[rep.index] = entity\n\t\t\t\t}\n\t\t\t\te.Done()\n\t\t\t}(i, rep)\n\t\t}\n\t\te.Wait()\n\t}\n}\n\nfunc isMulti(typeName string) bool {\n\tswitch typeName {\n\tdefault:\n\t\treturn false\n\t}\n}\n\nfunc (ec *executionContext) resolveEntity(\n\tctx context.Context,\n\ttypeName string,\n\trep EntityRepresentation,\n) (e fedruntime.Entity, err error) {\n\t// we need to do our own panic handling, because we may be called in a\n\t// goroutine, where the usual panic handling can't catch us\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t}\n\t}()\n\n\tswitch typeName {\n\tcase \"Hello\":\n\t\tresolverName, err := entityResolverNameForHello(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"Hello\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findHelloByID\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"id\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findHelloByID(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindHelloByID(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"Hello\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"World\":\n\t\tresolverName, err := entityResolverNameForWorld(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"World\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findWorldByID\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"id\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findWorldByID(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindWorldByID(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"World\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\n\t}\n\treturn nil, fmt.Errorf(\"%w: %s\", ErrUnknownType, typeName)\n}\n\nfunc (ec *executionContext) resolveManyEntities(\n\tctx context.Context,\n\ttypeName string,\n\treps []EntityWithIndex,\n\tlist []fedruntime.Entity,\n) (err error) {\n\t// we need to do our own panic handling, because we may be called in a\n\t// goroutine, where the usual panic handling can't catch us\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t}\n\t}()\n\n\tswitch typeName {\n\n\tdefault:\n\t\treturn errors.New(\"unknown type: \" + typeName)\n\t}\n}\n\nfunc entityResolverNameForHello(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"id\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"id\\\" for Hello\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for Hello\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findHelloByID\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for Hello due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForWorld(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"id\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"id\\\" for World\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for World\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findWorldByID\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for World due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n"
  },
  {
    "path": "plugin/federation/testdata/entityinterfaces/generated/models_gen.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage generated\n\ntype Hello interface {\n\tIsEntity()\n\tIsHello()\n\tGetID() string\n\tGetTitle() string\n}\n\ntype Query struct {\n}\n\ntype World struct {\n\tID    string `json:\"id\"`\n\tTitle string `json:\"title\"`\n}\n\nfunc (World) IsHello()              {}\nfunc (this World) GetID() string    { return this.ID }\nfunc (this World) GetTitle() string { return this.Title }\n\nfunc (World) IsEntity() {}\n"
  },
  {
    "path": "plugin/federation/testdata/entityinterfaces/interface.graphql",
    "content": "extend schema\n  @link(url: \"https://specs.apollo.dev/federation/v2.3\",\n        import: [\"@key\"])\n\ninterface Hello @key(fields: \"id\"){\n  id: String!\n  title: String!\n}\n\ntype World implements Hello @key(fields: \"id\") {\n  id: String!\n  title: String!\n}"
  },
  {
    "path": "plugin/federation/testdata/entityinterfaces/interface.yml",
    "content": "schema:\n  - \"testdata/entityinterfaces/interface.graphql\"\nexec:\n  filename: testdata/entityinterfaces/generated/exec.go\nfederation:\n  filename: testdata/entityinterfaces/generated/federation.go\n  version: 2\nmodel:\n  filename: testdata/entityinterfaces/generated/models_gen.go"
  },
  {
    "path": "plugin/federation/testdata/entityresolver/entity.resolvers.go",
    "content": "package entityresolver\n\n// This file will be automatically regenerated based on the schema, any resolver\n// implementations\n// will be copied through when generating and any unknown code will be moved to the end.\n// Code generated by github.com/99designs/gqlgen version v0.17.88-dev\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/99designs/gqlgen/plugin/federation/testdata/entityresolver/generated\"\n\t\"github.com/99designs/gqlgen/plugin/federation/testdata/entityresolver/generated/model\"\n)\n\n// FindHelloByName is the resolver for the findHelloByName field.\nfunc (r *entityResolver) FindHelloByName(ctx context.Context, name string) (*model.Hello, error) {\n\treturn &model.Hello{\n\t\tName: name,\n\t}, nil\n}\n\n// FindHelloMultiSingleKeysByKey1AndKey2 is the resolver for the findHelloMultiSingleKeysByKey1AndKey2 field.\nfunc (r *entityResolver) FindHelloMultiSingleKeysByKey1AndKey2(ctx context.Context, key1 string, key2 string) (*model.HelloMultiSingleKeys, error) {\n\tpanic(fmt.Errorf(\"not implemented\"))\n}\n\n// FindHelloWithErrorsByName is the resolver for the findHelloWithErrorsByName field.\nfunc (r *entityResolver) FindHelloWithErrorsByName(ctx context.Context, name string) (*model.HelloWithErrors, error) {\n\tif name == \"inject error\" {\n\t\treturn nil, generated.ErrResolvingHelloWithErrorsByName\n\t} else if name == \"\" {\n\t\treturn nil, generated.ErrEmptyKeyResolvingHelloWithErrorsByName\n\t}\n\n\treturn &model.HelloWithErrors{\n\t\tName: name,\n\t}, nil\n}\n\n// FindManyMultiHelloByNames is the resolver for the findManyMultiHelloByNames field.\nfunc (r *entityResolver) FindManyMultiHelloByNames(ctx context.Context, reps []*model.MultiHelloByNamesInput) ([]*model.MultiHello, error) {\n\tresults := []*model.MultiHello{}\n\n\tfor _, item := range reps {\n\t\tresults = append(results, &model.MultiHello{\n\t\t\tName: item.Name + \" - from multiget\",\n\t\t})\n\t}\n\n\treturn results, nil\n}\n\n// FindManyMultiHelloMultipleRequiresByNames is the resolver for the findManyMultiHelloMultipleRequiresByNames field.\nfunc (r *entityResolver) FindManyMultiHelloMultipleRequiresByNames(ctx context.Context, reps []*model.MultiHelloMultipleRequiresByNamesInput) ([]*model.MultiHelloMultipleRequires, error) {\n\tresults := make([]*model.MultiHelloMultipleRequires, len(reps))\n\n\tfor i := range reps {\n\t\tresults[i] = &model.MultiHelloMultipleRequires{\n\t\t\tName: reps[i].Name,\n\t\t}\n\t}\n\n\treturn results, nil\n}\n\n// FindManyMultiHelloRequiresByNames is the resolver for the findManyMultiHelloRequiresByNames field.\nfunc (r *entityResolver) FindManyMultiHelloRequiresByNames(ctx context.Context, reps []*model.MultiHelloRequiresByNamesInput) ([]*model.MultiHelloRequires, error) {\n\tresults := make([]*model.MultiHelloRequires, len(reps))\n\n\tfor i := range reps {\n\t\tresults[i] = &model.MultiHelloRequires{\n\t\t\tName: reps[i].Name,\n\t\t}\n\t}\n\n\treturn results, nil\n}\n\n// FindManyMultiHelloWithErrorByNames is the resolver for the findManyMultiHelloWithErrorByNames field.\nfunc (r *entityResolver) FindManyMultiHelloWithErrorByNames(ctx context.Context, reps []*model.MultiHelloWithErrorByNamesInput) ([]*model.MultiHelloWithError, error) {\n\treturn nil, fmt.Errorf(\"error resolving MultiHelloWorldWithError\")\n}\n\n// FindManyMultiPlanetRequiresNestedByNames is the resolver for the findManyMultiPlanetRequiresNestedByNames field.\nfunc (r *entityResolver) FindManyMultiPlanetRequiresNestedByNames(ctx context.Context, reps []*model.MultiPlanetRequiresNestedByNamesInput) ([]*model.MultiPlanetRequiresNested, error) {\n\tworlds := map[string]*model.World{\n\t\t\"earth\": {\n\t\t\tFoo: \"A\",\n\t\t},\n\t\t\"mars\": {\n\t\t\tFoo: \"B\",\n\t\t},\n\t}\n\n\tresults := make([]*model.MultiPlanetRequiresNested, len(reps))\n\n\tfor i := range reps {\n\t\tname := reps[i].Name\n\t\tworld, ok := worlds[name]\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"unknown planet: %s\", name)\n\t\t}\n\n\t\tresults[i] = &model.MultiPlanetRequiresNested{\n\t\t\tName:  name,\n\t\t\tWorld: world,\n\t\t}\n\t}\n\n\treturn results, nil\n}\n\n// FindPlanetMultipleRequiresByName is the resolver for the findPlanetMultipleRequiresByName field.\nfunc (r *entityResolver) FindPlanetMultipleRequiresByName(ctx context.Context, name string) (*model.PlanetMultipleRequires, error) {\n\treturn &model.PlanetMultipleRequires{Name: name}, nil\n}\n\n// FindPlanetRequiresByName is the resolver for the findPlanetRequiresByName field.\nfunc (r *entityResolver) FindPlanetRequiresByName(ctx context.Context, name string) (*model.PlanetRequires, error) {\n\treturn &model.PlanetRequires{\n\t\tName: name,\n\t}, nil\n}\n\n// FindPlanetRequiresNestedByName is the resolver for the findPlanetRequiresNestedByName field.\nfunc (r *entityResolver) FindPlanetRequiresNestedByName(ctx context.Context, name string) (*model.PlanetRequiresNested, error) {\n\tworlds := map[string]*model.World{\n\t\t\"earth\": {\n\t\t\tFoo: \"A\",\n\t\t},\n\t\t\"mars\": {\n\t\t\tFoo: \"B\",\n\t\t},\n\t}\n\tworld, ok := worlds[name]\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"unknown planet: %s\", name)\n\t}\n\n\treturn &model.PlanetRequiresNested{\n\t\tName:  name,\n\t\tWorld: world,\n\t}, nil\n}\n\n// FindWorldByHelloNameAndFoo is the resolver for the findWorldByHelloNameAndFoo field.\nfunc (r *entityResolver) FindWorldByHelloNameAndFoo(ctx context.Context, helloName string, foo string) (*model.World, error) {\n\treturn &model.World{\n\t\tHello: &model.Hello{\n\t\t\tName: helloName,\n\t\t},\n\t\tFoo: foo,\n\t}, nil\n}\n\n// FindWorldNameByName is the resolver for the findWorldNameByName field.\nfunc (r *entityResolver) FindWorldNameByName(ctx context.Context, name string) (*model.WorldName, error) {\n\treturn &model.WorldName{\n\t\tName: name,\n\t}, nil\n}\n\n// FindWorldWithMultipleKeysByHelloNameAndFoo is the resolver for the findWorldWithMultipleKeysByHelloNameAndFoo field.\nfunc (r *entityResolver) FindWorldWithMultipleKeysByHelloNameAndFoo(ctx context.Context, helloName string, foo string) (*model.WorldWithMultipleKeys, error) {\n\treturn &model.WorldWithMultipleKeys{\n\t\tHello: &model.Hello{\n\t\t\tName: helloName,\n\t\t},\n\t\tFoo: foo,\n\t\tBar: FindWorldWithMultipleKeysByHelloNameAndFooBarValue,\n\t}, nil\n}\n\n// FindWorldWithMultipleKeysByBar is the resolver for the findWorldWithMultipleKeysByBar field.\nfunc (r *entityResolver) FindWorldWithMultipleKeysByBar(ctx context.Context, bar int) (*model.WorldWithMultipleKeys, error) {\n\treturn &model.WorldWithMultipleKeys{\n\t\tBar: bar,\n\t}, nil\n}\n\n// Entity returns generated.EntityResolver implementation.\nfunc (r *Resolver) Entity() generated.EntityResolver { return &entityResolver{r} }\n\ntype entityResolver struct{ *Resolver }\n"
  },
  {
    "path": "plugin/federation/testdata/entityresolver/generated/errors.go",
    "content": "package generated\n\nimport \"errors\"\n\n// Errors defined for retained code that we want to stick around between generations.\nvar (\n\tErrResolvingHelloWithErrorsByName         = errors.New(\"error resolving HelloWithErrorsByName\")\n\tErrEmptyKeyResolvingHelloWithErrorsByName = errors.New(\"error (empty key) resolving HelloWithErrorsByName\")\n)\n"
  },
  {
    "path": "plugin/federation/testdata/entityresolver/generated/exec.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage generated\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\t\"github.com/99designs/gqlgen/plugin/federation/fedruntime\"\n\t\"github.com/99designs/gqlgen/plugin/federation/testdata/entityresolver/generated/model\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n}\n\ntype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\ntype ResolverRoot interface {\n\tEntity() EntityResolver\n}\n\ntype DirectiveRoot struct {\n}\n\ntype ComplexityRoot struct {\n\tEntity struct {\n\t\tFindHelloByName                            func(childComplexity int, name string) int\n\t\tFindHelloMultiSingleKeysByKey1AndKey2      func(childComplexity int, key1 string, key2 string) int\n\t\tFindHelloWithErrorsByName                  func(childComplexity int, name string) int\n\t\tFindManyMultiHelloByNames                  func(childComplexity int, reps []*model.MultiHelloByNamesInput) int\n\t\tFindManyMultiHelloMultipleRequiresByNames  func(childComplexity int, reps []*model.MultiHelloMultipleRequiresByNamesInput) int\n\t\tFindManyMultiHelloRequiresByNames          func(childComplexity int, reps []*model.MultiHelloRequiresByNamesInput) int\n\t\tFindManyMultiHelloWithErrorByNames         func(childComplexity int, reps []*model.MultiHelloWithErrorByNamesInput) int\n\t\tFindManyMultiPlanetRequiresNestedByNames   func(childComplexity int, reps []*model.MultiPlanetRequiresNestedByNamesInput) int\n\t\tFindPlanetMultipleRequiresByName           func(childComplexity int, name string) int\n\t\tFindPlanetRequiresByName                   func(childComplexity int, name string) int\n\t\tFindPlanetRequiresNestedByName             func(childComplexity int, name string) int\n\t\tFindWorldByHelloNameAndFoo                 func(childComplexity int, helloName string, foo string) int\n\t\tFindWorldNameByName                        func(childComplexity int, name string) int\n\t\tFindWorldWithMultipleKeysByBar             func(childComplexity int, bar int) int\n\t\tFindWorldWithMultipleKeysByHelloNameAndFoo func(childComplexity int, helloName string, foo string) int\n\t}\n\n\tHello struct {\n\t\tName      func(childComplexity int) int\n\t\tSecondary func(childComplexity int) int\n\t}\n\n\tHelloMultiSingleKeys struct {\n\t\tKey1 func(childComplexity int) int\n\t\tKey2 func(childComplexity int) int\n\t}\n\n\tHelloWithErrors struct {\n\t\tName func(childComplexity int) int\n\t}\n\n\tMultiHello struct {\n\t\tName func(childComplexity int) int\n\t}\n\n\tMultiHelloMultipleRequires struct {\n\t\tKey1 func(childComplexity int) int\n\t\tKey2 func(childComplexity int) int\n\t\tKey3 func(childComplexity int) int\n\t\tName func(childComplexity int) int\n\t}\n\n\tMultiHelloRequires struct {\n\t\tKey1 func(childComplexity int) int\n\t\tKey2 func(childComplexity int) int\n\t\tName func(childComplexity int) int\n\t}\n\n\tMultiHelloWithError struct {\n\t\tName func(childComplexity int) int\n\t}\n\n\tMultiPlanetRequiresNested struct {\n\t\tName  func(childComplexity int) int\n\t\tSize  func(childComplexity int) int\n\t\tWorld func(childComplexity int) int\n\t}\n\n\tPlanetMultipleRequires struct {\n\t\tDensity  func(childComplexity int) int\n\t\tDiameter func(childComplexity int) int\n\t\tName     func(childComplexity int) int\n\t\tWeight   func(childComplexity int) int\n\t}\n\n\tPlanetRequires struct {\n\t\tDiameter func(childComplexity int) int\n\t\tName     func(childComplexity int) int\n\t\tSize     func(childComplexity int) int\n\t}\n\n\tPlanetRequiresNested struct {\n\t\tName  func(childComplexity int) int\n\t\tSize  func(childComplexity int) int\n\t\tWorld func(childComplexity int) int\n\t}\n\n\tQuery struct {\n\t\t__resolve__service func(childComplexity int) int\n\t\t__resolve_entities func(childComplexity int, representations []map[string]any) int\n\t}\n\n\tWorld struct {\n\t\tBar   func(childComplexity int) int\n\t\tFoo   func(childComplexity int) int\n\t\tHello func(childComplexity int) int\n\t}\n\n\tWorldName struct {\n\t\tName func(childComplexity int) int\n\t}\n\n\tWorldWithMultipleKeys struct {\n\t\tBar   func(childComplexity int) int\n\t\tFoo   func(childComplexity int) int\n\t\tHello func(childComplexity int) int\n\t}\n\n\t_Service struct {\n\t\tSDL func(childComplexity int) int\n\t}\n}\n\ntype EntityResolver interface {\n\tFindHelloByName(ctx context.Context, name string) (*model.Hello, error)\n\tFindHelloMultiSingleKeysByKey1AndKey2(ctx context.Context, key1 string, key2 string) (*model.HelloMultiSingleKeys, error)\n\tFindHelloWithErrorsByName(ctx context.Context, name string) (*model.HelloWithErrors, error)\n\tFindManyMultiHelloByNames(ctx context.Context, reps []*model.MultiHelloByNamesInput) ([]*model.MultiHello, error)\n\tFindManyMultiHelloMultipleRequiresByNames(ctx context.Context, reps []*model.MultiHelloMultipleRequiresByNamesInput) ([]*model.MultiHelloMultipleRequires, error)\n\tFindManyMultiHelloRequiresByNames(ctx context.Context, reps []*model.MultiHelloRequiresByNamesInput) ([]*model.MultiHelloRequires, error)\n\tFindManyMultiHelloWithErrorByNames(ctx context.Context, reps []*model.MultiHelloWithErrorByNamesInput) ([]*model.MultiHelloWithError, error)\n\tFindManyMultiPlanetRequiresNestedByNames(ctx context.Context, reps []*model.MultiPlanetRequiresNestedByNamesInput) ([]*model.MultiPlanetRequiresNested, error)\n\tFindPlanetMultipleRequiresByName(ctx context.Context, name string) (*model.PlanetMultipleRequires, error)\n\tFindPlanetRequiresByName(ctx context.Context, name string) (*model.PlanetRequires, error)\n\tFindPlanetRequiresNestedByName(ctx context.Context, name string) (*model.PlanetRequiresNested, error)\n\tFindWorldByHelloNameAndFoo(ctx context.Context, helloName string, foo string) (*model.World, error)\n\tFindWorldNameByName(ctx context.Context, name string) (*model.WorldName, error)\n\tFindWorldWithMultipleKeysByHelloNameAndFoo(ctx context.Context, helloName string, foo string) (*model.WorldWithMultipleKeys, error)\n\tFindWorldWithMultipleKeysByBar(ctx context.Context, bar int) (*model.WorldWithMultipleKeys, error)\n}\n\ntype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.SchemaData != nil {\n\t\treturn e.SchemaData\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := newExecutionContext(nil, e, nil)\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"Entity.findHelloByName\":\n\t\tif e.ComplexityRoot.Entity.FindHelloByName == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Entity_findHelloByName_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindHelloByName(childComplexity, args[\"name\"].(string)), true\n\tcase \"Entity.findHelloMultiSingleKeysByKey1AndKey2\":\n\t\tif e.ComplexityRoot.Entity.FindHelloMultiSingleKeysByKey1AndKey2 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Entity_findHelloMultiSingleKeysByKey1AndKey2_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindHelloMultiSingleKeysByKey1AndKey2(childComplexity, args[\"key1\"].(string), args[\"key2\"].(string)), true\n\tcase \"Entity.findHelloWithErrorsByName\":\n\t\tif e.ComplexityRoot.Entity.FindHelloWithErrorsByName == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Entity_findHelloWithErrorsByName_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindHelloWithErrorsByName(childComplexity, args[\"name\"].(string)), true\n\tcase \"Entity.findManyMultiHelloByNames\":\n\t\tif e.ComplexityRoot.Entity.FindManyMultiHelloByNames == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Entity_findManyMultiHelloByNames_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindManyMultiHelloByNames(childComplexity, args[\"reps\"].([]*model.MultiHelloByNamesInput)), true\n\tcase \"Entity.findManyMultiHelloMultipleRequiresByNames\":\n\t\tif e.ComplexityRoot.Entity.FindManyMultiHelloMultipleRequiresByNames == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Entity_findManyMultiHelloMultipleRequiresByNames_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindManyMultiHelloMultipleRequiresByNames(childComplexity, args[\"reps\"].([]*model.MultiHelloMultipleRequiresByNamesInput)), true\n\tcase \"Entity.findManyMultiHelloRequiresByNames\":\n\t\tif e.ComplexityRoot.Entity.FindManyMultiHelloRequiresByNames == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Entity_findManyMultiHelloRequiresByNames_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindManyMultiHelloRequiresByNames(childComplexity, args[\"reps\"].([]*model.MultiHelloRequiresByNamesInput)), true\n\tcase \"Entity.findManyMultiHelloWithErrorByNames\":\n\t\tif e.ComplexityRoot.Entity.FindManyMultiHelloWithErrorByNames == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Entity_findManyMultiHelloWithErrorByNames_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindManyMultiHelloWithErrorByNames(childComplexity, args[\"reps\"].([]*model.MultiHelloWithErrorByNamesInput)), true\n\tcase \"Entity.findManyMultiPlanetRequiresNestedByNames\":\n\t\tif e.ComplexityRoot.Entity.FindManyMultiPlanetRequiresNestedByNames == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Entity_findManyMultiPlanetRequiresNestedByNames_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindManyMultiPlanetRequiresNestedByNames(childComplexity, args[\"reps\"].([]*model.MultiPlanetRequiresNestedByNamesInput)), true\n\tcase \"Entity.findPlanetMultipleRequiresByName\":\n\t\tif e.ComplexityRoot.Entity.FindPlanetMultipleRequiresByName == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Entity_findPlanetMultipleRequiresByName_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindPlanetMultipleRequiresByName(childComplexity, args[\"name\"].(string)), true\n\tcase \"Entity.findPlanetRequiresByName\":\n\t\tif e.ComplexityRoot.Entity.FindPlanetRequiresByName == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Entity_findPlanetRequiresByName_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindPlanetRequiresByName(childComplexity, args[\"name\"].(string)), true\n\tcase \"Entity.findPlanetRequiresNestedByName\":\n\t\tif e.ComplexityRoot.Entity.FindPlanetRequiresNestedByName == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Entity_findPlanetRequiresNestedByName_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindPlanetRequiresNestedByName(childComplexity, args[\"name\"].(string)), true\n\tcase \"Entity.findWorldByHelloNameAndFoo\":\n\t\tif e.ComplexityRoot.Entity.FindWorldByHelloNameAndFoo == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Entity_findWorldByHelloNameAndFoo_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindWorldByHelloNameAndFoo(childComplexity, args[\"helloName\"].(string), args[\"foo\"].(string)), true\n\tcase \"Entity.findWorldNameByName\":\n\t\tif e.ComplexityRoot.Entity.FindWorldNameByName == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Entity_findWorldNameByName_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindWorldNameByName(childComplexity, args[\"name\"].(string)), true\n\tcase \"Entity.findWorldWithMultipleKeysByBar\":\n\t\tif e.ComplexityRoot.Entity.FindWorldWithMultipleKeysByBar == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Entity_findWorldWithMultipleKeysByBar_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindWorldWithMultipleKeysByBar(childComplexity, args[\"bar\"].(int)), true\n\tcase \"Entity.findWorldWithMultipleKeysByHelloNameAndFoo\":\n\t\tif e.ComplexityRoot.Entity.FindWorldWithMultipleKeysByHelloNameAndFoo == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Entity_findWorldWithMultipleKeysByHelloNameAndFoo_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindWorldWithMultipleKeysByHelloNameAndFoo(childComplexity, args[\"helloName\"].(string), args[\"foo\"].(string)), true\n\n\tcase \"Hello.name\":\n\t\tif e.ComplexityRoot.Hello.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Hello.Name(childComplexity), true\n\tcase \"Hello.secondary\":\n\t\tif e.ComplexityRoot.Hello.Secondary == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Hello.Secondary(childComplexity), true\n\n\tcase \"HelloMultiSingleKeys.key1\":\n\t\tif e.ComplexityRoot.HelloMultiSingleKeys.Key1 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.HelloMultiSingleKeys.Key1(childComplexity), true\n\tcase \"HelloMultiSingleKeys.key2\":\n\t\tif e.ComplexityRoot.HelloMultiSingleKeys.Key2 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.HelloMultiSingleKeys.Key2(childComplexity), true\n\n\tcase \"HelloWithErrors.name\":\n\t\tif e.ComplexityRoot.HelloWithErrors.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.HelloWithErrors.Name(childComplexity), true\n\n\tcase \"MultiHello.name\":\n\t\tif e.ComplexityRoot.MultiHello.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MultiHello.Name(childComplexity), true\n\n\tcase \"MultiHelloMultipleRequires.key1\":\n\t\tif e.ComplexityRoot.MultiHelloMultipleRequires.Key1 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MultiHelloMultipleRequires.Key1(childComplexity), true\n\tcase \"MultiHelloMultipleRequires.key2\":\n\t\tif e.ComplexityRoot.MultiHelloMultipleRequires.Key2 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MultiHelloMultipleRequires.Key2(childComplexity), true\n\tcase \"MultiHelloMultipleRequires.key3\":\n\t\tif e.ComplexityRoot.MultiHelloMultipleRequires.Key3 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MultiHelloMultipleRequires.Key3(childComplexity), true\n\tcase \"MultiHelloMultipleRequires.name\":\n\t\tif e.ComplexityRoot.MultiHelloMultipleRequires.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MultiHelloMultipleRequires.Name(childComplexity), true\n\n\tcase \"MultiHelloRequires.key1\":\n\t\tif e.ComplexityRoot.MultiHelloRequires.Key1 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MultiHelloRequires.Key1(childComplexity), true\n\tcase \"MultiHelloRequires.key2\":\n\t\tif e.ComplexityRoot.MultiHelloRequires.Key2 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MultiHelloRequires.Key2(childComplexity), true\n\tcase \"MultiHelloRequires.name\":\n\t\tif e.ComplexityRoot.MultiHelloRequires.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MultiHelloRequires.Name(childComplexity), true\n\n\tcase \"MultiHelloWithError.name\":\n\t\tif e.ComplexityRoot.MultiHelloWithError.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MultiHelloWithError.Name(childComplexity), true\n\n\tcase \"MultiPlanetRequiresNested.name\":\n\t\tif e.ComplexityRoot.MultiPlanetRequiresNested.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MultiPlanetRequiresNested.Name(childComplexity), true\n\tcase \"MultiPlanetRequiresNested.size\":\n\t\tif e.ComplexityRoot.MultiPlanetRequiresNested.Size == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MultiPlanetRequiresNested.Size(childComplexity), true\n\tcase \"MultiPlanetRequiresNested.world\":\n\t\tif e.ComplexityRoot.MultiPlanetRequiresNested.World == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MultiPlanetRequiresNested.World(childComplexity), true\n\n\tcase \"PlanetMultipleRequires.density\":\n\t\tif e.ComplexityRoot.PlanetMultipleRequires.Density == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PlanetMultipleRequires.Density(childComplexity), true\n\tcase \"PlanetMultipleRequires.diameter\":\n\t\tif e.ComplexityRoot.PlanetMultipleRequires.Diameter == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PlanetMultipleRequires.Diameter(childComplexity), true\n\tcase \"PlanetMultipleRequires.name\":\n\t\tif e.ComplexityRoot.PlanetMultipleRequires.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PlanetMultipleRequires.Name(childComplexity), true\n\tcase \"PlanetMultipleRequires.weight\":\n\t\tif e.ComplexityRoot.PlanetMultipleRequires.Weight == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PlanetMultipleRequires.Weight(childComplexity), true\n\n\tcase \"PlanetRequires.diameter\":\n\t\tif e.ComplexityRoot.PlanetRequires.Diameter == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PlanetRequires.Diameter(childComplexity), true\n\tcase \"PlanetRequires.name\":\n\t\tif e.ComplexityRoot.PlanetRequires.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PlanetRequires.Name(childComplexity), true\n\tcase \"PlanetRequires.size\":\n\t\tif e.ComplexityRoot.PlanetRequires.Size == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PlanetRequires.Size(childComplexity), true\n\n\tcase \"PlanetRequiresNested.name\":\n\t\tif e.ComplexityRoot.PlanetRequiresNested.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PlanetRequiresNested.Name(childComplexity), true\n\tcase \"PlanetRequiresNested.size\":\n\t\tif e.ComplexityRoot.PlanetRequiresNested.Size == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PlanetRequiresNested.Size(childComplexity), true\n\tcase \"PlanetRequiresNested.world\":\n\t\tif e.ComplexityRoot.PlanetRequiresNested.World == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PlanetRequiresNested.World(childComplexity), true\n\n\tcase \"Query._service\":\n\t\tif e.ComplexityRoot.Query.__resolve__service == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.__resolve__service(childComplexity), true\n\tcase \"Query._entities\":\n\t\tif e.ComplexityRoot.Query.__resolve_entities == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := ec.field_Query__entities_args(ctx, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.__resolve_entities(childComplexity, args[\"representations\"].([]map[string]any)), true\n\n\tcase \"World.bar\":\n\t\tif e.ComplexityRoot.World.Bar == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.World.Bar(childComplexity), true\n\tcase \"World.foo\":\n\t\tif e.ComplexityRoot.World.Foo == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.World.Foo(childComplexity), true\n\tcase \"World.hello\":\n\t\tif e.ComplexityRoot.World.Hello == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.World.Hello(childComplexity), true\n\n\tcase \"WorldName.name\":\n\t\tif e.ComplexityRoot.WorldName.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.WorldName.Name(childComplexity), true\n\n\tcase \"WorldWithMultipleKeys.bar\":\n\t\tif e.ComplexityRoot.WorldWithMultipleKeys.Bar == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.WorldWithMultipleKeys.Bar(childComplexity), true\n\tcase \"WorldWithMultipleKeys.foo\":\n\t\tif e.ComplexityRoot.WorldWithMultipleKeys.Foo == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.WorldWithMultipleKeys.Foo(childComplexity), true\n\tcase \"WorldWithMultipleKeys.hello\":\n\t\tif e.ComplexityRoot.WorldWithMultipleKeys.Hello == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.WorldWithMultipleKeys.Hello(childComplexity), true\n\n\tcase \"_Service.sdl\":\n\t\tif e.ComplexityRoot._Service.SDL == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot._Service.SDL(childComplexity), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap(\n\t\tec.unmarshalInputMultiHelloByNamesInput,\n\t\tec.unmarshalInputMultiHelloMultipleRequiresByNamesInput,\n\t\tec.unmarshalInputMultiHelloRequiresByNamesInput,\n\t\tec.unmarshalInputMultiHelloWithErrorByNamesInput,\n\t\tec.unmarshalInputMultiPlanetRequiresNestedByNamesInput,\n\t)\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"../schema.graphql\", Input: `directive @entityResolver(multi: Boolean) on OBJECT\n\ntype Hello @key(fields: \"name\") {\n    name: String!\n    secondary: String!\n}\n\ntype World @key(fields: \"hello { name } foo   \") {\n    foo: String!\n    bar: Int!\n    hello: Hello\n}\n\ntype WorldWithMultipleKeys @key(fields: \"hello { name } foo   \") @key(fields: \"bar\") {\n    foo: String!\n    bar: Int!\n    hello: Hello\n}\n\ntype WorldName @key(fields: \"name\") {\n    name: String!\n}\n\ntype HelloWithErrors @key(fields: \"name\") {\n    name: String!\n}\n\ntype PlanetRequires @key(fields: \"name\") {\n    name: String!\n    size: Int! @requires(fields: \"diameter\")\n    diameter: Int!\n}\n\ntype PlanetMultipleRequires @key(fields: \"name\") {\n    name: String! @external\n    diameter: Int! @external\n    density: Int! @external\n    weight: Int! @requires(fields: \"diameter density\")\n}\n\ntype PlanetRequiresNested @key(fields: \"name\") {\n    name: String! @external\n    world: World! @external\n    size: Int! @requires(fields: \"world{ foo }\")\n}\n\ntype MultiPlanetRequiresNested @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String! @external\n    world: World! @external\n    size: Int! @requires(fields: \"world{ foo }\")\n}\n\ntype MultiHello @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String!\n}\n\ntype MultiHelloWithError @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String!\n}\n\ntype HelloMultiSingleKeys @key(fields: \"key1 key2\") {\n    key1: String!\n    key2: String!\n}\n\ntype MultiHelloRequires @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String! @external\n    key1: String! @external\n    key2: String! @requires(fields: \"key1\")\n}\n\ntype MultiHelloMultipleRequires @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String! @external\n    key1: String! @external\n    key2: String! @external\n    key3: String! @requires(fields: \"key1 key2\")\n}\n`, BuiltIn: false},\n\t{Name: \"../../../federation/directives.graphql\", Input: `\n\tdirective @key(fields: _FieldSet!) repeatable on OBJECT | INTERFACE\n\tdirective @requires(fields: _FieldSet!) on FIELD_DEFINITION\n\tdirective @provides(fields: _FieldSet!) on FIELD_DEFINITION\n\tdirective @extends on OBJECT | INTERFACE\n\tdirective @external on FIELD_DEFINITION\n\tscalar _Any\n\tscalar _FieldSet\n`, BuiltIn: true},\n\t{Name: \"../../../federation/entity.graphql\", Input: `\n# a union of all types that use the @key directive\nunion _Entity = Hello | HelloMultiSingleKeys | HelloWithErrors | MultiHello | MultiHelloMultipleRequires | MultiHelloRequires | MultiHelloWithError | MultiPlanetRequiresNested | PlanetMultipleRequires | PlanetRequires | PlanetRequiresNested | World | WorldName | WorldWithMultipleKeys\n\ninput MultiHelloByNamesInput {\n\tName: String!\n}\n\ninput MultiHelloMultipleRequiresByNamesInput {\n\tName: String!\n}\n\ninput MultiHelloRequiresByNamesInput {\n\tName: String!\n}\n\ninput MultiHelloWithErrorByNamesInput {\n\tName: String!\n}\n\ninput MultiPlanetRequiresNestedByNamesInput {\n\tName: String!\n}\n\n# fake type to build resolver interfaces for users to implement\ntype Entity {\n\tfindHelloByName(name: String!,): Hello!\n\tfindHelloMultiSingleKeysByKey1AndKey2(key1: String!,key2: String!,): HelloMultiSingleKeys!\n\tfindHelloWithErrorsByName(name: String!,): HelloWithErrors!\n\tfindManyMultiHelloByNames(reps: [MultiHelloByNamesInput]!): [MultiHello]\n\tfindManyMultiHelloMultipleRequiresByNames(reps: [MultiHelloMultipleRequiresByNamesInput]!): [MultiHelloMultipleRequires]\n\tfindManyMultiHelloRequiresByNames(reps: [MultiHelloRequiresByNamesInput]!): [MultiHelloRequires]\n\tfindManyMultiHelloWithErrorByNames(reps: [MultiHelloWithErrorByNamesInput]!): [MultiHelloWithError]\n\tfindManyMultiPlanetRequiresNestedByNames(reps: [MultiPlanetRequiresNestedByNamesInput]!): [MultiPlanetRequiresNested]\n\tfindPlanetMultipleRequiresByName(name: String!,): PlanetMultipleRequires!\n\tfindPlanetRequiresByName(name: String!,): PlanetRequires!\n\tfindPlanetRequiresNestedByName(name: String!,): PlanetRequiresNested!\n\tfindWorldByHelloNameAndFoo(helloName: String!,foo: String!,): World!\n\tfindWorldNameByName(name: String!,): WorldName!\n\tfindWorldWithMultipleKeysByHelloNameAndFoo(helloName: String!,foo: String!,): WorldWithMultipleKeys!\n\tfindWorldWithMultipleKeysByBar(bar: Int!,): WorldWithMultipleKeys!\n}\n\ntype _Service {\n  sdl: String\n}\n\nextend type Query {\n  _entities(representations: [_Any!]!): [_Entity]!\n  _service: _Service!\n}\n`, BuiltIn: true},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_Entity_findHelloByName_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findHelloMultiSingleKeysByKey1AndKey2_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"key1\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"key1\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"key2\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"key2\"] = arg1\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findHelloWithErrorsByName_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findManyMultiHelloByNames_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"reps\", ec.unmarshalNMultiHelloByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiHelloByNamesInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"reps\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findManyMultiHelloMultipleRequiresByNames_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"reps\", ec.unmarshalNMultiHelloMultipleRequiresByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiHelloMultipleRequiresByNamesInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"reps\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findManyMultiHelloRequiresByNames_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"reps\", ec.unmarshalNMultiHelloRequiresByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiHelloRequiresByNamesInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"reps\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findManyMultiHelloWithErrorByNames_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"reps\", ec.unmarshalNMultiHelloWithErrorByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiHelloWithErrorByNamesInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"reps\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findManyMultiPlanetRequiresNestedByNames_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"reps\", ec.unmarshalNMultiPlanetRequiresNestedByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiPlanetRequiresNestedByNamesInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"reps\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findPlanetMultipleRequiresByName_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findPlanetRequiresByName_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findPlanetRequiresNestedByName_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findWorldByHelloNameAndFoo_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"helloName\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"helloName\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"foo\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"foo\"] = arg1\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findWorldNameByName_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findWorldWithMultipleKeysByBar_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"bar\", ec.unmarshalNInt2int)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"bar\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findWorldWithMultipleKeysByHelloNameAndFoo_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"helloName\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"helloName\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"foo\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"foo\"] = arg1\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query__entities_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"representations\", ec.unmarshalN_Any2ᚕmapᚄ)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"representations\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Entity_findHelloByName(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findHelloByName,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindHelloByName(ctx, fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNHello2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐHello,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findHelloByName(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_Hello_name(ctx, field)\n\t\t\tcase \"secondary\":\n\t\t\t\treturn ec.fieldContext_Hello_secondary(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Hello\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findHelloByName_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findHelloMultiSingleKeysByKey1AndKey2(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findHelloMultiSingleKeysByKey1AndKey2,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindHelloMultiSingleKeysByKey1AndKey2(ctx, fc.Args[\"key1\"].(string), fc.Args[\"key2\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNHelloMultiSingleKeys2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐHelloMultiSingleKeys,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findHelloMultiSingleKeysByKey1AndKey2(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"key1\":\n\t\t\t\treturn ec.fieldContext_HelloMultiSingleKeys_key1(ctx, field)\n\t\t\tcase \"key2\":\n\t\t\t\treturn ec.fieldContext_HelloMultiSingleKeys_key2(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type HelloMultiSingleKeys\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findHelloMultiSingleKeysByKey1AndKey2_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findHelloWithErrorsByName(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findHelloWithErrorsByName,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindHelloWithErrorsByName(ctx, fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNHelloWithErrors2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐHelloWithErrors,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findHelloWithErrorsByName(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_HelloWithErrors_name(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type HelloWithErrors\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findHelloWithErrorsByName_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findManyMultiHelloByNames(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findManyMultiHelloByNames,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindManyMultiHelloByNames(ctx, fc.Args[\"reps\"].([]*model.MultiHelloByNamesInput))\n\t\t},\n\t\tnil,\n\t\tec.marshalOMultiHello2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiHello,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findManyMultiHelloByNames(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_MultiHello_name(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type MultiHello\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findManyMultiHelloByNames_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findManyMultiHelloMultipleRequiresByNames(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findManyMultiHelloMultipleRequiresByNames,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindManyMultiHelloMultipleRequiresByNames(ctx, fc.Args[\"reps\"].([]*model.MultiHelloMultipleRequiresByNamesInput))\n\t\t},\n\t\tnil,\n\t\tec.marshalOMultiHelloMultipleRequires2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiHelloMultipleRequires,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findManyMultiHelloMultipleRequiresByNames(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_MultiHelloMultipleRequires_name(ctx, field)\n\t\t\tcase \"key1\":\n\t\t\t\treturn ec.fieldContext_MultiHelloMultipleRequires_key1(ctx, field)\n\t\t\tcase \"key2\":\n\t\t\t\treturn ec.fieldContext_MultiHelloMultipleRequires_key2(ctx, field)\n\t\t\tcase \"key3\":\n\t\t\t\treturn ec.fieldContext_MultiHelloMultipleRequires_key3(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type MultiHelloMultipleRequires\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findManyMultiHelloMultipleRequiresByNames_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findManyMultiHelloRequiresByNames(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findManyMultiHelloRequiresByNames,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindManyMultiHelloRequiresByNames(ctx, fc.Args[\"reps\"].([]*model.MultiHelloRequiresByNamesInput))\n\t\t},\n\t\tnil,\n\t\tec.marshalOMultiHelloRequires2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiHelloRequires,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findManyMultiHelloRequiresByNames(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_MultiHelloRequires_name(ctx, field)\n\t\t\tcase \"key1\":\n\t\t\t\treturn ec.fieldContext_MultiHelloRequires_key1(ctx, field)\n\t\t\tcase \"key2\":\n\t\t\t\treturn ec.fieldContext_MultiHelloRequires_key2(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type MultiHelloRequires\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findManyMultiHelloRequiresByNames_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findManyMultiHelloWithErrorByNames(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findManyMultiHelloWithErrorByNames,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindManyMultiHelloWithErrorByNames(ctx, fc.Args[\"reps\"].([]*model.MultiHelloWithErrorByNamesInput))\n\t\t},\n\t\tnil,\n\t\tec.marshalOMultiHelloWithError2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiHelloWithError,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findManyMultiHelloWithErrorByNames(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_MultiHelloWithError_name(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type MultiHelloWithError\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findManyMultiHelloWithErrorByNames_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findManyMultiPlanetRequiresNestedByNames(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findManyMultiPlanetRequiresNestedByNames,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindManyMultiPlanetRequiresNestedByNames(ctx, fc.Args[\"reps\"].([]*model.MultiPlanetRequiresNestedByNamesInput))\n\t\t},\n\t\tnil,\n\t\tec.marshalOMultiPlanetRequiresNested2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiPlanetRequiresNested,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findManyMultiPlanetRequiresNestedByNames(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_MultiPlanetRequiresNested_name(ctx, field)\n\t\t\tcase \"world\":\n\t\t\t\treturn ec.fieldContext_MultiPlanetRequiresNested_world(ctx, field)\n\t\t\tcase \"size\":\n\t\t\t\treturn ec.fieldContext_MultiPlanetRequiresNested_size(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type MultiPlanetRequiresNested\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findManyMultiPlanetRequiresNestedByNames_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findPlanetMultipleRequiresByName(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findPlanetMultipleRequiresByName,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindPlanetMultipleRequiresByName(ctx, fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNPlanetMultipleRequires2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐPlanetMultipleRequires,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findPlanetMultipleRequiresByName(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_PlanetMultipleRequires_name(ctx, field)\n\t\t\tcase \"diameter\":\n\t\t\t\treturn ec.fieldContext_PlanetMultipleRequires_diameter(ctx, field)\n\t\t\tcase \"density\":\n\t\t\t\treturn ec.fieldContext_PlanetMultipleRequires_density(ctx, field)\n\t\t\tcase \"weight\":\n\t\t\t\treturn ec.fieldContext_PlanetMultipleRequires_weight(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type PlanetMultipleRequires\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findPlanetMultipleRequiresByName_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findPlanetRequiresByName(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findPlanetRequiresByName,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindPlanetRequiresByName(ctx, fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNPlanetRequires2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐPlanetRequires,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findPlanetRequiresByName(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_PlanetRequires_name(ctx, field)\n\t\t\tcase \"size\":\n\t\t\t\treturn ec.fieldContext_PlanetRequires_size(ctx, field)\n\t\t\tcase \"diameter\":\n\t\t\t\treturn ec.fieldContext_PlanetRequires_diameter(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type PlanetRequires\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findPlanetRequiresByName_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findPlanetRequiresNestedByName(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findPlanetRequiresNestedByName,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindPlanetRequiresNestedByName(ctx, fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNPlanetRequiresNested2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐPlanetRequiresNested,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findPlanetRequiresNestedByName(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_PlanetRequiresNested_name(ctx, field)\n\t\t\tcase \"world\":\n\t\t\t\treturn ec.fieldContext_PlanetRequiresNested_world(ctx, field)\n\t\t\tcase \"size\":\n\t\t\t\treturn ec.fieldContext_PlanetRequiresNested_size(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type PlanetRequiresNested\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findPlanetRequiresNestedByName_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findWorldByHelloNameAndFoo(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findWorldByHelloNameAndFoo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindWorldByHelloNameAndFoo(ctx, fc.Args[\"helloName\"].(string), fc.Args[\"foo\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNWorld2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐWorld,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findWorldByHelloNameAndFoo(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"foo\":\n\t\t\t\treturn ec.fieldContext_World_foo(ctx, field)\n\t\t\tcase \"bar\":\n\t\t\t\treturn ec.fieldContext_World_bar(ctx, field)\n\t\t\tcase \"hello\":\n\t\t\t\treturn ec.fieldContext_World_hello(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type World\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findWorldByHelloNameAndFoo_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findWorldNameByName(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findWorldNameByName,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindWorldNameByName(ctx, fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNWorldName2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐWorldName,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findWorldNameByName(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_WorldName_name(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type WorldName\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findWorldNameByName_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findWorldWithMultipleKeysByHelloNameAndFoo(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findWorldWithMultipleKeysByHelloNameAndFoo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindWorldWithMultipleKeysByHelloNameAndFoo(ctx, fc.Args[\"helloName\"].(string), fc.Args[\"foo\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNWorldWithMultipleKeys2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐWorldWithMultipleKeys,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findWorldWithMultipleKeysByHelloNameAndFoo(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"foo\":\n\t\t\t\treturn ec.fieldContext_WorldWithMultipleKeys_foo(ctx, field)\n\t\t\tcase \"bar\":\n\t\t\t\treturn ec.fieldContext_WorldWithMultipleKeys_bar(ctx, field)\n\t\t\tcase \"hello\":\n\t\t\t\treturn ec.fieldContext_WorldWithMultipleKeys_hello(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type WorldWithMultipleKeys\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findWorldWithMultipleKeysByHelloNameAndFoo_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findWorldWithMultipleKeysByBar(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findWorldWithMultipleKeysByBar,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindWorldWithMultipleKeysByBar(ctx, fc.Args[\"bar\"].(int))\n\t\t},\n\t\tnil,\n\t\tec.marshalNWorldWithMultipleKeys2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐWorldWithMultipleKeys,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findWorldWithMultipleKeysByBar(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"foo\":\n\t\t\t\treturn ec.fieldContext_WorldWithMultipleKeys_foo(ctx, field)\n\t\t\tcase \"bar\":\n\t\t\t\treturn ec.fieldContext_WorldWithMultipleKeys_bar(ctx, field)\n\t\t\tcase \"hello\":\n\t\t\t\treturn ec.fieldContext_WorldWithMultipleKeys_hello(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type WorldWithMultipleKeys\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findWorldWithMultipleKeysByBar_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Hello_name(ctx context.Context, field graphql.CollectedField, obj *model.Hello) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Hello_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Hello_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Hello\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Hello_secondary(ctx context.Context, field graphql.CollectedField, obj *model.Hello) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Hello_secondary,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Secondary, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Hello_secondary(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Hello\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _HelloMultiSingleKeys_key1(ctx context.Context, field graphql.CollectedField, obj *model.HelloMultiSingleKeys) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_HelloMultiSingleKeys_key1,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Key1, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_HelloMultiSingleKeys_key1(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"HelloMultiSingleKeys\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _HelloMultiSingleKeys_key2(ctx context.Context, field graphql.CollectedField, obj *model.HelloMultiSingleKeys) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_HelloMultiSingleKeys_key2,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Key2, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_HelloMultiSingleKeys_key2(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"HelloMultiSingleKeys\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _HelloWithErrors_name(ctx context.Context, field graphql.CollectedField, obj *model.HelloWithErrors) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_HelloWithErrors_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_HelloWithErrors_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"HelloWithErrors\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiHello_name(ctx context.Context, field graphql.CollectedField, obj *model.MultiHello) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiHello_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiHello_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHello\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiHelloMultipleRequires_name(ctx context.Context, field graphql.CollectedField, obj *model.MultiHelloMultipleRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiHelloMultipleRequires_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiHelloMultipleRequires_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHelloMultipleRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiHelloMultipleRequires_key1(ctx context.Context, field graphql.CollectedField, obj *model.MultiHelloMultipleRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiHelloMultipleRequires_key1,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Key1, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiHelloMultipleRequires_key1(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHelloMultipleRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiHelloMultipleRequires_key2(ctx context.Context, field graphql.CollectedField, obj *model.MultiHelloMultipleRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiHelloMultipleRequires_key2,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Key2, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiHelloMultipleRequires_key2(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHelloMultipleRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiHelloMultipleRequires_key3(ctx context.Context, field graphql.CollectedField, obj *model.MultiHelloMultipleRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiHelloMultipleRequires_key3,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Key3, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiHelloMultipleRequires_key3(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHelloMultipleRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiHelloRequires_name(ctx context.Context, field graphql.CollectedField, obj *model.MultiHelloRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiHelloRequires_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiHelloRequires_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHelloRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiHelloRequires_key1(ctx context.Context, field graphql.CollectedField, obj *model.MultiHelloRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiHelloRequires_key1,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Key1, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiHelloRequires_key1(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHelloRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiHelloRequires_key2(ctx context.Context, field graphql.CollectedField, obj *model.MultiHelloRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiHelloRequires_key2,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Key2, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiHelloRequires_key2(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHelloRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiHelloWithError_name(ctx context.Context, field graphql.CollectedField, obj *model.MultiHelloWithError) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiHelloWithError_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiHelloWithError_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHelloWithError\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiPlanetRequiresNested_name(ctx context.Context, field graphql.CollectedField, obj *model.MultiPlanetRequiresNested) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiPlanetRequiresNested_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiPlanetRequiresNested_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiPlanetRequiresNested\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiPlanetRequiresNested_world(ctx context.Context, field graphql.CollectedField, obj *model.MultiPlanetRequiresNested) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiPlanetRequiresNested_world,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.World, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNWorld2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐWorld,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiPlanetRequiresNested_world(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiPlanetRequiresNested\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"foo\":\n\t\t\t\treturn ec.fieldContext_World_foo(ctx, field)\n\t\t\tcase \"bar\":\n\t\t\t\treturn ec.fieldContext_World_bar(ctx, field)\n\t\t\tcase \"hello\":\n\t\t\t\treturn ec.fieldContext_World_hello(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type World\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiPlanetRequiresNested_size(ctx context.Context, field graphql.CollectedField, obj *model.MultiPlanetRequiresNested) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiPlanetRequiresNested_size,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Size, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiPlanetRequiresNested_size(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiPlanetRequiresNested\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetMultipleRequires_name(ctx context.Context, field graphql.CollectedField, obj *model.PlanetMultipleRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetMultipleRequires_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetMultipleRequires_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetMultipleRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetMultipleRequires_diameter(ctx context.Context, field graphql.CollectedField, obj *model.PlanetMultipleRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetMultipleRequires_diameter,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Diameter, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetMultipleRequires_diameter(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetMultipleRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetMultipleRequires_density(ctx context.Context, field graphql.CollectedField, obj *model.PlanetMultipleRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetMultipleRequires_density,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Density, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetMultipleRequires_density(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetMultipleRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetMultipleRequires_weight(ctx context.Context, field graphql.CollectedField, obj *model.PlanetMultipleRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetMultipleRequires_weight,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Weight, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetMultipleRequires_weight(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetMultipleRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetRequires_name(ctx context.Context, field graphql.CollectedField, obj *model.PlanetRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetRequires_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetRequires_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetRequires_size(ctx context.Context, field graphql.CollectedField, obj *model.PlanetRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetRequires_size,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Size, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetRequires_size(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetRequires_diameter(ctx context.Context, field graphql.CollectedField, obj *model.PlanetRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetRequires_diameter,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Diameter, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetRequires_diameter(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetRequiresNested_name(ctx context.Context, field graphql.CollectedField, obj *model.PlanetRequiresNested) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetRequiresNested_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetRequiresNested_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetRequiresNested\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetRequiresNested_world(ctx context.Context, field graphql.CollectedField, obj *model.PlanetRequiresNested) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetRequiresNested_world,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.World, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNWorld2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐWorld,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetRequiresNested_world(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetRequiresNested\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"foo\":\n\t\t\t\treturn ec.fieldContext_World_foo(ctx, field)\n\t\t\tcase \"bar\":\n\t\t\t\treturn ec.fieldContext_World_bar(ctx, field)\n\t\t\tcase \"hello\":\n\t\t\t\treturn ec.fieldContext_World_hello(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type World\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetRequiresNested_size(ctx context.Context, field graphql.CollectedField, obj *model.PlanetRequiresNested) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetRequiresNested_size,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Size, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetRequiresNested_size(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetRequiresNested\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query__entities(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query__entities,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.__resolve_entities(ctx, fc.Args[\"representations\"].([]map[string]any)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN_Entity2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query__entities(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type _Entity does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query__entities_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query__service(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query__service,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.__resolve__service(ctx)\n\t\t},\n\t\tnil,\n\t\tec.marshalN_Service2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐService,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query__service(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"sdl\":\n\t\t\t\treturn ec.fieldContext__Service_sdl(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type _Service\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.IntrospectType(fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___schema,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.IntrospectSchema()\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _World_foo(ctx context.Context, field graphql.CollectedField, obj *model.World) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_World_foo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Foo, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_World_foo(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"World\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _World_bar(ctx context.Context, field graphql.CollectedField, obj *model.World) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_World_bar,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Bar, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_World_bar(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"World\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _World_hello(ctx context.Context, field graphql.CollectedField, obj *model.World) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_World_hello,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Hello, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOHello2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐHello,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_World_hello(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"World\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_Hello_name(ctx, field)\n\t\t\tcase \"secondary\":\n\t\t\t\treturn ec.fieldContext_Hello_secondary(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Hello\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _WorldName_name(ctx context.Context, field graphql.CollectedField, obj *model.WorldName) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_WorldName_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_WorldName_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"WorldName\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _WorldWithMultipleKeys_foo(ctx context.Context, field graphql.CollectedField, obj *model.WorldWithMultipleKeys) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_WorldWithMultipleKeys_foo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Foo, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_WorldWithMultipleKeys_foo(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"WorldWithMultipleKeys\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _WorldWithMultipleKeys_bar(ctx context.Context, field graphql.CollectedField, obj *model.WorldWithMultipleKeys) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_WorldWithMultipleKeys_bar,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Bar, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_WorldWithMultipleKeys_bar(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"WorldWithMultipleKeys\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _WorldWithMultipleKeys_hello(ctx context.Context, field graphql.CollectedField, obj *model.WorldWithMultipleKeys) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_WorldWithMultipleKeys_hello,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Hello, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOHello2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐHello,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_WorldWithMultipleKeys_hello(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"WorldWithMultipleKeys\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_Hello_name(ctx, field)\n\t\t\tcase \"secondary\":\n\t\t\t\treturn ec.fieldContext_Hello_secondary(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Hello\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) __Service_sdl(ctx context.Context, field graphql.CollectedField, obj *fedruntime.Service) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext__Service_sdl,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SDL, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2string,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext__Service_sdl(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"_Service\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_isRepeatable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsRepeatable, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_locations,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Locations, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__DirectiveLocation2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_defaultValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DefaultValue, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_types,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Types(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_queryType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.QueryType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_mutationType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.MutationType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_subscriptionType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SubscriptionType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_directives,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Directives(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_kind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Kind(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__TypeKind2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_specifiedByURL,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SpecifiedByURL(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_fields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_interfaces,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Interfaces(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_possibleTypes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PossibleTypes(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_enumValues,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_inputFields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.InputFields(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_ofType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.OfType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_isOneOf,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsOneOf(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOBoolean2bool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalInputMultiHelloByNamesInput(ctx context.Context, obj any) (model.MultiHelloByNamesInput, error) {\n\tvar it model.MultiHelloByNamesInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"Name\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"Name\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"Name\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Name = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputMultiHelloMultipleRequiresByNamesInput(ctx context.Context, obj any) (model.MultiHelloMultipleRequiresByNamesInput, error) {\n\tvar it model.MultiHelloMultipleRequiresByNamesInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"Name\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"Name\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"Name\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Name = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputMultiHelloRequiresByNamesInput(ctx context.Context, obj any) (model.MultiHelloRequiresByNamesInput, error) {\n\tvar it model.MultiHelloRequiresByNamesInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"Name\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"Name\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"Name\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Name = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputMultiHelloWithErrorByNamesInput(ctx context.Context, obj any) (model.MultiHelloWithErrorByNamesInput, error) {\n\tvar it model.MultiHelloWithErrorByNamesInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"Name\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"Name\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"Name\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Name = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputMultiPlanetRequiresNestedByNamesInput(ctx context.Context, obj any) (model.MultiPlanetRequiresNestedByNamesInput, error) {\n\tvar it model.MultiPlanetRequiresNestedByNamesInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"Name\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"Name\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"Name\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Name = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\nfunc (ec *executionContext) __Entity(ctx context.Context, sel ast.SelectionSet, obj fedruntime.Entity) graphql.Marshaler {\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\tcase model.WorldWithMultipleKeys:\n\t\treturn ec._WorldWithMultipleKeys(ctx, sel, &obj)\n\tcase *model.WorldWithMultipleKeys:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._WorldWithMultipleKeys(ctx, sel, obj)\n\tcase model.WorldName:\n\t\treturn ec._WorldName(ctx, sel, &obj)\n\tcase *model.WorldName:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._WorldName(ctx, sel, obj)\n\tcase model.World:\n\t\treturn ec._World(ctx, sel, &obj)\n\tcase *model.World:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._World(ctx, sel, obj)\n\tcase model.PlanetRequiresNested:\n\t\treturn ec._PlanetRequiresNested(ctx, sel, &obj)\n\tcase *model.PlanetRequiresNested:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._PlanetRequiresNested(ctx, sel, obj)\n\tcase model.PlanetRequires:\n\t\treturn ec._PlanetRequires(ctx, sel, &obj)\n\tcase *model.PlanetRequires:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._PlanetRequires(ctx, sel, obj)\n\tcase model.PlanetMultipleRequires:\n\t\treturn ec._PlanetMultipleRequires(ctx, sel, &obj)\n\tcase *model.PlanetMultipleRequires:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._PlanetMultipleRequires(ctx, sel, obj)\n\tcase model.MultiPlanetRequiresNested:\n\t\treturn ec._MultiPlanetRequiresNested(ctx, sel, &obj)\n\tcase *model.MultiPlanetRequiresNested:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._MultiPlanetRequiresNested(ctx, sel, obj)\n\tcase model.MultiHelloWithError:\n\t\treturn ec._MultiHelloWithError(ctx, sel, &obj)\n\tcase *model.MultiHelloWithError:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._MultiHelloWithError(ctx, sel, obj)\n\tcase model.MultiHelloRequires:\n\t\treturn ec._MultiHelloRequires(ctx, sel, &obj)\n\tcase *model.MultiHelloRequires:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._MultiHelloRequires(ctx, sel, obj)\n\tcase model.MultiHelloMultipleRequires:\n\t\treturn ec._MultiHelloMultipleRequires(ctx, sel, &obj)\n\tcase *model.MultiHelloMultipleRequires:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._MultiHelloMultipleRequires(ctx, sel, obj)\n\tcase model.MultiHello:\n\t\treturn ec._MultiHello(ctx, sel, &obj)\n\tcase *model.MultiHello:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._MultiHello(ctx, sel, obj)\n\tcase model.HelloWithErrors:\n\t\treturn ec._HelloWithErrors(ctx, sel, &obj)\n\tcase *model.HelloWithErrors:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._HelloWithErrors(ctx, sel, obj)\n\tcase model.HelloMultiSingleKeys:\n\t\treturn ec._HelloMultiSingleKeys(ctx, sel, &obj)\n\tcase *model.HelloMultiSingleKeys:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._HelloMultiSingleKeys(ctx, sel, obj)\n\tcase model.Hello:\n\t\treturn ec._Hello(ctx, sel, &obj)\n\tcase *model.Hello:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Hello(ctx, sel, obj)\n\tdefault:\n\t\tif typedObj, ok := obj.(graphql.Marshaler); ok {\n\t\t\treturn typedObj\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T; non-generated variants of _Entity must implement graphql.Marshaler\", obj))\n\t\t}\n\t}\n}\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar entityImplementors = []string{\"Entity\"}\n\nfunc (ec *executionContext) _Entity(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, entityImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Entity\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Entity\")\n\t\tcase \"findHelloByName\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findHelloByName(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findHelloMultiSingleKeysByKey1AndKey2\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findHelloMultiSingleKeysByKey1AndKey2(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findHelloWithErrorsByName\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findHelloWithErrorsByName(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findManyMultiHelloByNames\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findManyMultiHelloByNames(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findManyMultiHelloMultipleRequiresByNames\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findManyMultiHelloMultipleRequiresByNames(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findManyMultiHelloRequiresByNames\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findManyMultiHelloRequiresByNames(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findManyMultiHelloWithErrorByNames\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findManyMultiHelloWithErrorByNames(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findManyMultiPlanetRequiresNestedByNames\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findManyMultiPlanetRequiresNestedByNames(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findPlanetMultipleRequiresByName\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findPlanetMultipleRequiresByName(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findPlanetRequiresByName\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findPlanetRequiresByName(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findPlanetRequiresNestedByName\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findPlanetRequiresNestedByName(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findWorldByHelloNameAndFoo\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findWorldByHelloNameAndFoo(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findWorldNameByName\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findWorldNameByName(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findWorldWithMultipleKeysByHelloNameAndFoo\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findWorldWithMultipleKeysByHelloNameAndFoo(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findWorldWithMultipleKeysByBar\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findWorldWithMultipleKeysByBar(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar helloImplementors = []string{\"Hello\", \"_Entity\"}\n\nfunc (ec *executionContext) _Hello(ctx context.Context, sel ast.SelectionSet, obj *model.Hello) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, helloImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Hello\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._Hello_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"secondary\":\n\t\t\tout.Values[i] = ec._Hello_secondary(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar helloMultiSingleKeysImplementors = []string{\"HelloMultiSingleKeys\", \"_Entity\"}\n\nfunc (ec *executionContext) _HelloMultiSingleKeys(ctx context.Context, sel ast.SelectionSet, obj *model.HelloMultiSingleKeys) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, helloMultiSingleKeysImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"HelloMultiSingleKeys\")\n\t\tcase \"key1\":\n\t\t\tout.Values[i] = ec._HelloMultiSingleKeys_key1(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"key2\":\n\t\t\tout.Values[i] = ec._HelloMultiSingleKeys_key2(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar helloWithErrorsImplementors = []string{\"HelloWithErrors\", \"_Entity\"}\n\nfunc (ec *executionContext) _HelloWithErrors(ctx context.Context, sel ast.SelectionSet, obj *model.HelloWithErrors) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, helloWithErrorsImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"HelloWithErrors\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._HelloWithErrors_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar multiHelloImplementors = []string{\"MultiHello\", \"_Entity\"}\n\nfunc (ec *executionContext) _MultiHello(ctx context.Context, sel ast.SelectionSet, obj *model.MultiHello) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, multiHelloImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"MultiHello\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._MultiHello_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar multiHelloMultipleRequiresImplementors = []string{\"MultiHelloMultipleRequires\", \"_Entity\"}\n\nfunc (ec *executionContext) _MultiHelloMultipleRequires(ctx context.Context, sel ast.SelectionSet, obj *model.MultiHelloMultipleRequires) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, multiHelloMultipleRequiresImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"MultiHelloMultipleRequires\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._MultiHelloMultipleRequires_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"key1\":\n\t\t\tout.Values[i] = ec._MultiHelloMultipleRequires_key1(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"key2\":\n\t\t\tout.Values[i] = ec._MultiHelloMultipleRequires_key2(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"key3\":\n\t\t\tout.Values[i] = ec._MultiHelloMultipleRequires_key3(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar multiHelloRequiresImplementors = []string{\"MultiHelloRequires\", \"_Entity\"}\n\nfunc (ec *executionContext) _MultiHelloRequires(ctx context.Context, sel ast.SelectionSet, obj *model.MultiHelloRequires) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, multiHelloRequiresImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"MultiHelloRequires\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._MultiHelloRequires_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"key1\":\n\t\t\tout.Values[i] = ec._MultiHelloRequires_key1(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"key2\":\n\t\t\tout.Values[i] = ec._MultiHelloRequires_key2(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar multiHelloWithErrorImplementors = []string{\"MultiHelloWithError\", \"_Entity\"}\n\nfunc (ec *executionContext) _MultiHelloWithError(ctx context.Context, sel ast.SelectionSet, obj *model.MultiHelloWithError) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, multiHelloWithErrorImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"MultiHelloWithError\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._MultiHelloWithError_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar multiPlanetRequiresNestedImplementors = []string{\"MultiPlanetRequiresNested\", \"_Entity\"}\n\nfunc (ec *executionContext) _MultiPlanetRequiresNested(ctx context.Context, sel ast.SelectionSet, obj *model.MultiPlanetRequiresNested) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, multiPlanetRequiresNestedImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"MultiPlanetRequiresNested\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._MultiPlanetRequiresNested_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"world\":\n\t\t\tout.Values[i] = ec._MultiPlanetRequiresNested_world(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"size\":\n\t\t\tout.Values[i] = ec._MultiPlanetRequiresNested_size(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar planetMultipleRequiresImplementors = []string{\"PlanetMultipleRequires\", \"_Entity\"}\n\nfunc (ec *executionContext) _PlanetMultipleRequires(ctx context.Context, sel ast.SelectionSet, obj *model.PlanetMultipleRequires) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, planetMultipleRequiresImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"PlanetMultipleRequires\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._PlanetMultipleRequires_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"diameter\":\n\t\t\tout.Values[i] = ec._PlanetMultipleRequires_diameter(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"density\":\n\t\t\tout.Values[i] = ec._PlanetMultipleRequires_density(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"weight\":\n\t\t\tout.Values[i] = ec._PlanetMultipleRequires_weight(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar planetRequiresImplementors = []string{\"PlanetRequires\", \"_Entity\"}\n\nfunc (ec *executionContext) _PlanetRequires(ctx context.Context, sel ast.SelectionSet, obj *model.PlanetRequires) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, planetRequiresImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"PlanetRequires\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._PlanetRequires_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"size\":\n\t\t\tout.Values[i] = ec._PlanetRequires_size(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"diameter\":\n\t\t\tout.Values[i] = ec._PlanetRequires_diameter(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar planetRequiresNestedImplementors = []string{\"PlanetRequiresNested\", \"_Entity\"}\n\nfunc (ec *executionContext) _PlanetRequiresNested(ctx context.Context, sel ast.SelectionSet, obj *model.PlanetRequiresNested) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, planetRequiresNestedImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"PlanetRequiresNested\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._PlanetRequiresNested_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"world\":\n\t\t\tout.Values[i] = ec._PlanetRequiresNested_world(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"size\":\n\t\t\tout.Values[i] = ec._PlanetRequiresNested_size(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"_entities\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query__entities(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"_service\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query__service(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar worldImplementors = []string{\"World\", \"_Entity\"}\n\nfunc (ec *executionContext) _World(ctx context.Context, sel ast.SelectionSet, obj *model.World) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, worldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"World\")\n\t\tcase \"foo\":\n\t\t\tout.Values[i] = ec._World_foo(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"bar\":\n\t\t\tout.Values[i] = ec._World_bar(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"hello\":\n\t\t\tout.Values[i] = ec._World_hello(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar worldNameImplementors = []string{\"WorldName\", \"_Entity\"}\n\nfunc (ec *executionContext) _WorldName(ctx context.Context, sel ast.SelectionSet, obj *model.WorldName) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, worldNameImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"WorldName\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._WorldName_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar worldWithMultipleKeysImplementors = []string{\"WorldWithMultipleKeys\", \"_Entity\"}\n\nfunc (ec *executionContext) _WorldWithMultipleKeys(ctx context.Context, sel ast.SelectionSet, obj *model.WorldWithMultipleKeys) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, worldWithMultipleKeysImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"WorldWithMultipleKeys\")\n\t\tcase \"foo\":\n\t\t\tout.Values[i] = ec._WorldWithMultipleKeys_foo(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"bar\":\n\t\t\tout.Values[i] = ec._WorldWithMultipleKeys_bar(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"hello\":\n\t\t\tout.Values[i] = ec._WorldWithMultipleKeys_hello(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar _ServiceImplementors = []string{\"_Service\"}\n\nfunc (ec *executionContext) __Service(ctx context.Context, sel ast.SelectionSet, obj *fedruntime.Service) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, _ServiceImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"_Service\")\n\t\tcase \"sdl\":\n\t\t\tout.Values[i] = ec.__Service_sdl(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNHello2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐHello(ctx context.Context, sel ast.SelectionSet, v model.Hello) graphql.Marshaler {\n\treturn ec._Hello(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNHello2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐHello(ctx context.Context, sel ast.SelectionSet, v *model.Hello) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Hello(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNHelloMultiSingleKeys2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐHelloMultiSingleKeys(ctx context.Context, sel ast.SelectionSet, v model.HelloMultiSingleKeys) graphql.Marshaler {\n\treturn ec._HelloMultiSingleKeys(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNHelloMultiSingleKeys2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐHelloMultiSingleKeys(ctx context.Context, sel ast.SelectionSet, v *model.HelloMultiSingleKeys) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._HelloMultiSingleKeys(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNHelloWithErrors2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐHelloWithErrors(ctx context.Context, sel ast.SelectionSet, v model.HelloWithErrors) graphql.Marshaler {\n\treturn ec._HelloWithErrors(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNHelloWithErrors2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐHelloWithErrors(ctx context.Context, sel ast.SelectionSet, v *model.HelloWithErrors) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._HelloWithErrors(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNInt2int(ctx context.Context, v any) (int, error) {\n\tres, err := graphql.UnmarshalInt(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNInt2int(ctx context.Context, sel ast.SelectionSet, v int) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalInt(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNMultiHelloByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiHelloByNamesInput(ctx context.Context, v any) ([]*model.MultiHelloByNamesInput, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]*model.MultiHelloByNamesInput, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalOMultiHelloByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiHelloByNamesInput(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) unmarshalNMultiHelloMultipleRequiresByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiHelloMultipleRequiresByNamesInput(ctx context.Context, v any) ([]*model.MultiHelloMultipleRequiresByNamesInput, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]*model.MultiHelloMultipleRequiresByNamesInput, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalOMultiHelloMultipleRequiresByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiHelloMultipleRequiresByNamesInput(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) unmarshalNMultiHelloRequiresByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiHelloRequiresByNamesInput(ctx context.Context, v any) ([]*model.MultiHelloRequiresByNamesInput, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]*model.MultiHelloRequiresByNamesInput, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalOMultiHelloRequiresByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiHelloRequiresByNamesInput(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) unmarshalNMultiHelloWithErrorByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiHelloWithErrorByNamesInput(ctx context.Context, v any) ([]*model.MultiHelloWithErrorByNamesInput, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]*model.MultiHelloWithErrorByNamesInput, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalOMultiHelloWithErrorByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiHelloWithErrorByNamesInput(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) unmarshalNMultiPlanetRequiresNestedByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiPlanetRequiresNestedByNamesInput(ctx context.Context, v any) ([]*model.MultiPlanetRequiresNestedByNamesInput, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]*model.MultiPlanetRequiresNestedByNamesInput, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalOMultiPlanetRequiresNestedByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiPlanetRequiresNestedByNamesInput(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalNPlanetMultipleRequires2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐPlanetMultipleRequires(ctx context.Context, sel ast.SelectionSet, v model.PlanetMultipleRequires) graphql.Marshaler {\n\treturn ec._PlanetMultipleRequires(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNPlanetMultipleRequires2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐPlanetMultipleRequires(ctx context.Context, sel ast.SelectionSet, v *model.PlanetMultipleRequires) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._PlanetMultipleRequires(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNPlanetRequires2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐPlanetRequires(ctx context.Context, sel ast.SelectionSet, v model.PlanetRequires) graphql.Marshaler {\n\treturn ec._PlanetRequires(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNPlanetRequires2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐPlanetRequires(ctx context.Context, sel ast.SelectionSet, v *model.PlanetRequires) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._PlanetRequires(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNPlanetRequiresNested2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐPlanetRequiresNested(ctx context.Context, sel ast.SelectionSet, v model.PlanetRequiresNested) graphql.Marshaler {\n\treturn ec._PlanetRequiresNested(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNPlanetRequiresNested2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐPlanetRequiresNested(ctx context.Context, sel ast.SelectionSet, v *model.PlanetRequiresNested) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._PlanetRequiresNested(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNWorld2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐWorld(ctx context.Context, sel ast.SelectionSet, v model.World) graphql.Marshaler {\n\treturn ec._World(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNWorld2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐWorld(ctx context.Context, sel ast.SelectionSet, v *model.World) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._World(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNWorldName2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐWorldName(ctx context.Context, sel ast.SelectionSet, v model.WorldName) graphql.Marshaler {\n\treturn ec._WorldName(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNWorldName2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐWorldName(ctx context.Context, sel ast.SelectionSet, v *model.WorldName) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._WorldName(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNWorldWithMultipleKeys2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐWorldWithMultipleKeys(ctx context.Context, sel ast.SelectionSet, v model.WorldWithMultipleKeys) graphql.Marshaler {\n\treturn ec._WorldWithMultipleKeys(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNWorldWithMultipleKeys2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐWorldWithMultipleKeys(ctx context.Context, sel ast.SelectionSet, v *model.WorldWithMultipleKeys) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._WorldWithMultipleKeys(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN_Any2map(ctx context.Context, v any) (map[string]any, error) {\n\tres, err := graphql.UnmarshalMap(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN_Any2map(ctx context.Context, sel ast.SelectionSet, v map[string]any) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\tres := graphql.MarshalMap(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN_Any2ᚕmapᚄ(ctx context.Context, v any) ([]map[string]any, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]map[string]any, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN_Any2map(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN_Any2ᚕmapᚄ(ctx context.Context, sel ast.SelectionSet, v []map[string]any) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalN_Any2map(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN_Entity2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity(ctx context.Context, sel ast.SelectionSet, v []fedruntime.Entity) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalO_Entity2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN_FieldSet2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN_FieldSet2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalN_Service2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐService(ctx context.Context, sel ast.SelectionSet, v fedruntime.Service) graphql.Marshaler {\n\treturn ec.__Service(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalOHello2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐHello(ctx context.Context, sel ast.SelectionSet, v *model.Hello) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Hello(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalOMultiHello2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiHello(ctx context.Context, sel ast.SelectionSet, v []*model.MultiHello) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalOMultiHello2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiHello(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOMultiHello2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiHello(ctx context.Context, sel ast.SelectionSet, v *model.MultiHello) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._MultiHello(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOMultiHelloByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiHelloByNamesInput(ctx context.Context, v any) (*model.MultiHelloByNamesInput, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputMultiHelloByNamesInput(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOMultiHelloMultipleRequires2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiHelloMultipleRequires(ctx context.Context, sel ast.SelectionSet, v []*model.MultiHelloMultipleRequires) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalOMultiHelloMultipleRequires2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiHelloMultipleRequires(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOMultiHelloMultipleRequires2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiHelloMultipleRequires(ctx context.Context, sel ast.SelectionSet, v *model.MultiHelloMultipleRequires) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._MultiHelloMultipleRequires(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOMultiHelloMultipleRequiresByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiHelloMultipleRequiresByNamesInput(ctx context.Context, v any) (*model.MultiHelloMultipleRequiresByNamesInput, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputMultiHelloMultipleRequiresByNamesInput(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOMultiHelloRequires2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiHelloRequires(ctx context.Context, sel ast.SelectionSet, v []*model.MultiHelloRequires) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalOMultiHelloRequires2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiHelloRequires(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOMultiHelloRequires2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiHelloRequires(ctx context.Context, sel ast.SelectionSet, v *model.MultiHelloRequires) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._MultiHelloRequires(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOMultiHelloRequiresByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiHelloRequiresByNamesInput(ctx context.Context, v any) (*model.MultiHelloRequiresByNamesInput, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputMultiHelloRequiresByNamesInput(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOMultiHelloWithError2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiHelloWithError(ctx context.Context, sel ast.SelectionSet, v []*model.MultiHelloWithError) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalOMultiHelloWithError2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiHelloWithError(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOMultiHelloWithError2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiHelloWithError(ctx context.Context, sel ast.SelectionSet, v *model.MultiHelloWithError) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._MultiHelloWithError(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOMultiHelloWithErrorByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiHelloWithErrorByNamesInput(ctx context.Context, v any) (*model.MultiHelloWithErrorByNamesInput, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputMultiHelloWithErrorByNamesInput(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOMultiPlanetRequiresNested2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiPlanetRequiresNested(ctx context.Context, sel ast.SelectionSet, v []*model.MultiPlanetRequiresNested) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalOMultiPlanetRequiresNested2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiPlanetRequiresNested(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOMultiPlanetRequiresNested2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiPlanetRequiresNested(ctx context.Context, sel ast.SelectionSet, v *model.MultiPlanetRequiresNested) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._MultiPlanetRequiresNested(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOMultiPlanetRequiresNestedByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋentityresolverᚋgeneratedᚋmodelᚐMultiPlanetRequiresNestedByNamesInput(ctx context.Context, v any) (*model.MultiPlanetRequiresNestedByNamesInput, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputMultiPlanetRequiresNestedByNamesInput(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalOString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalO_Entity2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity(ctx context.Context, sel ast.SelectionSet, v fedruntime.Entity) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.__Entity(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "plugin/federation/testdata/entityresolver/generated/federation.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage generated\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"github.com/99designs/gqlgen/plugin/federation/fedruntime\"\n\t\"github.com/99designs/gqlgen/plugin/federation/testdata/entityresolver/generated/model\"\n)\n\nvar (\n\tErrUnknownType  = errors.New(\"unknown type\")\n\tErrTypeNotFound = errors.New(\"type not found\")\n)\n\nfunc (ec *executionContext) __resolve__service(ctx context.Context) (fedruntime.Service, error) {\n\tif ec.DisableIntrospection {\n\t\treturn fedruntime.Service{}, errors.New(\"federated introspection disabled\")\n\t}\n\n\tvar sdl []string\n\n\tfor _, src := range sources {\n\t\tif src.BuiltIn {\n\t\t\tcontinue\n\t\t}\n\t\tsdl = append(sdl, src.Input)\n\t}\n\n\treturn fedruntime.Service{\n\t\tSDL: strings.Join(sdl, \"\\n\"),\n\t}, nil\n}\n\nfunc (ec *executionContext) __resolve_entities(ctx context.Context, representations []map[string]any) []fedruntime.Entity {\n\tlist := make([]fedruntime.Entity, len(representations))\n\n\trepsMap := ec.buildRepresentationGroups(ctx, representations)\n\n\tswitch len(repsMap) {\n\tcase 0:\n\t\treturn list\n\tcase 1:\n\t\tfor typeName, reps := range repsMap {\n\t\t\tec.resolveEntityGroup(ctx, typeName, reps, list)\n\t\t}\n\t\treturn list\n\tdefault:\n\t\tvar g sync.WaitGroup\n\t\tg.Add(len(repsMap))\n\t\tfor typeName, reps := range repsMap {\n\t\t\tgo func(typeName string, reps []EntityWithIndex) {\n\t\t\t\tec.resolveEntityGroup(ctx, typeName, reps, list)\n\t\t\t\tg.Done()\n\t\t\t}(typeName, reps)\n\t\t}\n\t\tg.Wait()\n\t\treturn list\n\t}\n}\n\ntype EntityWithIndex struct {\n\t// The index in the original representation array\n\tindex  int\n\tentity EntityRepresentation\n}\n\n// EntityRepresentation is the JSON representation of an entity sent by the Router\n// used as the inputs for us to resolve.\n//\n// We make it a map because we know the top level JSON is always an object.\ntype EntityRepresentation map[string]any\n\n// We group entities by typename so that we can parallelize their resolution.\n// This is particularly helpful when there are entity groups in multi mode.\nfunc (ec *executionContext) buildRepresentationGroups(\n\tctx context.Context,\n\trepresentations []map[string]any,\n) map[string][]EntityWithIndex {\n\trepsMap := make(map[string][]EntityWithIndex)\n\tfor i, rep := range representations {\n\t\ttypeName, ok := rep[\"__typename\"].(string)\n\t\tif !ok {\n\t\t\t// If there is no __typename, we just skip the representation;\n\t\t\t// we just won't be resolving these unknown types.\n\t\t\tec.Error(ctx, errors.New(\"__typename must be an existing string\"))\n\t\t\tcontinue\n\t\t}\n\n\t\trepsMap[typeName] = append(repsMap[typeName], EntityWithIndex{\n\t\t\tindex:  i,\n\t\t\tentity: rep,\n\t\t})\n\t}\n\n\treturn repsMap\n}\n\nfunc (ec *executionContext) resolveEntityGroup(\n\tctx context.Context,\n\ttypeName string,\n\treps []EntityWithIndex,\n\tlist []fedruntime.Entity,\n) {\n\tif isMulti(typeName) {\n\t\terr := ec.resolveManyEntities(ctx, typeName, reps, list)\n\t\tif err != nil {\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t} else {\n\t\t// if there are multiple entities to resolve, parallelize (similar to\n\t\t// graphql.FieldSet.Dispatch)\n\t\tvar e sync.WaitGroup\n\t\te.Add(len(reps))\n\t\tfor i, rep := range reps {\n\t\t\ti, rep := i, rep\n\t\t\tgo func(i int, rep EntityWithIndex) {\n\t\t\t\tentity, err := ec.resolveEntity(ctx, typeName, rep.entity)\n\t\t\t\tif err != nil {\n\t\t\t\t\tec.Error(ctx, err)\n\t\t\t\t} else {\n\t\t\t\t\tlist[rep.index] = entity\n\t\t\t\t}\n\t\t\t\te.Done()\n\t\t\t}(i, rep)\n\t\t}\n\t\te.Wait()\n\t}\n}\n\nfunc isMulti(typeName string) bool {\n\tswitch typeName {\n\tcase \"MultiHello\":\n\t\treturn true\n\tcase \"MultiHelloMultipleRequires\":\n\t\treturn true\n\tcase \"MultiHelloRequires\":\n\t\treturn true\n\tcase \"MultiHelloWithError\":\n\t\treturn true\n\tcase \"MultiPlanetRequiresNested\":\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\nfunc (ec *executionContext) resolveEntity(\n\tctx context.Context,\n\ttypeName string,\n\trep EntityRepresentation,\n) (e fedruntime.Entity, err error) {\n\t// we need to do our own panic handling, because we may be called in a\n\t// goroutine, where the usual panic handling can't catch us\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t}\n\t}()\n\n\tswitch typeName {\n\tcase \"Hello\":\n\t\tresolverName, err := entityResolverNameForHello(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"Hello\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findHelloByName\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findHelloByName(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindHelloByName(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"Hello\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"HelloMultiSingleKeys\":\n\t\tresolverName, err := entityResolverNameForHelloMultiSingleKeys(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"HelloMultiSingleKeys\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findHelloMultiSingleKeysByKey1AndKey2\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"key1\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findHelloMultiSingleKeysByKey1AndKey2(): %w`, err)\n\t\t\t}\n\t\t\tid1, err := ec.unmarshalNString2string(ctx, rep[\"key2\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 1 for findHelloMultiSingleKeysByKey1AndKey2(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindHelloMultiSingleKeysByKey1AndKey2(ctx, id0, id1)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"HelloMultiSingleKeys\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"HelloWithErrors\":\n\t\tresolverName, err := entityResolverNameForHelloWithErrors(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"HelloWithErrors\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findHelloWithErrorsByName\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findHelloWithErrorsByName(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindHelloWithErrorsByName(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"HelloWithErrors\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"PlanetMultipleRequires\":\n\t\tresolverName, err := entityResolverNameForPlanetMultipleRequires(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"PlanetMultipleRequires\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findPlanetMultipleRequiresByName\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findPlanetMultipleRequiresByName(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindPlanetMultipleRequiresByName(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"PlanetMultipleRequires\": %w`, err)\n\t\t\t}\n\n\t\t\tentity.Diameter, err = ec.unmarshalNInt2int(ctx, rep[\"diameter\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tentity.Density, err = ec.unmarshalNInt2int(ctx, rep[\"density\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"PlanetRequires\":\n\t\tresolverName, err := entityResolverNameForPlanetRequires(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"PlanetRequires\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findPlanetRequiresByName\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findPlanetRequiresByName(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindPlanetRequiresByName(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"PlanetRequires\": %w`, err)\n\t\t\t}\n\n\t\t\tentity.Diameter, err = ec.unmarshalNInt2int(ctx, rep[\"diameter\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"PlanetRequiresNested\":\n\t\tresolverName, err := entityResolverNameForPlanetRequiresNested(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"PlanetRequiresNested\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findPlanetRequiresNestedByName\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findPlanetRequiresNestedByName(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindPlanetRequiresNestedByName(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"PlanetRequiresNested\": %w`, err)\n\t\t\t}\n\n\t\t\tentity.World.Foo, err = ec.unmarshalNString2string(ctx, rep[\"world\"].(map[string]any)[\"foo\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"World\":\n\t\tresolverName, err := entityResolverNameForWorld(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"World\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findWorldByHelloNameAndFoo\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"hello\"].(map[string]any)[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findWorldByHelloNameAndFoo(): %w`, err)\n\t\t\t}\n\t\t\tid1, err := ec.unmarshalNString2string(ctx, rep[\"foo\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 1 for findWorldByHelloNameAndFoo(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindWorldByHelloNameAndFoo(ctx, id0, id1)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"World\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"WorldName\":\n\t\tresolverName, err := entityResolverNameForWorldName(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"WorldName\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findWorldNameByName\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findWorldNameByName(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindWorldNameByName(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"WorldName\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"WorldWithMultipleKeys\":\n\t\tresolverName, err := entityResolverNameForWorldWithMultipleKeys(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"WorldWithMultipleKeys\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findWorldWithMultipleKeysByHelloNameAndFoo\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"hello\"].(map[string]any)[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findWorldWithMultipleKeysByHelloNameAndFoo(): %w`, err)\n\t\t\t}\n\t\t\tid1, err := ec.unmarshalNString2string(ctx, rep[\"foo\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 1 for findWorldWithMultipleKeysByHelloNameAndFoo(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindWorldWithMultipleKeysByHelloNameAndFoo(ctx, id0, id1)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"WorldWithMultipleKeys\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\tcase \"findWorldWithMultipleKeysByBar\":\n\t\t\tid0, err := ec.unmarshalNInt2int(ctx, rep[\"bar\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findWorldWithMultipleKeysByBar(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindWorldWithMultipleKeysByBar(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"WorldWithMultipleKeys\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\n\t}\n\treturn nil, fmt.Errorf(\"%w: %s\", ErrUnknownType, typeName)\n}\n\nfunc (ec *executionContext) resolveManyEntities(\n\tctx context.Context,\n\ttypeName string,\n\treps []EntityWithIndex,\n\tlist []fedruntime.Entity,\n) (err error) {\n\t// we need to do our own panic handling, because we may be called in a\n\t// goroutine, where the usual panic handling can't catch us\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t}\n\t}()\n\n\tswitch typeName {\n\n\tcase \"MultiHello\":\n\t\tresolverName, err := entityResolverNameForMultiHello(ctx, reps[0].entity)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(`finding resolver for Entity \"MultiHello\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findManyMultiHelloByNames\":\n\t\t\ttypedReps := make([]*model.MultiHelloByNamesInput, len(reps))\n\n\t\t\tfor i, rep := range reps {\n\t\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep.entity[\"name\"])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn errors.New(fmt.Sprintf(\"Field %s undefined in schema.\", \"name\"))\n\t\t\t\t}\n\n\t\t\t\ttypedReps[i] = &model.MultiHelloByNamesInput{\n\t\t\t\t\tName: id0,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tentities, err := ec.Resolvers.Entity().FindManyMultiHelloByNames(ctx, typedReps)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tfor i, entity := range entities {\n\t\t\t\tlist[reps[i].index] = entity\n\t\t\t}\n\t\t\treturn nil\n\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"unknown resolver: %s\", resolverName)\n\t\t}\n\n\tcase \"MultiHelloMultipleRequires\":\n\t\tresolverName, err := entityResolverNameForMultiHelloMultipleRequires(ctx, reps[0].entity)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(`finding resolver for Entity \"MultiHelloMultipleRequires\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findManyMultiHelloMultipleRequiresByNames\":\n\t\t\ttypedReps := make([]*model.MultiHelloMultipleRequiresByNamesInput, len(reps))\n\n\t\t\tfor i, rep := range reps {\n\t\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep.entity[\"name\"])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn errors.New(fmt.Sprintf(\"Field %s undefined in schema.\", \"name\"))\n\t\t\t\t}\n\n\t\t\t\ttypedReps[i] = &model.MultiHelloMultipleRequiresByNamesInput{\n\t\t\t\t\tName: id0,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tentities, err := ec.Resolvers.Entity().FindManyMultiHelloMultipleRequiresByNames(ctx, typedReps)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tfor i, entity := range entities {\n\t\t\t\tentity.Key1, err = ec.unmarshalNString2string(ctx, reps[i].entity[\"key1\"])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tentity.Key2, err = ec.unmarshalNString2string(ctx, reps[i].entity[\"key2\"])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tlist[reps[i].index] = entity\n\t\t\t}\n\t\t\treturn nil\n\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"unknown resolver: %s\", resolverName)\n\t\t}\n\n\tcase \"MultiHelloRequires\":\n\t\tresolverName, err := entityResolverNameForMultiHelloRequires(ctx, reps[0].entity)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(`finding resolver for Entity \"MultiHelloRequires\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findManyMultiHelloRequiresByNames\":\n\t\t\ttypedReps := make([]*model.MultiHelloRequiresByNamesInput, len(reps))\n\n\t\t\tfor i, rep := range reps {\n\t\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep.entity[\"name\"])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn errors.New(fmt.Sprintf(\"Field %s undefined in schema.\", \"name\"))\n\t\t\t\t}\n\n\t\t\t\ttypedReps[i] = &model.MultiHelloRequiresByNamesInput{\n\t\t\t\t\tName: id0,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tentities, err := ec.Resolvers.Entity().FindManyMultiHelloRequiresByNames(ctx, typedReps)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tfor i, entity := range entities {\n\t\t\t\tentity.Key1, err = ec.unmarshalNString2string(ctx, reps[i].entity[\"key1\"])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tlist[reps[i].index] = entity\n\t\t\t}\n\t\t\treturn nil\n\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"unknown resolver: %s\", resolverName)\n\t\t}\n\n\tcase \"MultiHelloWithError\":\n\t\tresolverName, err := entityResolverNameForMultiHelloWithError(ctx, reps[0].entity)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(`finding resolver for Entity \"MultiHelloWithError\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findManyMultiHelloWithErrorByNames\":\n\t\t\ttypedReps := make([]*model.MultiHelloWithErrorByNamesInput, len(reps))\n\n\t\t\tfor i, rep := range reps {\n\t\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep.entity[\"name\"])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn errors.New(fmt.Sprintf(\"Field %s undefined in schema.\", \"name\"))\n\t\t\t\t}\n\n\t\t\t\ttypedReps[i] = &model.MultiHelloWithErrorByNamesInput{\n\t\t\t\t\tName: id0,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tentities, err := ec.Resolvers.Entity().FindManyMultiHelloWithErrorByNames(ctx, typedReps)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tfor i, entity := range entities {\n\t\t\t\tlist[reps[i].index] = entity\n\t\t\t}\n\t\t\treturn nil\n\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"unknown resolver: %s\", resolverName)\n\t\t}\n\n\tcase \"MultiPlanetRequiresNested\":\n\t\tresolverName, err := entityResolverNameForMultiPlanetRequiresNested(ctx, reps[0].entity)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(`finding resolver for Entity \"MultiPlanetRequiresNested\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findManyMultiPlanetRequiresNestedByNames\":\n\t\t\ttypedReps := make([]*model.MultiPlanetRequiresNestedByNamesInput, len(reps))\n\n\t\t\tfor i, rep := range reps {\n\t\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep.entity[\"name\"])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn errors.New(fmt.Sprintf(\"Field %s undefined in schema.\", \"name\"))\n\t\t\t\t}\n\n\t\t\t\ttypedReps[i] = &model.MultiPlanetRequiresNestedByNamesInput{\n\t\t\t\t\tName: id0,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tentities, err := ec.Resolvers.Entity().FindManyMultiPlanetRequiresNestedByNames(ctx, typedReps)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tfor i, entity := range entities {\n\t\t\t\tentity.World.Foo, err = ec.unmarshalNString2string(ctx, reps[i].entity[\"world\"].(map[string]any)[\"foo\"])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tlist[reps[i].index] = entity\n\t\t\t}\n\t\t\treturn nil\n\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"unknown resolver: %s\", resolverName)\n\t\t}\n\n\tdefault:\n\t\treturn errors.New(\"unknown type: \" + typeName)\n\t}\n}\n\nfunc entityResolverNameForHello(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for Hello\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for Hello\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findHelloByName\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for Hello due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForHelloMultiSingleKeys(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"key1\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"key1\\\" for HelloMultiSingleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tm = rep\n\t\tval, ok = m[\"key2\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"key2\\\" for HelloMultiSingleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for HelloMultiSingleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findHelloMultiSingleKeysByKey1AndKey2\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for HelloMultiSingleKeys due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForHelloWithErrors(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for HelloWithErrors\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for HelloWithErrors\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findHelloWithErrorsByName\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for HelloWithErrors due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForMultiHello(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for MultiHello\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for MultiHello\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findManyMultiHelloByNames\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for MultiHello due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForMultiHelloMultipleRequires(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for MultiHelloMultipleRequires\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for MultiHelloMultipleRequires\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findManyMultiHelloMultipleRequiresByNames\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for MultiHelloMultipleRequires due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForMultiHelloRequires(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for MultiHelloRequires\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for MultiHelloRequires\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findManyMultiHelloRequiresByNames\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for MultiHelloRequires due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForMultiHelloWithError(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for MultiHelloWithError\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for MultiHelloWithError\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findManyMultiHelloWithErrorByNames\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for MultiHelloWithError due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForMultiPlanetRequiresNested(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for MultiPlanetRequiresNested\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for MultiPlanetRequiresNested\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findManyMultiPlanetRequiresNestedByNames\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for MultiPlanetRequiresNested due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForPlanetMultipleRequires(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for PlanetMultipleRequires\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for PlanetMultipleRequires\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findPlanetMultipleRequiresByName\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for PlanetMultipleRequires due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForPlanetRequires(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for PlanetRequires\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for PlanetRequires\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findPlanetRequiresByName\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for PlanetRequires due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForPlanetRequiresNested(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for PlanetRequiresNested\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for PlanetRequiresNested\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findPlanetRequiresNestedByName\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for PlanetRequiresNested due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForWorld(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"hello\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"hello\\\" for World\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif m, ok = val.(map[string]any); !ok {\n\t\t\t// nested field value is not a map[string]interface so don't use it\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to nested Key Field \\\"hello\\\" value not matching map[string]any for World\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for World\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tm = rep\n\t\tval, ok = m[\"foo\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"foo\\\" for World\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for World\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findWorldByHelloNameAndFoo\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for World due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForWorldName(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for WorldName\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for WorldName\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findWorldNameByName\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for WorldName due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForWorldWithMultipleKeys(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"hello\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"hello\\\" for WorldWithMultipleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif m, ok = val.(map[string]any); !ok {\n\t\t\t// nested field value is not a map[string]interface so don't use it\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to nested Key Field \\\"hello\\\" value not matching map[string]any for WorldWithMultipleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for WorldWithMultipleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tm = rep\n\t\tval, ok = m[\"foo\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"foo\\\" for WorldWithMultipleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for WorldWithMultipleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findWorldWithMultipleKeysByHelloNameAndFoo\", nil\n\t}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"bar\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"bar\\\" for WorldWithMultipleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for WorldWithMultipleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findWorldWithMultipleKeysByBar\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for WorldWithMultipleKeys due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n"
  },
  {
    "path": "plugin/federation/testdata/entityresolver/generated/model/models.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage model\n\ntype Hello struct {\n\tName      string `json:\"name\"`\n\tSecondary string `json:\"secondary\"`\n}\n\nfunc (Hello) IsEntity() {}\n\ntype HelloMultiSingleKeys struct {\n\tKey1 string `json:\"key1\"`\n\tKey2 string `json:\"key2\"`\n}\n\nfunc (HelloMultiSingleKeys) IsEntity() {}\n\ntype HelloWithErrors struct {\n\tName string `json:\"name\"`\n}\n\nfunc (HelloWithErrors) IsEntity() {}\n\ntype MultiHello struct {\n\tName string `json:\"name\"`\n}\n\nfunc (MultiHello) IsEntity() {}\n\ntype MultiHelloByNamesInput struct {\n\tName string `json:\"Name\"`\n}\n\ntype MultiHelloMultipleRequires struct {\n\tName string `json:\"name\"`\n\tKey1 string `json:\"key1\"`\n\tKey2 string `json:\"key2\"`\n\tKey3 string `json:\"key3\"`\n}\n\nfunc (MultiHelloMultipleRequires) IsEntity() {}\n\ntype MultiHelloMultipleRequiresByNamesInput struct {\n\tName string `json:\"Name\"`\n}\n\ntype MultiHelloRequires struct {\n\tName string `json:\"name\"`\n\tKey1 string `json:\"key1\"`\n\tKey2 string `json:\"key2\"`\n}\n\nfunc (MultiHelloRequires) IsEntity() {}\n\ntype MultiHelloRequiresByNamesInput struct {\n\tName string `json:\"Name\"`\n}\n\ntype MultiHelloWithError struct {\n\tName string `json:\"name\"`\n}\n\nfunc (MultiHelloWithError) IsEntity() {}\n\ntype MultiHelloWithErrorByNamesInput struct {\n\tName string `json:\"Name\"`\n}\n\ntype MultiPlanetRequiresNested struct {\n\tName  string `json:\"name\"`\n\tWorld *World `json:\"world\"`\n\tSize  int    `json:\"size\"`\n}\n\nfunc (MultiPlanetRequiresNested) IsEntity() {}\n\ntype MultiPlanetRequiresNestedByNamesInput struct {\n\tName string `json:\"Name\"`\n}\n\ntype PlanetMultipleRequires struct {\n\tName     string `json:\"name\"`\n\tDiameter int    `json:\"diameter\"`\n\tDensity  int    `json:\"density\"`\n\tWeight   int    `json:\"weight\"`\n}\n\nfunc (PlanetMultipleRequires) IsEntity() {}\n\ntype PlanetRequires struct {\n\tName     string `json:\"name\"`\n\tSize     int    `json:\"size\"`\n\tDiameter int    `json:\"diameter\"`\n}\n\nfunc (PlanetRequires) IsEntity() {}\n\ntype PlanetRequiresNested struct {\n\tName  string `json:\"name\"`\n\tWorld *World `json:\"world\"`\n\tSize  int    `json:\"size\"`\n}\n\nfunc (PlanetRequiresNested) IsEntity() {}\n\ntype Query struct {\n}\n\ntype World struct {\n\tFoo   string `json:\"foo\"`\n\tBar   int    `json:\"bar\"`\n\tHello *Hello `json:\"hello,omitempty\"`\n}\n\nfunc (World) IsEntity() {}\n\ntype WorldName struct {\n\tName string `json:\"name\"`\n}\n\nfunc (WorldName) IsEntity() {}\n\ntype WorldWithMultipleKeys struct {\n\tFoo   string `json:\"foo\"`\n\tBar   int    `json:\"bar\"`\n\tHello *Hello `json:\"hello,omitempty\"`\n}\n\nfunc (WorldWithMultipleKeys) IsEntity() {}\n"
  },
  {
    "path": "plugin/federation/testdata/entityresolver/gqlgen.yml",
    "content": "schema:\n  - \"testdata/entityresolver/schema.graphql\"\nexec:\n  filename: testdata/entityresolver/generated/exec.go\nfederation:\n  filename: testdata/entityresolver/generated/federation.go\nmodel:\n  filename: testdata/entityresolver/generated/model/models.go\n  package: model\nresolver:\n  filename: testdata/entityresolver/resolver.go\n  layout: follow-schema\n  dir: testdata/entityresolver\n  package: entityresolver\n"
  },
  {
    "path": "plugin/federation/testdata/entityresolver/resolver.go",
    "content": "package entityresolver\n\n// This file will not be regenerated automatically.\n//\n// It serves as dependency injection for your app, add any dependencies you require here.\n\ntype Resolver struct{}\n\n// FindWorldWithMultipleKeysByHelloNameAndFooBarValue shows we hit the FindWorldWithMultipleKeysByHelloNameAndFoo resolver\nconst FindWorldWithMultipleKeysByHelloNameAndFooBarValue = 99\n"
  },
  {
    "path": "plugin/federation/testdata/entityresolver/schema.graphql",
    "content": "directive @entityResolver(multi: Boolean) on OBJECT\n\ntype Hello @key(fields: \"name\") {\n    name: String!\n    secondary: String!\n}\n\ntype World @key(fields: \"hello { name } foo   \") {\n    foo: String!\n    bar: Int!\n    hello: Hello\n}\n\ntype WorldWithMultipleKeys @key(fields: \"hello { name } foo   \") @key(fields: \"bar\") {\n    foo: String!\n    bar: Int!\n    hello: Hello\n}\n\ntype WorldName @key(fields: \"name\") {\n    name: String!\n}\n\ntype HelloWithErrors @key(fields: \"name\") {\n    name: String!\n}\n\ntype PlanetRequires @key(fields: \"name\") {\n    name: String!\n    size: Int! @requires(fields: \"diameter\")\n    diameter: Int!\n}\n\ntype PlanetMultipleRequires @key(fields: \"name\") {\n    name: String! @external\n    diameter: Int! @external\n    density: Int! @external\n    weight: Int! @requires(fields: \"diameter density\")\n}\n\ntype PlanetRequiresNested @key(fields: \"name\") {\n    name: String! @external\n    world: World! @external\n    size: Int! @requires(fields: \"world{ foo }\")\n}\n\ntype MultiPlanetRequiresNested @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String! @external\n    world: World! @external\n    size: Int! @requires(fields: \"world{ foo }\")\n}\n\ntype MultiHello @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String!\n}\n\ntype MultiHelloWithError @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String!\n}\n\ntype HelloMultiSingleKeys @key(fields: \"key1 key2\") {\n    key1: String!\n    key2: String!\n}\n\ntype MultiHelloRequires @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String! @external\n    key1: String! @external\n    key2: String! @requires(fields: \"key1\")\n}\n\ntype MultiHelloMultipleRequires @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String! @external\n    key1: String! @external\n    key2: String! @external\n    key3: String! @requires(fields: \"key1 key2\")\n}\n"
  },
  {
    "path": "plugin/federation/testdata/entityresolver/schema.resolvers.go",
    "content": "package entityresolver\n\n// This file will be automatically regenerated based on the schema, any resolver implementations\n// will be copied through when generating and any unknown code will be moved to the end.\n"
  },
  {
    "path": "plugin/federation/testdata/explicitrequires/entity.resolvers.go",
    "content": "package explicitrequires\n\n// This file will be automatically regenerated based on the schema, any resolver\n// implementations\n// will be copied through when generating and any unknown code will be moved to the end.\n// Code generated by github.com/99designs/gqlgen version v0.17.88-dev\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/99designs/gqlgen/plugin/federation/testdata/explicitrequires/generated\"\n)\n\n// FindHelloByName is the resolver for the findHelloByName field.\nfunc (r *entityResolver) FindHelloByName(ctx context.Context, name string) (*generated.Hello, error) {\n\treturn &generated.Hello{\n\t\tName: name,\n\t}, nil\n}\n\n// FindHelloMultiSingleKeysByKey1AndKey2 is the resolver for the findHelloMultiSingleKeysByKey1AndKey2 field.\nfunc (r *entityResolver) FindHelloMultiSingleKeysByKey1AndKey2(ctx context.Context, key1 string, key2 string) (*generated.HelloMultiSingleKeys, error) {\n\tpanic(fmt.Errorf(\"not implemented\"))\n}\n\n// FindHelloWithErrorsByName is the resolver for the findHelloWithErrorsByName field.\nfunc (r *entityResolver) FindHelloWithErrorsByName(ctx context.Context, name string) (*generated.HelloWithErrors, error) {\n\tif name == \"inject error\" {\n\t\treturn nil, generated.ErrResolvingHelloWithErrorsByName\n\t} else if name == \"\" {\n\t\treturn nil, generated.ErrEmptyKeyResolvingHelloWithErrorsByName\n\t}\n\n\treturn &generated.HelloWithErrors{\n\t\tName: name,\n\t}, nil\n}\n\n// FindManyMultiHelloByNames is the resolver for the findManyMultiHelloByNames field.\nfunc (r *entityResolver) FindManyMultiHelloByNames(ctx context.Context, reps []*generated.MultiHelloByNamesInput) ([]*generated.MultiHello, error) {\n\tresults := []*generated.MultiHello{}\n\n\tfor _, item := range reps {\n\t\tresults = append(results, &generated.MultiHello{\n\t\t\tName: item.Name + \" - from multiget\",\n\t\t})\n\t}\n\n\treturn results, nil\n}\n\n// FindManyMultiHelloMultipleRequiresByNames is the resolver for the findManyMultiHelloMultipleRequiresByNames field.\nfunc (r *entityResolver) FindManyMultiHelloMultipleRequiresByNames(ctx context.Context, reps []*generated.MultiHelloMultipleRequiresByNamesInput) ([]*generated.MultiHelloMultipleRequires, error) {\n\tresults := make([]*generated.MultiHelloMultipleRequires, len(reps))\n\n\tfor i := range reps {\n\t\tresults[i] = &generated.MultiHelloMultipleRequires{\n\t\t\tName: reps[i].Name,\n\t\t}\n\t}\n\n\treturn results, nil\n}\n\n// FindManyMultiHelloRequiresByNames is the resolver for the findManyMultiHelloRequiresByNames field.\nfunc (r *entityResolver) FindManyMultiHelloRequiresByNames(ctx context.Context, reps []*generated.MultiHelloRequiresByNamesInput) ([]*generated.MultiHelloRequires, error) {\n\tresults := make([]*generated.MultiHelloRequires, len(reps))\n\n\tfor i := range reps {\n\t\tresults[i] = &generated.MultiHelloRequires{\n\t\t\tName: reps[i].Name,\n\t\t}\n\t}\n\n\treturn results, nil\n}\n\n// FindManyMultiHelloWithErrorByNames is the resolver for the findManyMultiHelloWithErrorByNames field.\nfunc (r *entityResolver) FindManyMultiHelloWithErrorByNames(ctx context.Context, reps []*generated.MultiHelloWithErrorByNamesInput) ([]*generated.MultiHelloWithError, error) {\n\treturn nil, fmt.Errorf(\"error resolving MultiHelloWorldWithError\")\n}\n\n// FindManyMultiPlanetRequiresNestedByNames is the resolver for the findManyMultiPlanetRequiresNestedByNames field.\nfunc (r *entityResolver) FindManyMultiPlanetRequiresNestedByNames(ctx context.Context, reps []*generated.MultiPlanetRequiresNestedByNamesInput) ([]*generated.MultiPlanetRequiresNested, error) {\n\tworlds := map[string]*generated.World{\n\t\t\"earth\": {\n\t\t\tFoo: \"A\",\n\t\t},\n\t\t\"mars\": {\n\t\t\tFoo: \"B\",\n\t\t},\n\t}\n\n\tresults := make([]*generated.MultiPlanetRequiresNested, len(reps))\n\n\tfor i := range reps {\n\t\tname := reps[i].Name\n\t\tworld, ok := worlds[name]\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"unknown planet: %s\", name)\n\t\t}\n\n\t\tresults[i] = &generated.MultiPlanetRequiresNested{\n\t\t\tName:  name,\n\t\t\tWorld: world,\n\t\t}\n\t}\n\n\treturn results, nil\n}\n\n// FindPersonByName is the resolver for the findPersonByName field.\nfunc (r *entityResolver) FindPersonByName(ctx context.Context, name string) (*generated.Person, error) {\n\tpanic(fmt.Errorf(\"not implemented: FindPersonByName - findPersonByName\"))\n}\n\n// FindPlanetMultipleRequiresByName is the resolver for the findPlanetMultipleRequiresByName field.\nfunc (r *entityResolver) FindPlanetMultipleRequiresByName(ctx context.Context, name string) (*generated.PlanetMultipleRequires, error) {\n\treturn &generated.PlanetMultipleRequires{Name: name}, nil\n}\n\n// FindPlanetRequiresByName is the resolver for the findPlanetRequiresByName field.\nfunc (r *entityResolver) FindPlanetRequiresByName(ctx context.Context, name string) (*generated.PlanetRequires, error) {\n\treturn &generated.PlanetRequires{\n\t\tName: name,\n\t}, nil\n}\n\n// FindPlanetRequiresNestedByName is the resolver for the findPlanetRequiresNestedByName field.\nfunc (r *entityResolver) FindPlanetRequiresNestedByName(ctx context.Context, name string) (*generated.PlanetRequiresNested, error) {\n\tworlds := map[string]*generated.World{\n\t\t\"earth\": {\n\t\t\tFoo: \"A\",\n\t\t},\n\t\t\"mars\": {\n\t\t\tFoo: \"B\",\n\t\t},\n\t}\n\tworld, ok := worlds[name]\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"unknown planet: %s\", name)\n\t}\n\n\treturn &generated.PlanetRequiresNested{\n\t\tName:  name,\n\t\tWorld: world,\n\t}, nil\n}\n\n// FindWorldByHelloNameAndFoo is the resolver for the findWorldByHelloNameAndFoo field.\nfunc (r *entityResolver) FindWorldByHelloNameAndFoo(ctx context.Context, helloName string, foo string) (*generated.World, error) {\n\treturn &generated.World{\n\t\tHello: &generated.Hello{\n\t\t\tName: helloName,\n\t\t},\n\t\tFoo: foo,\n\t}, nil\n}\n\n// FindWorldNameByName is the resolver for the findWorldNameByName field.\nfunc (r *entityResolver) FindWorldNameByName(ctx context.Context, name string) (*generated.WorldName, error) {\n\treturn &generated.WorldName{\n\t\tName: name,\n\t}, nil\n}\n\n// FindWorldWithMultipleKeysByHelloNameAndFoo is the resolver for the findWorldWithMultipleKeysByHelloNameAndFoo field.\nfunc (r *entityResolver) FindWorldWithMultipleKeysByHelloNameAndFoo(ctx context.Context, helloName string, foo string) (*generated.WorldWithMultipleKeys, error) {\n\treturn &generated.WorldWithMultipleKeys{\n\t\tHello: &generated.Hello{\n\t\t\tName: helloName,\n\t\t},\n\t\tFoo: foo,\n\t}, nil\n}\n\n// FindWorldWithMultipleKeysByBar is the resolver for the findWorldWithMultipleKeysByBar field.\nfunc (r *entityResolver) FindWorldWithMultipleKeysByBar(ctx context.Context, bar int) (*generated.WorldWithMultipleKeys, error) {\n\treturn &generated.WorldWithMultipleKeys{\n\t\tBar: bar,\n\t}, nil\n}\n\n// Entity returns generated.EntityResolver implementation.\nfunc (r *Resolver) Entity() generated.EntityResolver { return &entityResolver{r} }\n\ntype entityResolver struct{ *Resolver }\n"
  },
  {
    "path": "plugin/federation/testdata/explicitrequires/generated/errors.go",
    "content": "package generated\n\nimport \"errors\"\n\n// Errors defined for retained code that we want to stick around between generations.\nvar (\n\tErrResolvingHelloWithErrorsByName         = errors.New(\"error resolving HelloWithErrorsByName\")\n\tErrEmptyKeyResolvingHelloWithErrorsByName = errors.New(\"error (empty key) resolving HelloWithErrorsByName\")\n)\n"
  },
  {
    "path": "plugin/federation/testdata/explicitrequires/generated/exec.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage generated\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\t\"github.com/99designs/gqlgen/plugin/federation/fedruntime\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n}\n\ntype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\ntype ResolverRoot interface {\n\tEntity() EntityResolver\n}\n\ntype DirectiveRoot struct {\n}\n\ntype ComplexityRoot struct {\n}\n\ntype EntityResolver interface {\n\tFindHelloByName(ctx context.Context, name string) (*Hello, error)\n\tFindHelloMultiSingleKeysByKey1AndKey2(ctx context.Context, key1 string, key2 string) (*HelloMultiSingleKeys, error)\n\tFindHelloWithErrorsByName(ctx context.Context, name string) (*HelloWithErrors, error)\n\tFindManyMultiHelloByNames(ctx context.Context, reps []*MultiHelloByNamesInput) ([]*MultiHello, error)\n\tFindManyMultiHelloMultipleRequiresByNames(ctx context.Context, reps []*MultiHelloMultipleRequiresByNamesInput) ([]*MultiHelloMultipleRequires, error)\n\tFindManyMultiHelloRequiresByNames(ctx context.Context, reps []*MultiHelloRequiresByNamesInput) ([]*MultiHelloRequires, error)\n\tFindManyMultiHelloWithErrorByNames(ctx context.Context, reps []*MultiHelloWithErrorByNamesInput) ([]*MultiHelloWithError, error)\n\tFindManyMultiPlanetRequiresNestedByNames(ctx context.Context, reps []*MultiPlanetRequiresNestedByNamesInput) ([]*MultiPlanetRequiresNested, error)\n\tFindPersonByName(ctx context.Context, name string) (*Person, error)\n\tFindPlanetMultipleRequiresByName(ctx context.Context, name string) (*PlanetMultipleRequires, error)\n\tFindPlanetRequiresByName(ctx context.Context, name string) (*PlanetRequires, error)\n\tFindPlanetRequiresNestedByName(ctx context.Context, name string) (*PlanetRequiresNested, error)\n\tFindWorldByHelloNameAndFoo(ctx context.Context, helloName string, foo string) (*World, error)\n\tFindWorldNameByName(ctx context.Context, name string) (*WorldName, error)\n\tFindWorldWithMultipleKeysByHelloNameAndFoo(ctx context.Context, helloName string, foo string) (*WorldWithMultipleKeys, error)\n\tFindWorldWithMultipleKeysByBar(ctx context.Context, bar int) (*WorldWithMultipleKeys, error)\n}\n\ntype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.SchemaData != nil {\n\t\treturn e.SchemaData\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := newExecutionContext(nil, e, nil)\n\t_ = ec\n\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap(\n\t\tec.unmarshalInputMultiHelloByNamesInput,\n\t\tec.unmarshalInputMultiHelloMultipleRequiresByNamesInput,\n\t\tec.unmarshalInputMultiHelloRequiresByNamesInput,\n\t\tec.unmarshalInputMultiHelloWithErrorByNamesInput,\n\t\tec.unmarshalInputMultiPlanetRequiresNestedByNamesInput,\n\t)\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"../schema.graphql\", Input: `directive @entityResolver(multi: Boolean) on OBJECT\n\ntype Hello @key(fields: \"name\") {\n    name: String!\n    secondary: String!\n}\n\ntype World @key(fields: \"hello { name } foo   \") {\n    foo: String!\n    bar: Int!\n    hello: Hello\n}\n\ntype Person @key(fields: \"name\"){\n    name: String!\n    gender: Gender!\n    welcomeMessage: String @requires(fields:\"gender { ... on Male {description} ... on Female {description}}\")\n}\n\nunion Gender = Male | Female\n\ntype Male {\n    description: String!\n}\n\ntype Female {\n    description: String!\n}\n\ntype WorldWithMultipleKeys @key(fields: \"hello { name } foo   \") @key(fields: \"bar\") {\n    foo: String!\n    bar: Int!\n    hello: Hello\n}\n\ntype WorldName @key(fields: \"name\") {\n    name: String!\n}\n\ntype HelloWithErrors @key(fields: \"name\") {\n    name: String!\n}\n\ntype PlanetRequires @key(fields: \"name\") {\n    name: String!\n    size: Int! @requires(fields: \"diameter\")\n    diameter: Int!\n}\n\ntype PlanetMultipleRequires @key(fields: \"name\") {\n    name: String! @external\n    diameter: Int! @external\n    density: Int! @external\n    weight: Int! @requires(fields: \"diameter density\")\n}\n\ntype PlanetRequiresNested @key(fields: \"name\") {\n    name: String! @external\n    world: World! @external\n    worlds: [World!] @external\n    size: Int! @requires(fields: \"world{ foo }\")\n    sizes: [Int!] @requires(fields: \"worlds{ foo }\")\n}\n\ntype MultiPlanetRequiresNested @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String! @external\n    world: World! @external\n    worlds: [World!] @external\n    size: Int! @requires(fields: \"world{ foo }\")\n    sizes: [Int!] @requires(fields: \"worlds{ foo }\")\n}\n\ntype MultiHello @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String!\n}\n\ntype MultiHelloWithError @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String!\n}\n\ntype HelloMultiSingleKeys @key(fields: \"key1 key2\") {\n    key1: String!\n    key2: String!\n}\n\ntype MultiHelloRequires @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String! @external\n    key1: String! @external\n    key2: String! @requires(fields: \"key1\")\n}\n\ntype MultiHelloMultipleRequires @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String! @external\n    key1: String! @external\n    key2: String! @external\n    key3: String! @requires(fields: \"key1 key2\")\n}\n`, BuiltIn: false},\n\t{Name: \"../../../federation/directives.graphql\", Input: `\n\tdirective @key(fields: _FieldSet!) repeatable on OBJECT | INTERFACE\n\tdirective @requires(fields: _FieldSet!) on FIELD_DEFINITION\n\tdirective @provides(fields: _FieldSet!) on FIELD_DEFINITION\n\tdirective @extends on OBJECT | INTERFACE\n\tdirective @external on FIELD_DEFINITION\n\tscalar _Any\n\tscalar _FieldSet\n`, BuiltIn: true},\n\t{Name: \"../../../federation/entity.graphql\", Input: `\n# a union of all types that use the @key directive\nunion _Entity = Hello | HelloMultiSingleKeys | HelloWithErrors | MultiHello | MultiHelloMultipleRequires | MultiHelloRequires | MultiHelloWithError | MultiPlanetRequiresNested | Person | PlanetMultipleRequires | PlanetRequires | PlanetRequiresNested | World | WorldName | WorldWithMultipleKeys\n\ninput MultiHelloByNamesInput {\n\tName: String!\n}\n\ninput MultiHelloMultipleRequiresByNamesInput {\n\tName: String!\n}\n\ninput MultiHelloRequiresByNamesInput {\n\tName: String!\n}\n\ninput MultiHelloWithErrorByNamesInput {\n\tName: String!\n}\n\ninput MultiPlanetRequiresNestedByNamesInput {\n\tName: String!\n}\n\n# fake type to build resolver interfaces for users to implement\ntype Entity {\n\tfindHelloByName(name: String!,): Hello!\n\tfindHelloMultiSingleKeysByKey1AndKey2(key1: String!,key2: String!,): HelloMultiSingleKeys!\n\tfindHelloWithErrorsByName(name: String!,): HelloWithErrors!\n\tfindManyMultiHelloByNames(reps: [MultiHelloByNamesInput]!): [MultiHello]\n\tfindManyMultiHelloMultipleRequiresByNames(reps: [MultiHelloMultipleRequiresByNamesInput]!): [MultiHelloMultipleRequires]\n\tfindManyMultiHelloRequiresByNames(reps: [MultiHelloRequiresByNamesInput]!): [MultiHelloRequires]\n\tfindManyMultiHelloWithErrorByNames(reps: [MultiHelloWithErrorByNamesInput]!): [MultiHelloWithError]\n\tfindManyMultiPlanetRequiresNestedByNames(reps: [MultiPlanetRequiresNestedByNamesInput]!): [MultiPlanetRequiresNested]\n\tfindPersonByName(name: String!,): Person!\n\tfindPlanetMultipleRequiresByName(name: String!,): PlanetMultipleRequires!\n\tfindPlanetRequiresByName(name: String!,): PlanetRequires!\n\tfindPlanetRequiresNestedByName(name: String!,): PlanetRequiresNested!\n\tfindWorldByHelloNameAndFoo(helloName: String!,foo: String!,): World!\n\tfindWorldNameByName(name: String!,): WorldName!\n\tfindWorldWithMultipleKeysByHelloNameAndFoo(helloName: String!,foo: String!,): WorldWithMultipleKeys!\n\tfindWorldWithMultipleKeysByBar(bar: Int!,): WorldWithMultipleKeys!\n}\n\ntype _Service {\n  sdl: String\n}\n\nextend type Query {\n  _entities(representations: [_Any!]!): [_Entity]!\n  _service: _Service!\n}\n`, BuiltIn: true},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_Entity_findHelloByName_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findHelloMultiSingleKeysByKey1AndKey2_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"key1\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"key1\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"key2\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"key2\"] = arg1\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findHelloWithErrorsByName_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findManyMultiHelloByNames_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"reps\", ec.unmarshalNMultiHelloByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiHelloByNamesInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"reps\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findManyMultiHelloMultipleRequiresByNames_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"reps\", ec.unmarshalNMultiHelloMultipleRequiresByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiHelloMultipleRequiresByNamesInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"reps\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findManyMultiHelloRequiresByNames_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"reps\", ec.unmarshalNMultiHelloRequiresByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiHelloRequiresByNamesInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"reps\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findManyMultiHelloWithErrorByNames_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"reps\", ec.unmarshalNMultiHelloWithErrorByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiHelloWithErrorByNamesInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"reps\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findManyMultiPlanetRequiresNestedByNames_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"reps\", ec.unmarshalNMultiPlanetRequiresNestedByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiPlanetRequiresNestedByNamesInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"reps\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findPersonByName_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findPlanetMultipleRequiresByName_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findPlanetRequiresByName_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findPlanetRequiresNestedByName_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findWorldByHelloNameAndFoo_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"helloName\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"helloName\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"foo\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"foo\"] = arg1\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findWorldNameByName_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findWorldWithMultipleKeysByBar_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"bar\", ec.unmarshalNInt2int)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"bar\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Entity_findWorldWithMultipleKeysByHelloNameAndFoo_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"helloName\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"helloName\"] = arg0\n\targ1, err := graphql.ProcessArgField(ctx, rawArgs, \"foo\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"foo\"] = arg1\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field_Query__entities_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"representations\", ec.unmarshalN_Any2ᚕmapᚄ)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"representations\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Entity_findHelloByName(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findHelloByName,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindHelloByName(ctx, fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNHello2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐHello,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findHelloByName(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_Hello_name(ctx, field)\n\t\t\tcase \"secondary\":\n\t\t\t\treturn ec.fieldContext_Hello_secondary(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Hello\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findHelloByName_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findHelloMultiSingleKeysByKey1AndKey2(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findHelloMultiSingleKeysByKey1AndKey2,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindHelloMultiSingleKeysByKey1AndKey2(ctx, fc.Args[\"key1\"].(string), fc.Args[\"key2\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNHelloMultiSingleKeys2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐHelloMultiSingleKeys,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findHelloMultiSingleKeysByKey1AndKey2(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"key1\":\n\t\t\t\treturn ec.fieldContext_HelloMultiSingleKeys_key1(ctx, field)\n\t\t\tcase \"key2\":\n\t\t\t\treturn ec.fieldContext_HelloMultiSingleKeys_key2(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type HelloMultiSingleKeys\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findHelloMultiSingleKeysByKey1AndKey2_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findHelloWithErrorsByName(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findHelloWithErrorsByName,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindHelloWithErrorsByName(ctx, fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNHelloWithErrors2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐHelloWithErrors,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findHelloWithErrorsByName(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_HelloWithErrors_name(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type HelloWithErrors\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findHelloWithErrorsByName_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findManyMultiHelloByNames(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findManyMultiHelloByNames,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindManyMultiHelloByNames(ctx, fc.Args[\"reps\"].([]*MultiHelloByNamesInput))\n\t\t},\n\t\tnil,\n\t\tec.marshalOMultiHello2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiHello,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findManyMultiHelloByNames(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_MultiHello_name(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type MultiHello\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findManyMultiHelloByNames_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findManyMultiHelloMultipleRequiresByNames(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findManyMultiHelloMultipleRequiresByNames,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindManyMultiHelloMultipleRequiresByNames(ctx, fc.Args[\"reps\"].([]*MultiHelloMultipleRequiresByNamesInput))\n\t\t},\n\t\tnil,\n\t\tec.marshalOMultiHelloMultipleRequires2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiHelloMultipleRequires,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findManyMultiHelloMultipleRequiresByNames(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_MultiHelloMultipleRequires_name(ctx, field)\n\t\t\tcase \"key1\":\n\t\t\t\treturn ec.fieldContext_MultiHelloMultipleRequires_key1(ctx, field)\n\t\t\tcase \"key2\":\n\t\t\t\treturn ec.fieldContext_MultiHelloMultipleRequires_key2(ctx, field)\n\t\t\tcase \"key3\":\n\t\t\t\treturn ec.fieldContext_MultiHelloMultipleRequires_key3(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type MultiHelloMultipleRequires\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findManyMultiHelloMultipleRequiresByNames_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findManyMultiHelloRequiresByNames(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findManyMultiHelloRequiresByNames,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindManyMultiHelloRequiresByNames(ctx, fc.Args[\"reps\"].([]*MultiHelloRequiresByNamesInput))\n\t\t},\n\t\tnil,\n\t\tec.marshalOMultiHelloRequires2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiHelloRequires,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findManyMultiHelloRequiresByNames(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_MultiHelloRequires_name(ctx, field)\n\t\t\tcase \"key1\":\n\t\t\t\treturn ec.fieldContext_MultiHelloRequires_key1(ctx, field)\n\t\t\tcase \"key2\":\n\t\t\t\treturn ec.fieldContext_MultiHelloRequires_key2(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type MultiHelloRequires\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findManyMultiHelloRequiresByNames_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findManyMultiHelloWithErrorByNames(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findManyMultiHelloWithErrorByNames,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindManyMultiHelloWithErrorByNames(ctx, fc.Args[\"reps\"].([]*MultiHelloWithErrorByNamesInput))\n\t\t},\n\t\tnil,\n\t\tec.marshalOMultiHelloWithError2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiHelloWithError,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findManyMultiHelloWithErrorByNames(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_MultiHelloWithError_name(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type MultiHelloWithError\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findManyMultiHelloWithErrorByNames_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findManyMultiPlanetRequiresNestedByNames(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findManyMultiPlanetRequiresNestedByNames,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindManyMultiPlanetRequiresNestedByNames(ctx, fc.Args[\"reps\"].([]*MultiPlanetRequiresNestedByNamesInput))\n\t\t},\n\t\tnil,\n\t\tec.marshalOMultiPlanetRequiresNested2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiPlanetRequiresNested,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findManyMultiPlanetRequiresNestedByNames(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_MultiPlanetRequiresNested_name(ctx, field)\n\t\t\tcase \"world\":\n\t\t\t\treturn ec.fieldContext_MultiPlanetRequiresNested_world(ctx, field)\n\t\t\tcase \"worlds\":\n\t\t\t\treturn ec.fieldContext_MultiPlanetRequiresNested_worlds(ctx, field)\n\t\t\tcase \"size\":\n\t\t\t\treturn ec.fieldContext_MultiPlanetRequiresNested_size(ctx, field)\n\t\t\tcase \"sizes\":\n\t\t\t\treturn ec.fieldContext_MultiPlanetRequiresNested_sizes(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type MultiPlanetRequiresNested\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findManyMultiPlanetRequiresNestedByNames_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findPersonByName(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findPersonByName,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindPersonByName(ctx, fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNPerson2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐPerson,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findPersonByName(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_Person_name(ctx, field)\n\t\t\tcase \"gender\":\n\t\t\t\treturn ec.fieldContext_Person_gender(ctx, field)\n\t\t\tcase \"welcomeMessage\":\n\t\t\t\treturn ec.fieldContext_Person_welcomeMessage(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Person\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findPersonByName_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findPlanetMultipleRequiresByName(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findPlanetMultipleRequiresByName,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindPlanetMultipleRequiresByName(ctx, fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNPlanetMultipleRequires2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐPlanetMultipleRequires,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findPlanetMultipleRequiresByName(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_PlanetMultipleRequires_name(ctx, field)\n\t\t\tcase \"diameter\":\n\t\t\t\treturn ec.fieldContext_PlanetMultipleRequires_diameter(ctx, field)\n\t\t\tcase \"density\":\n\t\t\t\treturn ec.fieldContext_PlanetMultipleRequires_density(ctx, field)\n\t\t\tcase \"weight\":\n\t\t\t\treturn ec.fieldContext_PlanetMultipleRequires_weight(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type PlanetMultipleRequires\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findPlanetMultipleRequiresByName_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findPlanetRequiresByName(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findPlanetRequiresByName,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindPlanetRequiresByName(ctx, fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNPlanetRequires2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐPlanetRequires,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findPlanetRequiresByName(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_PlanetRequires_name(ctx, field)\n\t\t\tcase \"size\":\n\t\t\t\treturn ec.fieldContext_PlanetRequires_size(ctx, field)\n\t\t\tcase \"diameter\":\n\t\t\t\treturn ec.fieldContext_PlanetRequires_diameter(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type PlanetRequires\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findPlanetRequiresByName_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findPlanetRequiresNestedByName(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findPlanetRequiresNestedByName,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindPlanetRequiresNestedByName(ctx, fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNPlanetRequiresNested2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐPlanetRequiresNested,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findPlanetRequiresNestedByName(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_PlanetRequiresNested_name(ctx, field)\n\t\t\tcase \"world\":\n\t\t\t\treturn ec.fieldContext_PlanetRequiresNested_world(ctx, field)\n\t\t\tcase \"worlds\":\n\t\t\t\treturn ec.fieldContext_PlanetRequiresNested_worlds(ctx, field)\n\t\t\tcase \"size\":\n\t\t\t\treturn ec.fieldContext_PlanetRequiresNested_size(ctx, field)\n\t\t\tcase \"sizes\":\n\t\t\t\treturn ec.fieldContext_PlanetRequiresNested_sizes(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type PlanetRequiresNested\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findPlanetRequiresNestedByName_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findWorldByHelloNameAndFoo(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findWorldByHelloNameAndFoo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindWorldByHelloNameAndFoo(ctx, fc.Args[\"helloName\"].(string), fc.Args[\"foo\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNWorld2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐWorld,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findWorldByHelloNameAndFoo(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"foo\":\n\t\t\t\treturn ec.fieldContext_World_foo(ctx, field)\n\t\t\tcase \"bar\":\n\t\t\t\treturn ec.fieldContext_World_bar(ctx, field)\n\t\t\tcase \"hello\":\n\t\t\t\treturn ec.fieldContext_World_hello(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type World\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findWorldByHelloNameAndFoo_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findWorldNameByName(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findWorldNameByName,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindWorldNameByName(ctx, fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNWorldName2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐWorldName,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findWorldNameByName(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_WorldName_name(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type WorldName\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findWorldNameByName_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findWorldWithMultipleKeysByHelloNameAndFoo(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findWorldWithMultipleKeysByHelloNameAndFoo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindWorldWithMultipleKeysByHelloNameAndFoo(ctx, fc.Args[\"helloName\"].(string), fc.Args[\"foo\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalNWorldWithMultipleKeys2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐWorldWithMultipleKeys,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findWorldWithMultipleKeysByHelloNameAndFoo(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"foo\":\n\t\t\t\treturn ec.fieldContext_WorldWithMultipleKeys_foo(ctx, field)\n\t\t\tcase \"bar\":\n\t\t\t\treturn ec.fieldContext_WorldWithMultipleKeys_bar(ctx, field)\n\t\t\tcase \"hello\":\n\t\t\t\treturn ec.fieldContext_WorldWithMultipleKeys_hello(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type WorldWithMultipleKeys\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findWorldWithMultipleKeysByHelloNameAndFoo_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Entity_findWorldWithMultipleKeysByBar(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Entity_findWorldWithMultipleKeysByBar,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindWorldWithMultipleKeysByBar(ctx, fc.Args[\"bar\"].(int))\n\t\t},\n\t\tnil,\n\t\tec.marshalNWorldWithMultipleKeys2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐWorldWithMultipleKeys,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Entity_findWorldWithMultipleKeysByBar(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"foo\":\n\t\t\t\treturn ec.fieldContext_WorldWithMultipleKeys_foo(ctx, field)\n\t\t\tcase \"bar\":\n\t\t\t\treturn ec.fieldContext_WorldWithMultipleKeys_bar(ctx, field)\n\t\t\tcase \"hello\":\n\t\t\t\treturn ec.fieldContext_WorldWithMultipleKeys_hello(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type WorldWithMultipleKeys\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Entity_findWorldWithMultipleKeysByBar_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Female_description(ctx context.Context, field graphql.CollectedField, obj *Female) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Female_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Female_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Female\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Hello_name(ctx context.Context, field graphql.CollectedField, obj *Hello) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Hello_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Hello_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Hello\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Hello_secondary(ctx context.Context, field graphql.CollectedField, obj *Hello) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Hello_secondary,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Secondary, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Hello_secondary(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Hello\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _HelloMultiSingleKeys_key1(ctx context.Context, field graphql.CollectedField, obj *HelloMultiSingleKeys) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_HelloMultiSingleKeys_key1,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Key1, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_HelloMultiSingleKeys_key1(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"HelloMultiSingleKeys\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _HelloMultiSingleKeys_key2(ctx context.Context, field graphql.CollectedField, obj *HelloMultiSingleKeys) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_HelloMultiSingleKeys_key2,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Key2, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_HelloMultiSingleKeys_key2(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"HelloMultiSingleKeys\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _HelloWithErrors_name(ctx context.Context, field graphql.CollectedField, obj *HelloWithErrors) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_HelloWithErrors_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_HelloWithErrors_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"HelloWithErrors\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Male_description(ctx context.Context, field graphql.CollectedField, obj *Male) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Male_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Male_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Male\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiHello_name(ctx context.Context, field graphql.CollectedField, obj *MultiHello) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiHello_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiHello_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHello\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiHelloMultipleRequires_name(ctx context.Context, field graphql.CollectedField, obj *MultiHelloMultipleRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiHelloMultipleRequires_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiHelloMultipleRequires_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHelloMultipleRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiHelloMultipleRequires_key1(ctx context.Context, field graphql.CollectedField, obj *MultiHelloMultipleRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiHelloMultipleRequires_key1,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Key1, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiHelloMultipleRequires_key1(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHelloMultipleRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiHelloMultipleRequires_key2(ctx context.Context, field graphql.CollectedField, obj *MultiHelloMultipleRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiHelloMultipleRequires_key2,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Key2, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiHelloMultipleRequires_key2(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHelloMultipleRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiHelloMultipleRequires_key3(ctx context.Context, field graphql.CollectedField, obj *MultiHelloMultipleRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiHelloMultipleRequires_key3,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Key3, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiHelloMultipleRequires_key3(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHelloMultipleRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiHelloRequires_name(ctx context.Context, field graphql.CollectedField, obj *MultiHelloRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiHelloRequires_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiHelloRequires_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHelloRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiHelloRequires_key1(ctx context.Context, field graphql.CollectedField, obj *MultiHelloRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiHelloRequires_key1,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Key1, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiHelloRequires_key1(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHelloRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiHelloRequires_key2(ctx context.Context, field graphql.CollectedField, obj *MultiHelloRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiHelloRequires_key2,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Key2, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiHelloRequires_key2(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHelloRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiHelloWithError_name(ctx context.Context, field graphql.CollectedField, obj *MultiHelloWithError) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiHelloWithError_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiHelloWithError_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHelloWithError\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiPlanetRequiresNested_name(ctx context.Context, field graphql.CollectedField, obj *MultiPlanetRequiresNested) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiPlanetRequiresNested_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiPlanetRequiresNested_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiPlanetRequiresNested\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiPlanetRequiresNested_world(ctx context.Context, field graphql.CollectedField, obj *MultiPlanetRequiresNested) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiPlanetRequiresNested_world,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.World, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNWorld2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐWorld,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiPlanetRequiresNested_world(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiPlanetRequiresNested\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"foo\":\n\t\t\t\treturn ec.fieldContext_World_foo(ctx, field)\n\t\t\tcase \"bar\":\n\t\t\t\treturn ec.fieldContext_World_bar(ctx, field)\n\t\t\tcase \"hello\":\n\t\t\t\treturn ec.fieldContext_World_hello(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type World\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiPlanetRequiresNested_worlds(ctx context.Context, field graphql.CollectedField, obj *MultiPlanetRequiresNested) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiPlanetRequiresNested_worlds,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Worlds, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOWorld2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐWorldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiPlanetRequiresNested_worlds(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiPlanetRequiresNested\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"foo\":\n\t\t\t\treturn ec.fieldContext_World_foo(ctx, field)\n\t\t\tcase \"bar\":\n\t\t\t\treturn ec.fieldContext_World_bar(ctx, field)\n\t\t\tcase \"hello\":\n\t\t\t\treturn ec.fieldContext_World_hello(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type World\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiPlanetRequiresNested_size(ctx context.Context, field graphql.CollectedField, obj *MultiPlanetRequiresNested) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiPlanetRequiresNested_size,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Size, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiPlanetRequiresNested_size(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiPlanetRequiresNested\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _MultiPlanetRequiresNested_sizes(ctx context.Context, field graphql.CollectedField, obj *MultiPlanetRequiresNested) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_MultiPlanetRequiresNested_sizes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Sizes, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOInt2ᚕintᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_MultiPlanetRequiresNested_sizes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiPlanetRequiresNested\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Person_name(ctx context.Context, field graphql.CollectedField, obj *Person) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Person_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Person_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Person\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Person_gender(ctx context.Context, field graphql.CollectedField, obj *Person) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Person_gender,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Gender, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNGender2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐGender,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Person_gender(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Person\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Gender does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Person_welcomeMessage(ctx context.Context, field graphql.CollectedField, obj *Person) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Person_welcomeMessage,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.WelcomeMessage, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Person_welcomeMessage(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Person\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetMultipleRequires_name(ctx context.Context, field graphql.CollectedField, obj *PlanetMultipleRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetMultipleRequires_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetMultipleRequires_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetMultipleRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetMultipleRequires_diameter(ctx context.Context, field graphql.CollectedField, obj *PlanetMultipleRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetMultipleRequires_diameter,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Diameter, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetMultipleRequires_diameter(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetMultipleRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetMultipleRequires_density(ctx context.Context, field graphql.CollectedField, obj *PlanetMultipleRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetMultipleRequires_density,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Density, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetMultipleRequires_density(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetMultipleRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetMultipleRequires_weight(ctx context.Context, field graphql.CollectedField, obj *PlanetMultipleRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetMultipleRequires_weight,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Weight, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetMultipleRequires_weight(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetMultipleRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetRequires_name(ctx context.Context, field graphql.CollectedField, obj *PlanetRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetRequires_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetRequires_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetRequires_size(ctx context.Context, field graphql.CollectedField, obj *PlanetRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetRequires_size,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Size, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetRequires_size(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetRequires_diameter(ctx context.Context, field graphql.CollectedField, obj *PlanetRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetRequires_diameter,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Diameter, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetRequires_diameter(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetRequiresNested_name(ctx context.Context, field graphql.CollectedField, obj *PlanetRequiresNested) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetRequiresNested_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetRequiresNested_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetRequiresNested\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetRequiresNested_world(ctx context.Context, field graphql.CollectedField, obj *PlanetRequiresNested) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetRequiresNested_world,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.World, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNWorld2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐWorld,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetRequiresNested_world(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetRequiresNested\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"foo\":\n\t\t\t\treturn ec.fieldContext_World_foo(ctx, field)\n\t\t\tcase \"bar\":\n\t\t\t\treturn ec.fieldContext_World_bar(ctx, field)\n\t\t\tcase \"hello\":\n\t\t\t\treturn ec.fieldContext_World_hello(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type World\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetRequiresNested_worlds(ctx context.Context, field graphql.CollectedField, obj *PlanetRequiresNested) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetRequiresNested_worlds,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Worlds, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOWorld2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐWorldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetRequiresNested_worlds(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetRequiresNested\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"foo\":\n\t\t\t\treturn ec.fieldContext_World_foo(ctx, field)\n\t\t\tcase \"bar\":\n\t\t\t\treturn ec.fieldContext_World_bar(ctx, field)\n\t\t\tcase \"hello\":\n\t\t\t\treturn ec.fieldContext_World_hello(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type World\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetRequiresNested_size(ctx context.Context, field graphql.CollectedField, obj *PlanetRequiresNested) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetRequiresNested_size,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Size, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetRequiresNested_size(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetRequiresNested\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _PlanetRequiresNested_sizes(ctx context.Context, field graphql.CollectedField, obj *PlanetRequiresNested) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_PlanetRequiresNested_sizes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Sizes, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOInt2ᚕintᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_PlanetRequiresNested_sizes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetRequiresNested\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query__entities(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query__entities,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.__resolve_entities(ctx, fc.Args[\"representations\"].([]map[string]any)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN_Entity2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query__entities(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type _Entity does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query__entities_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query__service(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query__service,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.__resolve__service(ctx)\n\t\t},\n\t\tnil,\n\t\tec.marshalN_Service2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐService,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query__service(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"sdl\":\n\t\t\t\treturn ec.fieldContext__Service_sdl(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type _Service\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.IntrospectType(fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___schema,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.IntrospectSchema()\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _World_foo(ctx context.Context, field graphql.CollectedField, obj *World) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_World_foo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Foo, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_World_foo(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"World\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _World_bar(ctx context.Context, field graphql.CollectedField, obj *World) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_World_bar,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Bar, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_World_bar(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"World\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _World_hello(ctx context.Context, field graphql.CollectedField, obj *World) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_World_hello,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Hello, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOHello2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐHello,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_World_hello(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"World\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_Hello_name(ctx, field)\n\t\t\tcase \"secondary\":\n\t\t\t\treturn ec.fieldContext_Hello_secondary(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Hello\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _WorldName_name(ctx context.Context, field graphql.CollectedField, obj *WorldName) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_WorldName_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_WorldName_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"WorldName\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _WorldWithMultipleKeys_foo(ctx context.Context, field graphql.CollectedField, obj *WorldWithMultipleKeys) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_WorldWithMultipleKeys_foo,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Foo, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_WorldWithMultipleKeys_foo(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"WorldWithMultipleKeys\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _WorldWithMultipleKeys_bar(ctx context.Context, field graphql.CollectedField, obj *WorldWithMultipleKeys) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_WorldWithMultipleKeys_bar,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Bar, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNInt2int,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_WorldWithMultipleKeys_bar(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"WorldWithMultipleKeys\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _WorldWithMultipleKeys_hello(ctx context.Context, field graphql.CollectedField, obj *WorldWithMultipleKeys) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_WorldWithMultipleKeys_hello,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Hello, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOHello2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐHello,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_WorldWithMultipleKeys_hello(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"WorldWithMultipleKeys\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_Hello_name(ctx, field)\n\t\t\tcase \"secondary\":\n\t\t\t\treturn ec.fieldContext_Hello_secondary(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Hello\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) __Service_sdl(ctx context.Context, field graphql.CollectedField, obj *fedruntime.Service) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext__Service_sdl,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SDL, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2string,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext__Service_sdl(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"_Service\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_isRepeatable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsRepeatable, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_locations,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Locations, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__DirectiveLocation2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_defaultValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DefaultValue, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_types,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Types(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_queryType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.QueryType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_mutationType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.MutationType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_subscriptionType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SubscriptionType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_directives,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Directives(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_kind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Kind(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__TypeKind2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_specifiedByURL,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SpecifiedByURL(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_fields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_interfaces,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Interfaces(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_possibleTypes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PossibleTypes(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_enumValues,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_inputFields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.InputFields(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_ofType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.OfType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_isOneOf,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsOneOf(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOBoolean2bool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalInputMultiHelloByNamesInput(ctx context.Context, obj any) (MultiHelloByNamesInput, error) {\n\tvar it MultiHelloByNamesInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"Name\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"Name\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"Name\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Name = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputMultiHelloMultipleRequiresByNamesInput(ctx context.Context, obj any) (MultiHelloMultipleRequiresByNamesInput, error) {\n\tvar it MultiHelloMultipleRequiresByNamesInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"Name\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"Name\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"Name\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Name = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputMultiHelloRequiresByNamesInput(ctx context.Context, obj any) (MultiHelloRequiresByNamesInput, error) {\n\tvar it MultiHelloRequiresByNamesInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"Name\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"Name\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"Name\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Name = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputMultiHelloWithErrorByNamesInput(ctx context.Context, obj any) (MultiHelloWithErrorByNamesInput, error) {\n\tvar it MultiHelloWithErrorByNamesInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"Name\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"Name\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"Name\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Name = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc (ec *executionContext) unmarshalInputMultiPlanetRequiresNestedByNamesInput(ctx context.Context, obj any) (MultiPlanetRequiresNestedByNamesInput, error) {\n\tvar it MultiPlanetRequiresNestedByNamesInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"Name\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"Name\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"Name\"))\n\t\t\tdata, err := ec.unmarshalNString2string(ctx, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Name = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\nfunc (ec *executionContext) _Gender(ctx context.Context, sel ast.SelectionSet, obj Gender) graphql.Marshaler {\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\tcase Male:\n\t\treturn ec._Male(ctx, sel, &obj)\n\tcase *Male:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Male(ctx, sel, obj)\n\tcase Female:\n\t\treturn ec._Female(ctx, sel, &obj)\n\tcase *Female:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Female(ctx, sel, obj)\n\tdefault:\n\t\tif typedObj, ok := obj.(graphql.Marshaler); ok {\n\t\t\treturn typedObj\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T; non-generated variants of Gender must implement graphql.Marshaler\", obj))\n\t\t}\n\t}\n}\n\nfunc (ec *executionContext) __Entity(ctx context.Context, sel ast.SelectionSet, obj fedruntime.Entity) graphql.Marshaler {\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\tcase WorldWithMultipleKeys:\n\t\treturn ec._WorldWithMultipleKeys(ctx, sel, &obj)\n\tcase *WorldWithMultipleKeys:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._WorldWithMultipleKeys(ctx, sel, obj)\n\tcase WorldName:\n\t\treturn ec._WorldName(ctx, sel, &obj)\n\tcase *WorldName:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._WorldName(ctx, sel, obj)\n\tcase World:\n\t\treturn ec._World(ctx, sel, &obj)\n\tcase *World:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._World(ctx, sel, obj)\n\tcase PlanetRequiresNested:\n\t\treturn ec._PlanetRequiresNested(ctx, sel, &obj)\n\tcase *PlanetRequiresNested:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._PlanetRequiresNested(ctx, sel, obj)\n\tcase PlanetRequires:\n\t\treturn ec._PlanetRequires(ctx, sel, &obj)\n\tcase *PlanetRequires:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._PlanetRequires(ctx, sel, obj)\n\tcase PlanetMultipleRequires:\n\t\treturn ec._PlanetMultipleRequires(ctx, sel, &obj)\n\tcase *PlanetMultipleRequires:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._PlanetMultipleRequires(ctx, sel, obj)\n\tcase Person:\n\t\treturn ec._Person(ctx, sel, &obj)\n\tcase *Person:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Person(ctx, sel, obj)\n\tcase MultiPlanetRequiresNested:\n\t\treturn ec._MultiPlanetRequiresNested(ctx, sel, &obj)\n\tcase *MultiPlanetRequiresNested:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._MultiPlanetRequiresNested(ctx, sel, obj)\n\tcase MultiHelloWithError:\n\t\treturn ec._MultiHelloWithError(ctx, sel, &obj)\n\tcase *MultiHelloWithError:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._MultiHelloWithError(ctx, sel, obj)\n\tcase MultiHelloRequires:\n\t\treturn ec._MultiHelloRequires(ctx, sel, &obj)\n\tcase *MultiHelloRequires:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._MultiHelloRequires(ctx, sel, obj)\n\tcase MultiHelloMultipleRequires:\n\t\treturn ec._MultiHelloMultipleRequires(ctx, sel, &obj)\n\tcase *MultiHelloMultipleRequires:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._MultiHelloMultipleRequires(ctx, sel, obj)\n\tcase MultiHello:\n\t\treturn ec._MultiHello(ctx, sel, &obj)\n\tcase *MultiHello:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._MultiHello(ctx, sel, obj)\n\tcase HelloWithErrors:\n\t\treturn ec._HelloWithErrors(ctx, sel, &obj)\n\tcase *HelloWithErrors:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._HelloWithErrors(ctx, sel, obj)\n\tcase HelloMultiSingleKeys:\n\t\treturn ec._HelloMultiSingleKeys(ctx, sel, &obj)\n\tcase *HelloMultiSingleKeys:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._HelloMultiSingleKeys(ctx, sel, obj)\n\tcase Hello:\n\t\treturn ec._Hello(ctx, sel, &obj)\n\tcase *Hello:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn ec._Hello(ctx, sel, obj)\n\tdefault:\n\t\tif typedObj, ok := obj.(graphql.Marshaler); ok {\n\t\t\treturn typedObj\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T; non-generated variants of _Entity must implement graphql.Marshaler\", obj))\n\t\t}\n\t}\n}\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar entityImplementors = []string{\"Entity\"}\n\nfunc (ec *executionContext) _Entity(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, entityImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Entity\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Entity\")\n\t\tcase \"findHelloByName\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findHelloByName(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findHelloMultiSingleKeysByKey1AndKey2\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findHelloMultiSingleKeysByKey1AndKey2(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findHelloWithErrorsByName\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findHelloWithErrorsByName(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findManyMultiHelloByNames\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findManyMultiHelloByNames(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findManyMultiHelloMultipleRequiresByNames\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findManyMultiHelloMultipleRequiresByNames(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findManyMultiHelloRequiresByNames\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findManyMultiHelloRequiresByNames(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findManyMultiHelloWithErrorByNames\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findManyMultiHelloWithErrorByNames(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findManyMultiPlanetRequiresNestedByNames\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findManyMultiPlanetRequiresNestedByNames(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findPersonByName\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findPersonByName(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findPlanetMultipleRequiresByName\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findPlanetMultipleRequiresByName(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findPlanetRequiresByName\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findPlanetRequiresByName(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findPlanetRequiresNestedByName\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findPlanetRequiresNestedByName(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findWorldByHelloNameAndFoo\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findWorldByHelloNameAndFoo(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findWorldNameByName\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findWorldNameByName(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findWorldWithMultipleKeysByHelloNameAndFoo\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findWorldWithMultipleKeysByHelloNameAndFoo(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findWorldWithMultipleKeysByBar\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Entity_findWorldWithMultipleKeysByBar(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar femaleImplementors = []string{\"Female\", \"Gender\"}\n\nfunc (ec *executionContext) _Female(ctx context.Context, sel ast.SelectionSet, obj *Female) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, femaleImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Female\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec._Female_description(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar helloImplementors = []string{\"Hello\", \"_Entity\"}\n\nfunc (ec *executionContext) _Hello(ctx context.Context, sel ast.SelectionSet, obj *Hello) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, helloImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Hello\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._Hello_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"secondary\":\n\t\t\tout.Values[i] = ec._Hello_secondary(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar helloMultiSingleKeysImplementors = []string{\"HelloMultiSingleKeys\", \"_Entity\"}\n\nfunc (ec *executionContext) _HelloMultiSingleKeys(ctx context.Context, sel ast.SelectionSet, obj *HelloMultiSingleKeys) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, helloMultiSingleKeysImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"HelloMultiSingleKeys\")\n\t\tcase \"key1\":\n\t\t\tout.Values[i] = ec._HelloMultiSingleKeys_key1(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"key2\":\n\t\t\tout.Values[i] = ec._HelloMultiSingleKeys_key2(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar helloWithErrorsImplementors = []string{\"HelloWithErrors\", \"_Entity\"}\n\nfunc (ec *executionContext) _HelloWithErrors(ctx context.Context, sel ast.SelectionSet, obj *HelloWithErrors) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, helloWithErrorsImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"HelloWithErrors\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._HelloWithErrors_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar maleImplementors = []string{\"Male\", \"Gender\"}\n\nfunc (ec *executionContext) _Male(ctx context.Context, sel ast.SelectionSet, obj *Male) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, maleImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Male\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec._Male_description(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar multiHelloImplementors = []string{\"MultiHello\", \"_Entity\"}\n\nfunc (ec *executionContext) _MultiHello(ctx context.Context, sel ast.SelectionSet, obj *MultiHello) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, multiHelloImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"MultiHello\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._MultiHello_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar multiHelloMultipleRequiresImplementors = []string{\"MultiHelloMultipleRequires\", \"_Entity\"}\n\nfunc (ec *executionContext) _MultiHelloMultipleRequires(ctx context.Context, sel ast.SelectionSet, obj *MultiHelloMultipleRequires) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, multiHelloMultipleRequiresImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"MultiHelloMultipleRequires\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._MultiHelloMultipleRequires_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"key1\":\n\t\t\tout.Values[i] = ec._MultiHelloMultipleRequires_key1(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"key2\":\n\t\t\tout.Values[i] = ec._MultiHelloMultipleRequires_key2(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"key3\":\n\t\t\tout.Values[i] = ec._MultiHelloMultipleRequires_key3(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar multiHelloRequiresImplementors = []string{\"MultiHelloRequires\", \"_Entity\"}\n\nfunc (ec *executionContext) _MultiHelloRequires(ctx context.Context, sel ast.SelectionSet, obj *MultiHelloRequires) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, multiHelloRequiresImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"MultiHelloRequires\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._MultiHelloRequires_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"key1\":\n\t\t\tout.Values[i] = ec._MultiHelloRequires_key1(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"key2\":\n\t\t\tout.Values[i] = ec._MultiHelloRequires_key2(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar multiHelloWithErrorImplementors = []string{\"MultiHelloWithError\", \"_Entity\"}\n\nfunc (ec *executionContext) _MultiHelloWithError(ctx context.Context, sel ast.SelectionSet, obj *MultiHelloWithError) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, multiHelloWithErrorImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"MultiHelloWithError\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._MultiHelloWithError_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar multiPlanetRequiresNestedImplementors = []string{\"MultiPlanetRequiresNested\", \"_Entity\"}\n\nfunc (ec *executionContext) _MultiPlanetRequiresNested(ctx context.Context, sel ast.SelectionSet, obj *MultiPlanetRequiresNested) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, multiPlanetRequiresNestedImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"MultiPlanetRequiresNested\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._MultiPlanetRequiresNested_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"world\":\n\t\t\tout.Values[i] = ec._MultiPlanetRequiresNested_world(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"worlds\":\n\t\t\tout.Values[i] = ec._MultiPlanetRequiresNested_worlds(ctx, field, obj)\n\t\tcase \"size\":\n\t\t\tout.Values[i] = ec._MultiPlanetRequiresNested_size(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"sizes\":\n\t\t\tout.Values[i] = ec._MultiPlanetRequiresNested_sizes(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar personImplementors = []string{\"Person\", \"_Entity\"}\n\nfunc (ec *executionContext) _Person(ctx context.Context, sel ast.SelectionSet, obj *Person) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, personImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Person\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._Person_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"gender\":\n\t\t\tout.Values[i] = ec._Person_gender(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"welcomeMessage\":\n\t\t\tout.Values[i] = ec._Person_welcomeMessage(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar planetMultipleRequiresImplementors = []string{\"PlanetMultipleRequires\", \"_Entity\"}\n\nfunc (ec *executionContext) _PlanetMultipleRequires(ctx context.Context, sel ast.SelectionSet, obj *PlanetMultipleRequires) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, planetMultipleRequiresImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"PlanetMultipleRequires\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._PlanetMultipleRequires_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"diameter\":\n\t\t\tout.Values[i] = ec._PlanetMultipleRequires_diameter(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"density\":\n\t\t\tout.Values[i] = ec._PlanetMultipleRequires_density(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"weight\":\n\t\t\tout.Values[i] = ec._PlanetMultipleRequires_weight(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar planetRequiresImplementors = []string{\"PlanetRequires\", \"_Entity\"}\n\nfunc (ec *executionContext) _PlanetRequires(ctx context.Context, sel ast.SelectionSet, obj *PlanetRequires) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, planetRequiresImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"PlanetRequires\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._PlanetRequires_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"size\":\n\t\t\tout.Values[i] = ec._PlanetRequires_size(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"diameter\":\n\t\t\tout.Values[i] = ec._PlanetRequires_diameter(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar planetRequiresNestedImplementors = []string{\"PlanetRequiresNested\", \"_Entity\"}\n\nfunc (ec *executionContext) _PlanetRequiresNested(ctx context.Context, sel ast.SelectionSet, obj *PlanetRequiresNested) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, planetRequiresNestedImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"PlanetRequiresNested\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._PlanetRequiresNested_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"world\":\n\t\t\tout.Values[i] = ec._PlanetRequiresNested_world(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"worlds\":\n\t\t\tout.Values[i] = ec._PlanetRequiresNested_worlds(ctx, field, obj)\n\t\tcase \"size\":\n\t\t\tout.Values[i] = ec._PlanetRequiresNested_size(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"sizes\":\n\t\t\tout.Values[i] = ec._PlanetRequiresNested_sizes(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"_entities\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query__entities(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"_service\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query__service(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar worldImplementors = []string{\"World\", \"_Entity\"}\n\nfunc (ec *executionContext) _World(ctx context.Context, sel ast.SelectionSet, obj *World) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, worldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"World\")\n\t\tcase \"foo\":\n\t\t\tout.Values[i] = ec._World_foo(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"bar\":\n\t\t\tout.Values[i] = ec._World_bar(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"hello\":\n\t\t\tout.Values[i] = ec._World_hello(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar worldNameImplementors = []string{\"WorldName\", \"_Entity\"}\n\nfunc (ec *executionContext) _WorldName(ctx context.Context, sel ast.SelectionSet, obj *WorldName) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, worldNameImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"WorldName\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec._WorldName_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar worldWithMultipleKeysImplementors = []string{\"WorldWithMultipleKeys\", \"_Entity\"}\n\nfunc (ec *executionContext) _WorldWithMultipleKeys(ctx context.Context, sel ast.SelectionSet, obj *WorldWithMultipleKeys) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, worldWithMultipleKeysImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"WorldWithMultipleKeys\")\n\t\tcase \"foo\":\n\t\t\tout.Values[i] = ec._WorldWithMultipleKeys_foo(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"bar\":\n\t\t\tout.Values[i] = ec._WorldWithMultipleKeys_bar(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"hello\":\n\t\t\tout.Values[i] = ec._WorldWithMultipleKeys_hello(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar _ServiceImplementors = []string{\"_Service\"}\n\nfunc (ec *executionContext) __Service(ctx context.Context, sel ast.SelectionSet, obj *fedruntime.Service) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, _ServiceImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"_Service\")\n\t\tcase \"sdl\":\n\t\t\tout.Values[i] = ec.__Service_sdl(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNGender2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐGender(ctx context.Context, sel ast.SelectionSet, v Gender) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Gender(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNHello2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐHello(ctx context.Context, sel ast.SelectionSet, v Hello) graphql.Marshaler {\n\treturn ec._Hello(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNHello2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐHello(ctx context.Context, sel ast.SelectionSet, v *Hello) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Hello(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNHelloMultiSingleKeys2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐHelloMultiSingleKeys(ctx context.Context, sel ast.SelectionSet, v HelloMultiSingleKeys) graphql.Marshaler {\n\treturn ec._HelloMultiSingleKeys(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNHelloMultiSingleKeys2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐHelloMultiSingleKeys(ctx context.Context, sel ast.SelectionSet, v *HelloMultiSingleKeys) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._HelloMultiSingleKeys(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNHelloWithErrors2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐHelloWithErrors(ctx context.Context, sel ast.SelectionSet, v HelloWithErrors) graphql.Marshaler {\n\treturn ec._HelloWithErrors(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNHelloWithErrors2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐHelloWithErrors(ctx context.Context, sel ast.SelectionSet, v *HelloWithErrors) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._HelloWithErrors(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNInt2int(ctx context.Context, v any) (int, error) {\n\tres, err := graphql.UnmarshalInt(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNInt2int(ctx context.Context, sel ast.SelectionSet, v int) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalInt(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNMultiHelloByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiHelloByNamesInput(ctx context.Context, v any) ([]*MultiHelloByNamesInput, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]*MultiHelloByNamesInput, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalOMultiHelloByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiHelloByNamesInput(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) unmarshalNMultiHelloMultipleRequiresByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiHelloMultipleRequiresByNamesInput(ctx context.Context, v any) ([]*MultiHelloMultipleRequiresByNamesInput, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]*MultiHelloMultipleRequiresByNamesInput, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalOMultiHelloMultipleRequiresByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiHelloMultipleRequiresByNamesInput(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) unmarshalNMultiHelloRequiresByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiHelloRequiresByNamesInput(ctx context.Context, v any) ([]*MultiHelloRequiresByNamesInput, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]*MultiHelloRequiresByNamesInput, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalOMultiHelloRequiresByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiHelloRequiresByNamesInput(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) unmarshalNMultiHelloWithErrorByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiHelloWithErrorByNamesInput(ctx context.Context, v any) ([]*MultiHelloWithErrorByNamesInput, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]*MultiHelloWithErrorByNamesInput, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalOMultiHelloWithErrorByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiHelloWithErrorByNamesInput(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) unmarshalNMultiPlanetRequiresNestedByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiPlanetRequiresNestedByNamesInput(ctx context.Context, v any) ([]*MultiPlanetRequiresNestedByNamesInput, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]*MultiPlanetRequiresNestedByNamesInput, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalOMultiPlanetRequiresNestedByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiPlanetRequiresNestedByNamesInput(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalNPerson2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐPerson(ctx context.Context, sel ast.SelectionSet, v Person) graphql.Marshaler {\n\treturn ec._Person(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNPerson2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐPerson(ctx context.Context, sel ast.SelectionSet, v *Person) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._Person(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNPlanetMultipleRequires2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐPlanetMultipleRequires(ctx context.Context, sel ast.SelectionSet, v PlanetMultipleRequires) graphql.Marshaler {\n\treturn ec._PlanetMultipleRequires(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNPlanetMultipleRequires2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐPlanetMultipleRequires(ctx context.Context, sel ast.SelectionSet, v *PlanetMultipleRequires) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._PlanetMultipleRequires(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNPlanetRequires2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐPlanetRequires(ctx context.Context, sel ast.SelectionSet, v PlanetRequires) graphql.Marshaler {\n\treturn ec._PlanetRequires(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNPlanetRequires2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐPlanetRequires(ctx context.Context, sel ast.SelectionSet, v *PlanetRequires) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._PlanetRequires(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNPlanetRequiresNested2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐPlanetRequiresNested(ctx context.Context, sel ast.SelectionSet, v PlanetRequiresNested) graphql.Marshaler {\n\treturn ec._PlanetRequiresNested(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNPlanetRequiresNested2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐPlanetRequiresNested(ctx context.Context, sel ast.SelectionSet, v *PlanetRequiresNested) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._PlanetRequiresNested(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNWorld2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐWorld(ctx context.Context, sel ast.SelectionSet, v World) graphql.Marshaler {\n\treturn ec._World(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNWorld2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐWorld(ctx context.Context, sel ast.SelectionSet, v *World) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._World(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNWorldName2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐWorldName(ctx context.Context, sel ast.SelectionSet, v WorldName) graphql.Marshaler {\n\treturn ec._WorldName(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNWorldName2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐWorldName(ctx context.Context, sel ast.SelectionSet, v *WorldName) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._WorldName(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalNWorldWithMultipleKeys2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐWorldWithMultipleKeys(ctx context.Context, sel ast.SelectionSet, v WorldWithMultipleKeys) graphql.Marshaler {\n\treturn ec._WorldWithMultipleKeys(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalNWorldWithMultipleKeys2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐWorldWithMultipleKeys(ctx context.Context, sel ast.SelectionSet, v *WorldWithMultipleKeys) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec._WorldWithMultipleKeys(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN_Any2map(ctx context.Context, v any) (map[string]any, error) {\n\tres, err := graphql.UnmarshalMap(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN_Any2map(ctx context.Context, sel ast.SelectionSet, v map[string]any) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\tres := graphql.MarshalMap(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN_Any2ᚕmapᚄ(ctx context.Context, v any) ([]map[string]any, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]map[string]any, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN_Any2map(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN_Any2ᚕmapᚄ(ctx context.Context, sel ast.SelectionSet, v []map[string]any) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalN_Any2map(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN_Entity2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity(ctx context.Context, sel ast.SelectionSet, v []fedruntime.Entity) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalO_Entity2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN_FieldSet2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN_FieldSet2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalN_Service2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐService(ctx context.Context, sel ast.SelectionSet, v fedruntime.Service) graphql.Marshaler {\n\treturn ec.__Service(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalOHello2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐHello(ctx context.Context, sel ast.SelectionSet, v *Hello) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._Hello(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOInt2ᚕintᚄ(ctx context.Context, v any) ([]int, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]int, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalNInt2int(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalOInt2ᚕintᚄ(ctx context.Context, sel ast.SelectionSet, v []int) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = ec.marshalNInt2int(ctx, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOMultiHello2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiHello(ctx context.Context, sel ast.SelectionSet, v []*MultiHello) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalOMultiHello2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiHello(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOMultiHello2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiHello(ctx context.Context, sel ast.SelectionSet, v *MultiHello) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._MultiHello(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOMultiHelloByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiHelloByNamesInput(ctx context.Context, v any) (*MultiHelloByNamesInput, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputMultiHelloByNamesInput(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOMultiHelloMultipleRequires2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiHelloMultipleRequires(ctx context.Context, sel ast.SelectionSet, v []*MultiHelloMultipleRequires) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalOMultiHelloMultipleRequires2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiHelloMultipleRequires(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOMultiHelloMultipleRequires2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiHelloMultipleRequires(ctx context.Context, sel ast.SelectionSet, v *MultiHelloMultipleRequires) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._MultiHelloMultipleRequires(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOMultiHelloMultipleRequiresByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiHelloMultipleRequiresByNamesInput(ctx context.Context, v any) (*MultiHelloMultipleRequiresByNamesInput, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputMultiHelloMultipleRequiresByNamesInput(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOMultiHelloRequires2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiHelloRequires(ctx context.Context, sel ast.SelectionSet, v []*MultiHelloRequires) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalOMultiHelloRequires2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiHelloRequires(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOMultiHelloRequires2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiHelloRequires(ctx context.Context, sel ast.SelectionSet, v *MultiHelloRequires) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._MultiHelloRequires(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOMultiHelloRequiresByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiHelloRequiresByNamesInput(ctx context.Context, v any) (*MultiHelloRequiresByNamesInput, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputMultiHelloRequiresByNamesInput(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOMultiHelloWithError2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiHelloWithError(ctx context.Context, sel ast.SelectionSet, v []*MultiHelloWithError) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalOMultiHelloWithError2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiHelloWithError(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOMultiHelloWithError2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiHelloWithError(ctx context.Context, sel ast.SelectionSet, v *MultiHelloWithError) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._MultiHelloWithError(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOMultiHelloWithErrorByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiHelloWithErrorByNamesInput(ctx context.Context, v any) (*MultiHelloWithErrorByNamesInput, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputMultiHelloWithErrorByNamesInput(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOMultiPlanetRequiresNested2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiPlanetRequiresNested(ctx context.Context, sel ast.SelectionSet, v []*MultiPlanetRequiresNested) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalOMultiPlanetRequiresNested2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiPlanetRequiresNested(ctx, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalOMultiPlanetRequiresNested2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiPlanetRequiresNested(ctx context.Context, sel ast.SelectionSet, v *MultiPlanetRequiresNested) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._MultiPlanetRequiresNested(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalOMultiPlanetRequiresNestedByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐMultiPlanetRequiresNestedByNamesInput(ctx context.Context, v any) (*MultiPlanetRequiresNestedByNamesInput, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := ec.unmarshalInputMultiPlanetRequiresNestedByNamesInput(ctx, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) unmarshalOString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalOWorld2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐWorldᚄ(ctx context.Context, sel ast.SelectionSet, v []*World) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalNWorld2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋexplicitrequiresᚋgeneratedᚐWorld(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO_Entity2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity(ctx context.Context, sel ast.SelectionSet, v fedruntime.Entity) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.__Entity(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "plugin/federation/testdata/explicitrequires/generated/federation.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage generated\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"github.com/99designs/gqlgen/plugin/federation/fedruntime\"\n)\n\nvar (\n\tErrUnknownType  = errors.New(\"unknown type\")\n\tErrTypeNotFound = errors.New(\"type not found\")\n)\n\nfunc (ec *executionContext) __resolve__service(ctx context.Context) (fedruntime.Service, error) {\n\tif ec.DisableIntrospection {\n\t\treturn fedruntime.Service{}, errors.New(\"federated introspection disabled\")\n\t}\n\n\tvar sdl []string\n\n\tfor _, src := range sources {\n\t\tif src.BuiltIn {\n\t\t\tcontinue\n\t\t}\n\t\tsdl = append(sdl, src.Input)\n\t}\n\n\treturn fedruntime.Service{\n\t\tSDL: strings.Join(sdl, \"\\n\"),\n\t}, nil\n}\n\nfunc (ec *executionContext) __resolve_entities(ctx context.Context, representations []map[string]any) []fedruntime.Entity {\n\tlist := make([]fedruntime.Entity, len(representations))\n\n\trepsMap := ec.buildRepresentationGroups(ctx, representations)\n\n\tswitch len(repsMap) {\n\tcase 0:\n\t\treturn list\n\tcase 1:\n\t\tfor typeName, reps := range repsMap {\n\t\t\tec.resolveEntityGroup(ctx, typeName, reps, list)\n\t\t}\n\t\treturn list\n\tdefault:\n\t\tvar g sync.WaitGroup\n\t\tg.Add(len(repsMap))\n\t\tfor typeName, reps := range repsMap {\n\t\t\tgo func(typeName string, reps []EntityWithIndex) {\n\t\t\t\tec.resolveEntityGroup(ctx, typeName, reps, list)\n\t\t\t\tg.Done()\n\t\t\t}(typeName, reps)\n\t\t}\n\t\tg.Wait()\n\t\treturn list\n\t}\n}\n\ntype EntityWithIndex struct {\n\t// The index in the original representation array\n\tindex  int\n\tentity EntityRepresentation\n}\n\n// EntityRepresentation is the JSON representation of an entity sent by the Router\n// used as the inputs for us to resolve.\n//\n// We make it a map because we know the top level JSON is always an object.\ntype EntityRepresentation map[string]any\n\n// We group entities by typename so that we can parallelize their resolution.\n// This is particularly helpful when there are entity groups in multi mode.\nfunc (ec *executionContext) buildRepresentationGroups(\n\tctx context.Context,\n\trepresentations []map[string]any,\n) map[string][]EntityWithIndex {\n\trepsMap := make(map[string][]EntityWithIndex)\n\tfor i, rep := range representations {\n\t\ttypeName, ok := rep[\"__typename\"].(string)\n\t\tif !ok {\n\t\t\t// If there is no __typename, we just skip the representation;\n\t\t\t// we just won't be resolving these unknown types.\n\t\t\tec.Error(ctx, errors.New(\"__typename must be an existing string\"))\n\t\t\tcontinue\n\t\t}\n\n\t\trepsMap[typeName] = append(repsMap[typeName], EntityWithIndex{\n\t\t\tindex:  i,\n\t\t\tentity: rep,\n\t\t})\n\t}\n\n\treturn repsMap\n}\n\nfunc (ec *executionContext) resolveEntityGroup(\n\tctx context.Context,\n\ttypeName string,\n\treps []EntityWithIndex,\n\tlist []fedruntime.Entity,\n) {\n\tif isMulti(typeName) {\n\t\terr := ec.resolveManyEntities(ctx, typeName, reps, list)\n\t\tif err != nil {\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t} else {\n\t\t// if there are multiple entities to resolve, parallelize (similar to\n\t\t// graphql.FieldSet.Dispatch)\n\t\tvar e sync.WaitGroup\n\t\te.Add(len(reps))\n\t\tfor i, rep := range reps {\n\t\t\ti, rep := i, rep\n\t\t\tgo func(i int, rep EntityWithIndex) {\n\t\t\t\tentity, err := ec.resolveEntity(ctx, typeName, rep.entity)\n\t\t\t\tif err != nil {\n\t\t\t\t\tec.Error(ctx, err)\n\t\t\t\t} else {\n\t\t\t\t\tlist[rep.index] = entity\n\t\t\t\t}\n\t\t\t\te.Done()\n\t\t\t}(i, rep)\n\t\t}\n\t\te.Wait()\n\t}\n}\n\nfunc isMulti(typeName string) bool {\n\tswitch typeName {\n\tcase \"MultiHello\":\n\t\treturn true\n\tcase \"MultiHelloMultipleRequires\":\n\t\treturn true\n\tcase \"MultiHelloRequires\":\n\t\treturn true\n\tcase \"MultiHelloWithError\":\n\t\treturn true\n\tcase \"MultiPlanetRequiresNested\":\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\nfunc (ec *executionContext) resolveEntity(\n\tctx context.Context,\n\ttypeName string,\n\trep EntityRepresentation,\n) (e fedruntime.Entity, err error) {\n\t// we need to do our own panic handling, because we may be called in a\n\t// goroutine, where the usual panic handling can't catch us\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t}\n\t}()\n\n\tswitch typeName {\n\tcase \"Hello\":\n\t\tresolverName, err := entityResolverNameForHello(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"Hello\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findHelloByName\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findHelloByName(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindHelloByName(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"Hello\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"HelloMultiSingleKeys\":\n\t\tresolverName, err := entityResolverNameForHelloMultiSingleKeys(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"HelloMultiSingleKeys\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findHelloMultiSingleKeysByKey1AndKey2\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"key1\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findHelloMultiSingleKeysByKey1AndKey2(): %w`, err)\n\t\t\t}\n\t\t\tid1, err := ec.unmarshalNString2string(ctx, rep[\"key2\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 1 for findHelloMultiSingleKeysByKey1AndKey2(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindHelloMultiSingleKeysByKey1AndKey2(ctx, id0, id1)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"HelloMultiSingleKeys\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"HelloWithErrors\":\n\t\tresolverName, err := entityResolverNameForHelloWithErrors(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"HelloWithErrors\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findHelloWithErrorsByName\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findHelloWithErrorsByName(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindHelloWithErrorsByName(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"HelloWithErrors\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"Person\":\n\t\tresolverName, err := entityResolverNameForPerson(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"Person\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findPersonByName\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findPersonByName(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindPersonByName(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"Person\": %w`, err)\n\t\t\t}\n\t\t\terr = ec.PopulatePersonRequires(ctx, entity, rep)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`populating requires for Entity \"Person\": %w`, err)\n\t\t\t}\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"PlanetMultipleRequires\":\n\t\tresolverName, err := entityResolverNameForPlanetMultipleRequires(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"PlanetMultipleRequires\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findPlanetMultipleRequiresByName\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findPlanetMultipleRequiresByName(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindPlanetMultipleRequiresByName(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"PlanetMultipleRequires\": %w`, err)\n\t\t\t}\n\t\t\terr = ec.PopulatePlanetMultipleRequiresRequires(ctx, entity, rep)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`populating requires for Entity \"PlanetMultipleRequires\": %w`, err)\n\t\t\t}\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"PlanetRequires\":\n\t\tresolverName, err := entityResolverNameForPlanetRequires(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"PlanetRequires\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findPlanetRequiresByName\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findPlanetRequiresByName(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindPlanetRequiresByName(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"PlanetRequires\": %w`, err)\n\t\t\t}\n\t\t\terr = ec.PopulatePlanetRequiresRequires(ctx, entity, rep)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`populating requires for Entity \"PlanetRequires\": %w`, err)\n\t\t\t}\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"PlanetRequiresNested\":\n\t\tresolverName, err := entityResolverNameForPlanetRequiresNested(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"PlanetRequiresNested\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findPlanetRequiresNestedByName\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findPlanetRequiresNestedByName(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindPlanetRequiresNestedByName(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"PlanetRequiresNested\": %w`, err)\n\t\t\t}\n\t\t\terr = ec.PopulatePlanetRequiresNestedRequires(ctx, entity, rep)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`populating requires for Entity \"PlanetRequiresNested\": %w`, err)\n\t\t\t}\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"World\":\n\t\tresolverName, err := entityResolverNameForWorld(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"World\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findWorldByHelloNameAndFoo\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"hello\"].(map[string]any)[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findWorldByHelloNameAndFoo(): %w`, err)\n\t\t\t}\n\t\t\tid1, err := ec.unmarshalNString2string(ctx, rep[\"foo\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 1 for findWorldByHelloNameAndFoo(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindWorldByHelloNameAndFoo(ctx, id0, id1)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"World\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"WorldName\":\n\t\tresolverName, err := entityResolverNameForWorldName(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"WorldName\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findWorldNameByName\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findWorldNameByName(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindWorldNameByName(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"WorldName\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"WorldWithMultipleKeys\":\n\t\tresolverName, err := entityResolverNameForWorldWithMultipleKeys(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"WorldWithMultipleKeys\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findWorldWithMultipleKeysByHelloNameAndFoo\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"hello\"].(map[string]any)[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findWorldWithMultipleKeysByHelloNameAndFoo(): %w`, err)\n\t\t\t}\n\t\t\tid1, err := ec.unmarshalNString2string(ctx, rep[\"foo\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 1 for findWorldWithMultipleKeysByHelloNameAndFoo(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindWorldWithMultipleKeysByHelloNameAndFoo(ctx, id0, id1)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"WorldWithMultipleKeys\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\tcase \"findWorldWithMultipleKeysByBar\":\n\t\t\tid0, err := ec.unmarshalNInt2int(ctx, rep[\"bar\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findWorldWithMultipleKeysByBar(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindWorldWithMultipleKeysByBar(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"WorldWithMultipleKeys\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\n\t}\n\treturn nil, fmt.Errorf(\"%w: %s\", ErrUnknownType, typeName)\n}\n\nfunc (ec *executionContext) resolveManyEntities(\n\tctx context.Context,\n\ttypeName string,\n\treps []EntityWithIndex,\n\tlist []fedruntime.Entity,\n) (err error) {\n\t// we need to do our own panic handling, because we may be called in a\n\t// goroutine, where the usual panic handling can't catch us\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t}\n\t}()\n\n\tswitch typeName {\n\n\tcase \"MultiHello\":\n\t\tresolverName, err := entityResolverNameForMultiHello(ctx, reps[0].entity)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(`finding resolver for Entity \"MultiHello\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findManyMultiHelloByNames\":\n\t\t\ttypedReps := make([]*MultiHelloByNamesInput, len(reps))\n\n\t\t\tfor i, rep := range reps {\n\t\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep.entity[\"name\"])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn errors.New(fmt.Sprintf(\"Field %s undefined in schema.\", \"name\"))\n\t\t\t\t}\n\n\t\t\t\ttypedReps[i] = &MultiHelloByNamesInput{\n\t\t\t\t\tName: id0,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tentities, err := ec.Resolvers.Entity().FindManyMultiHelloByNames(ctx, typedReps)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tfor i, entity := range entities {\n\t\t\t\tlist[reps[i].index] = entity\n\t\t\t}\n\t\t\treturn nil\n\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"unknown resolver: %s\", resolverName)\n\t\t}\n\n\tcase \"MultiHelloMultipleRequires\":\n\t\tresolverName, err := entityResolverNameForMultiHelloMultipleRequires(ctx, reps[0].entity)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(`finding resolver for Entity \"MultiHelloMultipleRequires\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findManyMultiHelloMultipleRequiresByNames\":\n\t\t\ttypedReps := make([]*MultiHelloMultipleRequiresByNamesInput, len(reps))\n\n\t\t\tfor i, rep := range reps {\n\t\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep.entity[\"name\"])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn errors.New(fmt.Sprintf(\"Field %s undefined in schema.\", \"name\"))\n\t\t\t\t}\n\n\t\t\t\ttypedReps[i] = &MultiHelloMultipleRequiresByNamesInput{\n\t\t\t\t\tName: id0,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tentities, err := ec.Resolvers.Entity().FindManyMultiHelloMultipleRequiresByNames(ctx, typedReps)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tfor i, entity := range entities {\n\t\t\t\terr = ec.PopulateMultiHelloMultipleRequiresRequires(ctx, entity, reps[i].entity)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn fmt.Errorf(`populating requires for Entity \"MultiHelloMultipleRequires\": %w`, err)\n\t\t\t\t}\n\n\t\t\t\tlist[reps[i].index] = entity\n\t\t\t}\n\t\t\treturn nil\n\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"unknown resolver: %s\", resolverName)\n\t\t}\n\n\tcase \"MultiHelloRequires\":\n\t\tresolverName, err := entityResolverNameForMultiHelloRequires(ctx, reps[0].entity)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(`finding resolver for Entity \"MultiHelloRequires\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findManyMultiHelloRequiresByNames\":\n\t\t\ttypedReps := make([]*MultiHelloRequiresByNamesInput, len(reps))\n\n\t\t\tfor i, rep := range reps {\n\t\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep.entity[\"name\"])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn errors.New(fmt.Sprintf(\"Field %s undefined in schema.\", \"name\"))\n\t\t\t\t}\n\n\t\t\t\ttypedReps[i] = &MultiHelloRequiresByNamesInput{\n\t\t\t\t\tName: id0,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tentities, err := ec.Resolvers.Entity().FindManyMultiHelloRequiresByNames(ctx, typedReps)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tfor i, entity := range entities {\n\t\t\t\terr = ec.PopulateMultiHelloRequiresRequires(ctx, entity, reps[i].entity)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn fmt.Errorf(`populating requires for Entity \"MultiHelloRequires\": %w`, err)\n\t\t\t\t}\n\n\t\t\t\tlist[reps[i].index] = entity\n\t\t\t}\n\t\t\treturn nil\n\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"unknown resolver: %s\", resolverName)\n\t\t}\n\n\tcase \"MultiHelloWithError\":\n\t\tresolverName, err := entityResolverNameForMultiHelloWithError(ctx, reps[0].entity)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(`finding resolver for Entity \"MultiHelloWithError\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findManyMultiHelloWithErrorByNames\":\n\t\t\ttypedReps := make([]*MultiHelloWithErrorByNamesInput, len(reps))\n\n\t\t\tfor i, rep := range reps {\n\t\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep.entity[\"name\"])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn errors.New(fmt.Sprintf(\"Field %s undefined in schema.\", \"name\"))\n\t\t\t\t}\n\n\t\t\t\ttypedReps[i] = &MultiHelloWithErrorByNamesInput{\n\t\t\t\t\tName: id0,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tentities, err := ec.Resolvers.Entity().FindManyMultiHelloWithErrorByNames(ctx, typedReps)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tfor i, entity := range entities {\n\t\t\t\tlist[reps[i].index] = entity\n\t\t\t}\n\t\t\treturn nil\n\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"unknown resolver: %s\", resolverName)\n\t\t}\n\n\tcase \"MultiPlanetRequiresNested\":\n\t\tresolverName, err := entityResolverNameForMultiPlanetRequiresNested(ctx, reps[0].entity)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(`finding resolver for Entity \"MultiPlanetRequiresNested\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findManyMultiPlanetRequiresNestedByNames\":\n\t\t\ttypedReps := make([]*MultiPlanetRequiresNestedByNamesInput, len(reps))\n\n\t\t\tfor i, rep := range reps {\n\t\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep.entity[\"name\"])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn errors.New(fmt.Sprintf(\"Field %s undefined in schema.\", \"name\"))\n\t\t\t\t}\n\n\t\t\t\ttypedReps[i] = &MultiPlanetRequiresNestedByNamesInput{\n\t\t\t\t\tName: id0,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tentities, err := ec.Resolvers.Entity().FindManyMultiPlanetRequiresNestedByNames(ctx, typedReps)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tfor i, entity := range entities {\n\t\t\t\terr = ec.PopulateMultiPlanetRequiresNestedRequires(ctx, entity, reps[i].entity)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn fmt.Errorf(`populating requires for Entity \"MultiPlanetRequiresNested\": %w`, err)\n\t\t\t\t}\n\n\t\t\t\tlist[reps[i].index] = entity\n\t\t\t}\n\t\t\treturn nil\n\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"unknown resolver: %s\", resolverName)\n\t\t}\n\n\tdefault:\n\t\treturn errors.New(\"unknown type: \" + typeName)\n\t}\n}\n\nfunc entityResolverNameForHello(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for Hello\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for Hello\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findHelloByName\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for Hello due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForHelloMultiSingleKeys(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"key1\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"key1\\\" for HelloMultiSingleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tm = rep\n\t\tval, ok = m[\"key2\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"key2\\\" for HelloMultiSingleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for HelloMultiSingleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findHelloMultiSingleKeysByKey1AndKey2\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for HelloMultiSingleKeys due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForHelloWithErrors(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for HelloWithErrors\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for HelloWithErrors\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findHelloWithErrorsByName\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for HelloWithErrors due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForMultiHello(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for MultiHello\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for MultiHello\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findManyMultiHelloByNames\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for MultiHello due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForMultiHelloMultipleRequires(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for MultiHelloMultipleRequires\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for MultiHelloMultipleRequires\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findManyMultiHelloMultipleRequiresByNames\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for MultiHelloMultipleRequires due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForMultiHelloRequires(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for MultiHelloRequires\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for MultiHelloRequires\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findManyMultiHelloRequiresByNames\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for MultiHelloRequires due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForMultiHelloWithError(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for MultiHelloWithError\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for MultiHelloWithError\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findManyMultiHelloWithErrorByNames\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for MultiHelloWithError due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForMultiPlanetRequiresNested(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for MultiPlanetRequiresNested\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for MultiPlanetRequiresNested\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findManyMultiPlanetRequiresNestedByNames\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for MultiPlanetRequiresNested due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForPerson(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for Person\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for Person\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findPersonByName\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for Person due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForPlanetMultipleRequires(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for PlanetMultipleRequires\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for PlanetMultipleRequires\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findPlanetMultipleRequiresByName\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for PlanetMultipleRequires due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForPlanetRequires(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for PlanetRequires\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for PlanetRequires\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findPlanetRequiresByName\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for PlanetRequires due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForPlanetRequiresNested(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for PlanetRequiresNested\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for PlanetRequiresNested\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findPlanetRequiresNestedByName\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for PlanetRequiresNested due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForWorld(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"hello\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"hello\\\" for World\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif m, ok = val.(map[string]any); !ok {\n\t\t\t// nested field value is not a map[string]interface so don't use it\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to nested Key Field \\\"hello\\\" value not matching map[string]any for World\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for World\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tm = rep\n\t\tval, ok = m[\"foo\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"foo\\\" for World\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for World\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findWorldByHelloNameAndFoo\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for World due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForWorldName(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for WorldName\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for WorldName\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findWorldNameByName\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for WorldName due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForWorldWithMultipleKeys(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"hello\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"hello\\\" for WorldWithMultipleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif m, ok = val.(map[string]any); !ok {\n\t\t\t// nested field value is not a map[string]interface so don't use it\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to nested Key Field \\\"hello\\\" value not matching map[string]any for WorldWithMultipleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for WorldWithMultipleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tm = rep\n\t\tval, ok = m[\"foo\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"foo\\\" for WorldWithMultipleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for WorldWithMultipleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findWorldWithMultipleKeysByHelloNameAndFoo\", nil\n\t}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"bar\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"bar\\\" for WorldWithMultipleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for WorldWithMultipleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findWorldWithMultipleKeysByBar\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for WorldWithMultipleKeys due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n"
  },
  {
    "path": "plugin/federation/testdata/explicitrequires/generated/federation.requires.go",
    "content": "package generated\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n)\n\n// PopulateMultiHelloMultipleRequiresRequires is the requires populator for the MultiHelloMultipleRequires entity.\nfunc (ec *executionContext) PopulateMultiHelloMultipleRequiresRequires(ctx context.Context, entity *MultiHelloMultipleRequires, reps map[string]any) error {\n\tentity.Name, _ = reps[\"name\"].(string)\n\tentity.Key1, _ = reps[\"key1\"].(string)\n\tentity.Key2, _ = reps[\"key2\"].(string)\n\n\treturn nil\n}\n\n// PopulateMultiHelloRequiresRequires is the requires populator for the MultiHelloRequires entity.\nfunc (ec *executionContext) PopulateMultiHelloRequiresRequires(ctx context.Context, entity *MultiHelloRequires, reps map[string]any) error {\n\tentity.Name, _ = reps[\"name\"].(string)\n\tentity.Key1, _ = reps[\"key1\"].(string)\n\n\treturn nil\n}\n\n// PopulateMultiPlanetRequiresNestedRequires is the requires populator for the MultiPlanetRequiresNested entity.\nfunc (ec *executionContext) PopulateMultiPlanetRequiresNestedRequires(ctx context.Context, entity *MultiPlanetRequiresNested, reps map[string]any) error {\n\tentity.Name = reps[\"name\"].(string)\n\tentity.World = &World{\n\t\tFoo: reps[\"world\"].(map[string]any)[\"foo\"].(string),\n\t}\n\treturn nil\n}\n\n// PopulatePersonRequires is the requires populator for the Person entity.\nfunc (ec *executionContext) PopulatePersonRequires(ctx context.Context, entity *Person, reps map[string]any) error {\n\tpanic(fmt.Errorf(\"not implemented: PopulatePersonRequires\"))\n}\n\n// PopulatePlanetMultipleRequiresRequires is the requires populator for the PlanetMultipleRequires entity.\nfunc (ec *executionContext) PopulatePlanetMultipleRequiresRequires(ctx context.Context, entity *PlanetMultipleRequires, reps map[string]any) error {\n\tdiameter, _ := reps[\"diameter\"].(json.Number).Int64()\n\tdensity, _ := reps[\"density\"].(json.Number).Int64()\n\tentity.Name = reps[\"name\"].(string)\n\tentity.Diameter = int(diameter)\n\tentity.Density = int(density)\n\treturn nil\n}\n\n// PopulatePlanetRequiresNestedRequires is the requires populator for the PlanetRequiresNested entity.\nfunc (ec *executionContext) PopulatePlanetRequiresNestedRequires(ctx context.Context, entity *PlanetRequiresNested, reps map[string]any) error {\n\tentity.Name = reps[\"name\"].(string)\n\tentity.World = &World{\n\t\tFoo: reps[\"world\"].(map[string]any)[\"foo\"].(string),\n\t}\n\treturn nil\n}\n\n// PopulatePlanetRequiresRequires is the requires populator for the PlanetRequires entity.\nfunc (ec *executionContext) PopulatePlanetRequiresRequires(ctx context.Context, entity *PlanetRequires, reps map[string]any) error {\n\tdiameter, _ := reps[\"diameter\"].(json.Number).Int64()\n\tentity.Name = reps[\"name\"].(string)\n\tentity.Diameter = int(diameter)\n\treturn nil\n}\n"
  },
  {
    "path": "plugin/federation/testdata/explicitrequires/generated/models.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage generated\n\ntype Gender interface {\n\tIsGender()\n}\n\ntype Female struct {\n\tDescription string `json:\"description\"`\n}\n\nfunc (Female) IsGender() {}\n\ntype Hello struct {\n\tName      string `json:\"name\"`\n\tSecondary string `json:\"secondary\"`\n}\n\nfunc (Hello) IsEntity() {}\n\ntype HelloMultiSingleKeys struct {\n\tKey1 string `json:\"key1\"`\n\tKey2 string `json:\"key2\"`\n}\n\nfunc (HelloMultiSingleKeys) IsEntity() {}\n\ntype HelloWithErrors struct {\n\tName string `json:\"name\"`\n}\n\nfunc (HelloWithErrors) IsEntity() {}\n\ntype Male struct {\n\tDescription string `json:\"description\"`\n}\n\nfunc (Male) IsGender() {}\n\ntype MultiHello struct {\n\tName string `json:\"name\"`\n}\n\nfunc (MultiHello) IsEntity() {}\n\ntype MultiHelloByNamesInput struct {\n\tName string `json:\"Name\"`\n}\n\ntype MultiHelloMultipleRequires struct {\n\tName string `json:\"name\"`\n\tKey1 string `json:\"key1\"`\n\tKey2 string `json:\"key2\"`\n\tKey3 string `json:\"key3\"`\n}\n\nfunc (MultiHelloMultipleRequires) IsEntity() {}\n\ntype MultiHelloMultipleRequiresByNamesInput struct {\n\tName string `json:\"Name\"`\n}\n\ntype MultiHelloRequires struct {\n\tName string `json:\"name\"`\n\tKey1 string `json:\"key1\"`\n\tKey2 string `json:\"key2\"`\n}\n\nfunc (MultiHelloRequires) IsEntity() {}\n\ntype MultiHelloRequiresByNamesInput struct {\n\tName string `json:\"Name\"`\n}\n\ntype MultiHelloWithError struct {\n\tName string `json:\"name\"`\n}\n\nfunc (MultiHelloWithError) IsEntity() {}\n\ntype MultiHelloWithErrorByNamesInput struct {\n\tName string `json:\"Name\"`\n}\n\ntype MultiPlanetRequiresNested struct {\n\tName   string   `json:\"name\"`\n\tWorld  *World   `json:\"world\"`\n\tWorlds []*World `json:\"worlds,omitempty\"`\n\tSize   int      `json:\"size\"`\n\tSizes  []int    `json:\"sizes,omitempty\"`\n}\n\nfunc (MultiPlanetRequiresNested) IsEntity() {}\n\ntype MultiPlanetRequiresNestedByNamesInput struct {\n\tName string `json:\"Name\"`\n}\n\ntype Person struct {\n\tName           string  `json:\"name\"`\n\tGender         Gender  `json:\"gender\"`\n\tWelcomeMessage *string `json:\"welcomeMessage,omitempty\"`\n}\n\nfunc (Person) IsEntity() {}\n\ntype PlanetMultipleRequires struct {\n\tName     string `json:\"name\"`\n\tDiameter int    `json:\"diameter\"`\n\tDensity  int    `json:\"density\"`\n\tWeight   int    `json:\"weight\"`\n}\n\nfunc (PlanetMultipleRequires) IsEntity() {}\n\ntype PlanetRequires struct {\n\tName     string `json:\"name\"`\n\tSize     int    `json:\"size\"`\n\tDiameter int    `json:\"diameter\"`\n}\n\nfunc (PlanetRequires) IsEntity() {}\n\ntype PlanetRequiresNested struct {\n\tName   string   `json:\"name\"`\n\tWorld  *World   `json:\"world\"`\n\tWorlds []*World `json:\"worlds,omitempty\"`\n\tSize   int      `json:\"size\"`\n\tSizes  []int    `json:\"sizes,omitempty\"`\n}\n\nfunc (PlanetRequiresNested) IsEntity() {}\n\ntype Query struct {\n}\n\ntype World struct {\n\tFoo   string `json:\"foo\"`\n\tBar   int    `json:\"bar\"`\n\tHello *Hello `json:\"hello,omitempty\"`\n}\n\nfunc (World) IsEntity() {}\n\ntype WorldName struct {\n\tName string `json:\"name\"`\n}\n\nfunc (WorldName) IsEntity() {}\n\ntype WorldWithMultipleKeys struct {\n\tFoo   string `json:\"foo\"`\n\tBar   int    `json:\"bar\"`\n\tHello *Hello `json:\"hello,omitempty\"`\n}\n\nfunc (WorldWithMultipleKeys) IsEntity() {}\n"
  },
  {
    "path": "plugin/federation/testdata/explicitrequires/gqlgen.yml",
    "content": "schema:\n  - \"testdata/explicitrequires/schema.graphql\"\nexec:\n  filename: testdata/explicitrequires/generated/exec.go\nfederation:\n  filename: testdata/explicitrequires/generated/federation.go\n  options:\n    explicit_requires: true\nmodel:\n  filename: testdata/explicitrequires/generated/models.go\nresolver:\n  filename: testdata/explicitrequires/resolver.go\n  layout: follow-schema\n  dir: testdata/explicitrequires\n  package: explicitrequires\nomit_complexity: true\n"
  },
  {
    "path": "plugin/federation/testdata/explicitrequires/resolver.go",
    "content": "package explicitrequires\n\n// This file will not be regenerated automatically.\n//\n// It serves as dependency injection for your app, add any dependencies you require here.\n\ntype Resolver struct{}\n"
  },
  {
    "path": "plugin/federation/testdata/explicitrequires/schema.graphql",
    "content": "directive @entityResolver(multi: Boolean) on OBJECT\n\ntype Hello @key(fields: \"name\") {\n    name: String!\n    secondary: String!\n}\n\ntype World @key(fields: \"hello { name } foo   \") {\n    foo: String!\n    bar: Int!\n    hello: Hello\n}\n\ntype Person @key(fields: \"name\"){\n    name: String!\n    gender: Gender!\n    welcomeMessage: String @requires(fields:\"gender { ... on Male {description} ... on Female {description}}\")\n}\n\nunion Gender = Male | Female\n\ntype Male {\n    description: String!\n}\n\ntype Female {\n    description: String!\n}\n\ntype WorldWithMultipleKeys @key(fields: \"hello { name } foo   \") @key(fields: \"bar\") {\n    foo: String!\n    bar: Int!\n    hello: Hello\n}\n\ntype WorldName @key(fields: \"name\") {\n    name: String!\n}\n\ntype HelloWithErrors @key(fields: \"name\") {\n    name: String!\n}\n\ntype PlanetRequires @key(fields: \"name\") {\n    name: String!\n    size: Int! @requires(fields: \"diameter\")\n    diameter: Int!\n}\n\ntype PlanetMultipleRequires @key(fields: \"name\") {\n    name: String! @external\n    diameter: Int! @external\n    density: Int! @external\n    weight: Int! @requires(fields: \"diameter density\")\n}\n\ntype PlanetRequiresNested @key(fields: \"name\") {\n    name: String! @external\n    world: World! @external\n    worlds: [World!] @external\n    size: Int! @requires(fields: \"world{ foo }\")\n    sizes: [Int!] @requires(fields: \"worlds{ foo }\")\n}\n\ntype MultiPlanetRequiresNested @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String! @external\n    world: World! @external\n    worlds: [World!] @external\n    size: Int! @requires(fields: \"world{ foo }\")\n    sizes: [Int!] @requires(fields: \"worlds{ foo }\")\n}\n\ntype MultiHello @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String!\n}\n\ntype MultiHelloWithError @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String!\n}\n\ntype HelloMultiSingleKeys @key(fields: \"key1 key2\") {\n    key1: String!\n    key2: String!\n}\n\ntype MultiHelloRequires @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String! @external\n    key1: String! @external\n    key2: String! @requires(fields: \"key1\")\n}\n\ntype MultiHelloMultipleRequires @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String! @external\n    key1: String! @external\n    key2: String! @external\n    key3: String! @requires(fields: \"key1 key2\")\n}\n"
  },
  {
    "path": "plugin/federation/testdata/explicitrequires/schema.resolvers.go",
    "content": "package explicitrequires\n\n// This file will be automatically regenerated based on the schema, any resolver implementations\n// will be copied through when generating and any unknown code will be moved to the end.\n"
  },
  {
    "path": "plugin/federation/testdata/federation2/federation2.graphql",
    "content": "extend schema\n  @link(url: \"https://specs.apollo.dev/federation/v2.7\",\n        import: [\"@key\", \"@shareable\", \"@provides\", \"@external\", \"@tag\", \"@extends\", \"@override\", \"@inaccessible\", \"@interfaceObject\", \"@policy\"])\n\nschema {\n    query: CustomQuery\n}\n\ntype Hello @key(fields:\"name\", resolvable: false) {\n    name: String! @override(from: \"old-service\", label: \"percent(5)\")\n}\n\ntype World @key(fields: \"foo bar\", resolvable: false) {\n    foo: String!\n    bar: Int!\n}\n\nextend type ExternalExtension @key(fields: \"  upc    \") {\n    upc: String!\n    reviews: [Hello]\n}\n\ntype CustomQuery {\n    hello: Hello!\n}\n"
  },
  {
    "path": "plugin/federation/testdata/federation2/federation2.yml",
    "content": "schema:\n  - \"testdata/federation2/federation2.graphql\"\nexec:\n  filename: testdata/federation2/generated/exec.go\nfederation:\n  filename: testdata/federation2/generated/federation.go\n  version: 2\n\nautobind:\n  - \"github.com/99designs/gqlgen/plugin/federation/test_data/model2\"\n"
  },
  {
    "path": "plugin/federation/testdata/federation2/generated/federation.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage generated\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"github.com/99designs/gqlgen/plugin/federation/fedruntime\"\n)\n\nvar (\n\tErrUnknownType  = errors.New(\"unknown type\")\n\tErrTypeNotFound = errors.New(\"type not found\")\n)\n\nfunc (ec *executionContext) __resolve__service(ctx context.Context) (fedruntime.Service, error) {\n\tif ec.DisableIntrospection {\n\t\treturn fedruntime.Service{}, errors.New(\"federated introspection disabled\")\n\t}\n\n\tvar sdl []string\n\n\tfor _, src := range sources {\n\t\tif src.BuiltIn {\n\t\t\tcontinue\n\t\t}\n\t\tsdl = append(sdl, src.Input)\n\t}\n\n\treturn fedruntime.Service{\n\t\tSDL: strings.Join(sdl, \"\\n\"),\n\t}, nil\n}\n\nfunc (ec *executionContext) __resolve_entities(ctx context.Context, representations []map[string]any) []fedruntime.Entity {\n\tlist := make([]fedruntime.Entity, len(representations))\n\n\trepsMap := ec.buildRepresentationGroups(ctx, representations)\n\n\tswitch len(repsMap) {\n\tcase 0:\n\t\treturn list\n\tcase 1:\n\t\tfor typeName, reps := range repsMap {\n\t\t\tec.resolveEntityGroup(ctx, typeName, reps, list)\n\t\t}\n\t\treturn list\n\tdefault:\n\t\tvar g sync.WaitGroup\n\t\tg.Add(len(repsMap))\n\t\tfor typeName, reps := range repsMap {\n\t\t\tgo func(typeName string, reps []EntityWithIndex) {\n\t\t\t\tec.resolveEntityGroup(ctx, typeName, reps, list)\n\t\t\t\tg.Done()\n\t\t\t}(typeName, reps)\n\t\t}\n\t\tg.Wait()\n\t\treturn list\n\t}\n}\n\ntype EntityWithIndex struct {\n\t// The index in the original representation array\n\tindex  int\n\tentity EntityRepresentation\n}\n\n// EntityRepresentation is the JSON representation of an entity sent by the Router\n// used as the inputs for us to resolve.\n//\n// We make it a map because we know the top level JSON is always an object.\ntype EntityRepresentation map[string]any\n\n// We group entities by typename so that we can parallelize their resolution.\n// This is particularly helpful when there are entity groups in multi mode.\nfunc (ec *executionContext) buildRepresentationGroups(\n\tctx context.Context,\n\trepresentations []map[string]any,\n) map[string][]EntityWithIndex {\n\trepsMap := make(map[string][]EntityWithIndex)\n\tfor i, rep := range representations {\n\t\ttypeName, ok := rep[\"__typename\"].(string)\n\t\tif !ok {\n\t\t\t// If there is no __typename, we just skip the representation;\n\t\t\t// we just won't be resolving these unknown types.\n\t\t\tec.Error(ctx, errors.New(\"__typename must be an existing string\"))\n\t\t\tcontinue\n\t\t}\n\n\t\trepsMap[typeName] = append(repsMap[typeName], EntityWithIndex{\n\t\t\tindex:  i,\n\t\t\tentity: rep,\n\t\t})\n\t}\n\n\treturn repsMap\n}\n\nfunc (ec *executionContext) resolveEntityGroup(\n\tctx context.Context,\n\ttypeName string,\n\treps []EntityWithIndex,\n\tlist []fedruntime.Entity,\n) {\n\tif isMulti(typeName) {\n\t\terr := ec.resolveManyEntities(ctx, typeName, reps, list)\n\t\tif err != nil {\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t} else {\n\t\t// if there are multiple entities to resolve, parallelize (similar to\n\t\t// graphql.FieldSet.Dispatch)\n\t\tvar e sync.WaitGroup\n\t\te.Add(len(reps))\n\t\tfor i, rep := range reps {\n\t\t\ti, rep := i, rep\n\t\t\tgo func(i int, rep EntityWithIndex) {\n\t\t\t\tentity, err := ec.resolveEntity(ctx, typeName, rep.entity)\n\t\t\t\tif err != nil {\n\t\t\t\t\tec.Error(ctx, err)\n\t\t\t\t} else {\n\t\t\t\t\tlist[rep.index] = entity\n\t\t\t\t}\n\t\t\t\te.Done()\n\t\t\t}(i, rep)\n\t\t}\n\t\te.Wait()\n\t}\n}\n\nfunc isMulti(typeName string) bool {\n\tswitch typeName {\n\tdefault:\n\t\treturn false\n\t}\n}\n\nfunc (ec *executionContext) resolveEntity(\n\tctx context.Context,\n\ttypeName string,\n\trep EntityRepresentation,\n) (e fedruntime.Entity, err error) {\n\t// we need to do our own panic handling, because we may be called in a\n\t// goroutine, where the usual panic handling can't catch us\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t}\n\t}()\n\n\tswitch typeName {\n\tcase \"ExternalExtension\":\n\t\tresolverName, err := entityResolverNameForExternalExtension(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"ExternalExtension\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findExternalExtensionByUpc\":\n\t\t\tid0, err := ec.unmarshalNString2string(ctx, rep[\"upc\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findExternalExtensionByUpc(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindExternalExtensionByUpc(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"ExternalExtension\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\n\t}\n\treturn nil, fmt.Errorf(\"%w: %s\", ErrUnknownType, typeName)\n}\n\nfunc (ec *executionContext) resolveManyEntities(\n\tctx context.Context,\n\ttypeName string,\n\treps []EntityWithIndex,\n\tlist []fedruntime.Entity,\n) (err error) {\n\t// we need to do our own panic handling, because we may be called in a\n\t// goroutine, where the usual panic handling can't catch us\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t}\n\t}()\n\n\tswitch typeName {\n\n\tdefault:\n\t\treturn errors.New(\"unknown type: \" + typeName)\n\t}\n}\n\nfunc entityResolverNameForExternalExtension(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"upc\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"upc\\\" for ExternalExtension\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for ExternalExtension\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findExternalExtensionByUpc\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for ExternalExtension due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n"
  },
  {
    "path": "plugin/federation/testdata/interfaces/extends.graphqls",
    "content": "interface Hello @extends {\n    name: String!\n    secondary: String!\n}\n\nextend type World implements Hello @key(fields: \"name\") {\n    name: String! @external\n    secondary: String!\n\n    tertiary: String!\n}\n"
  },
  {
    "path": "plugin/federation/testdata/interfaces/extends.yml",
    "content": "schema:\n  - \"testdata/interfaces/extends.graphqls\"\nexec:\n  filename: testdata/interfaces/generated/exec.go\nfederation:\n  filename: testdata/interfaces/generated/federation.go\n"
  },
  {
    "path": "plugin/federation/testdata/interfaces/key.graphqls",
    "content": "extend interface Hello @key(fields: \"name\") {\n    name: String!\n    secondary: String!\n}\n\ntype World implements Hello @key(fields: \"name\") {\n    name: String!\n    secondary: String!\n}\n"
  },
  {
    "path": "plugin/federation/testdata/interfaces/key.yml",
    "content": "schema:\n  - \"testdata/interfaces/key.graphqls\"\nexec:\n  filename: testdata/interfaces/generated/exec.go\nfederation:\n  filename: testdata/interfaces/generated/federation.go\n"
  },
  {
    "path": "plugin/federation/testdata/interfaces/unused_key.graphqls",
    "content": "extend interface Hello @key(fields: \"name\") {\n    name: String!\n    secondary: String!\n}\n"
  },
  {
    "path": "plugin/federation/testdata/interfaces/unused_key.yml",
    "content": "schema:\n  - \"testdata/interfaces/unused_key.graphqls\"\nexec:\n  filename: testdata/interfaces/generated/exec.go\nfederation:\n  filename: testdata/interfaces/generated/federation.go\n"
  },
  {
    "path": "plugin/federation/testdata/multi/multi.graphqls",
    "content": "extend schema\n  @link(url: \"https://specs.apollo.dev/federation/v2.7\",\n        import: [\"@key\"])\n\ndirective @entityResolver(multi: Boolean) on OBJECT\n\ntype Hello @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String!\n    secondary: String!\n}\n"
  },
  {
    "path": "plugin/federation/testdata/multi/multi.yml",
    "content": "schema:\n  - \"testdata/multi/multi.graphqls\"\nexec:\n  filename: testdata/multi/generated/exec.go\nfederation:\n  version: 2\n  filename: testdata/multi/generated/federation.go\nomit_slice_element_pointers: true"
  },
  {
    "path": "plugin/federation/testdata/schema/customquerytype.graphql",
    "content": "schema {\n    query: CustomQuery\n}\n\ntype Hello {\n  name: String!\n}\n\ntype CustomQuery {\n  hello: Hello!\n}\n\n"
  },
  {
    "path": "plugin/federation/testdata/schema/customquerytype.yml",
    "content": "schema:\n  - \"testdata/schema/customquerytype.graphql\"\nexec:\n  filename: testdata/schema/generated/exec.go\nfederation:\n  filename: testdata/schema/generated/federation.go\n\nautobind:\n  - \"github.com/99designs/gqlgen/plugin/federation/test_data/model\"\n"
  },
  {
    "path": "plugin/federation/testdata/usefunctionsyntaxforexecutioncontext/entity.resolvers.go",
    "content": "package usefunctionsyntaxforexecutioncontext\n\n// This file will be automatically regenerated based on the schema, any resolver\n// implementations\n// will be copied through when generating and any unknown code will be moved to the end.\n// Code generated by github.com/99designs/gqlgen version v0.17.88-dev\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/99designs/gqlgen/plugin/federation/testdata/usefunctionsyntaxforexecutioncontext/generated\"\n\t\"github.com/99designs/gqlgen/plugin/federation/testdata/usefunctionsyntaxforexecutioncontext/generated/model\"\n)\n\n// FindHelloByName is the resolver for the findHelloByName field.\nfunc (r *entityResolver) FindHelloByName(ctx context.Context, name string) (*model.Hello, error) {\n\treturn &model.Hello{\n\t\tName: name,\n\t}, nil\n}\n\n// FindHelloMultiSingleKeysByKey1AndKey2 is the resolver for the findHelloMultiSingleKeysByKey1AndKey2 field.\nfunc (r *entityResolver) FindHelloMultiSingleKeysByKey1AndKey2(ctx context.Context, key1 string, key2 string) (*model.HelloMultiSingleKeys, error) {\n\tpanic(fmt.Errorf(\"not implemented\"))\n}\n\n// FindHelloWithErrorsByName is the resolver for the findHelloWithErrorsByName field.\nfunc (r *entityResolver) FindHelloWithErrorsByName(ctx context.Context, name string) (*model.HelloWithErrors, error) {\n\tif name == \"inject error\" {\n\t\treturn nil, generated.ErrResolvingHelloWithErrorsByName\n\t} else if name == \"\" {\n\t\treturn nil, generated.ErrEmptyKeyResolvingHelloWithErrorsByName\n\t}\n\n\treturn &model.HelloWithErrors{\n\t\tName: name,\n\t}, nil\n}\n\n// FindManyMultiHelloByNames is the resolver for the findManyMultiHelloByNames field.\nfunc (r *entityResolver) FindManyMultiHelloByNames(ctx context.Context, reps []*model.MultiHelloByNamesInput) ([]*model.MultiHello, error) {\n\tresults := []*model.MultiHello{}\n\n\tfor _, item := range reps {\n\t\tresults = append(results, &model.MultiHello{\n\t\t\tName: item.Name + \" - from multiget\",\n\t\t})\n\t}\n\n\treturn results, nil\n}\n\n// FindManyMultiHelloMultipleRequiresByNames is the resolver for the findManyMultiHelloMultipleRequiresByNames field.\nfunc (r *entityResolver) FindManyMultiHelloMultipleRequiresByNames(ctx context.Context, reps []*model.MultiHelloMultipleRequiresByNamesInput) ([]*model.MultiHelloMultipleRequires, error) {\n\tresults := make([]*model.MultiHelloMultipleRequires, len(reps))\n\n\tfor i := range reps {\n\t\tresults[i] = &model.MultiHelloMultipleRequires{\n\t\t\tName: reps[i].Name,\n\t\t}\n\t}\n\n\treturn results, nil\n}\n\n// FindManyMultiHelloRequiresByNames is the resolver for the findManyMultiHelloRequiresByNames field.\nfunc (r *entityResolver) FindManyMultiHelloRequiresByNames(ctx context.Context, reps []*model.MultiHelloRequiresByNamesInput) ([]*model.MultiHelloRequires, error) {\n\tresults := make([]*model.MultiHelloRequires, len(reps))\n\n\tfor i := range reps {\n\t\tresults[i] = &model.MultiHelloRequires{\n\t\t\tName: reps[i].Name,\n\t\t}\n\t}\n\n\treturn results, nil\n}\n\n// FindManyMultiHelloWithErrorByNames is the resolver for the findManyMultiHelloWithErrorByNames field.\nfunc (r *entityResolver) FindManyMultiHelloWithErrorByNames(ctx context.Context, reps []*model.MultiHelloWithErrorByNamesInput) ([]*model.MultiHelloWithError, error) {\n\treturn nil, fmt.Errorf(\"error resolving MultiHelloWorldWithError\")\n}\n\n// FindManyMultiPlanetRequiresNestedByNames is the resolver for the findManyMultiPlanetRequiresNestedByNames field.\nfunc (r *entityResolver) FindManyMultiPlanetRequiresNestedByNames(ctx context.Context, reps []*model.MultiPlanetRequiresNestedByNamesInput) ([]*model.MultiPlanetRequiresNested, error) {\n\tworlds := map[string]*model.World{\n\t\t\"earth\": {\n\t\t\tFoo: \"A\",\n\t\t},\n\t\t\"mars\": {\n\t\t\tFoo: \"B\",\n\t\t},\n\t}\n\n\tresults := make([]*model.MultiPlanetRequiresNested, len(reps))\n\n\tfor i := range reps {\n\t\tname := reps[i].Name\n\t\tworld, ok := worlds[name]\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"unknown planet: %s\", name)\n\t\t}\n\n\t\tresults[i] = &model.MultiPlanetRequiresNested{\n\t\t\tName:  name,\n\t\t\tWorld: world,\n\t\t}\n\t}\n\n\treturn results, nil\n}\n\n// FindPlanetMultipleRequiresByName is the resolver for the findPlanetMultipleRequiresByName field.\nfunc (r *entityResolver) FindPlanetMultipleRequiresByName(ctx context.Context, name string) (*model.PlanetMultipleRequires, error) {\n\treturn &model.PlanetMultipleRequires{Name: name}, nil\n}\n\n// FindPlanetRequiresByName is the resolver for the findPlanetRequiresByName field.\nfunc (r *entityResolver) FindPlanetRequiresByName(ctx context.Context, name string) (*model.PlanetRequires, error) {\n\treturn &model.PlanetRequires{\n\t\tName: name,\n\t}, nil\n}\n\n// FindPlanetRequiresNestedByName is the resolver for the findPlanetRequiresNestedByName field.\nfunc (r *entityResolver) FindPlanetRequiresNestedByName(ctx context.Context, name string) (*model.PlanetRequiresNested, error) {\n\tworlds := map[string]*model.World{\n\t\t\"earth\": {\n\t\t\tFoo: \"A\",\n\t\t},\n\t\t\"mars\": {\n\t\t\tFoo: \"B\",\n\t\t},\n\t}\n\tworld, ok := worlds[name]\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"unknown planet: %s\", name)\n\t}\n\n\treturn &model.PlanetRequiresNested{\n\t\tName:  name,\n\t\tWorld: world,\n\t}, nil\n}\n\n// FindWorldByHelloNameAndFoo is the resolver for the findWorldByHelloNameAndFoo field.\nfunc (r *entityResolver) FindWorldByHelloNameAndFoo(ctx context.Context, helloName string, foo string) (*model.World, error) {\n\treturn &model.World{\n\t\tHello: &model.Hello{\n\t\t\tName: helloName,\n\t\t},\n\t\tFoo: foo,\n\t}, nil\n}\n\n// FindWorldNameByName is the resolver for the findWorldNameByName field.\nfunc (r *entityResolver) FindWorldNameByName(ctx context.Context, name string) (*model.WorldName, error) {\n\treturn &model.WorldName{\n\t\tName: name,\n\t}, nil\n}\n\n// FindWorldWithMultipleKeysByHelloNameAndFoo is the resolver for the findWorldWithMultipleKeysByHelloNameAndFoo field.\nfunc (r *entityResolver) FindWorldWithMultipleKeysByHelloNameAndFoo(ctx context.Context, helloName string, foo string) (*model.WorldWithMultipleKeys, error) {\n\treturn &model.WorldWithMultipleKeys{\n\t\tHello: &model.Hello{\n\t\t\tName: helloName,\n\t\t},\n\t\tFoo: foo,\n\t\tBar: FindWorldWithMultipleKeysByHelloNameAndFooBarValue,\n\t}, nil\n}\n\n// FindWorldWithMultipleKeysByBar is the resolver for the findWorldWithMultipleKeysByBar field.\nfunc (r *entityResolver) FindWorldWithMultipleKeysByBar(ctx context.Context, bar int) (*model.WorldWithMultipleKeys, error) {\n\treturn &model.WorldWithMultipleKeys{\n\t\tBar: bar,\n\t}, nil\n}\n\n// Entity returns generated.EntityResolver implementation.\nfunc (r *Resolver) Entity() generated.EntityResolver { return &entityResolver{r} }\n\ntype entityResolver struct{ *Resolver }\n"
  },
  {
    "path": "plugin/federation/testdata/usefunctionsyntaxforexecutioncontext/generated/errors.go",
    "content": "package generated\n\nimport \"errors\"\n\n// Errors defined for retained code that we want to stick around between generations.\nvar (\n\tErrResolvingHelloWithErrorsByName         = errors.New(\"error resolving HelloWithErrorsByName\")\n\tErrEmptyKeyResolvingHelloWithErrorsByName = errors.New(\"error (empty key) resolving HelloWithErrorsByName\")\n)\n"
  },
  {
    "path": "plugin/federation/testdata/usefunctionsyntaxforexecutioncontext/generated/exec.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage generated\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\t\"github.com/99designs/gqlgen/plugin/federation/fedruntime\"\n\t\"github.com/99designs/gqlgen/plugin/federation/testdata/usefunctionsyntaxforexecutioncontext/generated/model\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{SchemaData: cfg.Schema, Resolvers: cfg.Resolvers, Directives: cfg.Directives, ComplexityRoot: cfg.Complexity}\n}\n\ntype Config = graphql.Config[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\ntype ResolverRoot interface {\n\tEntity() EntityResolver\n}\n\ntype DirectiveRoot struct {\n}\n\ntype ComplexityRoot struct {\n\tEntity struct {\n\t\tFindHelloByName                            func(childComplexity int, name string) int\n\t\tFindHelloMultiSingleKeysByKey1AndKey2      func(childComplexity int, key1 string, key2 string) int\n\t\tFindHelloWithErrorsByName                  func(childComplexity int, name string) int\n\t\tFindManyMultiHelloByNames                  func(childComplexity int, reps []*model.MultiHelloByNamesInput) int\n\t\tFindManyMultiHelloMultipleRequiresByNames  func(childComplexity int, reps []*model.MultiHelloMultipleRequiresByNamesInput) int\n\t\tFindManyMultiHelloRequiresByNames          func(childComplexity int, reps []*model.MultiHelloRequiresByNamesInput) int\n\t\tFindManyMultiHelloWithErrorByNames         func(childComplexity int, reps []*model.MultiHelloWithErrorByNamesInput) int\n\t\tFindManyMultiPlanetRequiresNestedByNames   func(childComplexity int, reps []*model.MultiPlanetRequiresNestedByNamesInput) int\n\t\tFindPlanetMultipleRequiresByName           func(childComplexity int, name string) int\n\t\tFindPlanetRequiresByName                   func(childComplexity int, name string) int\n\t\tFindPlanetRequiresNestedByName             func(childComplexity int, name string) int\n\t\tFindWorldByHelloNameAndFoo                 func(childComplexity int, helloName string, foo string) int\n\t\tFindWorldNameByName                        func(childComplexity int, name string) int\n\t\tFindWorldWithMultipleKeysByBar             func(childComplexity int, bar int) int\n\t\tFindWorldWithMultipleKeysByHelloNameAndFoo func(childComplexity int, helloName string, foo string) int\n\t}\n\n\tHello struct {\n\t\tName      func(childComplexity int) int\n\t\tSecondary func(childComplexity int) int\n\t}\n\n\tHelloMultiSingleKeys struct {\n\t\tKey1 func(childComplexity int) int\n\t\tKey2 func(childComplexity int) int\n\t}\n\n\tHelloWithErrors struct {\n\t\tName func(childComplexity int) int\n\t}\n\n\tMultiHello struct {\n\t\tName func(childComplexity int) int\n\t}\n\n\tMultiHelloMultipleRequires struct {\n\t\tKey1 func(childComplexity int) int\n\t\tKey2 func(childComplexity int) int\n\t\tKey3 func(childComplexity int) int\n\t\tName func(childComplexity int) int\n\t}\n\n\tMultiHelloRequires struct {\n\t\tKey1 func(childComplexity int) int\n\t\tKey2 func(childComplexity int) int\n\t\tName func(childComplexity int) int\n\t}\n\n\tMultiHelloWithError struct {\n\t\tName func(childComplexity int) int\n\t}\n\n\tMultiPlanetRequiresNested struct {\n\t\tName  func(childComplexity int) int\n\t\tSize  func(childComplexity int) int\n\t\tWorld func(childComplexity int) int\n\t}\n\n\tPlanetMultipleRequires struct {\n\t\tDensity  func(childComplexity int) int\n\t\tDiameter func(childComplexity int) int\n\t\tName     func(childComplexity int) int\n\t\tWeight   func(childComplexity int) int\n\t}\n\n\tPlanetRequires struct {\n\t\tDiameter func(childComplexity int) int\n\t\tName     func(childComplexity int) int\n\t\tSize     func(childComplexity int) int\n\t}\n\n\tPlanetRequiresNested struct {\n\t\tName  func(childComplexity int) int\n\t\tSize  func(childComplexity int) int\n\t\tWorld func(childComplexity int) int\n\t}\n\n\tQuery struct {\n\t\t__resolve__service func(childComplexity int) int\n\t\t__resolve_entities func(childComplexity int, representations []map[string]any) int\n\t}\n\n\tWorld struct {\n\t\tBar   func(childComplexity int) int\n\t\tFoo   func(childComplexity int) int\n\t\tHello func(childComplexity int) int\n\t}\n\n\tWorldName struct {\n\t\tName func(childComplexity int) int\n\t}\n\n\tWorldWithMultipleKeys struct {\n\t\tBar   func(childComplexity int) int\n\t\tFoo   func(childComplexity int) int\n\t\tHello func(childComplexity int) int\n\t}\n\n\t_Service struct {\n\t\tSDL func(childComplexity int) int\n\t}\n}\n\ntype EntityResolver interface {\n\tFindHelloByName(ctx context.Context, name string) (*model.Hello, error)\n\tFindHelloMultiSingleKeysByKey1AndKey2(ctx context.Context, key1 string, key2 string) (*model.HelloMultiSingleKeys, error)\n\tFindHelloWithErrorsByName(ctx context.Context, name string) (*model.HelloWithErrors, error)\n\tFindManyMultiHelloByNames(ctx context.Context, reps []*model.MultiHelloByNamesInput) ([]*model.MultiHello, error)\n\tFindManyMultiHelloMultipleRequiresByNames(ctx context.Context, reps []*model.MultiHelloMultipleRequiresByNamesInput) ([]*model.MultiHelloMultipleRequires, error)\n\tFindManyMultiHelloRequiresByNames(ctx context.Context, reps []*model.MultiHelloRequiresByNamesInput) ([]*model.MultiHelloRequires, error)\n\tFindManyMultiHelloWithErrorByNames(ctx context.Context, reps []*model.MultiHelloWithErrorByNamesInput) ([]*model.MultiHelloWithError, error)\n\tFindManyMultiPlanetRequiresNestedByNames(ctx context.Context, reps []*model.MultiPlanetRequiresNestedByNamesInput) ([]*model.MultiPlanetRequiresNested, error)\n\tFindPlanetMultipleRequiresByName(ctx context.Context, name string) (*model.PlanetMultipleRequires, error)\n\tFindPlanetRequiresByName(ctx context.Context, name string) (*model.PlanetRequires, error)\n\tFindPlanetRequiresNestedByName(ctx context.Context, name string) (*model.PlanetRequiresNested, error)\n\tFindWorldByHelloNameAndFoo(ctx context.Context, helloName string, foo string) (*model.World, error)\n\tFindWorldNameByName(ctx context.Context, name string) (*model.WorldName, error)\n\tFindWorldWithMultipleKeysByHelloNameAndFoo(ctx context.Context, helloName string, foo string) (*model.WorldWithMultipleKeys, error)\n\tFindWorldWithMultipleKeysByBar(ctx context.Context, bar int) (*model.WorldWithMultipleKeys, error)\n}\n\ntype executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.SchemaData != nil {\n\t\treturn e.SchemaData\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := newExecutionContext(nil, e, nil)\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"Entity.findHelloByName\":\n\t\tif e.ComplexityRoot.Entity.FindHelloByName == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := field_Entity_findHelloByName_args(ctx, &ec, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindHelloByName(childComplexity, args[\"name\"].(string)), true\n\tcase \"Entity.findHelloMultiSingleKeysByKey1AndKey2\":\n\t\tif e.ComplexityRoot.Entity.FindHelloMultiSingleKeysByKey1AndKey2 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := field_Entity_findHelloMultiSingleKeysByKey1AndKey2_args(ctx, &ec, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindHelloMultiSingleKeysByKey1AndKey2(childComplexity, args[\"key1\"].(string), args[\"key2\"].(string)), true\n\tcase \"Entity.findHelloWithErrorsByName\":\n\t\tif e.ComplexityRoot.Entity.FindHelloWithErrorsByName == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := field_Entity_findHelloWithErrorsByName_args(ctx, &ec, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindHelloWithErrorsByName(childComplexity, args[\"name\"].(string)), true\n\tcase \"Entity.findManyMultiHelloByNames\":\n\t\tif e.ComplexityRoot.Entity.FindManyMultiHelloByNames == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := field_Entity_findManyMultiHelloByNames_args(ctx, &ec, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindManyMultiHelloByNames(childComplexity, args[\"reps\"].([]*model.MultiHelloByNamesInput)), true\n\tcase \"Entity.findManyMultiHelloMultipleRequiresByNames\":\n\t\tif e.ComplexityRoot.Entity.FindManyMultiHelloMultipleRequiresByNames == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := field_Entity_findManyMultiHelloMultipleRequiresByNames_args(ctx, &ec, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindManyMultiHelloMultipleRequiresByNames(childComplexity, args[\"reps\"].([]*model.MultiHelloMultipleRequiresByNamesInput)), true\n\tcase \"Entity.findManyMultiHelloRequiresByNames\":\n\t\tif e.ComplexityRoot.Entity.FindManyMultiHelloRequiresByNames == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := field_Entity_findManyMultiHelloRequiresByNames_args(ctx, &ec, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindManyMultiHelloRequiresByNames(childComplexity, args[\"reps\"].([]*model.MultiHelloRequiresByNamesInput)), true\n\tcase \"Entity.findManyMultiHelloWithErrorByNames\":\n\t\tif e.ComplexityRoot.Entity.FindManyMultiHelloWithErrorByNames == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := field_Entity_findManyMultiHelloWithErrorByNames_args(ctx, &ec, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindManyMultiHelloWithErrorByNames(childComplexity, args[\"reps\"].([]*model.MultiHelloWithErrorByNamesInput)), true\n\tcase \"Entity.findManyMultiPlanetRequiresNestedByNames\":\n\t\tif e.ComplexityRoot.Entity.FindManyMultiPlanetRequiresNestedByNames == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := field_Entity_findManyMultiPlanetRequiresNestedByNames_args(ctx, &ec, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindManyMultiPlanetRequiresNestedByNames(childComplexity, args[\"reps\"].([]*model.MultiPlanetRequiresNestedByNamesInput)), true\n\tcase \"Entity.findPlanetMultipleRequiresByName\":\n\t\tif e.ComplexityRoot.Entity.FindPlanetMultipleRequiresByName == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := field_Entity_findPlanetMultipleRequiresByName_args(ctx, &ec, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindPlanetMultipleRequiresByName(childComplexity, args[\"name\"].(string)), true\n\tcase \"Entity.findPlanetRequiresByName\":\n\t\tif e.ComplexityRoot.Entity.FindPlanetRequiresByName == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := field_Entity_findPlanetRequiresByName_args(ctx, &ec, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindPlanetRequiresByName(childComplexity, args[\"name\"].(string)), true\n\tcase \"Entity.findPlanetRequiresNestedByName\":\n\t\tif e.ComplexityRoot.Entity.FindPlanetRequiresNestedByName == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := field_Entity_findPlanetRequiresNestedByName_args(ctx, &ec, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindPlanetRequiresNestedByName(childComplexity, args[\"name\"].(string)), true\n\tcase \"Entity.findWorldByHelloNameAndFoo\":\n\t\tif e.ComplexityRoot.Entity.FindWorldByHelloNameAndFoo == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := field_Entity_findWorldByHelloNameAndFoo_args(ctx, &ec, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindWorldByHelloNameAndFoo(childComplexity, args[\"helloName\"].(string), args[\"foo\"].(string)), true\n\tcase \"Entity.findWorldNameByName\":\n\t\tif e.ComplexityRoot.Entity.FindWorldNameByName == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := field_Entity_findWorldNameByName_args(ctx, &ec, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindWorldNameByName(childComplexity, args[\"name\"].(string)), true\n\tcase \"Entity.findWorldWithMultipleKeysByBar\":\n\t\tif e.ComplexityRoot.Entity.FindWorldWithMultipleKeysByBar == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := field_Entity_findWorldWithMultipleKeysByBar_args(ctx, &ec, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindWorldWithMultipleKeysByBar(childComplexity, args[\"bar\"].(int)), true\n\tcase \"Entity.findWorldWithMultipleKeysByHelloNameAndFoo\":\n\t\tif e.ComplexityRoot.Entity.FindWorldWithMultipleKeysByHelloNameAndFoo == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := field_Entity_findWorldWithMultipleKeysByHelloNameAndFoo_args(ctx, &ec, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Entity.FindWorldWithMultipleKeysByHelloNameAndFoo(childComplexity, args[\"helloName\"].(string), args[\"foo\"].(string)), true\n\n\tcase \"Hello.name\":\n\t\tif e.ComplexityRoot.Hello.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Hello.Name(childComplexity), true\n\tcase \"Hello.secondary\":\n\t\tif e.ComplexityRoot.Hello.Secondary == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Hello.Secondary(childComplexity), true\n\n\tcase \"HelloMultiSingleKeys.key1\":\n\t\tif e.ComplexityRoot.HelloMultiSingleKeys.Key1 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.HelloMultiSingleKeys.Key1(childComplexity), true\n\tcase \"HelloMultiSingleKeys.key2\":\n\t\tif e.ComplexityRoot.HelloMultiSingleKeys.Key2 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.HelloMultiSingleKeys.Key2(childComplexity), true\n\n\tcase \"HelloWithErrors.name\":\n\t\tif e.ComplexityRoot.HelloWithErrors.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.HelloWithErrors.Name(childComplexity), true\n\n\tcase \"MultiHello.name\":\n\t\tif e.ComplexityRoot.MultiHello.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MultiHello.Name(childComplexity), true\n\n\tcase \"MultiHelloMultipleRequires.key1\":\n\t\tif e.ComplexityRoot.MultiHelloMultipleRequires.Key1 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MultiHelloMultipleRequires.Key1(childComplexity), true\n\tcase \"MultiHelloMultipleRequires.key2\":\n\t\tif e.ComplexityRoot.MultiHelloMultipleRequires.Key2 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MultiHelloMultipleRequires.Key2(childComplexity), true\n\tcase \"MultiHelloMultipleRequires.key3\":\n\t\tif e.ComplexityRoot.MultiHelloMultipleRequires.Key3 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MultiHelloMultipleRequires.Key3(childComplexity), true\n\tcase \"MultiHelloMultipleRequires.name\":\n\t\tif e.ComplexityRoot.MultiHelloMultipleRequires.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MultiHelloMultipleRequires.Name(childComplexity), true\n\n\tcase \"MultiHelloRequires.key1\":\n\t\tif e.ComplexityRoot.MultiHelloRequires.Key1 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MultiHelloRequires.Key1(childComplexity), true\n\tcase \"MultiHelloRequires.key2\":\n\t\tif e.ComplexityRoot.MultiHelloRequires.Key2 == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MultiHelloRequires.Key2(childComplexity), true\n\tcase \"MultiHelloRequires.name\":\n\t\tif e.ComplexityRoot.MultiHelloRequires.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MultiHelloRequires.Name(childComplexity), true\n\n\tcase \"MultiHelloWithError.name\":\n\t\tif e.ComplexityRoot.MultiHelloWithError.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MultiHelloWithError.Name(childComplexity), true\n\n\tcase \"MultiPlanetRequiresNested.name\":\n\t\tif e.ComplexityRoot.MultiPlanetRequiresNested.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MultiPlanetRequiresNested.Name(childComplexity), true\n\tcase \"MultiPlanetRequiresNested.size\":\n\t\tif e.ComplexityRoot.MultiPlanetRequiresNested.Size == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MultiPlanetRequiresNested.Size(childComplexity), true\n\tcase \"MultiPlanetRequiresNested.world\":\n\t\tif e.ComplexityRoot.MultiPlanetRequiresNested.World == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.MultiPlanetRequiresNested.World(childComplexity), true\n\n\tcase \"PlanetMultipleRequires.density\":\n\t\tif e.ComplexityRoot.PlanetMultipleRequires.Density == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PlanetMultipleRequires.Density(childComplexity), true\n\tcase \"PlanetMultipleRequires.diameter\":\n\t\tif e.ComplexityRoot.PlanetMultipleRequires.Diameter == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PlanetMultipleRequires.Diameter(childComplexity), true\n\tcase \"PlanetMultipleRequires.name\":\n\t\tif e.ComplexityRoot.PlanetMultipleRequires.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PlanetMultipleRequires.Name(childComplexity), true\n\tcase \"PlanetMultipleRequires.weight\":\n\t\tif e.ComplexityRoot.PlanetMultipleRequires.Weight == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PlanetMultipleRequires.Weight(childComplexity), true\n\n\tcase \"PlanetRequires.diameter\":\n\t\tif e.ComplexityRoot.PlanetRequires.Diameter == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PlanetRequires.Diameter(childComplexity), true\n\tcase \"PlanetRequires.name\":\n\t\tif e.ComplexityRoot.PlanetRequires.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PlanetRequires.Name(childComplexity), true\n\tcase \"PlanetRequires.size\":\n\t\tif e.ComplexityRoot.PlanetRequires.Size == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PlanetRequires.Size(childComplexity), true\n\n\tcase \"PlanetRequiresNested.name\":\n\t\tif e.ComplexityRoot.PlanetRequiresNested.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PlanetRequiresNested.Name(childComplexity), true\n\tcase \"PlanetRequiresNested.size\":\n\t\tif e.ComplexityRoot.PlanetRequiresNested.Size == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PlanetRequiresNested.Size(childComplexity), true\n\tcase \"PlanetRequiresNested.world\":\n\t\tif e.ComplexityRoot.PlanetRequiresNested.World == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.PlanetRequiresNested.World(childComplexity), true\n\n\tcase \"Query._service\":\n\t\tif e.ComplexityRoot.Query.__resolve__service == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.__resolve__service(childComplexity), true\n\tcase \"Query._entities\":\n\t\tif e.ComplexityRoot.Query.__resolve_entities == nil {\n\t\t\tbreak\n\t\t}\n\n\t\targs, err := field_Query__entities_args(ctx, &ec, rawArgs)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\n\t\treturn e.ComplexityRoot.Query.__resolve_entities(childComplexity, args[\"representations\"].([]map[string]any)), true\n\n\tcase \"World.bar\":\n\t\tif e.ComplexityRoot.World.Bar == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.World.Bar(childComplexity), true\n\tcase \"World.foo\":\n\t\tif e.ComplexityRoot.World.Foo == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.World.Foo(childComplexity), true\n\tcase \"World.hello\":\n\t\tif e.ComplexityRoot.World.Hello == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.World.Hello(childComplexity), true\n\n\tcase \"WorldName.name\":\n\t\tif e.ComplexityRoot.WorldName.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.WorldName.Name(childComplexity), true\n\n\tcase \"WorldWithMultipleKeys.bar\":\n\t\tif e.ComplexityRoot.WorldWithMultipleKeys.Bar == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.WorldWithMultipleKeys.Bar(childComplexity), true\n\tcase \"WorldWithMultipleKeys.foo\":\n\t\tif e.ComplexityRoot.WorldWithMultipleKeys.Foo == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.WorldWithMultipleKeys.Foo(childComplexity), true\n\tcase \"WorldWithMultipleKeys.hello\":\n\t\tif e.ComplexityRoot.WorldWithMultipleKeys.Hello == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot.WorldWithMultipleKeys.Hello(childComplexity), true\n\n\tcase \"_Service.sdl\":\n\t\tif e.ComplexityRoot._Service.SDL == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.ComplexityRoot._Service.SDL(childComplexity), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := newExecutionContext(opCtx, e, make(chan graphql.DeferredResult))\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap(\n\t\tunmarshalInputMultiHelloByNamesInput,\n\t\tunmarshalInputMultiHelloMultipleRequiresByNamesInput,\n\t\tunmarshalInputMultiHelloRequiresByNamesInput,\n\t\tunmarshalInputMultiHelloWithErrorByNamesInput,\n\t\tunmarshalInputMultiPlanetRequiresNestedByNamesInput,\n\t)\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = _Query(ctx, &ec, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.PendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.DeferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.PendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.Deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.PendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.ExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]\n}\n\nfunc newExecutionContext(\n\topCtx *graphql.OperationContext,\n\texecSchema *executableSchema,\n\tdeferredResults chan graphql.DeferredResult,\n) executionContext {\n\treturn executionContext{\n\t\tExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot](\n\t\t\topCtx,\n\t\t\t(*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema),\n\t\t\tparsedSchema,\n\t\t\tdeferredResults,\n\t\t),\n\t}\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"../schema.graphql\", Input: `directive @entityResolver(multi: Boolean) on OBJECT\n\ntype Hello @key(fields: \"name\") {\n    name: String!\n    secondary: String!\n}\n\ntype World @key(fields: \"hello { name } foo   \") {\n    foo: String!\n    bar: Int!\n    hello: Hello\n}\n\ntype WorldWithMultipleKeys @key(fields: \"hello { name } foo   \") @key(fields: \"bar\") {\n    foo: String!\n    bar: Int!\n    hello: Hello\n}\n\ntype WorldName @key(fields: \"name\") {\n    name: String!\n}\n\ntype HelloWithErrors @key(fields: \"name\") {\n    name: String!\n}\n\ntype PlanetRequires @key(fields: \"name\") {\n    name: String!\n    size: Int! @requires(fields: \"diameter\")\n    diameter: Int!\n}\n\ntype PlanetMultipleRequires @key(fields: \"name\") {\n    name: String! @external\n    diameter: Int! @external\n    density: Int! @external\n    weight: Int! @requires(fields: \"diameter density\")\n}\n\ntype PlanetRequiresNested @key(fields: \"name\") {\n    name: String! @external\n    world: World! @external\n    size: Int! @requires(fields: \"world{ foo }\")\n}\n\ntype MultiPlanetRequiresNested @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String! @external\n    world: World! @external\n    size: Int! @requires(fields: \"world{ foo }\")\n}\n\ntype MultiHello @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String!\n}\n\ntype MultiHelloWithError @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String!\n}\n\ntype HelloMultiSingleKeys @key(fields: \"key1 key2\") {\n    key1: String!\n    key2: String!\n}\n\ntype MultiHelloRequires @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String! @external\n    key1: String! @external\n    key2: String! @requires(fields: \"key1\")\n}\n\ntype MultiHelloMultipleRequires @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String! @external\n    key1: String! @external\n    key2: String! @external\n    key3: String! @requires(fields: \"key1 key2\")\n}\n`, BuiltIn: false},\n\t{Name: \"../../../federation/directives.graphql\", Input: `\n\tdirective @key(fields: _FieldSet!) repeatable on OBJECT | INTERFACE\n\tdirective @requires(fields: _FieldSet!) on FIELD_DEFINITION\n\tdirective @provides(fields: _FieldSet!) on FIELD_DEFINITION\n\tdirective @extends on OBJECT | INTERFACE\n\tdirective @external on FIELD_DEFINITION\n\tscalar _Any\n\tscalar _FieldSet\n`, BuiltIn: true},\n\t{Name: \"../../../federation/entity.graphql\", Input: `\n# a union of all types that use the @key directive\nunion _Entity = Hello | HelloMultiSingleKeys | HelloWithErrors | MultiHello | MultiHelloMultipleRequires | MultiHelloRequires | MultiHelloWithError | MultiPlanetRequiresNested | PlanetMultipleRequires | PlanetRequires | PlanetRequiresNested | World | WorldName | WorldWithMultipleKeys\n\ninput MultiHelloByNamesInput {\n\tName: String!\n}\n\ninput MultiHelloMultipleRequiresByNamesInput {\n\tName: String!\n}\n\ninput MultiHelloRequiresByNamesInput {\n\tName: String!\n}\n\ninput MultiHelloWithErrorByNamesInput {\n\tName: String!\n}\n\ninput MultiPlanetRequiresNestedByNamesInput {\n\tName: String!\n}\n\n# fake type to build resolver interfaces for users to implement\ntype Entity {\n\tfindHelloByName(name: String!,): Hello!\n\tfindHelloMultiSingleKeysByKey1AndKey2(key1: String!,key2: String!,): HelloMultiSingleKeys!\n\tfindHelloWithErrorsByName(name: String!,): HelloWithErrors!\n\tfindManyMultiHelloByNames(reps: [MultiHelloByNamesInput]!): [MultiHello]\n\tfindManyMultiHelloMultipleRequiresByNames(reps: [MultiHelloMultipleRequiresByNamesInput]!): [MultiHelloMultipleRequires]\n\tfindManyMultiHelloRequiresByNames(reps: [MultiHelloRequiresByNamesInput]!): [MultiHelloRequires]\n\tfindManyMultiHelloWithErrorByNames(reps: [MultiHelloWithErrorByNamesInput]!): [MultiHelloWithError]\n\tfindManyMultiPlanetRequiresNestedByNames(reps: [MultiPlanetRequiresNestedByNamesInput]!): [MultiPlanetRequiresNested]\n\tfindPlanetMultipleRequiresByName(name: String!,): PlanetMultipleRequires!\n\tfindPlanetRequiresByName(name: String!,): PlanetRequires!\n\tfindPlanetRequiresNestedByName(name: String!,): PlanetRequiresNested!\n\tfindWorldByHelloNameAndFoo(helloName: String!,foo: String!,): World!\n\tfindWorldNameByName(name: String!,): WorldName!\n\tfindWorldWithMultipleKeysByHelloNameAndFoo(helloName: String!,foo: String!,): WorldWithMultipleKeys!\n\tfindWorldWithMultipleKeysByBar(bar: Int!,): WorldWithMultipleKeys!\n}\n\ntype _Service {\n  sdl: String\n}\n\nextend type Query {\n  _entities(representations: [_Any!]!): [_Entity]!\n  _service: _Service!\n}\n`, BuiltIn: true},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc field_Entity_findHelloByName_args(ctx context.Context, ec *executionContext, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"name\", unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc field_Entity_findHelloMultiSingleKeysByKey1AndKey2_args(ctx context.Context, ec *executionContext, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"key1\", unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"key1\"] = arg0\n\targ1, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"key2\", unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"key2\"] = arg1\n\treturn args, nil\n}\n\nfunc field_Entity_findHelloWithErrorsByName_args(ctx context.Context, ec *executionContext, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"name\", unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc field_Entity_findManyMultiHelloByNames_args(ctx context.Context, ec *executionContext, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"reps\", unmarshalNMultiHelloByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiHelloByNamesInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"reps\"] = arg0\n\treturn args, nil\n}\n\nfunc field_Entity_findManyMultiHelloMultipleRequiresByNames_args(ctx context.Context, ec *executionContext, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"reps\", unmarshalNMultiHelloMultipleRequiresByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiHelloMultipleRequiresByNamesInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"reps\"] = arg0\n\treturn args, nil\n}\n\nfunc field_Entity_findManyMultiHelloRequiresByNames_args(ctx context.Context, ec *executionContext, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"reps\", unmarshalNMultiHelloRequiresByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiHelloRequiresByNamesInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"reps\"] = arg0\n\treturn args, nil\n}\n\nfunc field_Entity_findManyMultiHelloWithErrorByNames_args(ctx context.Context, ec *executionContext, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"reps\", unmarshalNMultiHelloWithErrorByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiHelloWithErrorByNamesInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"reps\"] = arg0\n\treturn args, nil\n}\n\nfunc field_Entity_findManyMultiPlanetRequiresNestedByNames_args(ctx context.Context, ec *executionContext, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"reps\", unmarshalNMultiPlanetRequiresNestedByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiPlanetRequiresNestedByNamesInput)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"reps\"] = arg0\n\treturn args, nil\n}\n\nfunc field_Entity_findPlanetMultipleRequiresByName_args(ctx context.Context, ec *executionContext, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"name\", unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc field_Entity_findPlanetRequiresByName_args(ctx context.Context, ec *executionContext, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"name\", unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc field_Entity_findPlanetRequiresNestedByName_args(ctx context.Context, ec *executionContext, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"name\", unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc field_Entity_findWorldByHelloNameAndFoo_args(ctx context.Context, ec *executionContext, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"helloName\", unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"helloName\"] = arg0\n\targ1, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"foo\", unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"foo\"] = arg1\n\treturn args, nil\n}\n\nfunc field_Entity_findWorldNameByName_args(ctx context.Context, ec *executionContext, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"name\", unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc field_Entity_findWorldWithMultipleKeysByBar_args(ctx context.Context, ec *executionContext, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"bar\", unmarshalNInt2int)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"bar\"] = arg0\n\treturn args, nil\n}\n\nfunc field_Entity_findWorldWithMultipleKeysByHelloNameAndFoo_args(ctx context.Context, ec *executionContext, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"helloName\", unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"helloName\"] = arg0\n\targ1, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"foo\", unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"foo\"] = arg1\n\treturn args, nil\n}\n\nfunc field_Query___type_args(ctx context.Context, ec *executionContext, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"name\", unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc field_Query__entities_args(ctx context.Context, ec *executionContext, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"representations\", unmarshalN_Any2ᚕmapᚄ)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"representations\"] = arg0\n\treturn args, nil\n}\n\nfunc field___Directive_args_args(ctx context.Context, ec *executionContext, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"includeDeprecated\", unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc field___Field_args_args(ctx context.Context, ec *executionContext, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"includeDeprecated\", unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc field___Type_enumValues_args(ctx context.Context, ec *executionContext, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"includeDeprecated\", unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc field___Type_fields_args(ctx context.Context, ec *executionContext, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgFieldWithEC(ctx, ec, rawArgs, \"includeDeprecated\", unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc _Entity_findHelloByName(ctx context.Context, ec *executionContext, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_Entity_findHelloByName(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindHelloByName(ctx, fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *model.Hello) graphql.Marshaler {\n\t\t\treturn marshalNHello2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐHello(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_Entity_findHelloByName(ctx context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext_Hello_name(ctx, ec, field)\n\t\t\tcase \"secondary\":\n\t\t\t\treturn fieldContext_Hello_secondary(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Hello\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = field_Entity_findHelloByName_args(ctx, ec, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc _Entity_findHelloMultiSingleKeysByKey1AndKey2(ctx context.Context, ec *executionContext, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_Entity_findHelloMultiSingleKeysByKey1AndKey2(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindHelloMultiSingleKeysByKey1AndKey2(ctx, fc.Args[\"key1\"].(string), fc.Args[\"key2\"].(string))\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *model.HelloMultiSingleKeys) graphql.Marshaler {\n\t\t\treturn marshalNHelloMultiSingleKeys2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐHelloMultiSingleKeys(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_Entity_findHelloMultiSingleKeysByKey1AndKey2(ctx context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"key1\":\n\t\t\t\treturn fieldContext_HelloMultiSingleKeys_key1(ctx, ec, field)\n\t\t\tcase \"key2\":\n\t\t\t\treturn fieldContext_HelloMultiSingleKeys_key2(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type HelloMultiSingleKeys\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = field_Entity_findHelloMultiSingleKeysByKey1AndKey2_args(ctx, ec, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc _Entity_findHelloWithErrorsByName(ctx context.Context, ec *executionContext, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_Entity_findHelloWithErrorsByName(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindHelloWithErrorsByName(ctx, fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *model.HelloWithErrors) graphql.Marshaler {\n\t\t\treturn marshalNHelloWithErrors2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐHelloWithErrors(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_Entity_findHelloWithErrorsByName(ctx context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext_HelloWithErrors_name(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type HelloWithErrors\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = field_Entity_findHelloWithErrorsByName_args(ctx, ec, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc _Entity_findManyMultiHelloByNames(ctx context.Context, ec *executionContext, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_Entity_findManyMultiHelloByNames(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindManyMultiHelloByNames(ctx, fc.Args[\"reps\"].([]*model.MultiHelloByNamesInput))\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v []*model.MultiHello) graphql.Marshaler {\n\t\t\treturn marshalOMultiHello2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiHello(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext_Entity_findManyMultiHelloByNames(ctx context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext_MultiHello_name(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type MultiHello\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = field_Entity_findManyMultiHelloByNames_args(ctx, ec, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc _Entity_findManyMultiHelloMultipleRequiresByNames(ctx context.Context, ec *executionContext, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_Entity_findManyMultiHelloMultipleRequiresByNames(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindManyMultiHelloMultipleRequiresByNames(ctx, fc.Args[\"reps\"].([]*model.MultiHelloMultipleRequiresByNamesInput))\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v []*model.MultiHelloMultipleRequires) graphql.Marshaler {\n\t\t\treturn marshalOMultiHelloMultipleRequires2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiHelloMultipleRequires(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext_Entity_findManyMultiHelloMultipleRequiresByNames(ctx context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext_MultiHelloMultipleRequires_name(ctx, ec, field)\n\t\t\tcase \"key1\":\n\t\t\t\treturn fieldContext_MultiHelloMultipleRequires_key1(ctx, ec, field)\n\t\t\tcase \"key2\":\n\t\t\t\treturn fieldContext_MultiHelloMultipleRequires_key2(ctx, ec, field)\n\t\t\tcase \"key3\":\n\t\t\t\treturn fieldContext_MultiHelloMultipleRequires_key3(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type MultiHelloMultipleRequires\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = field_Entity_findManyMultiHelloMultipleRequiresByNames_args(ctx, ec, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc _Entity_findManyMultiHelloRequiresByNames(ctx context.Context, ec *executionContext, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_Entity_findManyMultiHelloRequiresByNames(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindManyMultiHelloRequiresByNames(ctx, fc.Args[\"reps\"].([]*model.MultiHelloRequiresByNamesInput))\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v []*model.MultiHelloRequires) graphql.Marshaler {\n\t\t\treturn marshalOMultiHelloRequires2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiHelloRequires(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext_Entity_findManyMultiHelloRequiresByNames(ctx context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext_MultiHelloRequires_name(ctx, ec, field)\n\t\t\tcase \"key1\":\n\t\t\t\treturn fieldContext_MultiHelloRequires_key1(ctx, ec, field)\n\t\t\tcase \"key2\":\n\t\t\t\treturn fieldContext_MultiHelloRequires_key2(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type MultiHelloRequires\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = field_Entity_findManyMultiHelloRequiresByNames_args(ctx, ec, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc _Entity_findManyMultiHelloWithErrorByNames(ctx context.Context, ec *executionContext, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_Entity_findManyMultiHelloWithErrorByNames(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindManyMultiHelloWithErrorByNames(ctx, fc.Args[\"reps\"].([]*model.MultiHelloWithErrorByNamesInput))\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v []*model.MultiHelloWithError) graphql.Marshaler {\n\t\t\treturn marshalOMultiHelloWithError2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiHelloWithError(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext_Entity_findManyMultiHelloWithErrorByNames(ctx context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext_MultiHelloWithError_name(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type MultiHelloWithError\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = field_Entity_findManyMultiHelloWithErrorByNames_args(ctx, ec, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc _Entity_findManyMultiPlanetRequiresNestedByNames(ctx context.Context, ec *executionContext, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_Entity_findManyMultiPlanetRequiresNestedByNames(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindManyMultiPlanetRequiresNestedByNames(ctx, fc.Args[\"reps\"].([]*model.MultiPlanetRequiresNestedByNamesInput))\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v []*model.MultiPlanetRequiresNested) graphql.Marshaler {\n\t\t\treturn marshalOMultiPlanetRequiresNested2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiPlanetRequiresNested(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext_Entity_findManyMultiPlanetRequiresNestedByNames(ctx context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext_MultiPlanetRequiresNested_name(ctx, ec, field)\n\t\t\tcase \"world\":\n\t\t\t\treturn fieldContext_MultiPlanetRequiresNested_world(ctx, ec, field)\n\t\t\tcase \"size\":\n\t\t\t\treturn fieldContext_MultiPlanetRequiresNested_size(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type MultiPlanetRequiresNested\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = field_Entity_findManyMultiPlanetRequiresNestedByNames_args(ctx, ec, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc _Entity_findPlanetMultipleRequiresByName(ctx context.Context, ec *executionContext, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_Entity_findPlanetMultipleRequiresByName(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindPlanetMultipleRequiresByName(ctx, fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *model.PlanetMultipleRequires) graphql.Marshaler {\n\t\t\treturn marshalNPlanetMultipleRequires2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐPlanetMultipleRequires(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_Entity_findPlanetMultipleRequiresByName(ctx context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext_PlanetMultipleRequires_name(ctx, ec, field)\n\t\t\tcase \"diameter\":\n\t\t\t\treturn fieldContext_PlanetMultipleRequires_diameter(ctx, ec, field)\n\t\t\tcase \"density\":\n\t\t\t\treturn fieldContext_PlanetMultipleRequires_density(ctx, ec, field)\n\t\t\tcase \"weight\":\n\t\t\t\treturn fieldContext_PlanetMultipleRequires_weight(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type PlanetMultipleRequires\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = field_Entity_findPlanetMultipleRequiresByName_args(ctx, ec, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc _Entity_findPlanetRequiresByName(ctx context.Context, ec *executionContext, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_Entity_findPlanetRequiresByName(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindPlanetRequiresByName(ctx, fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *model.PlanetRequires) graphql.Marshaler {\n\t\t\treturn marshalNPlanetRequires2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐPlanetRequires(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_Entity_findPlanetRequiresByName(ctx context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext_PlanetRequires_name(ctx, ec, field)\n\t\t\tcase \"size\":\n\t\t\t\treturn fieldContext_PlanetRequires_size(ctx, ec, field)\n\t\t\tcase \"diameter\":\n\t\t\t\treturn fieldContext_PlanetRequires_diameter(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type PlanetRequires\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = field_Entity_findPlanetRequiresByName_args(ctx, ec, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc _Entity_findPlanetRequiresNestedByName(ctx context.Context, ec *executionContext, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_Entity_findPlanetRequiresNestedByName(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindPlanetRequiresNestedByName(ctx, fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *model.PlanetRequiresNested) graphql.Marshaler {\n\t\t\treturn marshalNPlanetRequiresNested2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐPlanetRequiresNested(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_Entity_findPlanetRequiresNestedByName(ctx context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext_PlanetRequiresNested_name(ctx, ec, field)\n\t\t\tcase \"world\":\n\t\t\t\treturn fieldContext_PlanetRequiresNested_world(ctx, ec, field)\n\t\t\tcase \"size\":\n\t\t\t\treturn fieldContext_PlanetRequiresNested_size(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type PlanetRequiresNested\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = field_Entity_findPlanetRequiresNestedByName_args(ctx, ec, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc _Entity_findWorldByHelloNameAndFoo(ctx context.Context, ec *executionContext, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_Entity_findWorldByHelloNameAndFoo(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindWorldByHelloNameAndFoo(ctx, fc.Args[\"helloName\"].(string), fc.Args[\"foo\"].(string))\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *model.World) graphql.Marshaler {\n\t\t\treturn marshalNWorld2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐWorld(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_Entity_findWorldByHelloNameAndFoo(ctx context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"foo\":\n\t\t\t\treturn fieldContext_World_foo(ctx, ec, field)\n\t\t\tcase \"bar\":\n\t\t\t\treturn fieldContext_World_bar(ctx, ec, field)\n\t\t\tcase \"hello\":\n\t\t\t\treturn fieldContext_World_hello(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type World\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = field_Entity_findWorldByHelloNameAndFoo_args(ctx, ec, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc _Entity_findWorldNameByName(ctx context.Context, ec *executionContext, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_Entity_findWorldNameByName(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindWorldNameByName(ctx, fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *model.WorldName) graphql.Marshaler {\n\t\t\treturn marshalNWorldName2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐWorldName(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_Entity_findWorldNameByName(ctx context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext_WorldName_name(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type WorldName\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = field_Entity_findWorldNameByName_args(ctx, ec, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc _Entity_findWorldWithMultipleKeysByHelloNameAndFoo(ctx context.Context, ec *executionContext, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_Entity_findWorldWithMultipleKeysByHelloNameAndFoo(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindWorldWithMultipleKeysByHelloNameAndFoo(ctx, fc.Args[\"helloName\"].(string), fc.Args[\"foo\"].(string))\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *model.WorldWithMultipleKeys) graphql.Marshaler {\n\t\t\treturn marshalNWorldWithMultipleKeys2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐWorldWithMultipleKeys(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_Entity_findWorldWithMultipleKeysByHelloNameAndFoo(ctx context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"foo\":\n\t\t\t\treturn fieldContext_WorldWithMultipleKeys_foo(ctx, ec, field)\n\t\t\tcase \"bar\":\n\t\t\t\treturn fieldContext_WorldWithMultipleKeys_bar(ctx, ec, field)\n\t\t\tcase \"hello\":\n\t\t\t\treturn fieldContext_WorldWithMultipleKeys_hello(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type WorldWithMultipleKeys\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = field_Entity_findWorldWithMultipleKeysByHelloNameAndFoo_args(ctx, ec, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc _Entity_findWorldWithMultipleKeysByBar(ctx context.Context, ec *executionContext, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_Entity_findWorldWithMultipleKeysByBar(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.Resolvers.Entity().FindWorldWithMultipleKeysByBar(ctx, fc.Args[\"bar\"].(int))\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *model.WorldWithMultipleKeys) graphql.Marshaler {\n\t\t\treturn marshalNWorldWithMultipleKeys2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐWorldWithMultipleKeys(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_Entity_findWorldWithMultipleKeysByBar(ctx context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Entity\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"foo\":\n\t\t\t\treturn fieldContext_WorldWithMultipleKeys_foo(ctx, ec, field)\n\t\t\tcase \"bar\":\n\t\t\t\treturn fieldContext_WorldWithMultipleKeys_bar(ctx, ec, field)\n\t\t\tcase \"hello\":\n\t\t\t\treturn fieldContext_WorldWithMultipleKeys_hello(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type WorldWithMultipleKeys\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = field_Entity_findWorldWithMultipleKeysByBar_args(ctx, ec, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc _Hello_name(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *model.Hello) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_Hello_name(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalNString2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_Hello_name(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Hello\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _Hello_secondary(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *model.Hello) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_Hello_secondary(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Secondary, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalNString2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_Hello_secondary(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Hello\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _HelloMultiSingleKeys_key1(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *model.HelloMultiSingleKeys) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_HelloMultiSingleKeys_key1(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Key1, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalNString2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_HelloMultiSingleKeys_key1(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"HelloMultiSingleKeys\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _HelloMultiSingleKeys_key2(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *model.HelloMultiSingleKeys) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_HelloMultiSingleKeys_key2(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Key2, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalNString2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_HelloMultiSingleKeys_key2(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"HelloMultiSingleKeys\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _HelloWithErrors_name(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *model.HelloWithErrors) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_HelloWithErrors_name(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalNString2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_HelloWithErrors_name(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"HelloWithErrors\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _MultiHello_name(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *model.MultiHello) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_MultiHello_name(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalNString2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_MultiHello_name(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHello\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _MultiHelloMultipleRequires_name(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *model.MultiHelloMultipleRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_MultiHelloMultipleRequires_name(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalNString2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_MultiHelloMultipleRequires_name(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHelloMultipleRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _MultiHelloMultipleRequires_key1(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *model.MultiHelloMultipleRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_MultiHelloMultipleRequires_key1(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Key1, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalNString2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_MultiHelloMultipleRequires_key1(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHelloMultipleRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _MultiHelloMultipleRequires_key2(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *model.MultiHelloMultipleRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_MultiHelloMultipleRequires_key2(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Key2, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalNString2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_MultiHelloMultipleRequires_key2(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHelloMultipleRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _MultiHelloMultipleRequires_key3(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *model.MultiHelloMultipleRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_MultiHelloMultipleRequires_key3(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Key3, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalNString2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_MultiHelloMultipleRequires_key3(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHelloMultipleRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _MultiHelloRequires_name(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *model.MultiHelloRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_MultiHelloRequires_name(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalNString2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_MultiHelloRequires_name(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHelloRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _MultiHelloRequires_key1(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *model.MultiHelloRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_MultiHelloRequires_key1(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Key1, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalNString2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_MultiHelloRequires_key1(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHelloRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _MultiHelloRequires_key2(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *model.MultiHelloRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_MultiHelloRequires_key2(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Key2, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalNString2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_MultiHelloRequires_key2(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHelloRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _MultiHelloWithError_name(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *model.MultiHelloWithError) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_MultiHelloWithError_name(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalNString2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_MultiHelloWithError_name(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiHelloWithError\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _MultiPlanetRequiresNested_name(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *model.MultiPlanetRequiresNested) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_MultiPlanetRequiresNested_name(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalNString2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_MultiPlanetRequiresNested_name(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiPlanetRequiresNested\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _MultiPlanetRequiresNested_world(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *model.MultiPlanetRequiresNested) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_MultiPlanetRequiresNested_world(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.World, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *model.World) graphql.Marshaler {\n\t\t\treturn marshalNWorld2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐWorld(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_MultiPlanetRequiresNested_world(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiPlanetRequiresNested\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"foo\":\n\t\t\t\treturn fieldContext_World_foo(ctx, ec, field)\n\t\t\tcase \"bar\":\n\t\t\t\treturn fieldContext_World_bar(ctx, ec, field)\n\t\t\tcase \"hello\":\n\t\t\t\treturn fieldContext_World_hello(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type World\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _MultiPlanetRequiresNested_size(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *model.MultiPlanetRequiresNested) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_MultiPlanetRequiresNested_size(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Size, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler {\n\t\t\treturn marshalNInt2int(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_MultiPlanetRequiresNested_size(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"MultiPlanetRequiresNested\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _PlanetMultipleRequires_name(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *model.PlanetMultipleRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_PlanetMultipleRequires_name(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalNString2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_PlanetMultipleRequires_name(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetMultipleRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _PlanetMultipleRequires_diameter(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *model.PlanetMultipleRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_PlanetMultipleRequires_diameter(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Diameter, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler {\n\t\t\treturn marshalNInt2int(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_PlanetMultipleRequires_diameter(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetMultipleRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _PlanetMultipleRequires_density(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *model.PlanetMultipleRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_PlanetMultipleRequires_density(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Density, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler {\n\t\t\treturn marshalNInt2int(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_PlanetMultipleRequires_density(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetMultipleRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _PlanetMultipleRequires_weight(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *model.PlanetMultipleRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_PlanetMultipleRequires_weight(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Weight, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler {\n\t\t\treturn marshalNInt2int(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_PlanetMultipleRequires_weight(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetMultipleRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _PlanetRequires_name(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *model.PlanetRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_PlanetRequires_name(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalNString2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_PlanetRequires_name(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _PlanetRequires_size(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *model.PlanetRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_PlanetRequires_size(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Size, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler {\n\t\t\treturn marshalNInt2int(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_PlanetRequires_size(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _PlanetRequires_diameter(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *model.PlanetRequires) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_PlanetRequires_diameter(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Diameter, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler {\n\t\t\treturn marshalNInt2int(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_PlanetRequires_diameter(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetRequires\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _PlanetRequiresNested_name(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *model.PlanetRequiresNested) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_PlanetRequiresNested_name(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalNString2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_PlanetRequiresNested_name(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetRequiresNested\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _PlanetRequiresNested_world(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *model.PlanetRequiresNested) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_PlanetRequiresNested_world(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.World, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *model.World) graphql.Marshaler {\n\t\t\treturn marshalNWorld2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐWorld(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_PlanetRequiresNested_world(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetRequiresNested\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"foo\":\n\t\t\t\treturn fieldContext_World_foo(ctx, ec, field)\n\t\t\tcase \"bar\":\n\t\t\t\treturn fieldContext_World_bar(ctx, ec, field)\n\t\t\tcase \"hello\":\n\t\t\t\treturn fieldContext_World_hello(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type World\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _PlanetRequiresNested_size(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *model.PlanetRequiresNested) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_PlanetRequiresNested_size(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Size, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler {\n\t\t\treturn marshalNInt2int(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_PlanetRequiresNested_size(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"PlanetRequiresNested\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _Query__entities(ctx context.Context, ec *executionContext, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_Query__entities(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.__resolve_entities(ctx, fc.Args[\"representations\"].([]map[string]any)), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v []fedruntime.Entity) graphql.Marshaler {\n\t\t\treturn marshalN_Entity2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_Query__entities(ctx context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type _Entity does not have child fields\")\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = field_Query__entities_args(ctx, ec, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc _Query__service(ctx context.Context, ec *executionContext, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_Query__service(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.__resolve__service(ctx)\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v fedruntime.Service) graphql.Marshaler {\n\t\t\treturn marshalN_Service2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐService(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_Query__service(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"sdl\":\n\t\t\t\treturn fieldContext__Service_sdl(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type _Service\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _Query___type(ctx context.Context, ec *executionContext, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_Query___type(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.IntrospectType(fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\t\t\treturn marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext_Query___type(ctx context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn fieldContext___Type_kind(ctx, ec, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext___Type_name(ctx, ec, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn fieldContext___Type_description(ctx, ec, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn fieldContext___Type_specifiedByURL(ctx, ec, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn fieldContext___Type_fields(ctx, ec, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn fieldContext___Type_interfaces(ctx, ec, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn fieldContext___Type_possibleTypes(ctx, ec, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn fieldContext___Type_enumValues(ctx, ec, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn fieldContext___Type_inputFields(ctx, ec, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn fieldContext___Type_ofType(ctx, ec, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn fieldContext___Type_isOneOf(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = field_Query___type_args(ctx, ec, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc _Query___schema(ctx context.Context, ec *executionContext, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_Query___schema(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.IntrospectSchema()\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\t\t\treturn marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext_Query___schema(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn fieldContext___Schema_description(ctx, ec, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn fieldContext___Schema_types(ctx, ec, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn fieldContext___Schema_queryType(ctx, ec, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn fieldContext___Schema_mutationType(ctx, ec, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn fieldContext___Schema_subscriptionType(ctx, ec, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn fieldContext___Schema_directives(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _World_foo(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *model.World) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_World_foo(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Foo, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalNString2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_World_foo(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"World\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _World_bar(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *model.World) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_World_bar(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Bar, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler {\n\t\t\treturn marshalNInt2int(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_World_bar(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"World\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _World_hello(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *model.World) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_World_hello(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Hello, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *model.Hello) graphql.Marshaler {\n\t\t\treturn marshalOHello2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐHello(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext_World_hello(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"World\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext_Hello_name(ctx, ec, field)\n\t\t\tcase \"secondary\":\n\t\t\t\treturn fieldContext_Hello_secondary(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Hello\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _WorldName_name(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *model.WorldName) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_WorldName_name(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalNString2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_WorldName_name(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"WorldName\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _WorldWithMultipleKeys_foo(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *model.WorldWithMultipleKeys) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_WorldWithMultipleKeys_foo(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Foo, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalNString2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_WorldWithMultipleKeys_foo(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"WorldWithMultipleKeys\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _WorldWithMultipleKeys_bar(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *model.WorldWithMultipleKeys) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_WorldWithMultipleKeys_bar(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Bar, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler {\n\t\t\treturn marshalNInt2int(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext_WorldWithMultipleKeys_bar(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"WorldWithMultipleKeys\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Int does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc _WorldWithMultipleKeys_hello(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *model.WorldWithMultipleKeys) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext_WorldWithMultipleKeys_hello(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Hello, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *model.Hello) graphql.Marshaler {\n\t\t\treturn marshalOHello2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐHello(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext_WorldWithMultipleKeys_hello(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"WorldWithMultipleKeys\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext_Hello_name(ctx, ec, field)\n\t\t\tcase \"secondary\":\n\t\t\t\treturn fieldContext_Hello_secondary(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type Hello\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc __Service_sdl(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *fedruntime.Service) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext__Service_sdl(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SDL, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalOString2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext__Service_sdl(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"_Service\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Directive_name(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Directive_name(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalNString2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext___Directive_name(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Directive_description(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Directive_description(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler {\n\t\t\treturn marshalOString2ᚖstring(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___Directive_description(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Directive_isRepeatable(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Directive_isRepeatable(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsRepeatable, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v bool) graphql.Marshaler {\n\t\t\treturn marshalNBoolean2bool(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext___Directive_isRepeatable(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Directive_locations(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Directive_locations(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Locations, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v []string) graphql.Marshaler {\n\t\t\treturn marshalN__DirectiveLocation2ᚕstringᚄ(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext___Directive_locations(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Directive_args(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Directive_args(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\t\t\treturn marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext___Directive_args(ctx context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext___InputValue_name(ctx, ec, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn fieldContext___InputValue_description(ctx, ec, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn fieldContext___InputValue_type(ctx, ec, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn fieldContext___InputValue_defaultValue(ctx, ec, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn fieldContext___InputValue_isDeprecated(ctx, ec, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn fieldContext___InputValue_deprecationReason(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = field___Directive_args_args(ctx, ec, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc ___EnumValue_name(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___EnumValue_name(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalNString2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext___EnumValue_name(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___EnumValue_description(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___EnumValue_description(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler {\n\t\t\treturn marshalOString2ᚖstring(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___EnumValue_description(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___EnumValue_isDeprecated(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___EnumValue_isDeprecated(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v bool) graphql.Marshaler {\n\t\t\treturn marshalNBoolean2bool(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext___EnumValue_isDeprecated(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___EnumValue_deprecationReason(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___EnumValue_deprecationReason(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler {\n\t\t\treturn marshalOString2ᚖstring(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___EnumValue_deprecationReason(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Field_name(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Field_name(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalNString2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext___Field_name(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Field_description(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Field_description(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler {\n\t\t\treturn marshalOString2ᚖstring(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___Field_description(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Field_args(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Field_args(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\t\t\treturn marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext___Field_args(ctx context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext___InputValue_name(ctx, ec, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn fieldContext___InputValue_description(ctx, ec, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn fieldContext___InputValue_type(ctx, ec, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn fieldContext___InputValue_defaultValue(ctx, ec, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn fieldContext___InputValue_isDeprecated(ctx, ec, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn fieldContext___InputValue_deprecationReason(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = field___Field_args_args(ctx, ec, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc ___Field_type(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Field_type(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\t\t\treturn marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext___Field_type(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn fieldContext___Type_kind(ctx, ec, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext___Type_name(ctx, ec, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn fieldContext___Type_description(ctx, ec, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn fieldContext___Type_specifiedByURL(ctx, ec, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn fieldContext___Type_fields(ctx, ec, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn fieldContext___Type_interfaces(ctx, ec, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn fieldContext___Type_possibleTypes(ctx, ec, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn fieldContext___Type_enumValues(ctx, ec, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn fieldContext___Type_inputFields(ctx, ec, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn fieldContext___Type_ofType(ctx, ec, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn fieldContext___Type_isOneOf(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Field_isDeprecated(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Field_isDeprecated(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v bool) graphql.Marshaler {\n\t\t\treturn marshalNBoolean2bool(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext___Field_isDeprecated(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Field_deprecationReason(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Field_deprecationReason(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler {\n\t\t\treturn marshalOString2ᚖstring(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___Field_deprecationReason(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___InputValue_name(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___InputValue_name(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalNString2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext___InputValue_name(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___InputValue_description(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___InputValue_description(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler {\n\t\t\treturn marshalOString2ᚖstring(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___InputValue_description(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___InputValue_type(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___InputValue_type(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\t\t\treturn marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext___InputValue_type(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn fieldContext___Type_kind(ctx, ec, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext___Type_name(ctx, ec, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn fieldContext___Type_description(ctx, ec, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn fieldContext___Type_specifiedByURL(ctx, ec, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn fieldContext___Type_fields(ctx, ec, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn fieldContext___Type_interfaces(ctx, ec, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn fieldContext___Type_possibleTypes(ctx, ec, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn fieldContext___Type_enumValues(ctx, ec, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn fieldContext___Type_inputFields(ctx, ec, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn fieldContext___Type_ofType(ctx, ec, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn fieldContext___Type_isOneOf(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___InputValue_defaultValue(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___InputValue_defaultValue(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DefaultValue, nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler {\n\t\t\treturn marshalOString2ᚖstring(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___InputValue_defaultValue(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___InputValue_isDeprecated(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___InputValue_isDeprecated(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v bool) graphql.Marshaler {\n\t\t\treturn marshalNBoolean2bool(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext___InputValue_isDeprecated(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___InputValue_deprecationReason(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___InputValue_deprecationReason(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler {\n\t\t\treturn marshalOString2ᚖstring(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___InputValue_deprecationReason(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Schema_description(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Schema_description(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler {\n\t\t\treturn marshalOString2ᚖstring(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___Schema_description(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Schema_types(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Schema_types(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Types(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\t\t\treturn marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext___Schema_types(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn fieldContext___Type_kind(ctx, ec, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext___Type_name(ctx, ec, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn fieldContext___Type_description(ctx, ec, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn fieldContext___Type_specifiedByURL(ctx, ec, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn fieldContext___Type_fields(ctx, ec, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn fieldContext___Type_interfaces(ctx, ec, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn fieldContext___Type_possibleTypes(ctx, ec, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn fieldContext___Type_enumValues(ctx, ec, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn fieldContext___Type_inputFields(ctx, ec, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn fieldContext___Type_ofType(ctx, ec, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn fieldContext___Type_isOneOf(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Schema_queryType(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Schema_queryType(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.QueryType(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\t\t\treturn marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext___Schema_queryType(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn fieldContext___Type_kind(ctx, ec, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext___Type_name(ctx, ec, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn fieldContext___Type_description(ctx, ec, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn fieldContext___Type_specifiedByURL(ctx, ec, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn fieldContext___Type_fields(ctx, ec, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn fieldContext___Type_interfaces(ctx, ec, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn fieldContext___Type_possibleTypes(ctx, ec, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn fieldContext___Type_enumValues(ctx, ec, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn fieldContext___Type_inputFields(ctx, ec, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn fieldContext___Type_ofType(ctx, ec, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn fieldContext___Type_isOneOf(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Schema_mutationType(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Schema_mutationType(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.MutationType(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\t\t\treturn marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___Schema_mutationType(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn fieldContext___Type_kind(ctx, ec, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext___Type_name(ctx, ec, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn fieldContext___Type_description(ctx, ec, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn fieldContext___Type_specifiedByURL(ctx, ec, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn fieldContext___Type_fields(ctx, ec, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn fieldContext___Type_interfaces(ctx, ec, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn fieldContext___Type_possibleTypes(ctx, ec, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn fieldContext___Type_enumValues(ctx, ec, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn fieldContext___Type_inputFields(ctx, ec, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn fieldContext___Type_ofType(ctx, ec, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn fieldContext___Type_isOneOf(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Schema_subscriptionType(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Schema_subscriptionType(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SubscriptionType(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\t\t\treturn marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___Schema_subscriptionType(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn fieldContext___Type_kind(ctx, ec, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext___Type_name(ctx, ec, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn fieldContext___Type_description(ctx, ec, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn fieldContext___Type_specifiedByURL(ctx, ec, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn fieldContext___Type_fields(ctx, ec, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn fieldContext___Type_interfaces(ctx, ec, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn fieldContext___Type_possibleTypes(ctx, ec, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn fieldContext___Type_enumValues(ctx, ec, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn fieldContext___Type_inputFields(ctx, ec, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn fieldContext___Type_ofType(ctx, ec, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn fieldContext___Type_isOneOf(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Schema_directives(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Schema_directives(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Directives(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\t\t\treturn marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext___Schema_directives(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext___Directive_name(ctx, ec, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn fieldContext___Directive_description(ctx, ec, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn fieldContext___Directive_isRepeatable(ctx, ec, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn fieldContext___Directive_locations(ctx, ec, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn fieldContext___Directive_args(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Type_kind(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Type_kind(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Kind(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler {\n\t\t\treturn marshalN__TypeKind2string(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc fieldContext___Type_kind(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Type_name(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Type_name(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler {\n\t\t\treturn marshalOString2ᚖstring(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___Type_name(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Type_description(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Type_description(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler {\n\t\t\treturn marshalOString2ᚖstring(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___Type_description(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Type_specifiedByURL(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Type_specifiedByURL(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SpecifiedByURL(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler {\n\t\t\treturn marshalOString2ᚖstring(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___Type_specifiedByURL(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Type_fields(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Type_fields(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\t\t\treturn marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___Type_fields(ctx context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext___Field_name(ctx, ec, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn fieldContext___Field_description(ctx, ec, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn fieldContext___Field_args(ctx, ec, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn fieldContext___Field_type(ctx, ec, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn fieldContext___Field_isDeprecated(ctx, ec, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn fieldContext___Field_deprecationReason(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = field___Type_fields_args(ctx, ec, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc ___Type_interfaces(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Type_interfaces(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Interfaces(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\t\t\treturn marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___Type_interfaces(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn fieldContext___Type_kind(ctx, ec, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext___Type_name(ctx, ec, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn fieldContext___Type_description(ctx, ec, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn fieldContext___Type_specifiedByURL(ctx, ec, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn fieldContext___Type_fields(ctx, ec, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn fieldContext___Type_interfaces(ctx, ec, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn fieldContext___Type_possibleTypes(ctx, ec, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn fieldContext___Type_enumValues(ctx, ec, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn fieldContext___Type_inputFields(ctx, ec, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn fieldContext___Type_ofType(ctx, ec, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn fieldContext___Type_isOneOf(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Type_possibleTypes(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Type_possibleTypes(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PossibleTypes(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\t\t\treturn marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___Type_possibleTypes(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn fieldContext___Type_kind(ctx, ec, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext___Type_name(ctx, ec, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn fieldContext___Type_description(ctx, ec, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn fieldContext___Type_specifiedByURL(ctx, ec, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn fieldContext___Type_fields(ctx, ec, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn fieldContext___Type_interfaces(ctx, ec, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn fieldContext___Type_possibleTypes(ctx, ec, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn fieldContext___Type_enumValues(ctx, ec, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn fieldContext___Type_inputFields(ctx, ec, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn fieldContext___Type_ofType(ctx, ec, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn fieldContext___Type_isOneOf(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Type_enumValues(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Type_enumValues(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\t\t\treturn marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___Type_enumValues(ctx context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext___EnumValue_name(ctx, ec, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn fieldContext___EnumValue_description(ctx, ec, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn fieldContext___EnumValue_isDeprecated(ctx, ec, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn fieldContext___EnumValue_deprecationReason(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = field___Type_enumValues_args(ctx, ec, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc ___Type_inputFields(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Type_inputFields(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.InputFields(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\t\t\treturn marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___Type_inputFields(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext___InputValue_name(ctx, ec, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn fieldContext___InputValue_description(ctx, ec, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn fieldContext___InputValue_type(ctx, ec, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn fieldContext___InputValue_defaultValue(ctx, ec, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn fieldContext___InputValue_isDeprecated(ctx, ec, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn fieldContext___InputValue_deprecationReason(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Type_ofType(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Type_ofType(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.OfType(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\t\t\treturn marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___Type_ofType(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn fieldContext___Type_kind(ctx, ec, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn fieldContext___Type_name(ctx, ec, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn fieldContext___Type_description(ctx, ec, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn fieldContext___Type_specifiedByURL(ctx, ec, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn fieldContext___Type_fields(ctx, ec, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn fieldContext___Type_interfaces(ctx, ec, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn fieldContext___Type_possibleTypes(ctx, ec, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn fieldContext___Type_enumValues(ctx, ec, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn fieldContext___Type_inputFields(ctx, ec, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn fieldContext___Type_ofType(ctx, ec, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn fieldContext___Type_isOneOf(ctx, ec, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc ___Type_isOneOf(ctx context.Context, ec *executionContext, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tfunc(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn fieldContext___Type_isOneOf(ctx, ec, field)\n\t\t},\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsOneOf(), nil\n\t\t},\n\t\tnil,\n\t\tfunc(ctx context.Context, selections ast.SelectionSet, v bool) graphql.Marshaler {\n\t\t\treturn marshalOBoolean2bool(ctx, ec, selections, v)\n\t\t},\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc fieldContext___Type_isOneOf(_ context.Context, ec *executionContext, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\nfunc unmarshalInputMultiHelloByNamesInput(ctx context.Context, ec *executionContext, obj any) (model.MultiHelloByNamesInput, error) {\n\tvar it model.MultiHelloByNamesInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"Name\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"Name\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"Name\"))\n\t\t\tdata, err := unmarshalNString2string(ctx, ec, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Name = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc unmarshalInputMultiHelloMultipleRequiresByNamesInput(ctx context.Context, ec *executionContext, obj any) (model.MultiHelloMultipleRequiresByNamesInput, error) {\n\tvar it model.MultiHelloMultipleRequiresByNamesInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"Name\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"Name\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"Name\"))\n\t\t\tdata, err := unmarshalNString2string(ctx, ec, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Name = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc unmarshalInputMultiHelloRequiresByNamesInput(ctx context.Context, ec *executionContext, obj any) (model.MultiHelloRequiresByNamesInput, error) {\n\tvar it model.MultiHelloRequiresByNamesInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"Name\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"Name\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"Name\"))\n\t\t\tdata, err := unmarshalNString2string(ctx, ec, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Name = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc unmarshalInputMultiHelloWithErrorByNamesInput(ctx context.Context, ec *executionContext, obj any) (model.MultiHelloWithErrorByNamesInput, error) {\n\tvar it model.MultiHelloWithErrorByNamesInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"Name\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"Name\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"Name\"))\n\t\t\tdata, err := unmarshalNString2string(ctx, ec, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Name = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\nfunc unmarshalInputMultiPlanetRequiresNestedByNamesInput(ctx context.Context, ec *executionContext, obj any) (model.MultiPlanetRequiresNestedByNamesInput, error) {\n\tvar it model.MultiPlanetRequiresNestedByNamesInput\n\tif obj == nil {\n\t\treturn it, nil\n\t}\n\n\tasMap := map[string]any{}\n\tfor k, v := range obj.(map[string]any) {\n\t\tasMap[k] = v\n\t}\n\n\tfieldsInOrder := [...]string{\"Name\"}\n\tfor _, k := range fieldsInOrder {\n\t\tv, ok := asMap[k]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tswitch k {\n\t\tcase \"Name\":\n\t\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"Name\"))\n\t\t\tdata, err := unmarshalNString2string(ctx, ec, v)\n\t\t\tif err != nil {\n\t\t\t\treturn it, err\n\t\t\t}\n\t\t\tit.Name = data\n\t\t}\n\t}\n\treturn it, nil\n}\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\nfunc __Entity(ctx context.Context, ec *executionContext, sel ast.SelectionSet, obj fedruntime.Entity) graphql.Marshaler {\n\tswitch obj := (obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\tcase model.WorldWithMultipleKeys:\n\t\treturn _WorldWithMultipleKeys(ctx, ec, sel, &obj)\n\tcase *model.WorldWithMultipleKeys:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn _WorldWithMultipleKeys(ctx, ec, sel, obj)\n\tcase model.WorldName:\n\t\treturn _WorldName(ctx, ec, sel, &obj)\n\tcase *model.WorldName:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn _WorldName(ctx, ec, sel, obj)\n\tcase model.World:\n\t\treturn _World(ctx, ec, sel, &obj)\n\tcase *model.World:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn _World(ctx, ec, sel, obj)\n\tcase model.PlanetRequiresNested:\n\t\treturn _PlanetRequiresNested(ctx, ec, sel, &obj)\n\tcase *model.PlanetRequiresNested:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn _PlanetRequiresNested(ctx, ec, sel, obj)\n\tcase model.PlanetRequires:\n\t\treturn _PlanetRequires(ctx, ec, sel, &obj)\n\tcase *model.PlanetRequires:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn _PlanetRequires(ctx, ec, sel, obj)\n\tcase model.PlanetMultipleRequires:\n\t\treturn _PlanetMultipleRequires(ctx, ec, sel, &obj)\n\tcase *model.PlanetMultipleRequires:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn _PlanetMultipleRequires(ctx, ec, sel, obj)\n\tcase model.MultiPlanetRequiresNested:\n\t\treturn _MultiPlanetRequiresNested(ctx, ec, sel, &obj)\n\tcase *model.MultiPlanetRequiresNested:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn _MultiPlanetRequiresNested(ctx, ec, sel, obj)\n\tcase model.MultiHelloWithError:\n\t\treturn _MultiHelloWithError(ctx, ec, sel, &obj)\n\tcase *model.MultiHelloWithError:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn _MultiHelloWithError(ctx, ec, sel, obj)\n\tcase model.MultiHelloRequires:\n\t\treturn _MultiHelloRequires(ctx, ec, sel, &obj)\n\tcase *model.MultiHelloRequires:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn _MultiHelloRequires(ctx, ec, sel, obj)\n\tcase model.MultiHelloMultipleRequires:\n\t\treturn _MultiHelloMultipleRequires(ctx, ec, sel, &obj)\n\tcase *model.MultiHelloMultipleRequires:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn _MultiHelloMultipleRequires(ctx, ec, sel, obj)\n\tcase model.MultiHello:\n\t\treturn _MultiHello(ctx, ec, sel, &obj)\n\tcase *model.MultiHello:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn _MultiHello(ctx, ec, sel, obj)\n\tcase model.HelloWithErrors:\n\t\treturn _HelloWithErrors(ctx, ec, sel, &obj)\n\tcase *model.HelloWithErrors:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn _HelloWithErrors(ctx, ec, sel, obj)\n\tcase model.HelloMultiSingleKeys:\n\t\treturn _HelloMultiSingleKeys(ctx, ec, sel, &obj)\n\tcase *model.HelloMultiSingleKeys:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn _HelloMultiSingleKeys(ctx, ec, sel, obj)\n\tcase model.Hello:\n\t\treturn _Hello(ctx, ec, sel, &obj)\n\tcase *model.Hello:\n\t\tif obj == nil {\n\t\t\treturn graphql.Null\n\t\t}\n\t\treturn _Hello(ctx, ec, sel, obj)\n\tdefault:\n\t\tif typedObj, ok := obj.(graphql.Marshaler); ok {\n\t\t\treturn typedObj\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"unexpected type %T; non-generated variants of _Entity must implement graphql.Marshaler\", obj))\n\t\t}\n\t}\n}\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar entityImplementors = []string{\"Entity\"}\n\nfunc _Entity(ctx context.Context, ec *executionContext, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, entityImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Entity\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Entity\")\n\t\tcase \"findHelloByName\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = _Entity_findHelloByName(ctx, ec, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findHelloMultiSingleKeysByKey1AndKey2\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = _Entity_findHelloMultiSingleKeysByKey1AndKey2(ctx, ec, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findHelloWithErrorsByName\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = _Entity_findHelloWithErrorsByName(ctx, ec, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findManyMultiHelloByNames\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = _Entity_findManyMultiHelloByNames(ctx, ec, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findManyMultiHelloMultipleRequiresByNames\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = _Entity_findManyMultiHelloMultipleRequiresByNames(ctx, ec, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findManyMultiHelloRequiresByNames\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = _Entity_findManyMultiHelloRequiresByNames(ctx, ec, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findManyMultiHelloWithErrorByNames\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = _Entity_findManyMultiHelloWithErrorByNames(ctx, ec, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findManyMultiPlanetRequiresNestedByNames\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = _Entity_findManyMultiPlanetRequiresNestedByNames(ctx, ec, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findPlanetMultipleRequiresByName\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = _Entity_findPlanetMultipleRequiresByName(ctx, ec, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findPlanetRequiresByName\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = _Entity_findPlanetRequiresByName(ctx, ec, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findPlanetRequiresNestedByName\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = _Entity_findPlanetRequiresNestedByName(ctx, ec, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findWorldByHelloNameAndFoo\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = _Entity_findWorldByHelloNameAndFoo(ctx, ec, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findWorldNameByName\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = _Entity_findWorldNameByName(ctx, ec, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findWorldWithMultipleKeysByHelloNameAndFoo\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = _Entity_findWorldWithMultipleKeysByHelloNameAndFoo(ctx, ec, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"findWorldWithMultipleKeysByBar\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = _Entity_findWorldWithMultipleKeysByBar(ctx, ec, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar helloImplementors = []string{\"Hello\", \"_Entity\"}\n\nfunc _Hello(ctx context.Context, ec *executionContext, sel ast.SelectionSet, obj *model.Hello) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, helloImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Hello\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = _Hello_name(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"secondary\":\n\t\t\tout.Values[i] = _Hello_secondary(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar helloMultiSingleKeysImplementors = []string{\"HelloMultiSingleKeys\", \"_Entity\"}\n\nfunc _HelloMultiSingleKeys(ctx context.Context, ec *executionContext, sel ast.SelectionSet, obj *model.HelloMultiSingleKeys) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, helloMultiSingleKeysImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"HelloMultiSingleKeys\")\n\t\tcase \"key1\":\n\t\t\tout.Values[i] = _HelloMultiSingleKeys_key1(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"key2\":\n\t\t\tout.Values[i] = _HelloMultiSingleKeys_key2(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar helloWithErrorsImplementors = []string{\"HelloWithErrors\", \"_Entity\"}\n\nfunc _HelloWithErrors(ctx context.Context, ec *executionContext, sel ast.SelectionSet, obj *model.HelloWithErrors) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, helloWithErrorsImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"HelloWithErrors\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = _HelloWithErrors_name(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar multiHelloImplementors = []string{\"MultiHello\", \"_Entity\"}\n\nfunc _MultiHello(ctx context.Context, ec *executionContext, sel ast.SelectionSet, obj *model.MultiHello) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, multiHelloImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"MultiHello\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = _MultiHello_name(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar multiHelloMultipleRequiresImplementors = []string{\"MultiHelloMultipleRequires\", \"_Entity\"}\n\nfunc _MultiHelloMultipleRequires(ctx context.Context, ec *executionContext, sel ast.SelectionSet, obj *model.MultiHelloMultipleRequires) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, multiHelloMultipleRequiresImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"MultiHelloMultipleRequires\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = _MultiHelloMultipleRequires_name(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"key1\":\n\t\t\tout.Values[i] = _MultiHelloMultipleRequires_key1(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"key2\":\n\t\t\tout.Values[i] = _MultiHelloMultipleRequires_key2(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"key3\":\n\t\t\tout.Values[i] = _MultiHelloMultipleRequires_key3(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar multiHelloRequiresImplementors = []string{\"MultiHelloRequires\", \"_Entity\"}\n\nfunc _MultiHelloRequires(ctx context.Context, ec *executionContext, sel ast.SelectionSet, obj *model.MultiHelloRequires) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, multiHelloRequiresImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"MultiHelloRequires\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = _MultiHelloRequires_name(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"key1\":\n\t\t\tout.Values[i] = _MultiHelloRequires_key1(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"key2\":\n\t\t\tout.Values[i] = _MultiHelloRequires_key2(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar multiHelloWithErrorImplementors = []string{\"MultiHelloWithError\", \"_Entity\"}\n\nfunc _MultiHelloWithError(ctx context.Context, ec *executionContext, sel ast.SelectionSet, obj *model.MultiHelloWithError) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, multiHelloWithErrorImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"MultiHelloWithError\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = _MultiHelloWithError_name(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar multiPlanetRequiresNestedImplementors = []string{\"MultiPlanetRequiresNested\", \"_Entity\"}\n\nfunc _MultiPlanetRequiresNested(ctx context.Context, ec *executionContext, sel ast.SelectionSet, obj *model.MultiPlanetRequiresNested) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, multiPlanetRequiresNestedImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"MultiPlanetRequiresNested\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = _MultiPlanetRequiresNested_name(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"world\":\n\t\t\tout.Values[i] = _MultiPlanetRequiresNested_world(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"size\":\n\t\t\tout.Values[i] = _MultiPlanetRequiresNested_size(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar planetMultipleRequiresImplementors = []string{\"PlanetMultipleRequires\", \"_Entity\"}\n\nfunc _PlanetMultipleRequires(ctx context.Context, ec *executionContext, sel ast.SelectionSet, obj *model.PlanetMultipleRequires) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, planetMultipleRequiresImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"PlanetMultipleRequires\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = _PlanetMultipleRequires_name(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"diameter\":\n\t\t\tout.Values[i] = _PlanetMultipleRequires_diameter(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"density\":\n\t\t\tout.Values[i] = _PlanetMultipleRequires_density(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"weight\":\n\t\t\tout.Values[i] = _PlanetMultipleRequires_weight(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar planetRequiresImplementors = []string{\"PlanetRequires\", \"_Entity\"}\n\nfunc _PlanetRequires(ctx context.Context, ec *executionContext, sel ast.SelectionSet, obj *model.PlanetRequires) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, planetRequiresImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"PlanetRequires\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = _PlanetRequires_name(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"size\":\n\t\t\tout.Values[i] = _PlanetRequires_size(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"diameter\":\n\t\t\tout.Values[i] = _PlanetRequires_diameter(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar planetRequiresNestedImplementors = []string{\"PlanetRequiresNested\", \"_Entity\"}\n\nfunc _PlanetRequiresNested(ctx context.Context, ec *executionContext, sel ast.SelectionSet, obj *model.PlanetRequiresNested) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, planetRequiresNestedImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"PlanetRequiresNested\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = _PlanetRequiresNested_name(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"world\":\n\t\t\tout.Values[i] = _PlanetRequiresNested_world(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"size\":\n\t\t\tout.Values[i] = _PlanetRequiresNested_size(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc _Query(ctx context.Context, ec *executionContext, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"_entities\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = _Query__entities(ctx, ec, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"_service\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = _Query__service(ctx, ec, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn _Query___type(ctx, ec, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn _Query___schema(ctx, ec, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar worldImplementors = []string{\"World\", \"_Entity\"}\n\nfunc _World(ctx context.Context, ec *executionContext, sel ast.SelectionSet, obj *model.World) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, worldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"World\")\n\t\tcase \"foo\":\n\t\t\tout.Values[i] = _World_foo(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"bar\":\n\t\t\tout.Values[i] = _World_bar(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"hello\":\n\t\t\tout.Values[i] = _World_hello(ctx, ec, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar worldNameImplementors = []string{\"WorldName\", \"_Entity\"}\n\nfunc _WorldName(ctx context.Context, ec *executionContext, sel ast.SelectionSet, obj *model.WorldName) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, worldNameImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"WorldName\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = _WorldName_name(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar worldWithMultipleKeysImplementors = []string{\"WorldWithMultipleKeys\", \"_Entity\"}\n\nfunc _WorldWithMultipleKeys(ctx context.Context, ec *executionContext, sel ast.SelectionSet, obj *model.WorldWithMultipleKeys) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, worldWithMultipleKeysImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"WorldWithMultipleKeys\")\n\t\tcase \"foo\":\n\t\t\tout.Values[i] = _WorldWithMultipleKeys_foo(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"bar\":\n\t\t\tout.Values[i] = _WorldWithMultipleKeys_bar(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"hello\":\n\t\t\tout.Values[i] = _WorldWithMultipleKeys_hello(ctx, ec, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar _ServiceImplementors = []string{\"_Service\"}\n\nfunc __Service(ctx context.Context, ec *executionContext, sel ast.SelectionSet, obj *fedruntime.Service) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, _ServiceImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"_Service\")\n\t\tcase \"sdl\":\n\t\t\tout.Values[i] = __Service_sdl(ctx, ec, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc ___Directive(ctx context.Context, ec *executionContext, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ___Directive_name(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ___Directive_description(ctx, ec, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ___Directive_isRepeatable(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ___Directive_locations(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ___Directive_args(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc ___EnumValue(ctx context.Context, ec *executionContext, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ___EnumValue_name(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ___EnumValue_description(ctx, ec, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ___EnumValue_isDeprecated(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ___EnumValue_deprecationReason(ctx, ec, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc ___Field(ctx context.Context, ec *executionContext, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ___Field_name(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ___Field_description(ctx, ec, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ___Field_args(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ___Field_type(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ___Field_isDeprecated(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ___Field_deprecationReason(ctx, ec, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc ___InputValue(ctx context.Context, ec *executionContext, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ___InputValue_name(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ___InputValue_description(ctx, ec, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ___InputValue_type(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ___InputValue_defaultValue(ctx, ec, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ___InputValue_isDeprecated(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ___InputValue_deprecationReason(ctx, ec, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc ___Schema(ctx context.Context, ec *executionContext, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ___Schema_description(ctx, ec, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ___Schema_types(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ___Schema_queryType(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ___Schema_mutationType(ctx, ec, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ___Schema_subscriptionType(ctx, ec, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ___Schema_directives(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc ___Type(ctx context.Context, ec *executionContext, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ___Type_kind(ctx, ec, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ___Type_name(ctx, ec, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ___Type_description(ctx, ec, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ___Type_specifiedByURL(ctx, ec, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ___Type_fields(ctx, ec, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ___Type_interfaces(ctx, ec, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ___Type_possibleTypes(ctx, ec, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ___Type_enumValues(ctx, ec, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ___Type_inputFields(ctx, ec, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ___Type_ofType(ctx, ec, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ___Type_isOneOf(ctx, ec, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.Deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.ProcessDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc unmarshalNBoolean2bool(ctx context.Context, ec *executionContext, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc marshalNBoolean2bool(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc marshalNHello2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐHello(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v model.Hello) graphql.Marshaler {\n\treturn _Hello(ctx, ec, sel, &v)\n}\n\nfunc marshalNHello2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐHello(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v *model.Hello) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn _Hello(ctx, ec, sel, v)\n}\n\nfunc marshalNHelloMultiSingleKeys2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐHelloMultiSingleKeys(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v model.HelloMultiSingleKeys) graphql.Marshaler {\n\treturn _HelloMultiSingleKeys(ctx, ec, sel, &v)\n}\n\nfunc marshalNHelloMultiSingleKeys2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐHelloMultiSingleKeys(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v *model.HelloMultiSingleKeys) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn _HelloMultiSingleKeys(ctx, ec, sel, v)\n}\n\nfunc marshalNHelloWithErrors2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐHelloWithErrors(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v model.HelloWithErrors) graphql.Marshaler {\n\treturn _HelloWithErrors(ctx, ec, sel, &v)\n}\n\nfunc marshalNHelloWithErrors2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐHelloWithErrors(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v *model.HelloWithErrors) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn _HelloWithErrors(ctx, ec, sel, v)\n}\n\nfunc unmarshalNInt2int(ctx context.Context, ec *executionContext, v any) (int, error) {\n\tres, err := graphql.UnmarshalInt(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc marshalNInt2int(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v int) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalInt(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc unmarshalNMultiHelloByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiHelloByNamesInput(ctx context.Context, ec *executionContext, v any) ([]*model.MultiHelloByNamesInput, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]*model.MultiHelloByNamesInput, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = unmarshalOMultiHelloByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiHelloByNamesInput(ctx, ec, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc unmarshalNMultiHelloMultipleRequiresByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiHelloMultipleRequiresByNamesInput(ctx context.Context, ec *executionContext, v any) ([]*model.MultiHelloMultipleRequiresByNamesInput, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]*model.MultiHelloMultipleRequiresByNamesInput, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = unmarshalOMultiHelloMultipleRequiresByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiHelloMultipleRequiresByNamesInput(ctx, ec, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc unmarshalNMultiHelloRequiresByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiHelloRequiresByNamesInput(ctx context.Context, ec *executionContext, v any) ([]*model.MultiHelloRequiresByNamesInput, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]*model.MultiHelloRequiresByNamesInput, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = unmarshalOMultiHelloRequiresByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiHelloRequiresByNamesInput(ctx, ec, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc unmarshalNMultiHelloWithErrorByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiHelloWithErrorByNamesInput(ctx context.Context, ec *executionContext, v any) ([]*model.MultiHelloWithErrorByNamesInput, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]*model.MultiHelloWithErrorByNamesInput, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = unmarshalOMultiHelloWithErrorByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiHelloWithErrorByNamesInput(ctx, ec, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc unmarshalNMultiPlanetRequiresNestedByNamesInput2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiPlanetRequiresNestedByNamesInput(ctx context.Context, ec *executionContext, v any) ([]*model.MultiPlanetRequiresNestedByNamesInput, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]*model.MultiPlanetRequiresNestedByNamesInput, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = unmarshalOMultiPlanetRequiresNestedByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiPlanetRequiresNestedByNamesInput(ctx, ec, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc marshalNPlanetMultipleRequires2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐPlanetMultipleRequires(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v model.PlanetMultipleRequires) graphql.Marshaler {\n\treturn _PlanetMultipleRequires(ctx, ec, sel, &v)\n}\n\nfunc marshalNPlanetMultipleRequires2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐPlanetMultipleRequires(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v *model.PlanetMultipleRequires) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn _PlanetMultipleRequires(ctx, ec, sel, v)\n}\n\nfunc marshalNPlanetRequires2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐPlanetRequires(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v model.PlanetRequires) graphql.Marshaler {\n\treturn _PlanetRequires(ctx, ec, sel, &v)\n}\n\nfunc marshalNPlanetRequires2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐPlanetRequires(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v *model.PlanetRequires) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn _PlanetRequires(ctx, ec, sel, v)\n}\n\nfunc marshalNPlanetRequiresNested2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐPlanetRequiresNested(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v model.PlanetRequiresNested) graphql.Marshaler {\n\treturn _PlanetRequiresNested(ctx, ec, sel, &v)\n}\n\nfunc marshalNPlanetRequiresNested2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐPlanetRequiresNested(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v *model.PlanetRequiresNested) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn _PlanetRequiresNested(ctx, ec, sel, v)\n}\n\nfunc unmarshalNString2string(ctx context.Context, ec *executionContext, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc marshalNString2string(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc marshalNWorld2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐWorld(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v model.World) graphql.Marshaler {\n\treturn _World(ctx, ec, sel, &v)\n}\n\nfunc marshalNWorld2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐWorld(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v *model.World) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn _World(ctx, ec, sel, v)\n}\n\nfunc marshalNWorldName2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐWorldName(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v model.WorldName) graphql.Marshaler {\n\treturn _WorldName(ctx, ec, sel, &v)\n}\n\nfunc marshalNWorldName2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐWorldName(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v *model.WorldName) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn _WorldName(ctx, ec, sel, v)\n}\n\nfunc marshalNWorldWithMultipleKeys2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐWorldWithMultipleKeys(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v model.WorldWithMultipleKeys) graphql.Marshaler {\n\treturn _WorldWithMultipleKeys(ctx, ec, sel, &v)\n}\n\nfunc marshalNWorldWithMultipleKeys2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐWorldWithMultipleKeys(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v *model.WorldWithMultipleKeys) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn _WorldWithMultipleKeys(ctx, ec, sel, v)\n}\n\nfunc unmarshalN_Any2map(ctx context.Context, ec *executionContext, v any) (map[string]any, error) {\n\tres, err := graphql.UnmarshalMap(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc marshalN_Any2map(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v map[string]any) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\tres := graphql.MarshalMap(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc unmarshalN_Any2ᚕmapᚄ(ctx context.Context, ec *executionContext, v any) ([]map[string]any, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]map[string]any, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = unmarshalN_Any2map(ctx, ec, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc marshalN_Any2ᚕmapᚄ(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v []map[string]any) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tfor i := range v {\n\t\tret[i] = marshalN_Any2map(ctx, ec, sel, v[i])\n\t}\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc marshalN_Entity2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v []fedruntime.Entity) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn marshalO_Entity2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity(ctx, ec, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc unmarshalN_FieldSet2string(ctx context.Context, ec *executionContext, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc marshalN_FieldSet2string(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc marshalN_Service2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐService(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v fedruntime.Service) graphql.Marshaler {\n\treturn __Service(ctx, ec, sel, &v)\n}\n\nfunc marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ___Directive(ctx, ec, sel, &v)\n}\n\nfunc marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, ec, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc unmarshalN__DirectiveLocation2string(ctx context.Context, ec *executionContext, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc marshalN__DirectiveLocation2string(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, ec *executionContext, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = unmarshalN__DirectiveLocation2string(ctx, ec, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn marshalN__DirectiveLocation2string(ctx, ec, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ___EnumValue(ctx, ec, sel, &v)\n}\n\nfunc marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ___Field(ctx, ec, sel, &v)\n}\n\nfunc marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ___InputValue(ctx, ec, sel, &v)\n}\n\nfunc marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, ec, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ___Type(ctx, ec, sel, &v)\n}\n\nfunc marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, ec, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ___Type(ctx, ec, sel, v)\n}\n\nfunc unmarshalN__TypeKind2string(ctx context.Context, ec *executionContext, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc marshalN__TypeKind2string(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc unmarshalOBoolean2bool(ctx context.Context, ec *executionContext, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc marshalOBoolean2bool(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc unmarshalOBoolean2ᚖbool(ctx context.Context, ec *executionContext, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc marshalOBoolean2ᚖbool(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc marshalOHello2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐHello(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v *model.Hello) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn _Hello(ctx, ec, sel, v)\n}\n\nfunc marshalOMultiHello2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiHello(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v []*model.MultiHello) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn marshalOMultiHello2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiHello(ctx, ec, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc marshalOMultiHello2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiHello(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v *model.MultiHello) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn _MultiHello(ctx, ec, sel, v)\n}\n\nfunc unmarshalOMultiHelloByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiHelloByNamesInput(ctx context.Context, ec *executionContext, v any) (*model.MultiHelloByNamesInput, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := unmarshalInputMultiHelloByNamesInput(ctx, ec, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc marshalOMultiHelloMultipleRequires2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiHelloMultipleRequires(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v []*model.MultiHelloMultipleRequires) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn marshalOMultiHelloMultipleRequires2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiHelloMultipleRequires(ctx, ec, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc marshalOMultiHelloMultipleRequires2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiHelloMultipleRequires(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v *model.MultiHelloMultipleRequires) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn _MultiHelloMultipleRequires(ctx, ec, sel, v)\n}\n\nfunc unmarshalOMultiHelloMultipleRequiresByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiHelloMultipleRequiresByNamesInput(ctx context.Context, ec *executionContext, v any) (*model.MultiHelloMultipleRequiresByNamesInput, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := unmarshalInputMultiHelloMultipleRequiresByNamesInput(ctx, ec, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc marshalOMultiHelloRequires2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiHelloRequires(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v []*model.MultiHelloRequires) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn marshalOMultiHelloRequires2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiHelloRequires(ctx, ec, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc marshalOMultiHelloRequires2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiHelloRequires(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v *model.MultiHelloRequires) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn _MultiHelloRequires(ctx, ec, sel, v)\n}\n\nfunc unmarshalOMultiHelloRequiresByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiHelloRequiresByNamesInput(ctx context.Context, ec *executionContext, v any) (*model.MultiHelloRequiresByNamesInput, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := unmarshalInputMultiHelloRequiresByNamesInput(ctx, ec, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc marshalOMultiHelloWithError2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiHelloWithError(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v []*model.MultiHelloWithError) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn marshalOMultiHelloWithError2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiHelloWithError(ctx, ec, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc marshalOMultiHelloWithError2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiHelloWithError(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v *model.MultiHelloWithError) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn _MultiHelloWithError(ctx, ec, sel, v)\n}\n\nfunc unmarshalOMultiHelloWithErrorByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiHelloWithErrorByNamesInput(ctx context.Context, ec *executionContext, v any) (*model.MultiHelloWithErrorByNamesInput, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := unmarshalInputMultiHelloWithErrorByNamesInput(ctx, ec, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc marshalOMultiPlanetRequiresNested2ᚕᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiPlanetRequiresNested(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v []*model.MultiPlanetRequiresNested) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn marshalOMultiPlanetRequiresNested2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiPlanetRequiresNested(ctx, ec, sel, v[i])\n\t})\n\n\treturn ret\n}\n\nfunc marshalOMultiPlanetRequiresNested2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiPlanetRequiresNested(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v *model.MultiPlanetRequiresNested) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn _MultiPlanetRequiresNested(ctx, ec, sel, v)\n}\n\nfunc unmarshalOMultiPlanetRequiresNestedByNamesInput2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋtestdataᚋusefunctionsyntaxforexecutioncontextᚋgeneratedᚋmodelᚐMultiPlanetRequiresNestedByNamesInput(ctx context.Context, ec *executionContext, v any) (*model.MultiPlanetRequiresNestedByNamesInput, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := unmarshalInputMultiPlanetRequiresNestedByNamesInput(ctx, ec, v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc unmarshalOString2string(ctx context.Context, ec *executionContext, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc marshalOString2string(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(v)\n\treturn res\n}\n\nfunc unmarshalOString2ᚖstring(ctx context.Context, ec *executionContext, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc marshalOString2ᚖstring(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc marshalO_Entity2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐEntity(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v fedruntime.Entity) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn __Entity(ctx, ec, sel, v)\n}\n\nfunc marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, ec, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, ec, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, ec, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ___Schema(ctx, ec, sel, v)\n}\n\nfunc marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := graphql.MarshalSliceConcurrently(ctx, len(v), 0, false, func(ctx context.Context, i int) graphql.Marshaler {\n\t\tfc := graphql.GetFieldContext(ctx)\n\t\tfc.Result = &v[i]\n\t\treturn marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, ec, sel, v[i])\n\t})\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, ec *executionContext, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ___Type(ctx, ec, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "plugin/federation/testdata/usefunctionsyntaxforexecutioncontext/generated/federation.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage generated\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"github.com/99designs/gqlgen/plugin/federation/fedruntime\"\n\t\"github.com/99designs/gqlgen/plugin/federation/testdata/usefunctionsyntaxforexecutioncontext/generated/model\"\n)\n\nvar (\n\tErrUnknownType  = errors.New(\"unknown type\")\n\tErrTypeNotFound = errors.New(\"type not found\")\n)\n\nfunc (ec *executionContext) __resolve__service(ctx context.Context) (fedruntime.Service, error) {\n\tif ec.DisableIntrospection {\n\t\treturn fedruntime.Service{}, errors.New(\"federated introspection disabled\")\n\t}\n\n\tvar sdl []string\n\n\tfor _, src := range sources {\n\t\tif src.BuiltIn {\n\t\t\tcontinue\n\t\t}\n\t\tsdl = append(sdl, src.Input)\n\t}\n\n\treturn fedruntime.Service{\n\t\tSDL: strings.Join(sdl, \"\\n\"),\n\t}, nil\n}\n\nfunc (ec *executionContext) __resolve_entities(ctx context.Context, representations []map[string]any) []fedruntime.Entity {\n\tlist := make([]fedruntime.Entity, len(representations))\n\n\trepsMap := ec.buildRepresentationGroups(ctx, representations)\n\n\tswitch len(repsMap) {\n\tcase 0:\n\t\treturn list\n\tcase 1:\n\t\tfor typeName, reps := range repsMap {\n\t\t\tec.resolveEntityGroup(ctx, typeName, reps, list)\n\t\t}\n\t\treturn list\n\tdefault:\n\t\tvar g sync.WaitGroup\n\t\tg.Add(len(repsMap))\n\t\tfor typeName, reps := range repsMap {\n\t\t\tgo func(typeName string, reps []EntityWithIndex) {\n\t\t\t\tec.resolveEntityGroup(ctx, typeName, reps, list)\n\t\t\t\tg.Done()\n\t\t\t}(typeName, reps)\n\t\t}\n\t\tg.Wait()\n\t\treturn list\n\t}\n}\n\ntype EntityWithIndex struct {\n\t// The index in the original representation array\n\tindex  int\n\tentity EntityRepresentation\n}\n\n// EntityRepresentation is the JSON representation of an entity sent by the Router\n// used as the inputs for us to resolve.\n//\n// We make it a map because we know the top level JSON is always an object.\ntype EntityRepresentation map[string]any\n\n// We group entities by typename so that we can parallelize their resolution.\n// This is particularly helpful when there are entity groups in multi mode.\nfunc (ec *executionContext) buildRepresentationGroups(\n\tctx context.Context,\n\trepresentations []map[string]any,\n) map[string][]EntityWithIndex {\n\trepsMap := make(map[string][]EntityWithIndex)\n\tfor i, rep := range representations {\n\t\ttypeName, ok := rep[\"__typename\"].(string)\n\t\tif !ok {\n\t\t\t// If there is no __typename, we just skip the representation;\n\t\t\t// we just won't be resolving these unknown types.\n\t\t\tec.Error(ctx, errors.New(\"__typename must be an existing string\"))\n\t\t\tcontinue\n\t\t}\n\n\t\trepsMap[typeName] = append(repsMap[typeName], EntityWithIndex{\n\t\t\tindex:  i,\n\t\t\tentity: rep,\n\t\t})\n\t}\n\n\treturn repsMap\n}\n\nfunc (ec *executionContext) resolveEntityGroup(\n\tctx context.Context,\n\ttypeName string,\n\treps []EntityWithIndex,\n\tlist []fedruntime.Entity,\n) {\n\tif isMulti(typeName) {\n\t\terr := ec.resolveManyEntities(ctx, typeName, reps, list)\n\t\tif err != nil {\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t} else {\n\t\t// if there are multiple entities to resolve, parallelize (similar to\n\t\t// graphql.FieldSet.Dispatch)\n\t\tvar e sync.WaitGroup\n\t\te.Add(len(reps))\n\t\tfor i, rep := range reps {\n\t\t\ti, rep := i, rep\n\t\t\tgo func(i int, rep EntityWithIndex) {\n\t\t\t\tentity, err := ec.resolveEntity(ctx, typeName, rep.entity)\n\t\t\t\tif err != nil {\n\t\t\t\t\tec.Error(ctx, err)\n\t\t\t\t} else {\n\t\t\t\t\tlist[rep.index] = entity\n\t\t\t\t}\n\t\t\t\te.Done()\n\t\t\t}(i, rep)\n\t\t}\n\t\te.Wait()\n\t}\n}\n\nfunc isMulti(typeName string) bool {\n\tswitch typeName {\n\tcase \"MultiHello\":\n\t\treturn true\n\tcase \"MultiHelloMultipleRequires\":\n\t\treturn true\n\tcase \"MultiHelloRequires\":\n\t\treturn true\n\tcase \"MultiHelloWithError\":\n\t\treturn true\n\tcase \"MultiPlanetRequiresNested\":\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\nfunc (ec *executionContext) resolveEntity(\n\tctx context.Context,\n\ttypeName string,\n\trep EntityRepresentation,\n) (e fedruntime.Entity, err error) {\n\t// we need to do our own panic handling, because we may be called in a\n\t// goroutine, where the usual panic handling can't catch us\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t}\n\t}()\n\n\tswitch typeName {\n\tcase \"Hello\":\n\t\tresolverName, err := entityResolverNameForHello(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"Hello\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findHelloByName\":\n\t\t\tid0, err := unmarshalNString2string(ctx, ec, rep[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findHelloByName(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindHelloByName(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"Hello\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"HelloMultiSingleKeys\":\n\t\tresolverName, err := entityResolverNameForHelloMultiSingleKeys(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"HelloMultiSingleKeys\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findHelloMultiSingleKeysByKey1AndKey2\":\n\t\t\tid0, err := unmarshalNString2string(ctx, ec, rep[\"key1\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findHelloMultiSingleKeysByKey1AndKey2(): %w`, err)\n\t\t\t}\n\t\t\tid1, err := unmarshalNString2string(ctx, ec, rep[\"key2\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 1 for findHelloMultiSingleKeysByKey1AndKey2(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindHelloMultiSingleKeysByKey1AndKey2(ctx, id0, id1)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"HelloMultiSingleKeys\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"HelloWithErrors\":\n\t\tresolverName, err := entityResolverNameForHelloWithErrors(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"HelloWithErrors\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findHelloWithErrorsByName\":\n\t\t\tid0, err := unmarshalNString2string(ctx, ec, rep[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findHelloWithErrorsByName(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindHelloWithErrorsByName(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"HelloWithErrors\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"PlanetMultipleRequires\":\n\t\tresolverName, err := entityResolverNameForPlanetMultipleRequires(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"PlanetMultipleRequires\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findPlanetMultipleRequiresByName\":\n\t\t\tid0, err := unmarshalNString2string(ctx, ec, rep[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findPlanetMultipleRequiresByName(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindPlanetMultipleRequiresByName(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"PlanetMultipleRequires\": %w`, err)\n\t\t\t}\n\n\t\t\tentity.Diameter, err = unmarshalNInt2int(ctx, ec, rep[\"diameter\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tentity.Density, err = unmarshalNInt2int(ctx, ec, rep[\"density\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"PlanetRequires\":\n\t\tresolverName, err := entityResolverNameForPlanetRequires(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"PlanetRequires\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findPlanetRequiresByName\":\n\t\t\tid0, err := unmarshalNString2string(ctx, ec, rep[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findPlanetRequiresByName(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindPlanetRequiresByName(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"PlanetRequires\": %w`, err)\n\t\t\t}\n\n\t\t\tentity.Diameter, err = unmarshalNInt2int(ctx, ec, rep[\"diameter\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"PlanetRequiresNested\":\n\t\tresolverName, err := entityResolverNameForPlanetRequiresNested(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"PlanetRequiresNested\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findPlanetRequiresNestedByName\":\n\t\t\tid0, err := unmarshalNString2string(ctx, ec, rep[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findPlanetRequiresNestedByName(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindPlanetRequiresNestedByName(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"PlanetRequiresNested\": %w`, err)\n\t\t\t}\n\n\t\t\tentity.World.Foo, err = unmarshalNString2string(ctx, ec, rep[\"world\"].(map[string]any)[\"foo\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"World\":\n\t\tresolverName, err := entityResolverNameForWorld(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"World\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findWorldByHelloNameAndFoo\":\n\t\t\tid0, err := unmarshalNString2string(ctx, ec, rep[\"hello\"].(map[string]any)[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findWorldByHelloNameAndFoo(): %w`, err)\n\t\t\t}\n\t\t\tid1, err := unmarshalNString2string(ctx, ec, rep[\"foo\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 1 for findWorldByHelloNameAndFoo(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindWorldByHelloNameAndFoo(ctx, id0, id1)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"World\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"WorldName\":\n\t\tresolverName, err := entityResolverNameForWorldName(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"WorldName\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findWorldNameByName\":\n\t\t\tid0, err := unmarshalNString2string(ctx, ec, rep[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findWorldNameByName(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindWorldNameByName(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"WorldName\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\tcase \"WorldWithMultipleKeys\":\n\t\tresolverName, err := entityResolverNameForWorldWithMultipleKeys(ctx, rep)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`finding resolver for Entity \"WorldWithMultipleKeys\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findWorldWithMultipleKeysByHelloNameAndFoo\":\n\t\t\tid0, err := unmarshalNString2string(ctx, ec, rep[\"hello\"].(map[string]any)[\"name\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findWorldWithMultipleKeysByHelloNameAndFoo(): %w`, err)\n\t\t\t}\n\t\t\tid1, err := unmarshalNString2string(ctx, ec, rep[\"foo\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 1 for findWorldWithMultipleKeysByHelloNameAndFoo(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindWorldWithMultipleKeysByHelloNameAndFoo(ctx, id0, id1)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"WorldWithMultipleKeys\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\tcase \"findWorldWithMultipleKeysByBar\":\n\t\t\tid0, err := unmarshalNInt2int(ctx, ec, rep[\"bar\"])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`unmarshalling param 0 for findWorldWithMultipleKeysByBar(): %w`, err)\n\t\t\t}\n\t\t\tentity, err := ec.Resolvers.Entity().FindWorldWithMultipleKeysByBar(ctx, id0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(`resolving Entity \"WorldWithMultipleKeys\": %w`, err)\n\t\t\t}\n\n\t\t\treturn entity, nil\n\t\t}\n\n\t}\n\treturn nil, fmt.Errorf(\"%w: %s\", ErrUnknownType, typeName)\n}\n\nfunc (ec *executionContext) resolveManyEntities(\n\tctx context.Context,\n\ttypeName string,\n\treps []EntityWithIndex,\n\tlist []fedruntime.Entity,\n) (err error) {\n\t// we need to do our own panic handling, because we may be called in a\n\t// goroutine, where the usual panic handling can't catch us\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t}\n\t}()\n\n\tswitch typeName {\n\n\tcase \"MultiHello\":\n\t\tresolverName, err := entityResolverNameForMultiHello(ctx, reps[0].entity)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(`finding resolver for Entity \"MultiHello\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findManyMultiHelloByNames\":\n\t\t\ttypedReps := make([]*model.MultiHelloByNamesInput, len(reps))\n\n\t\t\tfor i, rep := range reps {\n\t\t\t\tid0, err := unmarshalNString2string(ctx, ec, rep.entity[\"name\"])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn errors.New(fmt.Sprintf(\"Field %s undefined in schema.\", \"name\"))\n\t\t\t\t}\n\n\t\t\t\ttypedReps[i] = &model.MultiHelloByNamesInput{\n\t\t\t\t\tName: id0,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tentities, err := ec.Resolvers.Entity().FindManyMultiHelloByNames(ctx, typedReps)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tfor i, entity := range entities {\n\t\t\t\tlist[reps[i].index] = entity\n\t\t\t}\n\t\t\treturn nil\n\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"unknown resolver: %s\", resolverName)\n\t\t}\n\n\tcase \"MultiHelloMultipleRequires\":\n\t\tresolverName, err := entityResolverNameForMultiHelloMultipleRequires(ctx, reps[0].entity)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(`finding resolver for Entity \"MultiHelloMultipleRequires\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findManyMultiHelloMultipleRequiresByNames\":\n\t\t\ttypedReps := make([]*model.MultiHelloMultipleRequiresByNamesInput, len(reps))\n\n\t\t\tfor i, rep := range reps {\n\t\t\t\tid0, err := unmarshalNString2string(ctx, ec, rep.entity[\"name\"])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn errors.New(fmt.Sprintf(\"Field %s undefined in schema.\", \"name\"))\n\t\t\t\t}\n\n\t\t\t\ttypedReps[i] = &model.MultiHelloMultipleRequiresByNamesInput{\n\t\t\t\t\tName: id0,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tentities, err := ec.Resolvers.Entity().FindManyMultiHelloMultipleRequiresByNames(ctx, typedReps)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tfor i, entity := range entities {\n\t\t\t\tentity.Key1, err = unmarshalNString2string(ctx, ec, reps[i].entity[\"key1\"])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tentity.Key2, err = unmarshalNString2string(ctx, ec, reps[i].entity[\"key2\"])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tlist[reps[i].index] = entity\n\t\t\t}\n\t\t\treturn nil\n\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"unknown resolver: %s\", resolverName)\n\t\t}\n\n\tcase \"MultiHelloRequires\":\n\t\tresolverName, err := entityResolverNameForMultiHelloRequires(ctx, reps[0].entity)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(`finding resolver for Entity \"MultiHelloRequires\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findManyMultiHelloRequiresByNames\":\n\t\t\ttypedReps := make([]*model.MultiHelloRequiresByNamesInput, len(reps))\n\n\t\t\tfor i, rep := range reps {\n\t\t\t\tid0, err := unmarshalNString2string(ctx, ec, rep.entity[\"name\"])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn errors.New(fmt.Sprintf(\"Field %s undefined in schema.\", \"name\"))\n\t\t\t\t}\n\n\t\t\t\ttypedReps[i] = &model.MultiHelloRequiresByNamesInput{\n\t\t\t\t\tName: id0,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tentities, err := ec.Resolvers.Entity().FindManyMultiHelloRequiresByNames(ctx, typedReps)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tfor i, entity := range entities {\n\t\t\t\tentity.Key1, err = unmarshalNString2string(ctx, ec, reps[i].entity[\"key1\"])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tlist[reps[i].index] = entity\n\t\t\t}\n\t\t\treturn nil\n\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"unknown resolver: %s\", resolverName)\n\t\t}\n\n\tcase \"MultiHelloWithError\":\n\t\tresolverName, err := entityResolverNameForMultiHelloWithError(ctx, reps[0].entity)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(`finding resolver for Entity \"MultiHelloWithError\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findManyMultiHelloWithErrorByNames\":\n\t\t\ttypedReps := make([]*model.MultiHelloWithErrorByNamesInput, len(reps))\n\n\t\t\tfor i, rep := range reps {\n\t\t\t\tid0, err := unmarshalNString2string(ctx, ec, rep.entity[\"name\"])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn errors.New(fmt.Sprintf(\"Field %s undefined in schema.\", \"name\"))\n\t\t\t\t}\n\n\t\t\t\ttypedReps[i] = &model.MultiHelloWithErrorByNamesInput{\n\t\t\t\t\tName: id0,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tentities, err := ec.Resolvers.Entity().FindManyMultiHelloWithErrorByNames(ctx, typedReps)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tfor i, entity := range entities {\n\t\t\t\tlist[reps[i].index] = entity\n\t\t\t}\n\t\t\treturn nil\n\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"unknown resolver: %s\", resolverName)\n\t\t}\n\n\tcase \"MultiPlanetRequiresNested\":\n\t\tresolverName, err := entityResolverNameForMultiPlanetRequiresNested(ctx, reps[0].entity)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(`finding resolver for Entity \"MultiPlanetRequiresNested\": %w`, err)\n\t\t}\n\t\tswitch resolverName {\n\n\t\tcase \"findManyMultiPlanetRequiresNestedByNames\":\n\t\t\ttypedReps := make([]*model.MultiPlanetRequiresNestedByNamesInput, len(reps))\n\n\t\t\tfor i, rep := range reps {\n\t\t\t\tid0, err := unmarshalNString2string(ctx, ec, rep.entity[\"name\"])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn errors.New(fmt.Sprintf(\"Field %s undefined in schema.\", \"name\"))\n\t\t\t\t}\n\n\t\t\t\ttypedReps[i] = &model.MultiPlanetRequiresNestedByNamesInput{\n\t\t\t\t\tName: id0,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tentities, err := ec.Resolvers.Entity().FindManyMultiPlanetRequiresNestedByNames(ctx, typedReps)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tfor i, entity := range entities {\n\t\t\t\tentity.World.Foo, err = unmarshalNString2string(ctx, ec, reps[i].entity[\"world\"].(map[string]any)[\"foo\"])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tlist[reps[i].index] = entity\n\t\t\t}\n\t\t\treturn nil\n\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"unknown resolver: %s\", resolverName)\n\t\t}\n\n\tdefault:\n\t\treturn errors.New(\"unknown type: \" + typeName)\n\t}\n}\n\nfunc entityResolverNameForHello(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for Hello\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for Hello\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findHelloByName\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for Hello due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForHelloMultiSingleKeys(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"key1\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"key1\\\" for HelloMultiSingleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tm = rep\n\t\tval, ok = m[\"key2\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"key2\\\" for HelloMultiSingleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for HelloMultiSingleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findHelloMultiSingleKeysByKey1AndKey2\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for HelloMultiSingleKeys due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForHelloWithErrors(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for HelloWithErrors\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for HelloWithErrors\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findHelloWithErrorsByName\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for HelloWithErrors due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForMultiHello(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for MultiHello\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for MultiHello\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findManyMultiHelloByNames\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for MultiHello due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForMultiHelloMultipleRequires(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for MultiHelloMultipleRequires\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for MultiHelloMultipleRequires\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findManyMultiHelloMultipleRequiresByNames\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for MultiHelloMultipleRequires due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForMultiHelloRequires(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for MultiHelloRequires\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for MultiHelloRequires\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findManyMultiHelloRequiresByNames\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for MultiHelloRequires due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForMultiHelloWithError(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for MultiHelloWithError\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for MultiHelloWithError\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findManyMultiHelloWithErrorByNames\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for MultiHelloWithError due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForMultiPlanetRequiresNested(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for MultiPlanetRequiresNested\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for MultiPlanetRequiresNested\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findManyMultiPlanetRequiresNestedByNames\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for MultiPlanetRequiresNested due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForPlanetMultipleRequires(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for PlanetMultipleRequires\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for PlanetMultipleRequires\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findPlanetMultipleRequiresByName\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for PlanetMultipleRequires due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForPlanetRequires(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for PlanetRequires\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for PlanetRequires\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findPlanetRequiresByName\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for PlanetRequires due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForPlanetRequiresNested(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for PlanetRequiresNested\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for PlanetRequiresNested\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findPlanetRequiresNestedByName\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for PlanetRequiresNested due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForWorld(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"hello\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"hello\\\" for World\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif m, ok = val.(map[string]any); !ok {\n\t\t\t// nested field value is not a map[string]interface so don't use it\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to nested Key Field \\\"hello\\\" value not matching map[string]any for World\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for World\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tm = rep\n\t\tval, ok = m[\"foo\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"foo\\\" for World\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for World\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findWorldByHelloNameAndFoo\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for World due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForWorldName(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for WorldName\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for WorldName\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findWorldNameByName\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for WorldName due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n\nfunc entityResolverNameForWorldWithMultipleKeys(ctx context.Context, rep EntityRepresentation) (string, error) {\n\t// we collect errors because a later entity resolver may work fine\n\t// when an entity has multiple keys\n\tentityResolverErrs := []error{}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"hello\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"hello\\\" for WorldWithMultipleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif m, ok = val.(map[string]any); !ok {\n\t\t\t// nested field value is not a map[string]interface so don't use it\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to nested Key Field \\\"hello\\\" value not matching map[string]any for WorldWithMultipleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tval, ok = m[\"name\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"name\\\" for WorldWithMultipleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tm = rep\n\t\tval, ok = m[\"foo\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"foo\\\" for WorldWithMultipleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for WorldWithMultipleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findWorldWithMultipleKeysByHelloNameAndFoo\", nil\n\t}\n\tfor {\n\t\tvar (\n\t\t\tm   EntityRepresentation\n\t\t\tval any\n\t\t\tok  bool\n\t\t)\n\t\t_ = val\n\t\t// if all of the KeyFields values for this resolver are null,\n\t\t// we shouldn't use use it\n\t\tallNull := true\n\t\tm = rep\n\t\tval, ok = m[\"bar\"]\n\t\tif !ok {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to missing Key Field \\\"bar\\\" for WorldWithMultipleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\tif allNull {\n\t\t\tallNull = val == nil\n\t\t}\n\t\tif allNull {\n\t\t\tentityResolverErrs = append(entityResolverErrs,\n\t\t\t\tfmt.Errorf(\"%w due to all null value KeyFields for WorldWithMultipleKeys\", ErrTypeNotFound))\n\t\t\tbreak\n\t\t}\n\t\treturn \"findWorldWithMultipleKeysByBar\", nil\n\t}\n\treturn \"\", fmt.Errorf(\"%w for WorldWithMultipleKeys due to %v\", ErrTypeNotFound,\n\t\terrors.Join(entityResolverErrs...).Error())\n}\n"
  },
  {
    "path": "plugin/federation/testdata/usefunctionsyntaxforexecutioncontext/generated/model/models.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage model\n\ntype Hello struct {\n\tName      string `json:\"name\"`\n\tSecondary string `json:\"secondary\"`\n}\n\nfunc (Hello) IsEntity() {}\n\ntype HelloMultiSingleKeys struct {\n\tKey1 string `json:\"key1\"`\n\tKey2 string `json:\"key2\"`\n}\n\nfunc (HelloMultiSingleKeys) IsEntity() {}\n\ntype HelloWithErrors struct {\n\tName string `json:\"name\"`\n}\n\nfunc (HelloWithErrors) IsEntity() {}\n\ntype MultiHello struct {\n\tName string `json:\"name\"`\n}\n\nfunc (MultiHello) IsEntity() {}\n\ntype MultiHelloByNamesInput struct {\n\tName string `json:\"Name\"`\n}\n\ntype MultiHelloMultipleRequires struct {\n\tName string `json:\"name\"`\n\tKey1 string `json:\"key1\"`\n\tKey2 string `json:\"key2\"`\n\tKey3 string `json:\"key3\"`\n}\n\nfunc (MultiHelloMultipleRequires) IsEntity() {}\n\ntype MultiHelloMultipleRequiresByNamesInput struct {\n\tName string `json:\"Name\"`\n}\n\ntype MultiHelloRequires struct {\n\tName string `json:\"name\"`\n\tKey1 string `json:\"key1\"`\n\tKey2 string `json:\"key2\"`\n}\n\nfunc (MultiHelloRequires) IsEntity() {}\n\ntype MultiHelloRequiresByNamesInput struct {\n\tName string `json:\"Name\"`\n}\n\ntype MultiHelloWithError struct {\n\tName string `json:\"name\"`\n}\n\nfunc (MultiHelloWithError) IsEntity() {}\n\ntype MultiHelloWithErrorByNamesInput struct {\n\tName string `json:\"Name\"`\n}\n\ntype MultiPlanetRequiresNested struct {\n\tName  string `json:\"name\"`\n\tWorld *World `json:\"world\"`\n\tSize  int    `json:\"size\"`\n}\n\nfunc (MultiPlanetRequiresNested) IsEntity() {}\n\ntype MultiPlanetRequiresNestedByNamesInput struct {\n\tName string `json:\"Name\"`\n}\n\ntype PlanetMultipleRequires struct {\n\tName     string `json:\"name\"`\n\tDiameter int    `json:\"diameter\"`\n\tDensity  int    `json:\"density\"`\n\tWeight   int    `json:\"weight\"`\n}\n\nfunc (PlanetMultipleRequires) IsEntity() {}\n\ntype PlanetRequires struct {\n\tName     string `json:\"name\"`\n\tSize     int    `json:\"size\"`\n\tDiameter int    `json:\"diameter\"`\n}\n\nfunc (PlanetRequires) IsEntity() {}\n\ntype PlanetRequiresNested struct {\n\tName  string `json:\"name\"`\n\tWorld *World `json:\"world\"`\n\tSize  int    `json:\"size\"`\n}\n\nfunc (PlanetRequiresNested) IsEntity() {}\n\ntype Query struct {\n}\n\ntype World struct {\n\tFoo   string `json:\"foo\"`\n\tBar   int    `json:\"bar\"`\n\tHello *Hello `json:\"hello,omitempty\"`\n}\n\nfunc (World) IsEntity() {}\n\ntype WorldName struct {\n\tName string `json:\"name\"`\n}\n\nfunc (WorldName) IsEntity() {}\n\ntype WorldWithMultipleKeys struct {\n\tFoo   string `json:\"foo\"`\n\tBar   int    `json:\"bar\"`\n\tHello *Hello `json:\"hello,omitempty\"`\n}\n\nfunc (WorldWithMultipleKeys) IsEntity() {}\n"
  },
  {
    "path": "plugin/federation/testdata/usefunctionsyntaxforexecutioncontext/gqlgen.yml",
    "content": "schema:\n  - \"testdata/usefunctionsyntaxforexecutioncontext/schema.graphql\"\nuse_function_syntax_for_execution_context: true\nexec:\n  filename: testdata/usefunctionsyntaxforexecutioncontext/generated/exec.go\nfederation:\n  filename: testdata/usefunctionsyntaxforexecutioncontext/generated/federation.go\nmodel:\n  filename: testdata/usefunctionsyntaxforexecutioncontext/generated/model/models.go\n  package: model\nresolver:\n  filename: testdata/usefunctionsyntaxforexecutioncontext/resolver.go\n  layout: follow-schema\n  dir: testdata/usefunctionsyntaxforexecutioncontext\n  package: usefunctionsyntaxforexecutioncontext\n"
  },
  {
    "path": "plugin/federation/testdata/usefunctionsyntaxforexecutioncontext/resolver.go",
    "content": "package usefunctionsyntaxforexecutioncontext\n\n// This file will not be regenerated automatically.\n//\n// It serves as dependency injection for your app, add any dependencies you require here.\n\ntype Resolver struct{}\n\n// FindWorldWithMultipleKeysByHelloNameAndFooBarValue shows we hit the FindWorldWithMultipleKeysByHelloNameAndFoo resolver\nconst FindWorldWithMultipleKeysByHelloNameAndFooBarValue = 99\n"
  },
  {
    "path": "plugin/federation/testdata/usefunctionsyntaxforexecutioncontext/schema.graphql",
    "content": "directive @entityResolver(multi: Boolean) on OBJECT\n\ntype Hello @key(fields: \"name\") {\n    name: String!\n    secondary: String!\n}\n\ntype World @key(fields: \"hello { name } foo   \") {\n    foo: String!\n    bar: Int!\n    hello: Hello\n}\n\ntype WorldWithMultipleKeys @key(fields: \"hello { name } foo   \") @key(fields: \"bar\") {\n    foo: String!\n    bar: Int!\n    hello: Hello\n}\n\ntype WorldName @key(fields: \"name\") {\n    name: String!\n}\n\ntype HelloWithErrors @key(fields: \"name\") {\n    name: String!\n}\n\ntype PlanetRequires @key(fields: \"name\") {\n    name: String!\n    size: Int! @requires(fields: \"diameter\")\n    diameter: Int!\n}\n\ntype PlanetMultipleRequires @key(fields: \"name\") {\n    name: String! @external\n    diameter: Int! @external\n    density: Int! @external\n    weight: Int! @requires(fields: \"diameter density\")\n}\n\ntype PlanetRequiresNested @key(fields: \"name\") {\n    name: String! @external\n    world: World! @external\n    size: Int! @requires(fields: \"world{ foo }\")\n}\n\ntype MultiPlanetRequiresNested @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String! @external\n    world: World! @external\n    size: Int! @requires(fields: \"world{ foo }\")\n}\n\ntype MultiHello @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String!\n}\n\ntype MultiHelloWithError @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String!\n}\n\ntype HelloMultiSingleKeys @key(fields: \"key1 key2\") {\n    key1: String!\n    key2: String!\n}\n\ntype MultiHelloRequires @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String! @external\n    key1: String! @external\n    key2: String! @requires(fields: \"key1\")\n}\n\ntype MultiHelloMultipleRequires @key(fields: \"name\") @entityResolver(multi: true) {\n    name: String! @external\n    key1: String! @external\n    key2: String! @external\n    key3: String! @requires(fields: \"key1 key2\")\n}\n"
  },
  {
    "path": "plugin/federation/testdata/usefunctionsyntaxforexecutioncontext/schema.resolvers.go",
    "content": "package usefunctionsyntaxforexecutioncontext\n\n// This file will be automatically regenerated based on the schema, any resolver implementations\n// will be copied through when generating and any unknown code will be moved to the end.\n"
  },
  {
    "path": "plugin/modelgen/interface_graph.go",
    "content": "package modelgen\n\nimport (\n\t\"errors\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// interfaceGraph tracks interface implementation relationships.\ntype interfaceGraph struct {\n\tschema           *ast.Schema\n\tparentInterfaces map[string][]string // interface -> interfaces it implements\n\tchildInterfaces  map[string][]string // interface -> interfaces that implement it\n}\n\nfunc newInterfaceGraph(schema *ast.Schema) *interfaceGraph {\n\tg := &interfaceGraph{\n\t\tschema:           schema,\n\t\tparentInterfaces: make(map[string][]string),\n\t\tchildInterfaces:  make(map[string][]string),\n\t}\n\n\tfor _, schemaType := range schema.Types {\n\t\tif schemaType.Kind != ast.Interface {\n\t\t\tcontinue\n\t\t}\n\n\t\tif len(schemaType.Interfaces) == 0 {\n\t\t\tg.parentInterfaces[schemaType.Name] = []string{}\n\t\t} else {\n\t\t\tg.parentInterfaces[schemaType.Name] = append([]string{}, schemaType.Interfaces...)\n\t\t\tfor _, parent := range schemaType.Interfaces {\n\t\t\t\tg.childInterfaces[parent] = append(g.childInterfaces[parent], schemaType.Name)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn g\n}\n\n// topologicalSort returns interfaces ordered with parents before children.\n// Only considers relationships between interfaces in the provided list.\nfunc (g *interfaceGraph) topologicalSort(interfaces []string) ([]string, error) {\n\tinterfaceSet := make(map[string]bool)\n\tfor _, iface := range interfaces {\n\t\tinterfaceSet[iface] = true\n\t}\n\n\tinDegree := make(map[string]int)\n\tfor _, iface := range interfaces {\n\t\tcount := 0\n\t\tfor _, parent := range g.parentInterfaces[iface] {\n\t\t\tif interfaceSet[parent] {\n\t\t\t\tcount++\n\t\t\t}\n\t\t}\n\t\tinDegree[iface] = count\n\t}\n\n\tvar queue []string\n\tfor _, iface := range interfaces {\n\t\tif inDegree[iface] == 0 {\n\t\t\tqueue = append(queue, iface)\n\t\t}\n\t}\n\n\tvar result []string\n\tfor len(queue) > 0 {\n\t\tcurrent := queue[0]\n\t\tqueue = queue[1:]\n\t\tresult = append(result, current)\n\n\t\tfor _, child := range g.childInterfaces[current] {\n\t\t\tif interfaceSet[child] {\n\t\t\t\tinDegree[child]--\n\t\t\t\tif inDegree[child] == 0 {\n\t\t\t\t\tqueue = append(queue, child)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif len(result) != len(interfaces) {\n\t\treturn nil, errors.New(\"cycle detected in interface implementations\")\n\t}\n\n\treturn result, nil\n}\n\n// embeddingInfo contains information about interface embedding relationships.\ntype embeddingInfo struct {\n\tParents       []string               // embeddable parent interfaces with goEmbedInterface directive\n\tSkippedFields []*ast.FieldDefinition // fields from intermediate parents without the directive\n}\n\n// getInterfaceOwnFields returns only the fields that are not inherited from parent interfaces.\nfunc (g *interfaceGraph) getInterfaceOwnFields(interfaceName string) []*ast.FieldDefinition {\n\tschemaInterface := g.schema.Types[interfaceName]\n\tif schemaInterface == nil || schemaInterface.Kind != ast.Interface {\n\t\treturn nil\n\t}\n\n\tparents := g.parentInterfaces[interfaceName]\n\tif len(parents) == 0 {\n\t\treturn schemaInterface.Fields\n\t}\n\n\tparentFieldNames := make(map[string]bool)\n\tfor _, parentName := range parents {\n\t\tparentInterface := g.schema.Types[parentName]\n\t\tif parentInterface == nil {\n\t\t\tcontinue\n\t\t}\n\t\tfor _, field := range parentInterface.Fields {\n\t\t\tparentFieldNames[field.Name] = true\n\t\t}\n\t}\n\n\townFields := []*ast.FieldDefinition{}\n\tfor _, field := range schemaInterface.Fields {\n\t\tif !parentFieldNames[field.Name] {\n\t\t\townFields = append(ownFields, field)\n\t\t}\n\t}\n\n\treturn ownFields\n}\n\n// getEmbeddingInfo returns information about embeddable parent interfaces and fields\n// from intermediate parents that don't have the goEmbedInterface directive.\nfunc (g *interfaceGraph) getEmbeddingInfo(interfaceName string) embeddingInfo {\n\tinfo := embeddingInfo{\n\t\tParents:       []string{},\n\t\tSkippedFields: []*ast.FieldDefinition{},\n\t}\n\tvisited := make(map[string]bool)\n\n\tvar walkParents func(name string)\n\twalkParents = func(name string) {\n\t\tif visited[name] {\n\t\t\treturn\n\t\t}\n\t\tvisited[name] = true\n\n\t\tparentDef := g.schema.Types[name]\n\t\tif parentDef == nil || parentDef.Kind != ast.Interface {\n\t\t\treturn\n\t\t}\n\n\t\t// Check if this parent has the directive (is embeddable)\n\t\tif g.isEmbeddable(name) {\n\t\t\tinfo.Parents = append(info.Parents, name)\n\t\t} else {\n\t\t\t// Not embeddable - collect its fields and walk up\n\t\t\tinfo.SkippedFields = append(info.SkippedFields, g.getInterfaceOwnFields(name)...)\n\t\t\tfor _, grandparent := range parentDef.Interfaces {\n\t\t\t\twalkParents(grandparent)\n\t\t\t}\n\t\t}\n\t}\n\n\tcurrentDef := g.schema.Types[interfaceName]\n\tif currentDef != nil {\n\t\tfor _, parent := range currentDef.Interfaces {\n\t\t\twalkParents(parent)\n\t\t}\n\t}\n\n\treturn info\n}\n\n// isEmbeddable returns true if the interface has the goEmbedInterface directive.\nfunc (g *interfaceGraph) isEmbeddable(interfaceName string) bool {\n\tiface := g.schema.Types[interfaceName]\n\tif iface == nil || iface.Kind != ast.Interface {\n\t\treturn false\n\t}\n\treturn iface.Directives.ForName(\"goEmbedInterface\") != nil\n}\n"
  },
  {
    "path": "plugin/modelgen/interface_graph_test.go",
    "content": "package modelgen\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\nfunc TestInterfaceGraph(t *testing.T) {\n\tschema := createNodeElementMetalSchema(\"Node\", \"Element\", \"Metal\")\n\n\tt.Run(\"builds interface graph correctly\", func(t *testing.T) {\n\t\tgraph := newInterfaceGraph(schema)\n\n\t\t// Check parent relationships\n\t\tassert.Empty(t, graph.parentInterfaces[\"Node\"])\n\t\tassert.Equal(t, []string{\"Node\"}, graph.parentInterfaces[\"Element\"])\n\t\tassert.Equal(t, []string{\"Element\"}, graph.parentInterfaces[\"Metal\"])\n\t})\n\n\tt.Run(\"topological sort orders parents before children\", func(t *testing.T) {\n\t\tgraph := newInterfaceGraph(schema)\n\t\tsorted, err := graph.topologicalSort([]string{\"Metal\", \"Node\", \"Element\"})\n\t\trequire.NoError(t, err)\n\n\t\t// Node should come before Element, Element should come before Metal\n\t\tnodeIdx := -1\n\t\telementIdx := -1\n\t\tmetalIdx := -1\n\t\tfor i, name := range sorted {\n\t\t\tswitch name {\n\t\t\tcase \"Node\":\n\t\t\t\tnodeIdx = i\n\t\t\tcase \"Element\":\n\t\t\t\telementIdx = i\n\t\t\tcase \"Metal\":\n\t\t\t\tmetalIdx = i\n\t\t\t}\n\t\t}\n\n\t\tassert.Less(t, nodeIdx, elementIdx, \"Node should come before Element\")\n\t\tassert.Less(t, elementIdx, metalIdx, \"Element should come before Metal\")\n\t})\n\n\tt.Run(\"gets interface own fields correctly\", func(t *testing.T) {\n\t\tgraph := newInterfaceGraph(schema)\n\n\t\t// Node has all its fields as own fields\n\t\tnodeFields := graph.getInterfaceOwnFields(\"Node\")\n\t\tassert.Len(t, nodeFields, 1)\n\t\tassert.Equal(t, \"id\", nodeFields[0].Name)\n\n\t\t// Element inherits id from Node, only name is own field\n\t\telementFields := graph.getInterfaceOwnFields(\"Element\")\n\t\tassert.Len(t, elementFields, 1)\n\t\tassert.Equal(t, \"name\", elementFields[0].Name)\n\n\t\t// Metal inherits id and name, only atomicNumber is own field\n\t\tmetalFields := graph.getInterfaceOwnFields(\"Metal\")\n\t\tassert.Len(t, metalFields, 1)\n\t\tassert.Equal(t, \"atomicNumber\", metalFields[0].Name)\n\t})\n\n\tt.Run(\"includes all interfaces in graph\", func(t *testing.T) {\n\t\tschemaWithMixed := createNodeElementMetalSchema(\"Node\", \"Metal\")\n\t\tgraph := newInterfaceGraph(schemaWithMixed)\n\n\t\t// All interfaces should be in graph (graph stores all interfaces)\n\t\t_, nodeExists := graph.parentInterfaces[\"Node\"]\n\t\tassert.True(t, nodeExists, \"Node should be in graph\")\n\n\t\t_, elementExists := graph.parentInterfaces[\"Element\"]\n\t\tassert.True(t, elementExists, \"Element should be in graph (even without directive)\")\n\n\t\t_, metalExists := graph.parentInterfaces[\"Metal\"]\n\t\tassert.True(t, metalExists, \"Metal should be in graph\")\n\n\t\t// But isEmbeddable should filter by directive\n\t\tassert.True(t, graph.isEmbeddable(\"Node\"), \"Node should be embeddable (has directive)\")\n\t\tassert.False(\n\t\t\tt,\n\t\t\tgraph.isEmbeddable(\"Element\"),\n\t\t\t\"Element should NOT be embeddable (no directive)\",\n\t\t)\n\t\tassert.True(t, graph.isEmbeddable(\"Metal\"), \"Metal should be embeddable (has directive)\")\n\t})\n\n\tt.Run(\"isEmbeddable returns true for interfaces with directive\", func(t *testing.T) {\n\t\tschema := createNodeElementMetalSchema(\"Node\")\n\t\tgraph := newInterfaceGraph(schema)\n\n\t\tassert.True(t, graph.isEmbeddable(\"Node\"), \"Node should be embeddable\")\n\t})\n\n\tt.Run(\"isEmbeddable returns false for interfaces without directive\", func(t *testing.T) {\n\t\tschema := createNodeElementMetalSchema(\"Node\")\n\t\tgraph := newInterfaceGraph(schema)\n\n\t\tassert.False(t, graph.isEmbeddable(\"Element\"), \"Element should not be embeddable\")\n\t})\n\n\tt.Run(\"isEmbeddable returns false for non-existent interfaces\", func(t *testing.T) {\n\t\tschema := createNodeElementMetalSchema(\"Node\")\n\t\tgraph := newInterfaceGraph(schema)\n\n\t\tassert.False(\n\t\t\tt,\n\t\t\tgraph.isEmbeddable(\"NonExistent\"),\n\t\t\t\"Non-existent interface should not be embeddable\",\n\t\t)\n\t})\n}\n\nfunc TestInterfaceGraphGetEmbeddableParents(t *testing.T) {\n\ttestCases := []struct {\n\t\tname                    string\n\t\tschema                  *ast.Schema\n\t\tinterfaceName           string\n\t\texpectedParents         []string\n\t\tunexpectedParents       []string\n\t\texpectedSkippedFields   []string\n\t\tshouldHaveSkippedFields bool\n\t}{\n\t\t{\n\t\t\tname:                    \"all parents have directive\",\n\t\t\tschema:                  createABCChainSchema(\"A\", \"B\", \"C\"),\n\t\t\tinterfaceName:           \"C\",\n\t\t\texpectedParents:         []string{\"B\"},\n\t\t\tunexpectedParents:       []string{\"A\"},\n\t\t\tshouldHaveSkippedFields: false,\n\t\t},\n\t\t{\n\t\t\tname:                    \"some parents missing directive\",\n\t\t\tschema:                  createABCChainSchema(\"A\", \"C\"),\n\t\t\tinterfaceName:           \"C\",\n\t\t\texpectedParents:         []string{\"A\"},\n\t\t\tunexpectedParents:       []string{\"B\"},\n\t\t\texpectedSkippedFields:   []string{\"fieldB\"},\n\t\t\tshouldHaveSkippedFields: true,\n\t\t},\n\t\t{\n\t\t\tname:                    \"deep inheritance chain with mixed directives\",\n\t\t\tschema:                  createABCDChainSchema(\"A\", \"D\"),\n\t\t\tinterfaceName:           \"D\",\n\t\t\texpectedParents:         []string{\"A\"},\n\t\t\tunexpectedParents:       []string{\"B\", \"C\"},\n\t\t\texpectedSkippedFields:   []string{\"fieldB\", \"fieldC\"},\n\t\t\tshouldHaveSkippedFields: true,\n\t\t},\n\t}\n\n\tfor _, tc := range testCases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tgraph := newInterfaceGraph(tc.schema)\n\t\t\tinfo := graph.getEmbeddingInfo(tc.interfaceName)\n\n\t\t\tfor _, expected := range tc.expectedParents {\n\t\t\t\tassert.Contains(t, info.Parents, expected, \"should contain parent %s\", expected)\n\t\t\t}\n\n\t\t\tfor _, unexpected := range tc.unexpectedParents {\n\t\t\t\tassert.NotContains(\n\t\t\t\t\tt,\n\t\t\t\t\tinfo.Parents,\n\t\t\t\t\tunexpected,\n\t\t\t\t\t\"should not contain parent %s\",\n\t\t\t\t\tunexpected,\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tif tc.shouldHaveSkippedFields {\n\t\t\t\tassert.NotEmpty(t, info.SkippedFields, \"should have skipped fields\")\n\t\t\t\tfieldNames := make(map[string]bool)\n\t\t\t\tfor _, field := range info.SkippedFields {\n\t\t\t\t\tfieldNames[field.Name] = true\n\t\t\t\t}\n\t\t\t\tfor _, expectedField := range tc.expectedSkippedFields {\n\t\t\t\t\tassert.True(\n\t\t\t\t\t\tt,\n\t\t\t\t\t\tfieldNames[expectedField],\n\t\t\t\t\t\t\"should contain skipped field %s\",\n\t\t\t\t\t\texpectedField,\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tassert.Empty(t, info.SkippedFields, \"should not have skipped fields\")\n\t\t\t}\n\t\t})\n\t}\n}\n\n// createNodeElementMetalSchema creates a Node->Element->Metal hierarchy.\n// embeddable specifies which interfaces should have the goEmbedInterface directive.\nfunc createNodeElementMetalSchema(embeddable ...string) *ast.Schema {\n\tembeddableSet := make(map[string]bool)\n\tfor _, name := range embeddable {\n\t\tembeddableSet[name] = true\n\t}\n\n\thasDirective := func(name string) bool {\n\t\treturn embeddableSet[name]\n\t}\n\n\treturn &ast.Schema{\n\t\tTypes: map[string]*ast.Definition{\n\t\t\t\"Node\": {\n\t\t\t\tName:       \"Node\",\n\t\t\t\tKind:       ast.Interface,\n\t\t\t\tInterfaces: []string{},\n\t\t\t\tFields:     []*ast.FieldDefinition{{Name: \"id\"}},\n\t\t\t\tDirectives: directives(embeddableSet[\"Node\"]),\n\t\t\t},\n\t\t\t\"Element\": {\n\t\t\t\tName:       \"Element\",\n\t\t\t\tKind:       ast.Interface,\n\t\t\t\tInterfaces: []string{\"Node\"},\n\t\t\t\tFields:     []*ast.FieldDefinition{{Name: \"id\"}, {Name: \"name\"}},\n\t\t\t\tDirectives: directives(hasDirective(\"Element\")),\n\t\t\t},\n\t\t\t\"Metal\": {\n\t\t\t\tName:       \"Metal\",\n\t\t\t\tKind:       ast.Interface,\n\t\t\t\tInterfaces: []string{\"Element\"},\n\t\t\t\tFields: []*ast.FieldDefinition{\n\t\t\t\t\t{Name: \"id\"},\n\t\t\t\t\t{Name: \"name\"},\n\t\t\t\t\t{Name: \"atomicNumber\"},\n\t\t\t\t},\n\t\t\t\tDirectives: directives(hasDirective(\"Metal\")),\n\t\t\t},\n\t\t},\n\t}\n}\n\n// createABCChainSchema creates an A->B->C hierarchy.\n// embeddable specifies which interfaces should have the goEmbedInterface directive.\nfunc createABCChainSchema(embeddable ...string) *ast.Schema {\n\tembeddableSet := make(map[string]bool)\n\tfor _, name := range embeddable {\n\t\tembeddableSet[name] = true\n\t}\n\n\treturn &ast.Schema{\n\t\tTypes: map[string]*ast.Definition{\n\t\t\t\"A\": {\n\t\t\t\tName:       \"A\",\n\t\t\t\tKind:       ast.Interface,\n\t\t\t\tInterfaces: []string{},\n\t\t\t\tFields:     []*ast.FieldDefinition{{Name: \"fieldA\"}},\n\t\t\t\tDirectives: directives(embeddableSet[\"A\"]),\n\t\t\t},\n\t\t\t\"B\": {\n\t\t\t\tName:       \"B\",\n\t\t\t\tKind:       ast.Interface,\n\t\t\t\tInterfaces: []string{\"A\"},\n\t\t\t\tFields:     []*ast.FieldDefinition{{Name: \"fieldA\"}, {Name: \"fieldB\"}},\n\t\t\t\tDirectives: directives(embeddableSet[\"B\"]),\n\t\t\t},\n\t\t\t\"C\": {\n\t\t\t\tName:       \"C\",\n\t\t\t\tKind:       ast.Interface,\n\t\t\t\tInterfaces: []string{\"B\"},\n\t\t\t\tFields: []*ast.FieldDefinition{\n\t\t\t\t\t{Name: \"fieldA\"},\n\t\t\t\t\t{Name: \"fieldB\"},\n\t\t\t\t\t{Name: \"fieldC\"},\n\t\t\t\t},\n\t\t\t\tDirectives: directives(embeddableSet[\"C\"]),\n\t\t\t},\n\t\t},\n\t}\n}\n\n// createABCDChainSchema creates an A->B->C->D hierarchy.\n// embeddable specifies which interfaces should have the goEmbedInterface directive.\nfunc createABCDChainSchema(embeddable ...string) *ast.Schema {\n\tembeddableSet := make(map[string]bool)\n\tfor _, name := range embeddable {\n\t\tembeddableSet[name] = true\n\t}\n\n\treturn &ast.Schema{\n\t\tTypes: map[string]*ast.Definition{\n\t\t\t\"A\": {\n\t\t\t\tName:       \"A\",\n\t\t\t\tKind:       ast.Interface,\n\t\t\t\tInterfaces: []string{},\n\t\t\t\tFields:     []*ast.FieldDefinition{{Name: \"fieldA\"}},\n\t\t\t\tDirectives: directives(embeddableSet[\"A\"]),\n\t\t\t},\n\t\t\t\"B\": {\n\t\t\t\tName:       \"B\",\n\t\t\t\tKind:       ast.Interface,\n\t\t\t\tInterfaces: []string{\"A\"},\n\t\t\t\tFields:     []*ast.FieldDefinition{{Name: \"fieldA\"}, {Name: \"fieldB\"}},\n\t\t\t\tDirectives: directives(embeddableSet[\"B\"]),\n\t\t\t},\n\t\t\t\"C\": {\n\t\t\t\tName:       \"C\",\n\t\t\t\tKind:       ast.Interface,\n\t\t\t\tInterfaces: []string{\"B\"},\n\t\t\t\tFields: []*ast.FieldDefinition{\n\t\t\t\t\t{Name: \"fieldA\"},\n\t\t\t\t\t{Name: \"fieldB\"},\n\t\t\t\t\t{Name: \"fieldC\"},\n\t\t\t\t},\n\t\t\t\tDirectives: directives(embeddableSet[\"C\"]),\n\t\t\t},\n\t\t\t\"D\": {\n\t\t\t\tName:       \"D\",\n\t\t\t\tKind:       ast.Interface,\n\t\t\t\tInterfaces: []string{\"C\"},\n\t\t\t\tFields: []*ast.FieldDefinition{\n\t\t\t\t\t{Name: \"fieldA\"},\n\t\t\t\t\t{Name: \"fieldB\"},\n\t\t\t\t\t{Name: \"fieldC\"},\n\t\t\t\t\t{Name: \"fieldD\"},\n\t\t\t\t},\n\t\t\t\tDirectives: directives(embeddableSet[\"D\"]),\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc directives(condition bool) ast.DirectiveList {\n\tif condition {\n\t\treturn ast.DirectiveList{{Name: \"goEmbedInterface\"}}\n\t}\n\treturn ast.DirectiveList{}\n}\n"
  },
  {
    "path": "plugin/modelgen/internal/extrafields/types.go",
    "content": "package extrafields\n\ntype Type struct{}\n"
  },
  {
    "path": "plugin/modelgen/models.go",
    "content": "package modelgen\n\nimport (\n\t_ \"embed\"\n\t\"fmt\"\n\t\"go/types\"\n\t\"os\"\n\t\"sort\"\n\t\"strings\"\n\t\"text/template\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\n\t\"github.com/99designs/gqlgen/codegen/config\"\n\t\"github.com/99designs/gqlgen/codegen/templates\"\n\t\"github.com/99designs/gqlgen/plugin\"\n)\n\n//go:embed models.gotpl\nvar modelTemplate string\n\ntype (\n\tBuildMutateHook = func(b *ModelBuild) *ModelBuild\n\tFieldMutateHook = func(td *ast.Definition, fd *ast.FieldDefinition, f *Field) (*Field, error)\n)\n\n// DefaultFieldMutateHook is the default hook for the Plugin which applies the GoFieldHook and\n// GoTagFieldHook.\nfunc DefaultFieldMutateHook(td *ast.Definition, fd *ast.FieldDefinition, f *Field) (*Field, error) {\n\treturn GoTagFieldHook(td, fd, f)\n}\n\n// DefaultBuildMutateHook is the default hook for the Plugin which mutate ModelBuild.\nfunc DefaultBuildMutateHook(b *ModelBuild) *ModelBuild {\n\treturn b\n}\n\ntype ModelBuild struct {\n\tPackageName string\n\tInterfaces  []*Interface\n\tModels      []*Object\n\tEnums       []*Enum\n\tScalars     []string\n}\n\ntype Interface struct {\n\tDescription string\n\tName        string\n\tFields      []*Field\n\tImplements  []string\n\tOmitCheck   bool\n\tModels      []*Object\n}\n\ntype Object struct {\n\tDescription string\n\tName        string\n\tFields      []*Field\n\tImplements  []string\n}\n\ntype Field struct {\n\tDescription string\n\t// Name is the field's name as it appears in the schema\n\tName string\n\t// GoName is the field's name as it appears in the generated Go code\n\tGoName        string\n\tType          types.Type\n\tTag           string\n\tIsResolver    bool\n\tOmittable     bool\n\tForceGenerate bool\n}\n\ntype Enum struct {\n\tDescription        string\n\tName               string\n\tValues             []*EnumValue\n\tOmitJSONMarshalers bool\n}\n\ntype EnumValue struct {\n\tDescription string\n\tName        string\n}\n\nfunc New() plugin.Plugin {\n\treturn &Plugin{\n\t\tMutateHook: DefaultBuildMutateHook,\n\t\tFieldHook:  DefaultFieldMutateHook,\n\t}\n}\n\ntype Plugin struct {\n\tMutateHook BuildMutateHook\n\tFieldHook  FieldMutateHook\n}\n\nvar _ plugin.ConfigMutator = &Plugin{}\n\nfunc (m *Plugin) Name() string {\n\treturn \"modelgen\"\n}\n\nfunc (m *Plugin) MutateConfig(cfg *config.Config) error {\n\tb := &ModelBuild{\n\t\tPackageName: cfg.Model.Package,\n\t}\n\n\tcfg.Directives[\"goEmbedInterface\"] = config.DirectiveConfig{SkipRuntime: true}\n\n\tbinder := cfg.NewBinder()\n\n\t// Generate Base structs for interfaces if embedded structs are enabled\n\tembedder := newEmbeddedInterfaceGenerator(cfg, binder, nil, b)\n\tspecs, err := embedder.generateAllInterfaceBaseStructs()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor _, spec := range specs {\n\t\tobj, err := m.buildBaseObjectFromSpec(cfg, binder, spec)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif obj != nil {\n\t\t\tb.Models = append(b.Models, obj)\n\t\t}\n\t}\n\n\tfor _, schemaType := range cfg.Schema.Types {\n\t\tuserDefined := cfg.Models.UserDefined(schemaType.Name)\n\t\tswitch schemaType.Kind {\n\t\tcase ast.Interface, ast.Union:\n\t\t\tif !userDefined {\n\t\t\t\tit, err := m.getInterface(cfg, schemaType)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tb.Interfaces = append(b.Interfaces, it)\n\t\t\t}\n\t\t}\n\t}\n\n\tfor _, schemaType := range cfg.Schema.Types {\n\t\tif cfg.Models.UserDefined(schemaType.Name) {\n\t\t\tcontinue\n\t\t}\n\t\tswitch schemaType.Kind {\n\t\tcase ast.Object, ast.InputObject:\n\t\t\tit, err := m.getObject(cfg, schemaType, b)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif it == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tb.Models = append(b.Models, it)\n\t\tcase ast.Enum:\n\t\t\tit := &Enum{\n\t\t\t\tName:               schemaType.Name,\n\t\t\t\tDescription:        schemaType.Description,\n\t\t\t\tOmitJSONMarshalers: cfg.OmitEnumJSONMarshalers,\n\t\t\t}\n\n\t\t\tfor _, v := range schemaType.EnumValues {\n\t\t\t\tit.Values = append(it.Values, &EnumValue{\n\t\t\t\t\tName:        v.Name,\n\t\t\t\t\tDescription: v.Description,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tb.Enums = append(b.Enums, it)\n\t\tcase ast.Scalar:\n\t\t\tb.Scalars = append(b.Scalars, schemaType.Name)\n\t\t}\n\t}\n\n\tsort.Slice(b.Enums, func(i, j int) bool { return b.Enums[i].Name < b.Enums[j].Name })\n\tsort.Slice(b.Models, func(i, j int) bool { return b.Models[i].Name < b.Models[j].Name })\n\tsort.Slice(\n\t\tb.Interfaces,\n\t\tfunc(i, j int) bool { return b.Interfaces[i].Name < b.Interfaces[j].Name },\n\t)\n\n\t// if we are not just turning all struct-type fields in generated structs into pointers, we need\n\t// to at least\n\t// check for cyclical relationships and recursive structs\n\tif !cfg.StructFieldsAlwaysPointers {\n\t\tfindAndHandleCyclicalRelationships(b)\n\t}\n\n\tfor _, it := range b.Enums {\n\t\tcfg.Models.Add(it.Name, cfg.Model.ImportPath()+\".\"+templates.ToGoModelName(it.Name))\n\t}\n\tfor _, it := range b.Models {\n\t\tcfg.Models.Add(it.Name, cfg.Model.ImportPath()+\".\"+templates.ToGoModelName(it.Name))\n\t}\n\tfor _, it := range b.Interfaces {\n\t\t// On a given interface we want to keep a reference to all the models that implement it\n\t\tfor _, model := range b.Models {\n\t\t\tfor _, impl := range model.Implements {\n\t\t\t\tif impl == it.Name {\n\t\t\t\t\t// check if this isn't an implementation of an entity interface\n\t\t\t\t\tif impl != \"_Entity\" {\n\t\t\t\t\t\t// If this model has an implementation, add it to the Interface's Models\n\t\t\t\t\t\tit.Models = append(it.Models, model)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcfg.Models.Add(it.Name, cfg.Model.ImportPath()+\".\"+templates.ToGoModelName(it.Name))\n\t}\n\tfor _, it := range b.Scalars {\n\t\tcfg.Models.Add(it, \"github.com/99designs/gqlgen/graphql.String\")\n\t}\n\n\tif len(b.Models) == 0 && len(b.Enums) == 0 && len(b.Interfaces) == 0 && len(b.Scalars) == 0 {\n\t\treturn nil\n\t}\n\n\tif m.MutateHook != nil {\n\t\tb = m.MutateHook(b)\n\t}\n\n\tgetInterfaceByName := func(name string) *Interface {\n\t\t// Allow looking up interfaces, so template can generate getters for each field\n\t\tfor _, i := range b.Interfaces {\n\t\t\tif i.Name == name {\n\t\t\t\treturn i\n\t\t\t}\n\t\t}\n\n\t\treturn nil\n\t}\n\tgettersGenerated := make(map[string]map[string]struct{})\n\tgenerateGetter := func(model *Object, field *Field) string {\n\t\tif model == nil || field == nil {\n\t\t\treturn \"\"\n\t\t}\n\n\t\t// Let templates check if a given getter has been generated already\n\t\ttypeGetters, exists := gettersGenerated[model.Name]\n\t\tif !exists {\n\t\t\ttypeGetters = make(map[string]struct{})\n\t\t\tgettersGenerated[model.Name] = typeGetters\n\t\t}\n\n\t\t_, exists = typeGetters[field.GoName]\n\t\ttypeGetters[field.GoName] = struct{}{}\n\t\tif exists {\n\t\t\treturn \"\"\n\t\t}\n\n\t\t_, interfaceFieldTypeIsPointer := field.Type.(*types.Pointer)\n\t\tvar structFieldTypeIsPointer bool\n\t\tfor _, f := range model.Fields {\n\t\t\tif f.GoName == field.GoName {\n\t\t\t\t_, structFieldTypeIsPointer = f.Type.(*types.Pointer)\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tgoType := templates.CurrentImports.LookupType(field.Type)\n\t\tif strings.HasPrefix(goType, \"[]\") {\n\t\t\tgetter := fmt.Sprintf(\n\t\t\t\t\"func (this %s) Get%s() %s {\\n\",\n\t\t\t\ttemplates.ToGoModelName(model.Name),\n\t\t\t\tfield.GoName,\n\t\t\t\tgoType,\n\t\t\t)\n\t\t\tgetter += fmt.Sprintf(\"\\tif this.%s == nil { return nil }\\n\", field.GoName)\n\t\t\tgetter += fmt.Sprintf(\n\t\t\t\t\"\\tinterfaceSlice := make(%s, 0, len(this.%s))\\n\",\n\t\t\t\tgoType,\n\t\t\t\tfield.GoName,\n\t\t\t)\n\t\t\tgetter += fmt.Sprintf(\n\t\t\t\t\"\\tfor _, concrete := range this.%s { interfaceSlice = append(interfaceSlice, \",\n\t\t\t\tfield.GoName,\n\t\t\t)\n\t\t\tif interfaceFieldTypeIsPointer && !structFieldTypeIsPointer {\n\t\t\t\tgetter += \"&\"\n\t\t\t} else if !interfaceFieldTypeIsPointer && structFieldTypeIsPointer {\n\t\t\t\tgetter += \"*\"\n\t\t\t}\n\t\t\tgetter += \"concrete) }\\n\"\n\t\t\tgetter += \"\\treturn interfaceSlice\\n\"\n\t\t\tgetter += \"}\"\n\t\t\treturn getter\n\t\t}\n\t\tgetter := fmt.Sprintf(\n\t\t\t\"func (this %s) Get%s() %s { return \",\n\t\t\ttemplates.ToGoModelName(model.Name),\n\t\t\tfield.GoName,\n\t\t\tgoType,\n\t\t)\n\n\t\tif interfaceFieldTypeIsPointer && !structFieldTypeIsPointer {\n\t\t\tgetter += \"&\"\n\t\t} else if !interfaceFieldTypeIsPointer && structFieldTypeIsPointer {\n\t\t\tgetter += \"*\"\n\t\t}\n\n\t\tgetter += fmt.Sprintf(\"this.%s }\", field.GoName)\n\t\treturn getter\n\t}\n\tfuncMap := template.FuncMap{\n\t\t\"getInterfaceByName\": getInterfaceByName,\n\t\t\"generateGetter\":     generateGetter,\n\t}\n\tnewModelTemplate := modelTemplate\n\tif cfg.Model.ModelTemplate != \"\" {\n\t\tnewModelTemplate = readModelTemplate(cfg.Model.ModelTemplate)\n\t}\n\n\terr = templates.Render(templates.Options{\n\t\tPackageName:     cfg.Model.Package,\n\t\tFilename:        cfg.Model.Filename,\n\t\tData:            b,\n\t\tGeneratedHeader: true,\n\t\tPackages:        cfg.Packages,\n\t\tTemplate:        newModelTemplate,\n\t\tFuncs:           funcMap,\n\t\tPruneOptions:    cfg.GetPruneOptions(),\n\t})\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// We may have generated code in a package we already loaded, so we reload all packages\n\t// to allow packages to be compared correctly\n\tcfg.ReloadAllPackages()\n\n\treturn nil\n}\n\nfunc (m *Plugin) generateFields(\n\tcfg *config.Config,\n\tschemaType *ast.Definition,\n\tmodel *ModelBuild,\n) ([]*Field, error) {\n\tbinder := cfg.NewBinder()\n\tembeddedGen := newEmbeddedInterfaceGenerator(cfg, binder, schemaType, model)\n\n\tfields := make([]*Field, 0)\n\tembeddedFieldMap := embeddedGen.generateEmbeddedFields(schemaType.Fields)\n\n\tfor _, field := range schemaType.Fields {\n\t\tif embeddedField, isEmbedded := embeddedFieldMap[field.Name]; isEmbedded {\n\t\t\t// First field of interface gets the embedded base struct\n\t\t\tif embeddedField != nil {\n\t\t\t\tfields = append(fields, embeddedField)\n\t\t\t}\n\t\t\t// Skip this field (either it's first with embedded field, or subsequent field from same\n\t\t\t// interface)\n\t\t\tcontinue\n\t\t}\n\n\t\tf, err := m.generateField(cfg, binder, schemaType, field)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif f == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tfields = append(fields, f)\n\t}\n\n\tfields = append(fields, getExtraFields(cfg, schemaType.Name)...)\n\n\treturn fields, nil\n}\n\nfunc (m *Plugin) generateField(\n\tcfg *config.Config,\n\tbinder *config.Binder,\n\tschemaType *ast.Definition,\n\tfield *ast.FieldDefinition,\n) (*Field, error) {\n\tvar typ types.Type\n\tfieldDef := cfg.Schema.Types[field.Type.Name()]\n\n\tif cfg.Models.UserDefined(field.Type.Name()) {\n\t\tvar err error\n\t\ttyp, err = binder.FindTypeFromName(cfg.Models[field.Type.Name()].Model[0])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t} else {\n\t\tswitch fieldDef.Kind {\n\t\tcase ast.Scalar:\n\t\t\t// no user defined model, referencing a default scalar\n\t\t\ttyp = types.NewNamed(\n\t\t\t\ttypes.NewTypeName(0, cfg.Model.Pkg(), \"string\", nil),\n\t\t\t\tnil,\n\t\t\t\tnil,\n\t\t\t)\n\n\t\tcase ast.Interface, ast.Union:\n\t\t\t// no user defined model, referencing a generated interface type\n\t\t\ttyp = types.NewNamed(\n\t\t\t\ttypes.NewTypeName(0, cfg.Model.Pkg(), templates.ToGo(field.Type.Name()), nil),\n\t\t\t\ttypes.NewInterfaceType([]*types.Func{}, []types.Type{}),\n\t\t\t\tnil,\n\t\t\t)\n\n\t\tcase ast.Enum:\n\t\t\t// no user defined model, must reference a generated enum\n\t\t\ttyp = types.NewNamed(\n\t\t\t\ttypes.NewTypeName(0, cfg.Model.Pkg(), templates.ToGo(field.Type.Name()), nil),\n\t\t\t\tnil,\n\t\t\t\tnil,\n\t\t\t)\n\n\t\tcase ast.Object, ast.InputObject:\n\t\t\t// no user defined model, must reference a generated struct\n\t\t\ttyp = types.NewNamed(\n\t\t\t\ttypes.NewTypeName(\n\t\t\t\t\t0,\n\t\t\t\t\tcfg.Model.Pkg(),\n\t\t\t\t\ttemplates.ToGoModelName(field.Type.Name()),\n\t\t\t\t\tnil,\n\t\t\t\t),\n\t\t\t\ttypes.NewStruct(nil, nil),\n\t\t\t\tnil,\n\t\t\t)\n\n\t\tdefault:\n\t\t\tpanic(fmt.Errorf(\"unknown ast type %s\", fieldDef.Kind))\n\t\t}\n\t}\n\n\tname := templates.ToGo(field.Name)\n\tif nameOverride := cfg.Models[schemaType.Name].Fields[field.Name].FieldName; nameOverride != \"\" {\n\t\tname = nameOverride\n\t}\n\n\ttyp = binder.CopyModifiersFromAst(field.Type, typ)\n\n\tif cfg.StructFieldsAlwaysPointers {\n\t\tif isStruct(typ) && (fieldDef.Kind == ast.Object || fieldDef.Kind == ast.InputObject) {\n\t\t\ttyp = types.NewPointer(typ)\n\t\t}\n\t}\n\n\t// Replace to user-defined field type if provided.\n\tif userDefinedType := cfg.Models[schemaType.Name].Fields[field.Name].Type; userDefinedType != \"\" {\n\t\ttyp = buildType(userDefinedType)\n\t}\n\n\tf := &Field{\n\t\tName:        field.Name,\n\t\tGoName:      name,\n\t\tType:        typ,\n\t\tDescription: field.Description,\n\t\tTag:         getStructTagFromField(cfg, field),\n\t\tOmittable: cfg.NullableInputOmittable && schemaType.Kind == ast.InputObject &&\n\t\t\t!field.Type.NonNull,\n\t\tIsResolver:    cfg.Models[schemaType.Name].Fields[field.Name].Resolver,\n\t\tForceGenerate: cfg.Models[schemaType.Name].Fields[field.Name].ForceGenerate,\n\t}\n\n\tif omittable := cfg.Models[schemaType.Name].Fields[field.Name].Omittable; omittable != nil {\n\t\tf.Omittable = *omittable\n\t}\n\n\tif m.FieldHook != nil {\n\t\tmf, err := m.FieldHook(schemaType, field, f)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"generror: field %v.%v: %w\", schemaType.Name, field.Name, err)\n\t\t}\n\n\t\tif mf == nil {\n\t\t\t// the field hook wants to omit the field\n\t\t\treturn nil, nil\n\t\t}\n\n\t\tf = mf\n\t}\n\n\tif f.IsResolver && cfg.OmitResolverFields && !f.ForceGenerate {\n\t\treturn nil, nil\n\t}\n\n\tif f.Omittable {\n\t\tif schemaType.Kind != ast.InputObject || field.Type.NonNull {\n\t\t\treturn nil, fmt.Errorf(\n\t\t\t\t\"generror: field %v.%v: omittable is only applicable to nullable input fields\",\n\t\t\t\tschemaType.Name,\n\t\t\t\tfield.Name,\n\t\t\t)\n\t\t}\n\n\t\tomittableType, err := binder.FindTypeFromName(\n\t\t\t\"github.com/99designs/gqlgen/graphql.Omittable\",\n\t\t)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tf.Type, err = binder.InstantiateType(omittableType, []types.Type{f.Type})\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"generror: field %v.%v: %w\", schemaType.Name, field.Name, err)\n\t\t}\n\t}\n\n\treturn f, nil\n}\n\nfunc getExtraFields(cfg *config.Config, modelName string) []*Field {\n\tmodelcfg := cfg.Models[modelName]\n\n\textraFieldsCount := len(modelcfg.ExtraFields) + len(modelcfg.EmbedExtraFields)\n\tif extraFieldsCount == 0 {\n\t\treturn nil\n\t}\n\n\textraFields := make([]*Field, 0, extraFieldsCount)\n\n\tmakeExtraField := func(fname string, fspec config.ModelExtraField) *Field {\n\t\tftype := buildType(fspec.Type)\n\n\t\ttag := `json:\"-\"`\n\t\tif fspec.OverrideTags != \"\" {\n\t\t\ttag = fspec.OverrideTags\n\t\t}\n\n\t\treturn &Field{\n\t\t\tName:        fname,\n\t\t\tGoName:      fname,\n\t\t\tType:        ftype,\n\t\t\tDescription: fspec.Description,\n\t\t\tTag:         tag,\n\t\t}\n\t}\n\n\tif len(modelcfg.ExtraFields) > 0 {\n\t\tfor fname, fspec := range modelcfg.ExtraFields {\n\t\t\textraFields = append(extraFields, makeExtraField(fname, fspec))\n\t\t}\n\t}\n\n\tif len(modelcfg.EmbedExtraFields) > 0 {\n\t\tfor _, fspec := range modelcfg.EmbedExtraFields {\n\t\t\textraFields = append(extraFields, makeExtraField(\"\", fspec))\n\t\t}\n\t}\n\n\tsort.Slice(extraFields, func(i, j int) bool {\n\t\tif extraFields[i].Name == \"\" && extraFields[j].Name == \"\" {\n\t\t\treturn extraFields[i].Type.String() < extraFields[j].Type.String()\n\t\t}\n\n\t\tif extraFields[i].Name == \"\" {\n\t\t\treturn false\n\t\t}\n\n\t\tif extraFields[j].Name == \"\" {\n\t\t\treturn true\n\t\t}\n\n\t\treturn extraFields[i].Name < extraFields[j].Name\n\t})\n\n\treturn extraFields\n}\n\nfunc getStructTagFromField(cfg *config.Config, field *ast.FieldDefinition) string {\n\tvar tags []string\n\n\tif !field.Type.NonNull &&\n\t\t(cfg.EnableModelJsonOmitemptyTag == nil || *cfg.EnableModelJsonOmitemptyTag) {\n\t\ttags = append(tags, \"omitempty\")\n\t}\n\n\tif !field.Type.NonNull &&\n\t\t(cfg.EnableModelJsonOmitzeroTag == nil || *cfg.EnableModelJsonOmitzeroTag) {\n\t\ttags = append(tags, \"omitzero\")\n\t}\n\n\tif len(tags) > 0 {\n\t\treturn `json:\"` + field.Name + `,` + strings.Join(tags, \",\") + `\"`\n\t}\n\treturn `json:\"` + field.Name + `\"`\n}\n\n// GoTagFieldHook prepends the goTag directive to the generated Field f.\n// When applying the Tag to the field, the field\n// name is used if no value argument is present.\nfunc GoTagFieldHook(td *ast.Definition, fd *ast.FieldDefinition, f *Field) (*Field, error) {\n\targs := make([]string, 0)\n\tfor _, goTag := range fd.Directives.ForNames(\"goTag\") {\n\t\tkey := \"\"\n\t\tvalue := fd.Name\n\n\t\tif arg := goTag.Arguments.ForName(\"key\"); arg != nil {\n\t\t\tif k, err := arg.Value.Value(nil); err == nil {\n\t\t\t\tkey = k.(string)\n\t\t\t}\n\t\t}\n\n\t\tif arg := goTag.Arguments.ForName(\"value\"); arg != nil {\n\t\t\tif v, err := arg.Value.Value(nil); err == nil {\n\t\t\t\tvalue = v.(string)\n\t\t\t}\n\t\t}\n\n\t\targs = append(args, key+\":\\\"\"+value+\"\\\"\")\n\t}\n\n\tif len(args) > 0 {\n\t\tf.Tag = removeDuplicateTags(f.Tag + \" \" + strings.Join(args, \" \"))\n\t}\n\n\treturn f, nil\n}\n\n// splitTagsBySpace split tags by space, except when space is inside quotes\nfunc splitTagsBySpace(tagsString string) []string {\n\tvar tags []string\n\tvar currentTag string\n\tinQuotes := false\n\n\tfor _, c := range tagsString {\n\t\tif c == '\"' {\n\t\t\tinQuotes = !inQuotes\n\t\t}\n\t\tif c == ' ' && !inQuotes {\n\t\t\ttags = append(tags, currentTag)\n\t\t\tcurrentTag = \"\"\n\t\t} else {\n\t\t\tcurrentTag += string(c)\n\t\t}\n\t}\n\ttags = append(tags, currentTag)\n\n\treturn tags\n}\n\n// containsInvalidSpace checks if the tagsString contains invalid space\nfunc containsInvalidSpace(valuesString string) bool {\n\t// get rid of quotes\n\tvaluesString = strings.ReplaceAll(valuesString, \"\\\"\", \"\")\n\tif strings.Contains(valuesString, \",\") {\n\t\t// split by comma,\n\t\tvalues := strings.SplitSeq(valuesString, \",\")\n\t\tfor value := range values {\n\t\t\tif strings.TrimSpace(value) != value {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\treturn false\n\t}\n\tif strings.Contains(valuesString, \";\") {\n\t\t// split by semicolon, which is common in gorm\n\t\tvalues := strings.SplitSeq(valuesString, \";\")\n\t\tfor value := range values {\n\t\t\tif strings.TrimSpace(value) != value {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\treturn false\n\t}\n\t// single value\n\tif strings.TrimSpace(valuesString) != valuesString {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc removeDuplicateTags(t string) string {\n\tprocessed := make(map[string]bool)\n\ttt := splitTagsBySpace(t)\n\treturnTags := \"\"\n\n\t// iterate backwards through tags so appended goTag directives are prioritized\n\tfor i := len(tt) - 1; i >= 0; i-- {\n\t\tti := tt[i]\n\t\t// check if ti contains \":\", and not contains any empty space. if not, tag is in wrong\n\t\t// format\n\t\t// correct example: json:\"name\"\n\t\tif !strings.Contains(ti, \":\") {\n\t\t\tpanic(\n\t\t\t\tfmt.Errorf(\n\t\t\t\t\t\"wrong format of tags: %s. goTag directive should be in format: @goTag(key: \\\"something\\\", value:\\\"value\\\"), \",\n\t\t\t\t\tt,\n\t\t\t\t),\n\t\t\t)\n\t\t}\n\n\t\tkv := strings.Split(ti, \":\")\n\t\tif len(kv) == 0 || processed[kv[0]] {\n\t\t\tcontinue\n\t\t}\n\n\t\tkey := kv[0]\n\t\tvalue := strings.Join(kv[1:], \":\")\n\t\tprocessed[key] = true\n\t\tif returnTags != \"\" {\n\t\t\treturnTags = \" \" + returnTags\n\t\t}\n\n\t\tisContained := containsInvalidSpace(value)\n\t\tif isContained {\n\t\t\tpanic(\n\t\t\t\tfmt.Errorf(\n\t\t\t\t\t\"tag value should not contain any leading or trailing spaces: %s\",\n\t\t\t\t\tvalue,\n\t\t\t\t),\n\t\t\t)\n\t\t}\n\n\t\treturnTags = key + \":\" + value + returnTags\n\t}\n\n\treturn returnTags\n}\n\n// GoFieldHook is a noop\n// TODO: This will be removed in the next breaking release\nfunc GoFieldHook(td *ast.Definition, fd *ast.FieldDefinition, f *Field) (*Field, error) {\n\treturn f, nil\n}\n\nfunc isStruct(t types.Type) bool {\n\t_, is := t.Underlying().(*types.Struct)\n\treturn is\n}\n\n// findAndHandleCyclicalRelationships checks for cyclical relationships between generated structs\n// and replaces them\n// with pointers. These relationships will produce compilation errors if they are not pointers.\n// Also handles recursive structs.\nfunc findAndHandleCyclicalRelationships(b *ModelBuild) {\n\tfor ii, structA := range b.Models {\n\t\tfor _, fieldA := range structA.Fields {\n\t\t\tif strings.Contains(fieldA.Type.String(), \"NotCyclicalA\") {\n\t\t\t\tfmt.Print()\n\t\t\t}\n\t\t\tif !isStruct(fieldA.Type) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// the field Type string will be in the form\n\t\t\t// \"github.com/99designs/gqlgen/codegen/testserver/followschema.LoopA\"\n\t\t\t// we only want the part after the last dot: \"LoopA\"\n\t\t\t// this could lead to false positives, as we are only checking the name of the struct\n\t\t\t// type, but these\n\t\t\t// should be extremely rare, if it is even possible at all.\n\t\t\tfieldAStructNameParts := strings.Split(fieldA.Type.String(), \".\")\n\t\t\tfieldAStructName := fieldAStructNameParts[len(fieldAStructNameParts)-1]\n\n\t\t\t// find this struct type amongst the generated structs\n\t\t\tfor jj, structB := range b.Models {\n\t\t\t\tif structB.Name != fieldAStructName {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\t// check if structB contains a cyclical reference back to structA\n\t\t\t\tvar cyclicalReferenceFound bool\n\t\t\t\tfor _, fieldB := range structB.Fields {\n\t\t\t\t\tif !isStruct(fieldB.Type) {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\n\t\t\t\t\tfieldBStructNameParts := strings.Split(fieldB.Type.String(), \".\")\n\t\t\t\t\tfieldBStructName := fieldBStructNameParts[len(fieldBStructNameParts)-1]\n\t\t\t\t\tif fieldBStructName == structA.Name {\n\t\t\t\t\t\tcyclicalReferenceFound = true\n\t\t\t\t\t\tfieldB.Type = types.NewPointer(fieldB.Type)\n\t\t\t\t\t\t// keep looping in case this struct has additional fields of this type\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if this is a recursive struct (i.e. structA == structB), ensure that we only\n\t\t\t\t// change this field to a pointer once\n\t\t\t\tif cyclicalReferenceFound && ii != jj {\n\t\t\t\t\tfieldA.Type = types.NewPointer(fieldA.Type)\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc readModelTemplate(customModelTemplate string) string {\n\tcontentBytes, err := os.ReadFile(customModelTemplate)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn string(contentBytes)\n}\n\nfunc (m *Plugin) getInterface(\n\tcfg *config.Config,\n\tschemaType *ast.Definition,\n) (*Interface, error) {\n\tvar fields []*Field\n\tvar err error\n\tif !cfg.OmitGetters {\n\t\tfields, err = m.generateFields(cfg, schemaType, nil)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tit := &Interface{\n\t\tDescription: schemaType.Description,\n\t\tName:        schemaType.Name,\n\t\tImplements:  schemaType.Interfaces,\n\t\tFields:      fields,\n\t\tOmitCheck:   cfg.OmitInterfaceChecks,\n\t}\n\n\t// if the interface has a key directive as an entity interface, allow it to implement _Entity\n\tif schemaType.Directives.ForName(\"key\") != nil {\n\t\tit.Implements = append(it.Implements, \"_Entity\")\n\t}\n\n\treturn it, nil\n}\n\nfunc (m *Plugin) getObject(\n\tcfg *config.Config,\n\tschemaType *ast.Definition,\n\tb *ModelBuild,\n) (*Object, error) {\n\tif cfg.IsRoot(schemaType) {\n\t\tif !cfg.OmitRootModels {\n\t\t\treturn &Object{\n\t\t\t\tDescription: schemaType.Description,\n\t\t\t\tName:        schemaType.Name,\n\t\t\t}, nil\n\t\t}\n\n\t\treturn nil, nil\n\t}\n\n\tfields, err := m.generateFields(cfg, schemaType, b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tit := &Object{\n\t\tDescription: schemaType.Description,\n\t\tName:        schemaType.Name,\n\t\tFields:      fields,\n\t}\n\n\t// If Interface A implements interface B, and Interface C also implements interface B\n\t// then both A and C have methods of B.\n\t// The reason for checking unique is to prevent the same method B from being generated twice.\n\tuniqueMap := map[string]bool{}\n\tfor _, implementor := range cfg.Schema.GetImplements(schemaType) {\n\t\tif !uniqueMap[implementor.Name] {\n\t\t\tit.Implements = append(it.Implements, implementor.Name)\n\t\t\tuniqueMap[implementor.Name] = true\n\t\t}\n\t\t// for interface implements\n\t\tfor _, iface := range implementor.Interfaces {\n\t\t\tif !uniqueMap[iface] {\n\t\t\t\tit.Implements = append(it.Implements, iface)\n\t\t\t\tuniqueMap[iface] = true\n\t\t\t}\n\t\t}\n\t}\n\n\treturn it, nil\n}\n\nfunc (m *Plugin) buildBaseObjectFromSpec(\n\tcfg *config.Config,\n\tbinder *config.Binder,\n\tspec *baseStructSpec,\n) (*Object, error) {\n\tfields := make([]*Field, 0)\n\n\tfor _, parentType := range spec.ParentEmbeddings {\n\t\tfields = append(fields, &Field{\n\t\t\tName:   \"\",\n\t\t\tGoName: \"\", // Empty GoName creates anonymous embedding\n\t\t\tType:   parentType,\n\t\t})\n\t}\n\n\t// Generate fields from schema definitions\n\tfor _, fieldDef := range spec.FieldsToGenerate {\n\t\tf, err := m.generateField(cfg, binder, spec.SchemaType, fieldDef)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif f != nil {\n\t\t\tfields = append(fields, f)\n\t\t}\n\t}\n\n\tfields = append(fields, getExtraFields(cfg, spec.SchemaType.Name)...)\n\n\treturn &Object{\n\t\tDescription: spec.SchemaType.Description,\n\t\tName:        fmt.Sprintf(\"%s%s\", cfg.EmbeddedStructsPrefix, spec.SchemaType.Name),\n\t\tFields:      fields,\n\t\tImplements:  spec.ImplementsInterfaces,\n\t}, nil\n}\n"
  },
  {
    "path": "plugin/modelgen/models.gotpl",
    "content": "{{ reserveImport \"context\"  }}\n{{ reserveImport \"fmt\"  }}\n{{ reserveImport \"io\"  }}\n{{ reserveImport \"strconv\"  }}\n{{ reserveImport \"time\"  }}\n{{ reserveImport \"sync\"  }}\n{{ reserveImport \"errors\"  }}\n{{ reserveImport \"bytes\"  }}\n\n{{ reserveImport \"github.com/vektah/gqlparser/v2\" }}\n{{ reserveImport \"github.com/vektah/gqlparser/v2/ast\" }}\n{{ reserveImport \"github.com/99designs/gqlgen/graphql\" }}\n{{ reserveImport \"github.com/99designs/gqlgen/graphql/introspection\" }}\n\n{{- range $model := .Interfaces }}\n\t{{ with .Description }} {{.|prefixLines \"// \"}} {{ end }}\n\ttype {{ goModelName .Name }} interface {\n\t\t{{- if not .OmitCheck }}\n\t\t\t{{- range $impl := .Implements }}\n\t\t\t\tIs{{ goModelName $impl }}()\n\t\t\t{{- end }}\n\t\t\tIs{{ goModelName .Name }}()\n\t\t{{- end }}\n\t\t{{- range $field := .Fields }}\n\t\t\t{{- with .Description }}\n\t\t\t\t{{.|prefixLines \"// \"}}\n\t\t\t{{- end}}\n\t\t\tGet{{ $field.GoName }}() {{ $field.Type | ref }}\n\t\t{{- end }}\n\t}\n{{- end }}\n\n{{ range $model := .Models }}\n\t{{with .Description }} {{.|prefixLines \"// \"}} {{end}}\n\ttype {{ goModelName .Name }} struct {\n\t\t{{- range $field := .Fields }}\n\t\t\t{{- with .Description }}\n\t\t\t\t{{.|prefixLines \"// \"}}\n\t\t\t{{- end}}\n\t\t\t{{ if $field.GoName }}{{ $field.GoName }} {{ end }}{{$field.Type | ref}}{{ if $field.Tag }} `{{$field.Tag}}`{{ end }}\n\t\t{{- end }}\n\t}\n\n\t{{ range .Implements }}\n\t\tfunc ({{ goModelName $model.Name }}) Is{{ goModelName . }}() {}\n\t\t{{- with getInterfaceByName . }}\n\t\t\t{{- range .Fields }}\n\t\t\t\t{{- with .Description }}\n\t\t\t\t\t{{.|prefixLines \"// \"}}\n\t\t\t\t{{- end}}\n\t\t\t\t{{ generateGetter $model . }}\n\t\t\t{{- end }}\n\t\t{{- end }}\n\t{{ end }}\n{{- end}}\n\n{{ range $enum := .Enums }}\n\t{{ with .Description }} {{.|prefixLines \"// \"}} {{end}}\n\ttype {{ goModelName .Name }} string\n\tconst (\n\t{{- range $value := .Values}}\n\t\t{{- with .Description}}\n\t\t\t{{.|prefixLines \"// \"}}\n\t\t{{- end}}\n\t\t{{ goModelName $enum.Name .Name }} {{ goModelName $enum.Name }} = {{ .Name|quote }}\n\t{{- end }}\n\t)\n\n\tvar All{{ goModelName .Name }} = []{{ goModelName .Name }}{\n\t{{- range $value := .Values}}\n\t\t{{ goModelName $enum.Name .Name }},\n\t{{- end }}\n\t}\n\n\tfunc (e {{ goModelName .Name }}) IsValid() bool {\n\t\tswitch e {\n\t\tcase {{ range $index, $element := .Values}}{{if $index}},{{end}}{{ goModelName $enum.Name $element.Name }}{{end}}:\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tfunc (e {{ goModelName .Name }}) String() string {\n\t\treturn string(e)\n\t}\n\n\tfunc (e *{{ goModelName .Name }}) UnmarshalGQL(v any) error {\n\t\tstr, ok := v.(string)\n\t\tif !ok {\n\t\t\treturn fmt.Errorf(\"enums must be strings\")\n\t\t}\n\n\t\t*e = {{ goModelName .Name }}(str)\n\t\tif !e.IsValid() {\n\t\t\treturn fmt.Errorf(\"%s is not a valid {{ .Name }}\", str)\n\t\t}\n\t\treturn nil\n\t}\n\n\tfunc (e {{ goModelName .Name }}) MarshalGQL(w io.Writer) {\n\t\tfmt.Fprint(w, strconv.Quote(e.String()))\n\t}\n\t{{- if not .OmitJSONMarshalers }}\n\n\t\tfunc (e *{{ goModelName .Name }})UnmarshalJSON(b []byte) error {\n\t\t\ts, err := strconv.Unquote(string(b))\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\treturn e.UnmarshalGQL(s)\n\t\t}\n\n\t\tfunc (e {{ goModelName .Name }}) MarshalJSON() ([]byte, error) {\n\t\t\tvar buf bytes.Buffer\n\t\t\te.MarshalGQL(&buf)\n\t\t\treturn buf.Bytes(), nil\n\t\t}\n\t{{- end }}\n\n{{- end }}\n"
  },
  {
    "path": "plugin/modelgen/models_interface_embedder.go",
    "content": "package modelgen\n\nimport (\n\t\"fmt\"\n\t\"go/types\"\n\t\"log\"\n\t\"sort\"\n\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\n\t\"github.com/99designs/gqlgen/codegen/config\"\n\t\"github.com/99designs/gqlgen/codegen/templates\"\n\t\"github.com/99designs/gqlgen/internal/code\"\n)\n\n// embeddedInterfaceGenerator generates Base structs for interfaces to enable embedding.\ntype embeddedInterfaceGenerator struct {\n\tcfg        *config.Config\n\tbinder     *config.Binder\n\tschemaType *ast.Definition\n\tmodel      *ModelBuild\n\tgraph      *interfaceGraph\n}\n\nfunc newEmbeddedInterfaceGenerator(\n\tcfg *config.Config,\n\tbinder *config.Binder,\n\tschemaType *ast.Definition,\n\tmodel *ModelBuild,\n) *embeddedInterfaceGenerator {\n\treturn &embeddedInterfaceGenerator{\n\t\tcfg:        cfg,\n\t\tbinder:     binder,\n\t\tschemaType: schemaType,\n\t\tmodel:      model,\n\t\tgraph:      newInterfaceGraph(cfg.Schema),\n\t}\n}\n\n// generateAllInterfaceBaseStructs returns Base struct specs ordered with parents before children.\nfunc (g *embeddedInterfaceGenerator) generateAllInterfaceBaseStructs() ([]*baseStructSpec, error) {\n\t// Filter to only embeddable interfaces (have directive) and not bound to external packages\n\tvar interfaceNames []string\n\tfor name := range g.graph.parentInterfaces {\n\t\t// Only include interfaces with directive\n\t\tif g.graph.isEmbeddable(name) {\n\t\t\t// Skip interfaces bound to external packages - their Base structs already exist there\n\t\t\tif !g.cfg.Models.UserDefined(name) {\n\t\t\t\tinterfaceNames = append(interfaceNames, name)\n\t\t\t}\n\t\t}\n\t}\n\n\tsorted, err := g.graph.topologicalSort(interfaceNames)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to sort interfaces: %w\", err)\n\t}\n\n\tvar specs []*baseStructSpec\n\tfor _, name := range sorted {\n\t\tspec, err := g.generateBaseStructForInterface(g.cfg.Schema.Types[name])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif spec != nil {\n\t\t\tspecs = append(specs, spec)\n\t\t}\n\t}\n\n\treturn specs, nil\n}\n\n// baseStructSpec defines Base struct structure for an interface\ntype baseStructSpec struct {\n\tSchemaType           *ast.Definition\n\tParentEmbeddings     []types.Type\n\tFieldsToGenerate     []*ast.FieldDefinition\n\tImplementsInterfaces []string\n}\n\nfunc (g *embeddedInterfaceGenerator) generateBaseStructForInterface(\n\tschemaType *ast.Definition,\n) (*baseStructSpec, error) {\n\tif schemaType.Kind != ast.Interface {\n\t\treturn nil, fmt.Errorf(\n\t\t\t\"generateBaseStructForInterface called on non-interface type: %s\",\n\t\t\tschemaType.Name,\n\t\t)\n\t}\n\n\tspec := &baseStructSpec{\n\t\tSchemaType:           schemaType,\n\t\tFieldsToGenerate:     g.graph.getInterfaceOwnFields(schemaType.Name),\n\t\tImplementsInterfaces: []string{schemaType.Name},\n\t}\n\n\t// Get embeddable parents and fields from skipped intermediate parents\n\tembedInfo := g.graph.getEmbeddingInfo(schemaType.Name)\n\n\tif len(embedInfo.Parents) > 1 {\n\t\tlog.Printf(\n\t\t\t\"WARN: Base%s: implements %d interfaces %v (potential diamond problem)\",\n\t\t\tschemaType.Name,\n\t\t\tlen(embedInfo.Parents),\n\t\t\tembedInfo.Parents,\n\t\t)\n\t}\n\n\tfor _, parent := range embedInfo.Parents {\n\t\tspec.ParentEmbeddings = append(spec.ParentEmbeddings, g.createParentBaseType(parent))\n\t\tspec.ImplementsInterfaces = append(spec.ImplementsInterfaces, parent)\n\t}\n\n\t// Add fields from intermediate parents without the directive\n\tspec.FieldsToGenerate = append(spec.FieldsToGenerate, embedInfo.SkippedFields...)\n\n\treturn spec, nil\n}\n\nfunc (g *embeddedInterfaceGenerator) createParentBaseType(interfaceName string) types.Type {\n\tbaseName := templates.ToGo(fmt.Sprintf(\"%s%s\", g.cfg.EmbeddedStructsPrefix, interfaceName))\n\n\t// Check if interface is bound to external package\n\tif g.cfg.Models.UserDefined(interfaceName) {\n\t\tif models := g.cfg.Models[interfaceName]; len(models.Model) > 0 {\n\t\t\tif extType, err := g.binder.FindTypeFromName(models.Model[0]); err == nil {\n\t\t\t\tif named, ok := extType.(*types.Named); ok {\n\t\t\t\t\tif pkg := named.Obj().Pkg(); pkg != nil {\n\t\t\t\t\t\tif obj := pkg.Scope().Lookup(baseName); obj != nil {\n\t\t\t\t\t\t\tif typeObj, ok := obj.(*types.TypeName); ok {\n\t\t\t\t\t\t\t\treturn typeObj.Type()\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Default: reference local package type\n\treturn types.NewNamed(\n\t\ttypes.NewTypeName(0, g.cfg.Model.Pkg(), baseName, nil),\n\t\ttypes.NewStruct(nil, nil),\n\t\tnil,\n\t)\n}\n\n// generateEmbeddedFields returns map: field name -> embedded Base struct (or nil for subsequent\n// fields).\n// Covariant overrides prevent embedding and require explicit field generation.\nfunc (g *embeddedInterfaceGenerator) generateEmbeddedFields(\n\tfields []*ast.FieldDefinition,\n) map[string]*Field {\n\tif g.model == nil || g.schemaType.Kind != ast.Object {\n\t\treturn nil\n\t}\n\n\tcovariantInterfaces := g.findInterfacesWithCovariantOverrides(fields)\n\tresult := make(map[string]*Field)\n\tprocessed := make(map[string]bool)\n\n\tfor _, field := range fields {\n\t\tinterfaceName := g.findInterfaceForField(field)\n\t\tif interfaceName == \"\" || covariantInterfaces[interfaceName] {\n\t\t\tcontinue\n\t\t}\n\n\t\tif processed[interfaceName] {\n\t\t\tresult[field.Name] = nil // subsequent field from same interface\n\t\t} else {\n\t\t\tresult[field.Name] = &Field{Type: g.createEmbeddedBaseType(interfaceName)}\n\t\t\tprocessed[interfaceName] = true\n\t\t}\n\t}\n\n\treturn result\n}\n\nfunc (g *embeddedInterfaceGenerator) findInterfacesWithCovariantOverrides(\n\tfields []*ast.FieldDefinition,\n) map[string]bool {\n\tresult := make(map[string]bool)\n\n\tfor _, implField := range fields {\n\t\tfor _, interfaceName := range g.schemaType.Interfaces {\n\t\t\tif !g.graph.isEmbeddable(interfaceName) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tiface := g.cfg.Schema.Types[interfaceName]\n\t\t\tif iface == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tfor _, ifaceField := range iface.Fields {\n\t\t\t\tif ifaceField.Name != implField.Name ||\n\t\t\t\t\ttypesMatch(ifaceField.Type, implField.Type) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tif !result[interfaceName] {\n\t\t\t\t\tlog.Printf(\n\t\t\t\t\t\t\"WARN: %s.%s: covariant override %s -> %s (skipping Base%s embedding)\",\n\t\t\t\t\t\tg.schemaType.Name,\n\t\t\t\t\t\timplField.Name,\n\t\t\t\t\t\tifaceField.Type.Name(),\n\t\t\t\t\t\timplField.Type.Name(),\n\t\t\t\t\t\tinterfaceName,\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tresult[interfaceName] = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result\n}\n\n// findInterfaceForField returns deepest interface containing this field with matching type.\nfunc (g *embeddedInterfaceGenerator) findInterfaceForField(field *ast.FieldDefinition) string {\n\tinterfaces := g.schemaType.Interfaces\n\tif len(interfaces) == 0 {\n\t\treturn \"\"\n\t}\n\n\t// Sort deepest-first (child interfaces before parent interfaces)\n\tif len(interfaces) > 1 {\n\t\tsorted := make([]string, len(interfaces))\n\t\tcopy(sorted, interfaces)\n\t\tsort.Slice(sorted, func(i, j int) bool {\n\t\t\tdepthI := len(g.cfg.Schema.Types[sorted[i]].Interfaces)\n\t\t\tdepthJ := len(g.cfg.Schema.Types[sorted[j]].Interfaces)\n\t\t\treturn depthI > depthJ\n\t\t})\n\t\tinterfaces = sorted\n\t}\n\n\tfor _, ifaceName := range interfaces {\n\t\tif iface := g.cfg.Schema.Types[ifaceName]; iface != nil &&\n\t\t\t(iface.Kind == ast.Interface || iface.Kind == ast.Union) {\n\t\t\tif !g.graph.isEmbeddable(ifaceName) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tfor _, ifaceField := range iface.Fields {\n\t\t\t\tif ifaceField.Name == field.Name && typesMatch(ifaceField.Type, field.Type) {\n\t\t\t\t\treturn ifaceName\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn \"\"\n}\n\n// typesMatch checks if two GraphQL types are identical (same base type, nullability, and list\n// wrapping).\nfunc typesMatch(a, b *ast.Type) bool {\n\tif a.Name() != b.Name() || a.NonNull != b.NonNull {\n\t\treturn false\n\t}\n\n\t// Base type reached\n\tif a.NamedType != \"\" && b.NamedType != \"\" {\n\t\treturn true\n\t}\n\n\t// Both must be lists or both must not be lists\n\tif (a.Elem == nil) != (b.Elem == nil) {\n\t\treturn false\n\t}\n\n\t// Recursively check list element types\n\tif a.Elem != nil {\n\t\treturn typesMatch(a.Elem, b.Elem)\n\t}\n\n\treturn true\n}\n\nfunc (g *embeddedInterfaceGenerator) createEmbeddedBaseType(interfaceName string) types.Type {\n\tbaseName := templates.ToGo(fmt.Sprintf(\"%s%s\", g.cfg.EmbeddedStructsPrefix, interfaceName))\n\n\t// Check if interface is bound to external package\n\tif g.cfg.Models.UserDefined(interfaceName) {\n\t\tif pkgPath, _ := code.PkgAndType(g.cfg.Models[interfaceName].Model[0]); pkgPath != \"\" {\n\t\t\tif boundType, _ := g.binder.FindTypeFromName(\n\t\t\t\tpkgPath + \".\" + baseName,\n\t\t\t); boundType != nil {\n\t\t\t\treturn boundType\n\t\t\t}\n\t\t}\n\t}\n\n\t// Default: reference local package type\n\treturn types.NewNamed(\n\t\ttypes.NewTypeName(0, g.cfg.Model.Pkg(), baseName, nil),\n\t\ttypes.NewStruct(nil, nil),\n\t\tnil,\n\t)\n}\n"
  },
  {
    "path": "plugin/modelgen/models_interface_embedding_test.go",
    "content": "package modelgen\n\nimport (\n\t\"os\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/codegen/config\"\n)\n\nfunc TestModelGenerationNoDirective(t *testing.T) {\n\tt.Run(\"generated code does not contains Base structs\", func(t *testing.T) {\n\t\tgenerated := setupTestGeneration(t,\n\t\t\t\"testdata/interface_embedding/gqlgen_no_directive_models.yml\",\n\t\t\t\"./out_no_directive_models/\",\n\t\t\t\"./out_no_directive_models/generated_no_directive_models.go\",\n\t\t)\n\n\t\trequire.NotContains(t, generated, \"type Base\")\n\t})\n\n\tt.Run(\"graph does not have embeddable interfaces\", func(t *testing.T) {\n\t\tcfg, err := config.LoadConfig(\"testdata/interface_embedding/gqlgen_no_directive_models.yml\")\n\t\trequire.NoError(t, err)\n\t\trequire.NoError(t, cfg.Init())\n\n\t\tembedder := newEmbeddedInterfaceGenerator(cfg, cfg.NewBinder(), nil, nil)\n\t\trequire.NotEmpty(t, embedder.graph.parentInterfaces, \"graph should contain all interfaces\")\n\n\t\tfor name := range embedder.graph.parentInterfaces {\n\t\t\trequire.False(\n\t\t\t\tt,\n\t\t\t\tembedder.graph.isEmbeddable(name),\n\t\t\t\t\"interface %s should not be embeddable\",\n\t\t\t\tname,\n\t\t\t)\n\t\t}\n\t})\n}\n\nfunc TestModelGenerationDirectiveEmbedding(t *testing.T) {\n\ttestCases := []struct {\n\t\tname             string\n\t\tconfigPath       string\n\t\toutputDir        string\n\t\tgeneratedFile    string\n\t\texpectedBases    []string\n\t\tunexpectedBases  []string\n\t\tstructChecks     []structCheck\n\t\tadditionalChecks func(*testing.T, string)\n\t}{\n\t\t{\n\t\t\tname:          \"single package base type embedding\",\n\t\t\tconfigPath:    \"testdata/interface_embedding/gqlgen_directive_embedding_models.yml\",\n\t\t\toutputDir:     \"./out_directive_embedding_models/\",\n\t\t\tgeneratedFile: \"./out_directive_embedding_models/generated_directive_embedding_models.go\",\n\t\t\texpectedBases: []string{\"BaseNode\", \"BaseElement\"},\n\t\t\tstructChecks: []structCheck{\n\t\t\t\t{\"BaseElement\", []string{\"BaseNode\", \"Name\"}, nil},\n\t\t\t\t{\"BaseNode\", []string{\"ID\"}, []string{\"Name\"}},\n\t\t\t\t{\"Carbon\", []string{\"BaseElement\"}, nil},\n\t\t\t\t{\"Magnesium\", []string{\"BaseElement\"}, nil},\n\t\t\t\t{\"Potassium\", []string{\"BaseElement\"}, nil},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname:            \"binded package type embedding\",\n\t\t\tconfigPath:      \"testdata/interface_embedding/gqlgen_directive_binding_models.yml\",\n\t\t\toutputDir:       \"./out_directive_binding_models/\",\n\t\t\tgeneratedFile:   \"./out_directive_binding_models/generated_directive_binding_models.go\",\n\t\t\tunexpectedBases: []string{\"BaseElement\", \"BaseNode\"},\n\t\t\tstructChecks: []structCheck{\n\t\t\t\t{\"Oxygen\", []string{\"out_directive_embedding_models.BaseElement\", \"Purity\"}, nil},\n\t\t\t\t{\"Molecule\", []string{\"out_directive_embedding_models.BaseNode\"}, nil},\n\t\t\t},\n\t\t\tadditionalChecks: func(t *testing.T, generated string) {\n\t\t\t\tt.Helper()\n\t\t\t\trequire.Contains(\n\t\t\t\t\tt,\n\t\t\t\t\tgenerated,\n\t\t\t\t\t\"github.com/99designs/gqlgen/plugin/modelgen/out_directive_embedding_models\",\n\t\t\t\t)\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tc := range testCases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tgenerated := setupTestGeneration(t, tc.configPath, tc.outputDir, tc.generatedFile)\n\n\t\t\tassertBaseStructPresence(t, generated, tc.expectedBases, tc.unexpectedBases)\n\n\t\t\tfor _, check := range tc.structChecks {\n\t\t\t\tassertStructFields(\n\t\t\t\t\tt,\n\t\t\t\t\tgenerated,\n\t\t\t\t\tcheck.structName,\n\t\t\t\t\tcheck.mustContain,\n\t\t\t\t\tcheck.mustNotContain,\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tif tc.additionalChecks != nil {\n\t\t\t\ttc.additionalChecks(t, generated)\n\t\t\t}\n\n\t\t\tcfg, err := config.LoadConfig(tc.configPath)\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.NoError(t, cfg.Init())\n\n\t\t\tembedder := newEmbeddedInterfaceGenerator(cfg, cfg.NewBinder(), nil, nil)\n\t\t\tspecs, err := embedder.generateAllInterfaceBaseStructs()\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Len(t, specs, len(tc.expectedBases))\n\t\t})\n\t}\n}\n\ntype structCheck struct {\n\tstructName     string\n\tmustContain    []string\n\tmustNotContain []string\n}\n\nfunc TestModelGenerationDirectiveCovariantTypes(t *testing.T) {\n\tgenerated := setupTestGeneration(t,\n\t\t\"testdata/interface_embedding/gqlgen_directive_covariant_types.yml\",\n\t\t\"./out_covariant_types/\",\n\t\t\"./out_covariant_types/generated_covariant_types.go\",\n\t)\n\n\tt.Run(\"ProductNode uses ProductNodeData not embedded BaseNode\", func(t *testing.T) {\n\t\tassertStructFields(t, generated, \"ProductNode\",\n\t\t\t[]string{\"ID\", \"Type\", \"*ProductNodeData\", \"ProductTitle\"},\n\t\t\t[]string{\"BaseNode\"},\n\t\t)\n\t})\n\n\tt.Run(\"ExtendedProductNode has covariant override for data\", func(t *testing.T) {\n\t\tassertStructFields(t, generated, \"ExtendedProductNode\",\n\t\t\t[]string{\"ID\", \"Type\", \"*ProductNodeData\", \"*ProductTags\"},\n\t\t\t[]string{\"BaseNode\"},\n\t\t)\n\t})\n\n\tt.Run(\"ProductNodeData also handles covariant overrides\", func(t *testing.T) {\n\t\tassertStructFields(t, generated, \"ProductNodeData\",\n\t\t\t[]string{\"BaseNodeData\", \"ProductSpecificField\"},\n\t\t\tnil,\n\t\t)\n\t})\n}\n\nfunc TestModelGenerationSkippedParents(t *testing.T) {\n\ttestCases := []struct {\n\t\tname            string\n\t\tconfigPath      string\n\t\toutputDir       string\n\t\tgeneratedFile   string\n\t\texpectedBases   []string\n\t\tunexpectedBases []string\n\t\tstructChecks    []structCheck\n\t}{\n\t\t{\n\t\t\tname:            \"skipped parents with A->B->C hierarchy\",\n\t\t\tconfigPath:      \"testdata/interface_embedding/gqlgen_directive_skipped_parents.yml\",\n\t\t\toutputDir:       \"./out_directive_skipped_parents/\",\n\t\t\tgeneratedFile:   \"./out_directive_skipped_parents/generated_directive_skipped_parents.go\",\n\t\t\texpectedBases:   []string{\"BaseA\", \"BaseC\"},\n\t\t\tunexpectedBases: []string{\"BaseB\"},\n\t\t\tstructChecks: []structCheck{\n\t\t\t\t{\"BaseC\", []string{\"BaseA\", \"FieldB\"}, []string{\"BaseB\"}},\n\t\t\t\t{\"ConcreteC\", []string{\"BaseC\"}, nil},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname:            \"partial directive with Node->Element->Metal hierarchy\",\n\t\t\tconfigPath:      \"testdata/interface_embedding/gqlgen_directive_partial.yml\",\n\t\t\toutputDir:       \"./out_directive_partial/\",\n\t\t\tgeneratedFile:   \"./out_directive_partial/generated_directive_partial.go\",\n\t\t\texpectedBases:   []string{\"BaseNode\", \"BaseMetal\"},\n\t\t\tunexpectedBases: []string{\"BaseElement\"},\n\t\t\tstructChecks: []structCheck{\n\t\t\t\t{\"BaseMetal\", []string{\"BaseNode\", \"Name\"}, []string{\"BaseElement\"}},\n\t\t\t\t{\"Gold\", []string{\"BaseMetal\"}, nil},\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tc := range testCases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tgenerated := setupTestGeneration(t, tc.configPath, tc.outputDir, tc.generatedFile)\n\n\t\t\tassertBaseStructPresence(t, generated, tc.expectedBases, tc.unexpectedBases)\n\n\t\t\tfor _, check := range tc.structChecks {\n\t\t\t\tassertStructFields(\n\t\t\t\t\tt,\n\t\t\t\t\tgenerated,\n\t\t\t\t\tcheck.structName,\n\t\t\t\t\tcheck.mustContain,\n\t\t\t\t\tcheck.mustNotContain,\n\t\t\t\t)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestModelGenerationDirectiveDiamond(t *testing.T) {\n\tgenerated := setupTestGeneration(t,\n\t\t\"testdata/interface_embedding/gqlgen_directive_diamond.yml\",\n\t\t\"./out_directive_diamond/\",\n\t\t\"./out_directive_diamond/generated_directive_diamond.go\",\n\t)\n\n\tassertBaseStructPresence(t, generated,\n\t\t[]string{\"BaseHasID\", \"BaseHasIdentifier\", \"BaseConflicting\", \"BaseNoConflict\"},\n\t\t[]string{\"BaseHasName\", \"BaseHasTitle\"},\n\t)\n\n\tassertStructFields(t, generated, \"BaseConflicting\",\n\t\t[]string{\"BaseHasID\", \"BaseHasIdentifier\"},\n\t\tnil,\n\t)\n\n\tassertStructFields(t, generated, \"BaseNoConflict\",\n\t\t[]string{\"Name\", \"Title\"},\n\t\tnil,\n\t)\n}\n\nfunc setupTestGeneration(t *testing.T, configPath, outputDir, generatedFile string) string {\n\tt.Helper()\n\tcfg, err := config.LoadConfig(configPath)\n\trequire.NoError(t, err)\n\trequire.NoError(t, cfg.Init())\n\tp := Plugin{\n\t\tFieldHook: DefaultFieldMutateHook,\n\t}\n\trequire.NoError(t, p.MutateConfig(cfg))\n\trequire.NoError(t, goBuild(t, outputDir))\n\tgenerated, err := os.ReadFile(generatedFile)\n\trequire.NoError(t, err)\n\treturn string(generated)\n}\n\nfunc assertBaseStructPresence(\n\tt *testing.T,\n\tgenerated string,\n\texpectedBases, unexpectedBases []string,\n) {\n\tt.Helper()\n\tfor _, base := range expectedBases {\n\t\trequire.Contains(t, generated, \"type \"+base, \"Expected Base struct %s to be present\", base)\n\t}\n\tfor _, base := range unexpectedBases {\n\t\trequire.NotContains(\n\t\t\tt,\n\t\t\tgenerated,\n\t\t\t\"type \"+base,\n\t\t\t\"Expected Base struct %s to be absent\",\n\t\t\tbase,\n\t\t)\n\t}\n}\n\nfunc assertStructFields(\n\tt *testing.T,\n\tgenerated, structName string,\n\tmustContain, mustNotContain []string,\n) {\n\tt.Helper()\n\tstructStr := getStringInBetween(generated, \"type \"+structName+\" struct {\", \"}\")\n\trequire.NotEmpty(t, structStr, \"Struct %s should exist\", structName)\n\tfor _, field := range mustContain {\n\t\trequire.Contains(\n\t\t\tt,\n\t\t\tstructStr,\n\t\t\tfield,\n\t\t\t\"Struct %s should contain field %s\",\n\t\t\tstructName,\n\t\t\tfield,\n\t\t)\n\t}\n\tfor _, field := range mustNotContain {\n\t\trequire.NotContains(\n\t\t\tt,\n\t\t\tstructStr,\n\t\t\tfield,\n\t\t\t\"Struct %s should not contain field %s\",\n\t\t\tstructName,\n\t\t\tfield,\n\t\t)\n\t}\n}\n"
  },
  {
    "path": "plugin/modelgen/models_test.go",
    "content": "package modelgen\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"go/ast\"\n\t\"go/parser\"\n\t\"go/token\"\n\t\"os\"\n\t\"os/exec\"\n\t\"path/filepath\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/99designs/gqlgen/codegen/config\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/plugin/modelgen/internal/extrafields\"\n\t\"github.com/99designs/gqlgen/plugin/modelgen/out\"\n\t\"github.com/99designs/gqlgen/plugin/modelgen/out_enable_model_json_omitempty_tag_false\"\n\t\"github.com/99designs/gqlgen/plugin/modelgen/out_enable_model_json_omitempty_tag_false_omitzero_tag_false\"\n\t\"github.com/99designs/gqlgen/plugin/modelgen/out_enable_model_json_omitempty_tag_false_omitzero_tag_nil\"\n\t\"github.com/99designs/gqlgen/plugin/modelgen/out_enable_model_json_omitempty_tag_false_omitzero_tag_true\"\n\t\"github.com/99designs/gqlgen/plugin/modelgen/out_enable_model_json_omitempty_tag_nil\"\n\t\"github.com/99designs/gqlgen/plugin/modelgen/out_enable_model_json_omitempty_tag_true\"\n\t\"github.com/99designs/gqlgen/plugin/modelgen/out_enable_model_json_omitzero_tag_false\"\n\t\"github.com/99designs/gqlgen/plugin/modelgen/out_enable_model_json_omitzero_tag_nil\"\n\t\"github.com/99designs/gqlgen/plugin/modelgen/out_enable_model_json_omitzero_tag_true\"\n\t\"github.com/99designs/gqlgen/plugin/modelgen/out_nullable_input_omittable\"\n\t\"github.com/99designs/gqlgen/plugin/modelgen/out_struct_pointers\"\n)\n\nfunc TestModelGeneration(t *testing.T) {\n\tcfg, err := config.LoadConfig(\"testdata/gqlgen.yml\")\n\trequire.NoError(t, err)\n\trequire.NoError(t, cfg.Init())\n\tp := Plugin{\n\t\tMutateHook: mutateHook,\n\t\tFieldHook:  DefaultFieldMutateHook,\n\t}\n\trequire.NoError(t, p.MutateConfig(cfg))\n\trequire.NoError(t, goBuild(t, \"./out/\"))\n\n\trequire.True(t, cfg.Models.UserDefined(\"MissingTypeNotNull\"))\n\trequire.True(t, cfg.Models.UserDefined(\"MissingTypeNullable\"))\n\trequire.True(t, cfg.Models.UserDefined(\"MissingEnum\"))\n\trequire.True(t, cfg.Models.UserDefined(\"MissingUnion\"))\n\trequire.True(t, cfg.Models.UserDefined(\"MissingInterface\"))\n\trequire.True(t, cfg.Models.UserDefined(\"TypeWithDescription\"))\n\trequire.True(t, cfg.Models.UserDefined(\"EnumWithDescription\"))\n\trequire.True(t, cfg.Models.UserDefined(\"InterfaceWithDescription\"))\n\trequire.True(t, cfg.Models.UserDefined(\"UnionWithDescription\"))\n\trequire.True(t, cfg.Models.UserDefined(\"RenameFieldTest\"))\n\trequire.True(t, cfg.Models.UserDefined(\"ExtraFieldsTest\"))\n\n\tt.Run(\"no pointer pointers\", func(t *testing.T) {\n\t\tgenerated, err := os.ReadFile(\"./out/generated.go\")\n\t\trequire.NoError(t, err)\n\t\trequire.NotContains(t, string(generated), \"**\")\n\t})\n\n\tt.Run(\"description is generated\", func(t *testing.T) {\n\t\tnode, err := parser.ParseFile(\n\t\t\ttoken.NewFileSet(),\n\t\t\t\"./out/generated.go\",\n\t\t\tnil,\n\t\t\tparser.ParseComments,\n\t\t)\n\t\trequire.NoError(t, err)\n\t\tfor _, commentGroup := range node.Comments {\n\t\t\ttext := commentGroup.Text()\n\t\t\twords := strings.Split(text, \" \")\n\t\t\trequire.Greaterf(\n\t\t\t\tt,\n\t\t\t\tlen(words),\n\t\t\t\t1,\n\t\t\t\t\"expected description %q to have more than one word\",\n\t\t\t\ttext,\n\t\t\t)\n\t\t}\n\t})\n\n\tt.Run(\"tags are applied\", func(t *testing.T) {\n\t\tfile, err := os.ReadFile(\"./out/generated.go\")\n\t\trequire.NoError(t, err)\n\n\t\tfileText := string(file)\n\n\t\texpectedTags := []string{\n\t\t\t`json:\"missing2\" database:\"MissingTypeNotNullmissing2\"`,\n\t\t\t`json:\"name,omitempty\" database:\"MissingInputname\"`,\n\t\t\t`json:\"missing2,omitempty\" database:\"MissingTypeNullablemissing2\"`,\n\t\t\t`json:\"name,omitempty\" database:\"TypeWithDescriptionname\"`,\n\t\t}\n\n\t\tfor _, tag := range expectedTags {\n\t\t\trequire.Contains(t, fileText, tag, \"\\nexpected:\\n\"+tag+\"\\ngot\\n\"+fileText)\n\t\t}\n\t})\n\n\tt.Run(\"field hooks are applied\", func(t *testing.T) {\n\t\tfile, err := os.ReadFile(\"./out/generated.go\")\n\t\trequire.NoError(t, err)\n\n\t\tfileText := string(file)\n\n\t\texpectedTags := []string{\n\t\t\t`json:\"name,omitempty\" anotherTag:\"tag\"`,\n\t\t\t`json:\"enum,omitempty\" yetAnotherTag:\"12\"`,\n\t\t\t`json:\"noVal,omitempty\" yaml:\"noVal\" repeated:\"true\"`,\n\t\t\t`json:\"repeated,omitempty\" someTag:\"value\" repeated:\"true\"`,\n\t\t}\n\n\t\tfor _, tag := range expectedTags {\n\t\t\trequire.Contains(t, fileText, tag, \"\\nexpected:\\n\"+tag+\"\\ngot\\n\"+fileText)\n\t\t}\n\t})\n\n\tt.Run(\"concrete types implement interface\", func(t *testing.T) {\n\t\tvar _ out.FooBarer = out.FooBarr{}\n\t})\n\n\tt.Run(\"implemented interfaces\", func(t *testing.T) {\n\t\tpkg, err := parseAst(\"out\")\n\t\trequire.NoError(t, err)\n\n\t\tpath := filepath.Join(\"out\", \"generated.go\")\n\t\tgenerated := pkg.Files[path]\n\n\t\ttype field struct {\n\t\t\ttyp  string\n\t\t\tname string\n\t\t}\n\t\tcases := []struct {\n\t\t\tname       string\n\t\t\twantFields []field\n\t\t}{\n\t\t\t{\n\t\t\t\tname: \"A\",\n\t\t\t\twantFields: []field{\n\t\t\t\t\t{\n\t\t\t\t\t\ttyp:  \"method\",\n\t\t\t\t\t\tname: \"IsA\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ttyp:  \"method\",\n\t\t\t\t\t\tname: \"GetA\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"B\",\n\t\t\t\twantFields: []field{\n\t\t\t\t\t{\n\t\t\t\t\t\ttyp:  \"method\",\n\t\t\t\t\t\tname: \"IsB\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ttyp:  \"method\",\n\t\t\t\t\t\tname: \"GetB\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"C\",\n\t\t\t\twantFields: []field{\n\t\t\t\t\t{\n\t\t\t\t\t\ttyp:  \"method\",\n\t\t\t\t\t\tname: \"IsA\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ttyp:  \"method\",\n\t\t\t\t\t\tname: \"IsC\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ttyp:  \"method\",\n\t\t\t\t\t\tname: \"GetA\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ttyp:  \"method\",\n\t\t\t\t\t\tname: \"GetC\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"D\",\n\t\t\t\twantFields: []field{\n\t\t\t\t\t{\n\t\t\t\t\t\ttyp:  \"method\",\n\t\t\t\t\t\tname: \"IsA\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ttyp:  \"method\",\n\t\t\t\t\t\tname: \"IsB\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ttyp:  \"method\",\n\t\t\t\t\t\tname: \"IsD\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ttyp:  \"method\",\n\t\t\t\t\t\tname: \"GetA\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ttyp:  \"method\",\n\t\t\t\t\t\tname: \"GetB\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ttyp:  \"method\",\n\t\t\t\t\t\tname: \"GetD\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\t\tfor _, tc := range cases {\n\t\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t\ttypeSpec, ok := generated.Scope.Lookup(tc.name).Decl.(*ast.TypeSpec)\n\t\t\t\trequire.True(t, ok)\n\n\t\t\t\tfields := typeSpec.Type.(*ast.InterfaceType).Methods.List\n\t\t\t\tfor i, want := range tc.wantFields {\n\t\t\t\t\tif want.typ == \"ident\" {\n\t\t\t\t\t\tident, ok := fields[i].Type.(*ast.Ident)\n\t\t\t\t\t\trequire.True(t, ok)\n\t\t\t\t\t\tassert.Equal(t, want.name, ident.Name)\n\t\t\t\t\t}\n\t\t\t\t\tif want.typ == \"method\" {\n\t\t\t\t\t\trequire.GreaterOrEqual(t, 1, len(fields[i].Names))\n\t\t\t\t\t\tname := fields[i].Names[0].Name\n\t\t\t\t\t\tassert.Equal(t, want.name, name)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t})\n\n\tt.Run(\"implemented interfaces type CDImplemented\", func(t *testing.T) {\n\t\tpkg, err := parseAst(\"out\")\n\t\trequire.NoError(t, err)\n\n\t\tpath := filepath.Join(\"out\", \"generated.go\")\n\t\tgenerated := pkg.Files[path]\n\n\t\twantMethods := []string{\n\t\t\t\"IsA\",\n\t\t\t\"IsB\",\n\t\t\t\"IsC\",\n\t\t\t\"IsD\",\n\t\t}\n\n\t\tgots := make([]string, 0, len(wantMethods))\n\t\tfor _, decl := range generated.Decls {\n\t\t\tif funcDecl, ok := decl.(*ast.FuncDecl); ok {\n\t\t\t\tswitch funcDecl.Name.Name {\n\t\t\t\tcase \"IsA\", \"IsB\", \"IsC\", \"IsD\":\n\t\t\t\t\tgots = append(gots, funcDecl.Name.Name)\n\t\t\t\t\trequire.Len(t, funcDecl.Recv.List, 1)\n\t\t\t\t\trecvIdent, ok := funcDecl.Recv.List[0].Type.(*ast.Ident)\n\t\t\t\t\trequire.True(t, ok)\n\t\t\t\t\trequire.Equal(t, \"CDImplemented\", recvIdent.Name)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tsort.Strings(gots)\n\t\trequire.Equal(t, wantMethods, gots)\n\t})\n\n\tt.Run(\"cyclical struct fields become pointers\", func(t *testing.T) {\n\t\trequire.Nil(t, out.CyclicalA{}.FieldOne)\n\t\trequire.Nil(t, out.CyclicalA{}.FieldTwo)\n\t\trequire.Nil(t, out.CyclicalA{}.FieldThree)\n\t\trequire.NotNil(t, out.CyclicalA{}.FieldFour)\n\t\trequire.Nil(t, out.CyclicalB{}.FieldOne)\n\t\trequire.Nil(t, out.CyclicalB{}.FieldTwo)\n\t\trequire.Nil(t, out.CyclicalB{}.FieldThree)\n\t\trequire.Nil(t, out.CyclicalB{}.FieldFour)\n\t\trequire.NotNil(t, out.CyclicalB{}.FieldFive)\n\t})\n\n\tt.Run(\"non-cyclical struct fields become pointers\", func(t *testing.T) {\n\t\trequire.NotNil(t, out.NotCyclicalB{}.FieldOne)\n\t\trequire.Nil(t, out.NotCyclicalB{}.FieldTwo)\n\t})\n\n\tt.Run(\"recursive struct fields become pointers\", func(t *testing.T) {\n\t\trequire.Nil(t, out.Recursive{}.FieldOne)\n\t\trequire.Nil(t, out.Recursive{}.FieldTwo)\n\t\trequire.Nil(t, out.Recursive{}.FieldThree)\n\t\trequire.NotNil(t, out.Recursive{}.FieldFour)\n\t})\n\n\tt.Run(\"overridden struct field names use same capitalization as config\", func(t *testing.T) {\n\t\trequire.NotNil(t, out.RenameFieldTest{}.GOODnaME)\n\t})\n\n\tt.Run(\"nullable input fields can be made omittable with goField\", func(t *testing.T) {\n\t\trequire.IsType(t, graphql.Omittable[*string]{}, out.MissingInput{}.NullString)\n\t\trequire.IsType(t, graphql.Omittable[*out.MissingEnum]{}, out.MissingInput{}.NullEnum)\n\t\trequire.IsType(t, graphql.Omittable[*out.ExistingInput]{}, out.MissingInput{}.NullObject)\n\t})\n\n\tt.Run(\"extra fields are present\", func(t *testing.T) {\n\t\tvar m out.ExtraFieldsTest\n\n\t\trequire.IsType(t, int64(0), m.FieldInt)\n\t\trequire.IsType(t, extrafields.Type{}, m.FieldInternalType)\n\t\trequire.IsType(t, m.FieldStringPtr, new(string))\n\t\trequire.IsType(t, []int64{}, m.FieldIntSlice)\n\t})\n}\n\nfunc TestModelGenerationConflictingTypes(t *testing.T) {\n\tcfg, err := config.LoadConfig(\"testdata/gqlgen_conflicting_types.yml\")\n\trequire.NoError(t, err)\n\trequire.NoError(t, cfg.Init())\n\tp := Plugin{\n\t\tMutateHook: mutateHook,\n\t\tFieldHook:  DefaultFieldMutateHook,\n\t}\n\trequire.NoError(t, p.MutateConfig(cfg))\n\trequire.NoError(t, goBuild(t, \"./out_conflicting_types/\"))\n\tgenerated, err := os.ReadFile(\"./out_conflicting_types/generated.go\")\n\trequire.NoError(t, err)\n\n\t// Depending on the order of the fields in the schema, the generated code will be different\n\twithoutUnderscore := \"FooBar0\"\n\twithUnderscore := \"FooBar\"\n\tif strings.Contains(string(generated), `type FooBar struct {\n\tWithoutUnderscore *bool`) {\n\t\twithoutUnderscore = \"FooBar\"\n\t\twithUnderscore = \"FooBar0\"\n\t}\n\trequire.Contains(t, string(generated), \"WantWithoutUnderscore *\"+withoutUnderscore+\" \")\n\trequire.Contains(t, string(generated), \"WantWithUnderscore *\"+withUnderscore+\" \")\n}\n\nfunc TestModelGenerationOmitRootModels(t *testing.T) {\n\tcfg, err := config.LoadConfig(\"testdata/gqlgen_omit_root_models.yml\")\n\trequire.NoError(t, err)\n\trequire.NoError(t, cfg.Init())\n\tp := Plugin{\n\t\tMutateHook: mutateHook,\n\t\tFieldHook:  DefaultFieldMutateHook,\n\t}\n\trequire.NoError(t, p.MutateConfig(cfg))\n\trequire.NoError(t, goBuild(t, \"./out/\"))\n\tgenerated, err := os.ReadFile(\"./out/generated_omit_root_models.go\")\n\trequire.NoError(t, err)\n\trequire.NotContains(t, string(generated), \"type Mutation struct\")\n\trequire.NotContains(t, string(generated), \"type Query struct\")\n\trequire.NotContains(t, string(generated), \"type Subscription struct\")\n}\n\nfunc TestModelGenerationOmitEnumJSONMarshalers(t *testing.T) {\n\tcfg, err := config.LoadConfig(\"testdata/gqlgen_omit_json_marshalers.yml\")\n\trequire.NoError(t, err)\n\trequire.NoError(t, cfg.Init())\n\tp := Plugin{\n\t\tMutateHook: mutateHook,\n\t\tFieldHook:  DefaultFieldMutateHook,\n\t}\n\trequire.NoError(t, p.MutateConfig(cfg))\n\trequire.NoError(t, goBuild(t, \"./out_omit_json_enum_marshalers/\"))\n\tgenerated, err := os.ReadFile(\"./out_omit_json_enum_marshalers/generated.go\")\n\trequire.NoError(t, err)\n\trequire.NotContains(t, string(generated), \"MarshalJSON\")\n\trequire.NotContains(t, string(generated), \"UnmarshalJSON\")\n}\n\nfunc TestModelGenerationOmitResolverFields(t *testing.T) {\n\tcfg, err := config.LoadConfig(\"testdata/gqlgen_omit_resolver_fields.yml\")\n\trequire.NoError(t, err)\n\trequire.NoError(t, cfg.Init())\n\tp := Plugin{\n\t\tMutateHook: mutateHook,\n\t\tFieldHook:  DefaultFieldMutateHook,\n\t}\n\trequire.NoError(t, p.MutateConfig(cfg))\n\trequire.NoError(t, goBuild(t, \"./out_omit_resolver_fields/\"))\n\tgenerated, err := os.ReadFile(\"./out_omit_resolver_fields/generated.go\")\n\trequire.NoError(t, err)\n\trequire.Contains(t, string(generated), \"type Base struct\")\n\trequire.Contains(t, string(generated), \"StandardField\")\n\trequire.NotContains(t, string(generated), \"ResolverField\")\n\t// ForceGeneratedField should be present because forceGenerate: true overrides OmitResolverFields\n\trequire.Contains(t, string(generated), \"ForceGeneratedField\")\n}\n\nfunc TestModelGenerationStructFieldPointers(t *testing.T) {\n\tcfg, err := config.LoadConfig(\"testdata/gqlgen_struct_field_pointers.yml\")\n\trequire.NoError(t, err)\n\trequire.NoError(t, cfg.Init())\n\tp := Plugin{\n\t\tMutateHook: mutateHook,\n\t\tFieldHook:  DefaultFieldMutateHook,\n\t}\n\trequire.NoError(t, p.MutateConfig(cfg))\n\n\tt.Run(\"no pointer pointers\", func(t *testing.T) {\n\t\tgenerated, err := os.ReadFile(\"./out_struct_pointers/generated.go\")\n\t\trequire.NoError(t, err)\n\t\trequire.NotContains(t, string(generated), \"**\")\n\t})\n\n\tt.Run(\"cyclical struct fields become pointers\", func(t *testing.T) {\n\t\trequire.Nil(t, out_struct_pointers.CyclicalA{}.FieldOne)\n\t\trequire.Nil(t, out_struct_pointers.CyclicalA{}.FieldTwo)\n\t\trequire.Nil(t, out_struct_pointers.CyclicalA{}.FieldThree)\n\t\trequire.NotNil(t, out_struct_pointers.CyclicalA{}.FieldFour)\n\t\trequire.Nil(t, out_struct_pointers.CyclicalB{}.FieldOne)\n\t\trequire.Nil(t, out_struct_pointers.CyclicalB{}.FieldTwo)\n\t\trequire.Nil(t, out_struct_pointers.CyclicalB{}.FieldThree)\n\t\trequire.Nil(t, out_struct_pointers.CyclicalB{}.FieldFour)\n\t\trequire.NotNil(t, out_struct_pointers.CyclicalB{}.FieldFive)\n\t})\n\n\tt.Run(\"non-cyclical struct fields do not become pointers\", func(t *testing.T) {\n\t\trequire.NotNil(t, out_struct_pointers.NotCyclicalB{}.FieldOne)\n\t\trequire.NotNil(t, out_struct_pointers.NotCyclicalB{}.FieldTwo)\n\t})\n\n\tt.Run(\"recursive struct fields become pointers\", func(t *testing.T) {\n\t\trequire.Nil(t, out_struct_pointers.Recursive{}.FieldOne)\n\t\trequire.Nil(t, out_struct_pointers.Recursive{}.FieldTwo)\n\t\trequire.Nil(t, out_struct_pointers.Recursive{}.FieldThree)\n\t\trequire.NotNil(t, out_struct_pointers.Recursive{}.FieldFour)\n\t})\n\n\tt.Run(\"no getters\", func(t *testing.T) {\n\t\tgenerated, err := os.ReadFile(\"./out_struct_pointers/generated.go\")\n\t\trequire.NoError(t, err)\n\t\trequire.NotContains(t, string(generated), \"func (this\")\n\t})\n}\n\nfunc TestModelGenerationNullableInputOmittable(t *testing.T) {\n\tcfg, err := config.LoadConfig(\"testdata/gqlgen_nullable_input_omittable.yml\")\n\trequire.NoError(t, err)\n\trequire.NoError(t, cfg.Init())\n\tp := Plugin{\n\t\tMutateHook: mutateHook,\n\t\tFieldHook:  DefaultFieldMutateHook,\n\t}\n\trequire.NoError(t, p.MutateConfig(cfg))\n\n\tt.Run(\"nullable input fields are omittable\", func(t *testing.T) {\n\t\trequire.IsType(\n\t\t\tt,\n\t\t\tgraphql.Omittable[*string]{},\n\t\t\tout_nullable_input_omittable.MissingInput{}.Name,\n\t\t)\n\t\trequire.IsType(\n\t\t\tt,\n\t\t\tgraphql.Omittable[*out_nullable_input_omittable.MissingEnum]{},\n\t\t\tout_nullable_input_omittable.MissingInput{}.Enum,\n\t\t)\n\t\trequire.IsType(\n\t\t\tt,\n\t\t\tgraphql.Omittable[*string]{},\n\t\t\tout_nullable_input_omittable.MissingInput{}.NullString,\n\t\t)\n\t\trequire.IsType(\n\t\t\tt,\n\t\t\tgraphql.Omittable[*out_nullable_input_omittable.MissingEnum]{},\n\t\t\tout_nullable_input_omittable.MissingInput{}.NullEnum,\n\t\t)\n\t\trequire.IsType(\n\t\t\tt,\n\t\t\tgraphql.Omittable[*out_nullable_input_omittable.ExistingInput]{},\n\t\t\tout_nullable_input_omittable.MissingInput{}.NullObject,\n\t\t)\n\t})\n\n\tt.Run(\"non-nullable input fields are not omittable\", func(t *testing.T) {\n\t\trequire.IsType(t, \"\", out_nullable_input_omittable.MissingInput{}.NonNullString)\n\t})\n}\n\nfunc TestModelGenerationOmitemptyConfig(t *testing.T) {\n\tsuites := []struct {\n\t\tn       string\n\t\tcfg     string\n\t\tenabled bool\n\t\tt       any\n\t}{\n\t\t{\n\t\t\tn:       \"nil\",\n\t\t\tcfg:     \"gqlgen_enable_model_json_omitempty_tag_nil.yml\",\n\t\t\tenabled: true,\n\t\t\tt:       out_enable_model_json_omitempty_tag_nil.OmitEmptyJSONTagTest{},\n\t\t},\n\t\t{\n\t\t\tn:       \"true\",\n\t\t\tcfg:     \"gqlgen_enable_model_json_omitempty_tag_true.yml\",\n\t\t\tenabled: true,\n\t\t\tt:       out_enable_model_json_omitempty_tag_true.OmitEmptyJSONTagTest{},\n\t\t},\n\t\t{\n\t\t\tn:       \"false\",\n\t\t\tcfg:     \"gqlgen_enable_model_json_omitempty_tag_false.yml\",\n\t\t\tenabled: false,\n\t\t\tt:       out_enable_model_json_omitempty_tag_false.OmitEmptyJSONTagTest{},\n\t\t},\n\t}\n\n\tfor _, s := range suites {\n\t\tt.Run(s.n, func(t *testing.T) {\n\t\t\tcfg, err := config.LoadConfig(fmt.Sprintf(\"testdata/%s\", s.cfg))\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.NoError(t, cfg.Init())\n\t\t\tp := Plugin{\n\t\t\t\tMutateHook: mutateHook,\n\t\t\t\tFieldHook:  DefaultFieldMutateHook,\n\t\t\t}\n\t\t\trequire.NoError(t, p.MutateConfig(cfg))\n\t\t\trt := reflect.TypeOf(s.t)\n\n\t\t\t// ensure non-nullable fields are never omitempty\n\t\t\tsfn, ok := rt.FieldByName(\"ValueNonNil\")\n\t\t\trequire.True(t, ok)\n\t\t\trequire.Equal(t, \"ValueNonNil\", sfn.Tag.Get(\"json\"))\n\n\t\t\t// test nullable fields for configured omitempty\n\t\t\tsf, ok := rt.FieldByName(\"Value\")\n\t\t\trequire.True(t, ok)\n\n\t\t\tvar expected string\n\t\t\tif s.enabled {\n\t\t\t\texpected = \"Value,omitempty\"\n\t\t\t} else {\n\t\t\t\texpected = \"Value\"\n\t\t\t}\n\t\t\trequire.Equal(t, expected, sf.Tag.Get(\"json\"))\n\t\t})\n\t}\n}\n\nfunc TestModelGenerationOmitzeroConfig(t *testing.T) {\n\tsuites := []struct {\n\t\tn        string\n\t\tcfg      string\n\t\texpected string\n\t\tt        any\n\t\toutPath  string\n\t}{\n\t\t{\n\t\t\tn:        \"omitempty nil and omomitzero nil\",\n\t\t\tcfg:      \"gqlgen_enable_model_json_omitzero_tag_nil.yml\",\n\t\t\texpected: \"Value,omitempty\",\n\t\t\tt:        out_enable_model_json_omitzero_tag_nil.OmitZeroJSONTagTest{},\n\t\t\toutPath:  \"./out_enable_model_json_omitzero_tag_nil/\",\n\t\t},\n\t\t{\n\t\t\tn:        \"omitempty nil and omomitzero true\",\n\t\t\tcfg:      \"gqlgen_enable_model_json_omitzero_tag_true.yml\",\n\t\t\texpected: \"Value,omitempty,omitzero\",\n\t\t\tt:        out_enable_model_json_omitzero_tag_true.OmitZeroJSONTagTest{},\n\t\t\toutPath:  \"./out_enable_model_json_omitzero_tag_true/\",\n\t\t},\n\t\t{\n\t\t\tn:        \"omitempty nil and omomitzero false\",\n\t\t\tcfg:      \"gqlgen_enable_model_json_omitzero_tag_false.yml\",\n\t\t\texpected: \"Value,omitempty\",\n\t\t\tt:        out_enable_model_json_omitzero_tag_false.OmitZeroJSONTagTest{},\n\t\t\toutPath:  \"./out_enable_model_json_omitzero_tag_false/\",\n\t\t},\n\t\t{\n\t\t\tn:        \"omitempty false and omomitzero nil\",\n\t\t\tcfg:      \"gqlgen_enable_model_json_omitempty_tag_false_omitzero_tag_nil.yml\",\n\t\t\texpected: \"Value\",\n\t\t\tt:        out_enable_model_json_omitempty_tag_false_omitzero_tag_nil.OmitZeroJSONTagTest{},\n\t\t\toutPath:  \"./out_enable_model_json_omitempty_tag_false_omitzero_tag_nil/\",\n\t\t},\n\t\t{\n\t\t\tn:        \"omitempty false and omomitzero true\",\n\t\t\tcfg:      \"gqlgen_enable_model_json_omitempty_tag_false_omitzero_tag_true.yml\",\n\t\t\texpected: \"Value,omitzero\",\n\t\t\tt:        out_enable_model_json_omitempty_tag_false_omitzero_tag_true.OmitZeroJSONTagTest{},\n\t\t\toutPath:  \"./out_enable_model_json_omitempty_tag_false_omitzero_tag_true/\",\n\t\t},\n\t\t{\n\t\t\tn:        \"omitempty false and omomitzero false\",\n\t\t\tcfg:      \"gqlgen_enable_model_json_omitempty_tag_false_omitzero_tag_false.yml\",\n\t\t\texpected: \"Value\",\n\t\t\tt:        out_enable_model_json_omitempty_tag_false_omitzero_tag_false.OmitZeroJSONTagTest{},\n\t\t\toutPath:  \"./out_enable_model_json_omitempty_tag_false_omitzero_tag_false/\",\n\t\t},\n\t}\n\n\tfor _, s := range suites {\n\t\tt.Run(s.n, func(t *testing.T) {\n\t\t\tcfg, err := config.LoadConfig(fmt.Sprintf(\"testdata/%s\", s.cfg))\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.NoError(t, cfg.Init())\n\t\t\tp := Plugin{\n\t\t\t\tMutateHook: mutateHook,\n\t\t\t\tFieldHook:  DefaultFieldMutateHook,\n\t\t\t}\n\t\t\trequire.NoError(t, p.MutateConfig(cfg))\n\t\t\trequire.NoError(t, goBuild(t, s.outPath))\n\n\t\t\trt := reflect.TypeOf(s.t)\n\n\t\t\t// ensure non-nullable fields are never omitzero\n\t\t\tsfn, ok := rt.FieldByName(\"ValueNonNil\")\n\t\t\trequire.True(t, ok)\n\t\t\trequire.Equal(t, \"ValueNonNil\", sfn.Tag.Get(\"json\"))\n\n\t\t\t// test nullable fields for configured omitzero\n\t\t\tsf, ok := rt.FieldByName(\"Value\")\n\t\t\trequire.True(t, ok)\n\n\t\t\trequire.Equal(t, s.expected, sf.Tag.Get(\"json\"))\n\t\t})\n\t}\n}\n\nfunc mutateHook(b *ModelBuild) *ModelBuild {\n\tfor _, model := range b.Models {\n\t\tfor _, field := range model.Fields {\n\t\t\tfield.Tag += ` database:\"` + model.Name + field.Name + `\"`\n\t\t}\n\t}\n\n\treturn b\n}\n\nfunc parseAst(path string) (*ast.Package, error) {\n\t// test setup to parse the types\n\tfset := token.NewFileSet()\n\t// help wanted to golang.org/x/tools/go/packages\n\tpkgs, err := parser.ParseDir(fset, path, nil, parser.AllErrors)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn pkgs[\"out\"], nil\n}\n\nfunc goBuild(t *testing.T, path string) error {\n\tt.Helper()\n\tcmd := exec.Command(\"go\", \"build\", path)\n\tout, err := cmd.CombinedOutput()\n\tif err != nil {\n\t\treturn errors.New(string(out))\n\t}\n\n\treturn nil\n}\n\nfunc TestRemoveDuplicate(t *testing.T) {\n\ttype args struct {\n\t\tt string\n\t}\n\ttests := []struct {\n\t\tname      string\n\t\targs      args\n\t\twant      string\n\t\twantPanic bool\n\t}{\n\t\t{\n\t\t\tname: \"Duplicate Test with 1\",\n\t\t\targs: args{\n\t\t\t\tt: \"json:\\\"name\\\"\",\n\t\t\t},\n\t\t\twant: \"json:\\\"name\\\"\",\n\t\t},\n\t\t{\n\t\t\tname: \"Duplicate Test with 2\",\n\t\t\targs: args{\n\t\t\t\tt: \"json:\\\"name\\\" json:\\\"name2\\\"\",\n\t\t\t},\n\t\t\twant: \"json:\\\"name2\\\"\",\n\t\t},\n\t\t{\n\t\t\tname: \"Duplicate Test with 3\",\n\t\t\targs: args{\n\t\t\t\tt: \"json:\\\"name\\\" json:\\\"name2\\\" json:\\\"name3\\\"\",\n\t\t\t},\n\t\t\twant: \"json:\\\"name3\\\"\",\n\t\t},\n\t\t{\n\t\t\tname: \"Duplicate Test with 3 and 1 unrelated\",\n\t\t\targs: args{\n\t\t\t\tt: \"json:\\\"name\\\" something:\\\"name2\\\" json:\\\"name3\\\"\",\n\t\t\t},\n\t\t\twant: \"something:\\\"name2\\\" json:\\\"name3\\\"\",\n\t\t},\n\t\t{\n\t\t\tname: \"Duplicate Test with 3 and 2 unrelated\",\n\t\t\targs: args{\n\t\t\t\tt: \"something:\\\"name1\\\" json:\\\"name\\\" something:\\\"name2\\\" json:\\\"name3\\\"\",\n\t\t\t},\n\t\t\twant: \"something:\\\"name2\\\" json:\\\"name3\\\"\",\n\t\t},\n\t\t{\n\t\t\tname: \"Test tag value with leading empty space\",\n\t\t\targs: args{\n\t\t\t\tt: \"json:\\\"name, name2\\\"\",\n\t\t\t},\n\t\t\twant:      \"json:\\\"name, name2\\\"\",\n\t\t\twantPanic: true,\n\t\t},\n\t\t{\n\t\t\tname: \"Test tag value with trailing empty space\",\n\t\t\targs: args{\n\t\t\t\tt: \"json:\\\"name,name2 \\\"\",\n\t\t\t},\n\t\t\twant:      \"json:\\\"name,name2 \\\"\",\n\t\t\twantPanic: true,\n\t\t},\n\t\t{\n\t\t\tname: \"Test tag value with space in between\",\n\t\t\targs: args{\n\t\t\t\tt: \"gorm:\\\"unique;not null\\\"\",\n\t\t\t},\n\t\t\twant:      \"gorm:\\\"unique;not null\\\"\",\n\t\t\twantPanic: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Test mix use of gorm and json tags\",\n\t\t\targs: args{\n\t\t\t\tt: \"gorm:\\\"unique;not null\\\" json:\\\"name,name2\\\"\",\n\t\t\t},\n\t\t\twant:      \"gorm:\\\"unique;not null\\\" json:\\\"name,name2\\\"\",\n\t\t\twantPanic: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Test gorm tag with colon\",\n\t\t\targs: args{\n\t\t\t\tt: \"gorm:\\\"type:varchar(63);unique_index\\\"\",\n\t\t\t},\n\t\t\twant:      \"gorm:\\\"type:varchar(63);unique_index\\\"\",\n\t\t\twantPanic: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Test mix use of gorm and duplicate json tags with colon\",\n\t\t\targs: args{\n\t\t\t\tt: \"json:\\\"name0\\\" gorm:\\\"type:varchar(63);unique_index\\\" json:\\\"name,name2\\\"\",\n\t\t\t},\n\t\t\twant:      \"gorm:\\\"type:varchar(63);unique_index\\\" json:\\\"name,name2\\\"\",\n\t\t\twantPanic: false,\n\t\t},\n\t}\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif tt.wantPanic {\n\t\t\t\tassert.Panics(\n\t\t\t\t\tt,\n\t\t\t\t\tfunc() { removeDuplicateTags(tt.args.t) },\n\t\t\t\t\t\"The code did not panic\",\n\t\t\t\t)\n\t\t\t} else {\n\t\t\t\tif got := removeDuplicateTags(tt.args.t); got != tt.want {\n\t\t\t\t\tt.Errorf(\"removeDuplicate() = %v, want %v\", got, tt.want)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc Test_containsInvalidSpace(t *testing.T) {\n\ttype args struct {\n\t\tvaluesString string\n\t}\n\ttests := []struct {\n\t\tname string\n\t\targs args\n\t\twant bool\n\t}{\n\t\t{\n\t\t\tname: \"Test tag value with leading empty space\",\n\t\t\targs: args{\n\t\t\t\tvaluesString: \"name, name2\",\n\t\t\t},\n\t\t\twant: true,\n\t\t},\n\t\t{\n\t\t\tname: \"Test tag value with trailing empty space\",\n\t\t\targs: args{\n\t\t\t\tvaluesString: \"name ,name2\",\n\t\t\t},\n\t\t\twant: true,\n\t\t},\n\t\t{\n\t\t\tname: \"Test tag value with valid empty space in words\",\n\t\t\targs: args{\n\t\t\t\tvaluesString: \"accept this,name2\",\n\t\t\t},\n\t\t\twant: false,\n\t\t},\n\t}\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tassert.Equalf(\n\t\t\t\tt,\n\t\t\t\ttt.want,\n\t\t\t\tcontainsInvalidSpace(tt.args.valuesString),\n\t\t\t\t\"containsInvalidSpace(%v)\",\n\t\t\t\ttt.args.valuesString,\n\t\t\t)\n\t\t})\n\t}\n}\n\nfunc Test_splitTagsBySpace(t *testing.T) {\n\ttype args struct {\n\t\ttagsString string\n\t}\n\ttests := []struct {\n\t\tname string\n\t\targs args\n\t\twant []string\n\t}{\n\t\t{\n\t\t\tname: \"multiple tags, single value\",\n\t\t\targs: args{\n\t\t\t\ttagsString: \"json:\\\"name\\\" something:\\\"name2\\\" json:\\\"name3\\\"\",\n\t\t\t},\n\t\t\twant: []string{\"json:\\\"name\\\"\", \"something:\\\"name2\\\"\", \"json:\\\"name3\\\"\"},\n\t\t},\n\t\t{\n\t\t\tname: \"multiple tag, multiple values\",\n\t\t\targs: args{\n\t\t\t\ttagsString: \"json:\\\"name\\\" something:\\\"name2\\\" json:\\\"name3,name4\\\"\",\n\t\t\t},\n\t\t\twant: []string{\"json:\\\"name\\\"\", \"something:\\\"name2\\\"\", \"json:\\\"name3,name4\\\"\"},\n\t\t},\n\t\t{\n\t\t\tname: \"single tag, single value\",\n\t\t\targs: args{\n\t\t\t\ttagsString: \"json:\\\"name\\\"\",\n\t\t\t},\n\t\t\twant: []string{\"json:\\\"name\\\"\"},\n\t\t},\n\t\t{\n\t\t\tname: \"single tag, multiple values\",\n\t\t\targs: args{\n\t\t\t\ttagsString: \"json:\\\"name,name2\\\"\",\n\t\t\t},\n\t\t\twant: []string{\"json:\\\"name,name2\\\"\"},\n\t\t},\n\t\t{\n\t\t\tname: \"space in value\",\n\t\t\targs: args{\n\t\t\t\ttagsString: \"gorm:\\\"not nul,name2\\\"\",\n\t\t\t},\n\t\t\twant: []string{\"gorm:\\\"not nul,name2\\\"\"},\n\t\t},\n\t}\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tassert.Equalf(\n\t\t\t\tt,\n\t\t\t\ttt.want,\n\t\t\t\tsplitTagsBySpace(tt.args.tagsString),\n\t\t\t\t\"splitTagsBySpace(%v)\",\n\t\t\t\ttt.args.tagsString,\n\t\t\t)\n\t\t})\n\t}\n}\n\nfunc TestCustomTemplate(t *testing.T) {\n\tcfg, err := config.LoadConfig(\"testdata/gqlgen_custom_model_template.yml\")\n\trequire.NoError(t, err)\n\trequire.NoError(t, cfg.Init())\n\tp := Plugin{\n\t\tMutateHook: mutateHook,\n\t\tFieldHook:  DefaultFieldMutateHook,\n\t}\n\trequire.NoError(t, p.MutateConfig(cfg))\n}\n\nfunc getStringInBetween(str, start, end string) string {\n\t_, after, ok := strings.Cut(str, start)\n\tif !ok {\n\t\treturn \"\"\n\t}\n\n\tnewStr := after\n\tbefore, _, ok := strings.Cut(newStr, end)\n\tif !ok {\n\t\treturn \"\"\n\t}\n\n\treturn before\n}\n"
  },
  {
    "path": "plugin/modelgen/out/existing.go",
    "content": "package out\n\ntype ExistingType struct {\n\tName     *string              `json:\"name\"`\n\tEnum     *ExistingEnum        `json:\"enum\"`\n\tInt      ExistingInterface    `json:\"int\"`\n\tExisting *MissingTypeNullable `json:\"existing\"`\n}\n\ntype ExistingModel struct {\n\tName string\n\tEnum ExistingEnum\n\tInt  ExistingInterface\n}\n\ntype ExistingInput struct {\n\tName string\n\tEnum ExistingEnum\n\tInt  ExistingInterface\n}\n\ntype ExistingEnum string\n\ntype ExistingInterface interface {\n\tIsExistingInterface()\n}\n\ntype ExistingUnion interface {\n\tIsExistingUnion()\n}\n"
  },
  {
    "path": "plugin/modelgen/out/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage out\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/plugin/modelgen/internal/extrafields\"\n)\n\n// Add any new functions or any additional code/template functionality here\n\ntype A interface {\n\tIsA()\n\tGetA() string\n}\n\ntype ArrayOfA interface {\n\tIsArrayOfA()\n\tGetTrickyField() []A\n\tGetTrickyFieldPointer() []A\n}\n\ntype B interface {\n\tIsB()\n\tGetB() int\n}\n\ntype C interface {\n\tIsA()\n\tIsC()\n\tGetA() string\n\tGetC() bool\n}\n\ntype D interface {\n\tIsA()\n\tIsB()\n\tIsD()\n\tGetA() string\n\tGetB() int\n\tGetD() *string\n}\n\ntype FooBarer interface {\n\tIsFooBarer()\n\tGetName() string\n}\n\n// InterfaceWithDescription is an interface with a description\ntype InterfaceWithDescription interface {\n\tIsInterfaceWithDescription()\n\tGetName() *string\n}\n\ntype MissingInterface interface {\n\tIsMissingInterface()\n\tGetName() *string\n}\n\ntype MissingUnion interface {\n\tIsMissingUnion()\n}\n\n// UnionWithDescription is an union with a description\ntype UnionWithDescription interface {\n\tIsUnionWithDescription()\n}\n\ntype X interface {\n\tIsX()\n\tGetId() string\n}\n\ntype CDImplemented struct {\n\tA string  `json:\"a\" database:\"CDImplementeda\"`\n\tB int     `json:\"b\" database:\"CDImplementedb\"`\n\tC bool    `json:\"c\" database:\"CDImplementedc\"`\n\tD *string `json:\"d,omitempty\" database:\"CDImplementedd\"`\n}\n\nfunc (CDImplemented) IsC()              {}\nfunc (this CDImplemented) GetA() string { return this.A }\nfunc (this CDImplemented) GetC() bool   { return this.C }\n\nfunc (CDImplemented) IsA() {}\n\nfunc (CDImplemented) IsD() {}\n\nfunc (this CDImplemented) GetB() int     { return this.B }\nfunc (this CDImplemented) GetD() *string { return this.D }\n\nfunc (CDImplemented) IsB() {}\n\ntype CyclicalA struct {\n\tFieldOne   *CyclicalB `json:\"field_one,omitempty\" database:\"CyclicalAfield_one\"`\n\tFieldTwo   *CyclicalB `json:\"field_two,omitempty\" database:\"CyclicalAfield_two\"`\n\tFieldThree *CyclicalB `json:\"field_three,omitempty\" database:\"CyclicalAfield_three\"`\n\tFieldFour  string     `json:\"field_four\" database:\"CyclicalAfield_four\"`\n}\n\ntype CyclicalB struct {\n\tFieldOne   *CyclicalA `json:\"field_one,omitempty\" database:\"CyclicalBfield_one\"`\n\tFieldTwo   *CyclicalA `json:\"field_two,omitempty\" database:\"CyclicalBfield_two\"`\n\tFieldThree *CyclicalA `json:\"field_three,omitempty\" database:\"CyclicalBfield_three\"`\n\tFieldFour  *CyclicalA `json:\"field_four,omitempty\" database:\"CyclicalBfield_four\"`\n\tFieldFive  string     `json:\"field_five\" database:\"CyclicalBfield_five\"`\n}\n\ntype ExtraFieldsTest struct {\n\tSchemaField   string  `json:\"SchemaField\" database:\"ExtraFieldsTestSchemaField\"`\n\tFieldInt      int64   `json:\"field_int_tag\" database:\"ExtraFieldsTestFieldInt\"`\n\tFieldIntSlice []int64 `json:\"-\" database:\"ExtraFieldsTestFieldIntSlice\"`\n\t// Internal field\n\tFieldInternalType extrafields.Type `json:\"-\" database:\"ExtraFieldsTestFieldInternalType\"`\n\tFieldStringPtr    *string          `json:\"-\" database:\"ExtraFieldsTestFieldStringPtr\"`\n}\n\ntype FieldMutationHook struct {\n\tName     *string       `json:\"name,omitempty\" anotherTag:\"tag\" database:\"FieldMutationHookname\"`\n\tEnum     *ExistingEnum `json:\"enum,omitempty\" yetAnotherTag:\"12\" database:\"FieldMutationHookenum\"`\n\tNoVal    *string       `json:\"noVal,omitempty\" yaml:\"noVal\" repeated:\"true\" database:\"FieldMutationHooknoVal\"`\n\tRepeated *string       `json:\"repeated,omitempty\" someTag:\"value\" repeated:\"true\" database:\"FieldMutationHookrepeated\"`\n}\n\ntype ImplArrayOfA struct {\n\tTrickyField        []*CDImplemented `json:\"trickyField\" database:\"ImplArrayOfAtrickyField\"`\n\tTrickyFieldPointer []*CDImplemented `json:\"trickyFieldPointer,omitempty\" database:\"ImplArrayOfAtrickyFieldPointer\"`\n}\n\nfunc (ImplArrayOfA) IsArrayOfA() {}\nfunc (this ImplArrayOfA) GetTrickyField() []A {\n\tif this.TrickyField == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]A, 0, len(this.TrickyField))\n\tfor _, concrete := range this.TrickyField {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\nfunc (this ImplArrayOfA) GetTrickyFieldPointer() []A {\n\tif this.TrickyFieldPointer == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]A, 0, len(this.TrickyFieldPointer))\n\tfor _, concrete := range this.TrickyFieldPointer {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\n\ntype MissingInput struct {\n\tName          *string                           `json:\"name,omitempty\" database:\"MissingInputname\"`\n\tEnum          *MissingEnum                      `json:\"enum,omitempty\" database:\"MissingInputenum\"`\n\tNonNullString string                            `json:\"nonNullString\" database:\"MissingInputnonNullString\"`\n\tNullString    graphql.Omittable[*string]        `json:\"nullString,omitempty\" database:\"MissingInputnullString\"`\n\tNullEnum      graphql.Omittable[*MissingEnum]   `json:\"nullEnum,omitempty\" database:\"MissingInputnullEnum\"`\n\tNullObject    graphql.Omittable[*ExistingInput] `json:\"nullObject,omitempty\" database:\"MissingInputnullObject\"`\n}\n\ntype MissingTypeNotNull struct {\n\tName     string               `json:\"name\" database:\"MissingTypeNotNullname\"`\n\tEnum     MissingEnum          `json:\"enum\" database:\"MissingTypeNotNullenum\"`\n\tInt      MissingInterface     `json:\"int\" database:\"MissingTypeNotNullint\"`\n\tExisting *ExistingType        `json:\"existing\" database:\"MissingTypeNotNullexisting\"`\n\tMissing2 *MissingTypeNullable `json:\"missing2\" database:\"MissingTypeNotNullmissing2\"`\n}\n\nfunc (MissingTypeNotNull) IsMissingInterface()   {}\nfunc (this MissingTypeNotNull) GetName() *string { return &this.Name }\n\nfunc (MissingTypeNotNull) IsExistingInterface() {}\n\nfunc (MissingTypeNotNull) IsMissingUnion() {}\n\nfunc (MissingTypeNotNull) IsExistingUnion() {}\n\ntype MissingTypeNullable struct {\n\tName     *string             `json:\"name,omitempty\" database:\"MissingTypeNullablename\"`\n\tEnum     *MissingEnum        `json:\"enum,omitempty\" database:\"MissingTypeNullableenum\"`\n\tInt      MissingInterface    `json:\"int,omitempty\" database:\"MissingTypeNullableint\"`\n\tExisting *ExistingType       `json:\"existing,omitempty\" database:\"MissingTypeNullableexisting\"`\n\tMissing2 *MissingTypeNotNull `json:\"missing2,omitempty\" database:\"MissingTypeNullablemissing2\"`\n}\n\nfunc (MissingTypeNullable) IsMissingInterface()   {}\nfunc (this MissingTypeNullable) GetName() *string { return this.Name }\n\nfunc (MissingTypeNullable) IsExistingInterface() {}\n\nfunc (MissingTypeNullable) IsMissingUnion() {}\n\nfunc (MissingTypeNullable) IsExistingUnion() {}\n\ntype Mutation struct {\n}\n\ntype NotCyclicalA struct {\n\tFieldOne string `json:\"FieldOne\" database:\"NotCyclicalAFieldOne\"`\n\tFieldTwo int    `json:\"FieldTwo\" database:\"NotCyclicalAFieldTwo\"`\n}\n\ntype NotCyclicalB struct {\n\tFieldOne string        `json:\"FieldOne\" database:\"NotCyclicalBFieldOne\"`\n\tFieldTwo *NotCyclicalA `json:\"FieldTwo\" database:\"NotCyclicalBFieldTwo\"`\n}\n\ntype OmitEmptyJSONTagTest struct {\n\tValueNonNil string  `json:\"ValueNonNil\" database:\"OmitEmptyJsonTagTestValueNonNil\"`\n\tValue       *string `json:\"Value,omitempty\" database:\"OmitEmptyJsonTagTestValue\"`\n}\n\ntype OmitZeroJSONTagTest struct {\n\tValueNonNil string  `json:\"ValueNonNil\" database:\"OmitZeroJSONTagTestValueNonNil\"`\n\tValue       *string `json:\"Value,omitempty\" database:\"OmitZeroJSONTagTestValue\"`\n}\n\ntype Query struct {\n}\n\ntype Recursive struct {\n\tFieldOne   *Recursive `json:\"FieldOne\" database:\"RecursiveFieldOne\"`\n\tFieldTwo   *Recursive `json:\"FieldTwo\" database:\"RecursiveFieldTwo\"`\n\tFieldThree *Recursive `json:\"FieldThree\" database:\"RecursiveFieldThree\"`\n\tFieldFour  string     `json:\"FieldFour\" database:\"RecursiveFieldFour\"`\n}\n\ntype RenameFieldTest struct {\n\tGOODnaME   string `json:\"badName\" database:\"RenameFieldTestbadName\"`\n\tOtherField string `json:\"otherField\" database:\"RenameFieldTestotherField\"`\n}\n\ntype Subscription struct {\n}\n\n// TypeWithDescription is a type with a description\ntype TypeWithDescription struct {\n\tName *string `json:\"name,omitempty\" database:\"TypeWithDescriptionname\"`\n}\n\nfunc (TypeWithDescription) IsUnionWithDescription() {}\n\ntype Xer struct {\n\tId   string `json:\"Id\" database:\"XerId\"`\n\tName string `json:\"Name\" database:\"XerName\"`\n}\n\nfunc (Xer) IsX()               {}\nfunc (this Xer) GetId() string { return this.Id }\n\ntype FooBarr struct {\n\tName string `json:\"name\" database:\"_Foo_Barrname\"`\n}\n\nfunc (FooBarr) IsFooBarer()          {}\nfunc (this FooBarr) GetName() string { return this.Name }\n\n// EnumWithDescription is an enum with a description\ntype EnumWithDescription string\n\nconst (\n\tEnumWithDescriptionCat EnumWithDescription = \"CAT\"\n\tEnumWithDescriptionDog EnumWithDescription = \"DOG\"\n)\n\nvar AllEnumWithDescription = []EnumWithDescription{\n\tEnumWithDescriptionCat,\n\tEnumWithDescriptionDog,\n}\n\nfunc (e EnumWithDescription) IsValid() bool {\n\tswitch e {\n\tcase EnumWithDescriptionCat, EnumWithDescriptionDog:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e EnumWithDescription) String() string {\n\treturn string(e)\n}\n\nfunc (e *EnumWithDescription) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = EnumWithDescription(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid EnumWithDescription\", str)\n\t}\n\treturn nil\n}\n\nfunc (e EnumWithDescription) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\ntype MissingEnum string\n\nconst (\n\tMissingEnumHello   MissingEnum = \"Hello\"\n\tMissingEnumGoodbye MissingEnum = \"Goodbye\"\n)\n\nvar AllMissingEnum = []MissingEnum{\n\tMissingEnumHello,\n\tMissingEnumGoodbye,\n}\n\nfunc (e MissingEnum) IsValid() bool {\n\tswitch e {\n\tcase MissingEnumHello, MissingEnumGoodbye:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e MissingEnum) String() string {\n\treturn string(e)\n}\n\nfunc (e *MissingEnum) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = MissingEnum(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid MissingEnum\", str)\n\t}\n\treturn nil\n}\n\nfunc (e MissingEnum) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n"
  },
  {
    "path": "plugin/modelgen/out/generated_omit_root_models.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage out\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n)\n\ntype SomeContent string\n\nconst (\n\tSomeContentThis SomeContent = \"This\"\n\tSomeContentIs   SomeContent = \"Is\"\n\tSomeContentA    SomeContent = \"A\"\n\tSomeContentTest SomeContent = \"Test\"\n)\n\nvar AllSomeContent = []SomeContent{\n\tSomeContentThis,\n\tSomeContentIs,\n\tSomeContentA,\n\tSomeContentTest,\n}\n\nfunc (e SomeContent) IsValid() bool {\n\tswitch e {\n\tcase SomeContentThis, SomeContentIs, SomeContentA, SomeContentTest:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e SomeContent) String() string {\n\treturn string(e)\n}\n\nfunc (e *SomeContent) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = SomeContent(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid SomeContent\", str)\n\t}\n\treturn nil\n}\n\nfunc (e SomeContent) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *SomeContent) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e SomeContent) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n"
  },
  {
    "path": "plugin/modelgen/out_conflicting_types/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage out_conflicting_types\n\ntype Baz struct {\n\tWantWithoutUnderscore *FooBar `json:\"want_without_underscore\" database:\"Bazwant_without_underscore\"`\n}\n\ntype Bees struct {\n\tWantWithUnderscore *FooBar0 `json:\"want_with_underscore\" database:\"Beeswant_with_underscore\"`\n}\n\ntype FooBar struct {\n\tWithoutUnderscore *bool `json:\"without_underscore,omitempty\" database:\"FooBarwithout_underscore\"`\n}\n\ntype FooBar0 struct {\n\tWithUnderscore *bool `json:\"with_underscore,omitempty\" database:\"Foo_Barwith_underscore\"`\n}\n\ntype Query struct {\n}\n"
  },
  {
    "path": "plugin/modelgen/out_covariant_types/generated_covariant_types.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage out_covariant_types\n\ntype Identifiable interface {\n\tIsIdentifiable()\n\tGetID() string\n}\n\ntype Node interface {\n\tIsIdentifiable()\n\tIsTypeable()\n\tIsNode()\n\tGetID() string\n\tGetType() string\n\tGetData() NodeData\n}\n\ntype NodeData interface {\n\tIsNodeData()\n\tGetName() string\n\tGetChildrenIds() []string\n}\n\ntype Tags interface {\n\tIsTags()\n\tGetData() []string\n}\n\ntype Typeable interface {\n\tIsTypeable()\n\tGetType() string\n}\n\ntype BaseIdentifiable struct {\n\tID string `json:\"id\"`\n}\n\nfunc (BaseIdentifiable) IsIdentifiable()    {}\nfunc (this BaseIdentifiable) GetID() string { return this.ID }\n\ntype BaseNode struct {\n\tBaseIdentifiable\n\tBaseTypeable\n\tData NodeData `json:\"data\"`\n}\n\nfunc (BaseNode) IsNode()                {}\nfunc (this BaseNode) GetID() string     { return this.ID }\nfunc (this BaseNode) GetType() string   { return this.Type }\nfunc (this BaseNode) GetData() NodeData { return this.Data }\n\nfunc (BaseNode) IsIdentifiable() {}\n\nfunc (BaseNode) IsTypeable() {}\n\ntype BaseNodeData struct {\n\tName        string   `json:\"name\"`\n\tChildrenIds []string `json:\"childrenIds\"`\n}\n\nfunc (BaseNodeData) IsNodeData()          {}\nfunc (this BaseNodeData) GetName() string { return this.Name }\nfunc (this BaseNodeData) GetChildrenIds() []string {\n\tif this.ChildrenIds == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]string, 0, len(this.ChildrenIds))\n\tfor _, concrete := range this.ChildrenIds {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\n\ntype BaseTags struct {\n\tData []string `json:\"data,omitempty\"`\n}\n\nfunc (BaseTags) IsTags() {}\nfunc (this BaseTags) GetData() []string {\n\tif this.Data == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]string, 0, len(this.Data))\n\tfor _, concrete := range this.Data {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\n\ntype BaseTypeable struct {\n\tType string `json:\"type\"`\n}\n\nfunc (BaseTypeable) IsTypeable()          {}\nfunc (this BaseTypeable) GetType() string { return this.Type }\n\ntype ExtendedProductNode struct {\n\tID   string           `json:\"id\"`\n\tType string           `json:\"type\"`\n\tData *ProductNodeData `json:\"data\"`\n\tTags *ProductTags     `json:\"tags,omitempty\"`\n}\n\nfunc (ExtendedProductNode) IsNode()                {}\nfunc (this ExtendedProductNode) GetID() string     { return this.ID }\nfunc (this ExtendedProductNode) GetType() string   { return this.Type }\nfunc (this ExtendedProductNode) GetData() NodeData { return *this.Data }\n\nfunc (ExtendedProductNode) IsIdentifiable() {}\n\nfunc (ExtendedProductNode) IsTypeable() {}\n\ntype ProductNode struct {\n\tID           string           `json:\"id\"`\n\tType         string           `json:\"type\"`\n\tData         *ProductNodeData `json:\"data\"`\n\tProductTitle string           `json:\"productTitle\"`\n}\n\nfunc (ProductNode) IsNode()                {}\nfunc (this ProductNode) GetID() string     { return this.ID }\nfunc (this ProductNode) GetType() string   { return this.Type }\nfunc (this ProductNode) GetData() NodeData { return *this.Data }\n\nfunc (ProductNode) IsIdentifiable() {}\n\nfunc (ProductNode) IsTypeable() {}\n\ntype ProductNodeData struct {\n\tBaseNodeData\n\tProductSpecificField string `json:\"productSpecificField\"`\n}\n\nfunc (ProductNodeData) IsNodeData()          {}\nfunc (this ProductNodeData) GetName() string { return this.Name }\nfunc (this ProductNodeData) GetChildrenIds() []string {\n\tif this.ChildrenIds == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]string, 0, len(this.ChildrenIds))\n\tfor _, concrete := range this.ChildrenIds {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\n\ntype ProductTags struct {\n\tBaseTags\n\tProductSpecific *bool `json:\"productSpecific,omitempty\"`\n}\n\nfunc (ProductTags) IsTags() {}\nfunc (this ProductTags) GetData() []string {\n\tif this.Data == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]string, 0, len(this.Data))\n\tfor _, concrete := range this.Data {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\n\ntype Query struct {\n}\n"
  },
  {
    "path": "plugin/modelgen/out_directive_binding_models/generated_directive_binding_models.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage out_directive_binding_models\n\nimport (\n\t\"github.com/99designs/gqlgen/plugin/modelgen/out_directive_embedding_models\"\n)\n\ntype Molecule struct {\n\tout_directive_embedding_models.BaseNode\n\tElements []out_directive_embedding_models.Element `json:\"elements,omitempty\"`\n}\n\nfunc (Molecule) IsNode() {}\n\ntype Oxygen struct {\n\tout_directive_embedding_models.BaseElement\n\tPurity float64 `json:\"purity\"`\n}\n\nfunc (Oxygen) IsElement() {}\n\nfunc (Oxygen) IsNode() {}\n"
  },
  {
    "path": "plugin/modelgen/out_directive_diamond/generated_directive_diamond.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage out_directive_diamond\n\ntype Conflicting interface {\n\tIsHasID()\n\tIsHasIdentifier()\n\tIsConflicting()\n\tGetID() string\n\tGetIdentifier() string\n\tGetName() string\n}\n\ntype HasID interface {\n\tIsHasID()\n\tGetID() string\n}\n\ntype HasIdentifier interface {\n\tIsHasIdentifier()\n\tGetIdentifier() string\n}\n\ntype HasName interface {\n\tIsHasName()\n\tGetName() string\n}\n\ntype HasTitle interface {\n\tIsHasTitle()\n\tGetTitle() string\n}\n\ntype NoConflict interface {\n\tIsHasName()\n\tIsHasTitle()\n\tIsNoConflict()\n\tGetName() string\n\tGetTitle() string\n}\n\ntype BaseConflicting struct {\n\tBaseHasID\n\tBaseHasIdentifier\n\tName string `json:\"name\"`\n}\n\nfunc (BaseConflicting) IsConflicting()             {}\nfunc (this BaseConflicting) GetID() string         { return this.ID }\nfunc (this BaseConflicting) GetIdentifier() string { return this.Identifier }\nfunc (this BaseConflicting) GetName() string       { return this.Name }\n\nfunc (BaseConflicting) IsHasID() {}\n\nfunc (BaseConflicting) IsHasIdentifier() {}\n\ntype BaseHasID struct {\n\tID string `json:\"id\"`\n}\n\nfunc (BaseHasID) IsHasID()           {}\nfunc (this BaseHasID) GetID() string { return this.ID }\n\ntype BaseHasIdentifier struct {\n\tIdentifier string `json:\"identifier\"`\n}\n\nfunc (BaseHasIdentifier) IsHasIdentifier()           {}\nfunc (this BaseHasIdentifier) GetIdentifier() string { return this.Identifier }\n\ntype BaseNoConflict struct {\n\tName  string `json:\"name\"`\n\tTitle string `json:\"title\"`\n}\n\nfunc (BaseNoConflict) IsNoConflict()         {}\nfunc (this BaseNoConflict) GetName() string  { return this.Name }\nfunc (this BaseNoConflict) GetTitle() string { return this.Title }\n\ntype ConcreteConflicting struct {\n\tBaseConflicting\n\tExtra string `json:\"extra\"`\n}\n\nfunc (ConcreteConflicting) IsConflicting()             {}\nfunc (this ConcreteConflicting) GetID() string         { return this.ID }\nfunc (this ConcreteConflicting) GetIdentifier() string { return this.Identifier }\nfunc (this ConcreteConflicting) GetName() string       { return this.Name }\n\nfunc (ConcreteConflicting) IsHasID() {}\n\nfunc (ConcreteConflicting) IsHasIdentifier() {}\n\ntype ConcreteNoConflict struct {\n\tBaseNoConflict\n\tExtra string `json:\"extra\"`\n}\n\nfunc (ConcreteNoConflict) IsNoConflict()         {}\nfunc (this ConcreteNoConflict) GetName() string  { return this.Name }\nfunc (this ConcreteNoConflict) GetTitle() string { return this.Title }\n\nfunc (ConcreteNoConflict) IsHasName() {}\n\nfunc (ConcreteNoConflict) IsHasTitle() {}\n\ntype Query struct {\n}\n"
  },
  {
    "path": "plugin/modelgen/out_directive_embedding_models/generated_directive_embedding_models.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage out_directive_embedding_models\n\ntype Element interface {\n\tIsNode()\n\tIsElement()\n\tGetID() string\n\tGetName() string\n}\n\ntype Node interface {\n\tIsNode()\n\tGetID() string\n}\n\ntype BaseElement struct {\n\tBaseNode\n\tName string `json:\"name\"`\n}\n\nfunc (BaseElement) IsElement()           {}\nfunc (this BaseElement) GetID() string   { return this.ID }\nfunc (this BaseElement) GetName() string { return this.Name }\n\nfunc (BaseElement) IsNode() {}\n\ntype BaseNode struct {\n\tID string `json:\"id\"`\n}\n\nfunc (BaseNode) IsNode()            {}\nfunc (this BaseNode) GetID() string { return this.ID }\n\ntype Carbon struct {\n\tBaseElement\n\tFootprint string `json:\"footprint\"`\n}\n\nfunc (Carbon) IsElement()           {}\nfunc (this Carbon) GetID() string   { return this.ID }\nfunc (this Carbon) GetName() string { return this.Name }\n\nfunc (Carbon) IsNode() {}\n\ntype Magnesium struct {\n\tBaseElement\n\tTypes int `json:\"types\"`\n}\n\nfunc (Magnesium) IsElement()           {}\nfunc (this Magnesium) GetID() string   { return this.ID }\nfunc (this Magnesium) GetName() string { return this.Name }\n\nfunc (Magnesium) IsNode() {}\n\ntype Potassium struct {\n\tBaseElement\n\tPrice float64 `json:\"price\"`\n}\n\nfunc (Potassium) IsElement()           {}\nfunc (this Potassium) GetID() string   { return this.ID }\nfunc (this Potassium) GetName() string { return this.Name }\n\nfunc (Potassium) IsNode() {}\n\ntype Query struct {\n}\n"
  },
  {
    "path": "plugin/modelgen/out_directive_partial/generated_directive_partial.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage out_directive_partial\n\ntype Element interface {\n\tIsNode()\n\tIsElement()\n\tGetID() string\n\tGetName() string\n}\n\ntype Metal interface {\n\tIsElement()\n\tIsNode()\n\tIsMetal()\n\tGetID() string\n\tGetName() string\n\tGetAtomicNumber() int\n}\n\ntype Node interface {\n\tIsNode()\n\tGetID() string\n}\n\ntype BaseMetal struct {\n\tBaseNode\n\tAtomicNumber int    `json:\"atomicNumber\"`\n\tName         string `json:\"name\"`\n}\n\nfunc (BaseMetal) IsMetal()                  {}\nfunc (this BaseMetal) GetID() string        { return this.ID }\nfunc (this BaseMetal) GetName() string      { return this.Name }\nfunc (this BaseMetal) GetAtomicNumber() int { return this.AtomicNumber }\n\nfunc (BaseMetal) IsNode() {}\n\ntype BaseNode struct {\n\tID string `json:\"id\"`\n}\n\nfunc (BaseNode) IsNode()            {}\nfunc (this BaseNode) GetID() string { return this.ID }\n\ntype Gold struct {\n\tBaseMetal\n\tKarat int `json:\"karat\"`\n}\n\nfunc (Gold) IsMetal()                  {}\nfunc (this Gold) GetID() string        { return this.ID }\nfunc (this Gold) GetName() string      { return this.Name }\nfunc (this Gold) GetAtomicNumber() int { return this.AtomicNumber }\n\nfunc (Gold) IsElement() {}\n\nfunc (Gold) IsNode() {}\n\ntype Query struct {\n}\n\ntype Silver struct {\n\tBaseMetal\n\tPurity float64 `json:\"purity\"`\n}\n\nfunc (Silver) IsMetal()                  {}\nfunc (this Silver) GetID() string        { return this.ID }\nfunc (this Silver) GetName() string      { return this.Name }\nfunc (this Silver) GetAtomicNumber() int { return this.AtomicNumber }\n\nfunc (Silver) IsElement() {}\n\nfunc (Silver) IsNode() {}\n"
  },
  {
    "path": "plugin/modelgen/out_directive_skipped_parents/generated_directive_skipped_parents.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage out_directive_skipped_parents\n\ntype A interface {\n\tIsA()\n\tGetID() string\n\tGetFieldA() string\n}\n\ntype B interface {\n\tIsA()\n\tIsB()\n\tGetID() string\n\tGetFieldA() string\n\tGetFieldB() string\n}\n\ntype C interface {\n\tIsB()\n\tIsA()\n\tIsC()\n\tGetID() string\n\tGetFieldA() string\n\tGetFieldB() string\n\tGetFieldC() string\n}\n\ntype BaseA struct {\n\tID     string `json:\"id\"`\n\tFieldA string `json:\"fieldA\"`\n}\n\nfunc (BaseA) IsA()                   {}\nfunc (this BaseA) GetID() string     { return this.ID }\nfunc (this BaseA) GetFieldA() string { return this.FieldA }\n\ntype BaseC struct {\n\tBaseA\n\tFieldC string `json:\"fieldC\"`\n\tFieldB string `json:\"fieldB\"`\n}\n\nfunc (BaseC) IsC()                   {}\nfunc (this BaseC) GetID() string     { return this.ID }\nfunc (this BaseC) GetFieldA() string { return this.FieldA }\nfunc (this BaseC) GetFieldB() string { return this.FieldB }\nfunc (this BaseC) GetFieldC() string { return this.FieldC }\n\nfunc (BaseC) IsA() {}\n\ntype ConcreteC struct {\n\tBaseC\n\tConcreteField string `json:\"concreteField\"`\n}\n\nfunc (ConcreteC) IsC()                   {}\nfunc (this ConcreteC) GetID() string     { return this.ID }\nfunc (this ConcreteC) GetFieldA() string { return this.FieldA }\nfunc (this ConcreteC) GetFieldB() string { return this.FieldB }\nfunc (this ConcreteC) GetFieldC() string { return this.FieldC }\n\nfunc (ConcreteC) IsB() {}\n\nfunc (ConcreteC) IsA() {}\n\ntype Query struct {\n}\n"
  },
  {
    "path": "plugin/modelgen/out_embedded_struct_models_with_binding/generated_embedded_structs_models_binding.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage out_embedded_struct_models_with_binding\n\nimport (\n\t\"github.com/99designs/gqlgen/plugin/modelgen/out_embedded_structs_models\"\n)\n\ntype Molecule struct {\n\tout_embedded_structs_models.BaseNode\n\tElements []out_embedded_structs_models.Element `json:\"elements,omitempty\"`\n}\n\nfunc (Molecule) IsNode() {}\n\ntype Oxygen struct {\n\tout_embedded_structs_models.BaseElement\n\tPurity float64 `json:\"purity\"`\n}\n\nfunc (Oxygen) IsElement() {}\n\nfunc (Oxygen) IsNode() {}\n"
  },
  {
    "path": "plugin/modelgen/out_embedded_structs_models/generated_embedded_structs_models.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage out_embedded_structs_models\n\ntype Element interface {\n\tIsNode()\n\tIsElement()\n\tGetID() string\n\tGetName() string\n}\n\ntype Node interface {\n\tIsNode()\n\tGetID() string\n}\n\ntype BaseElement struct {\n\tBaseNode\n\tName string `json:\"name\"`\n}\n\nfunc (BaseElement) IsElement()           {}\nfunc (this BaseElement) GetID() string   { return this.ID }\nfunc (this BaseElement) GetName() string { return this.Name }\n\nfunc (BaseElement) IsNode() {}\n\ntype BaseNode struct {\n\tID string `json:\"id\"`\n}\n\nfunc (BaseNode) IsNode()            {}\nfunc (this BaseNode) GetID() string { return this.ID }\n\ntype Carbon struct {\n\tBaseElement\n\tFootprint string `json:\"footprint\"`\n}\n\nfunc (Carbon) IsElement()           {}\nfunc (this Carbon) GetID() string   { return this.ID }\nfunc (this Carbon) GetName() string { return this.Name }\n\nfunc (Carbon) IsNode() {}\n\ntype Magnesium struct {\n\tBaseElement\n\tTypes int `json:\"types\"`\n}\n\nfunc (Magnesium) IsElement()           {}\nfunc (this Magnesium) GetID() string   { return this.ID }\nfunc (this Magnesium) GetName() string { return this.Name }\n\nfunc (Magnesium) IsNode() {}\n\ntype Potassium struct {\n\tBaseElement\n\tPrice float64 `json:\"price\"`\n}\n\nfunc (Potassium) IsElement()           {}\nfunc (this Potassium) GetID() string   { return this.ID }\nfunc (this Potassium) GetName() string { return this.Name }\n\nfunc (Potassium) IsNode() {}\n\ntype Query struct {\n}\n"
  },
  {
    "path": "plugin/modelgen/out_enable_model_json_omitempty_tag_false/existing.go",
    "content": "package out_enable_model_json_omitempty_tag_false\n\ntype ExistingType struct {\n\tName     *string              `json:\"name\"`\n\tEnum     *ExistingEnum        `json:\"enum\"`\n\tInt      ExistingInterface    `json:\"int\"`\n\tExisting *MissingTypeNullable `json:\"existing\"`\n}\n\ntype ExistingModel struct {\n\tName string\n\tEnum ExistingEnum\n\tInt  ExistingInterface\n}\n\ntype ExistingInput struct {\n\tName string\n\tEnum ExistingEnum\n\tInt  ExistingInterface\n}\n\ntype ExistingEnum string\n\ntype ExistingInterface interface {\n\tIsExistingInterface()\n}\n\ntype ExistingUnion interface {\n\tIsExistingUnion()\n}\n"
  },
  {
    "path": "plugin/modelgen/out_enable_model_json_omitempty_tag_false/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage out_enable_model_json_omitempty_tag_false\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/plugin/modelgen/out\"\n)\n\ntype A interface {\n\tIsA()\n\tGetA() string\n}\n\ntype ArrayOfA interface {\n\tIsArrayOfA()\n\tGetTrickyField() []A\n\tGetTrickyFieldPointer() []A\n}\n\ntype B interface {\n\tIsB()\n\tGetB() int\n}\n\ntype C interface {\n\tIsA()\n\tIsC()\n\tGetA() string\n\tGetC() bool\n}\n\ntype D interface {\n\tIsA()\n\tIsB()\n\tIsD()\n\tGetA() string\n\tGetB() int\n\tGetD() *string\n}\n\ntype FooBarer interface {\n\tIsFooBarer()\n\tGetName() string\n}\n\n// InterfaceWithDescription is an interface with a description\ntype InterfaceWithDescription interface {\n\tIsInterfaceWithDescription()\n\tGetName() *string\n}\n\ntype MissingInterface interface {\n\tIsMissingInterface()\n\tGetName() *string\n}\n\ntype MissingUnion interface {\n\tIsMissingUnion()\n}\n\n// UnionWithDescription is an union with a description\ntype UnionWithDescription interface {\n\tIsUnionWithDescription()\n}\n\ntype X interface {\n\tIsX()\n\tGetId() string\n}\n\ntype CDImplemented struct {\n\tA string  `json:\"a\" database:\"CDImplementeda\"`\n\tB int     `json:\"b\" database:\"CDImplementedb\"`\n\tC bool    `json:\"c\" database:\"CDImplementedc\"`\n\tD *string `json:\"d\" database:\"CDImplementedd\"`\n}\n\nfunc (CDImplemented) IsC()              {}\nfunc (this CDImplemented) GetA() string { return this.A }\nfunc (this CDImplemented) GetC() bool   { return this.C }\n\nfunc (CDImplemented) IsA() {}\n\nfunc (CDImplemented) IsD() {}\n\nfunc (this CDImplemented) GetB() int     { return this.B }\nfunc (this CDImplemented) GetD() *string { return this.D }\n\nfunc (CDImplemented) IsB() {}\n\ntype CyclicalA struct {\n\tFieldOne   *CyclicalB `json:\"field_one\" database:\"CyclicalAfield_one\"`\n\tFieldTwo   *CyclicalB `json:\"field_two\" database:\"CyclicalAfield_two\"`\n\tFieldThree *CyclicalB `json:\"field_three\" database:\"CyclicalAfield_three\"`\n\tFieldFour  string     `json:\"field_four\" database:\"CyclicalAfield_four\"`\n}\n\ntype CyclicalB struct {\n\tFieldOne   *CyclicalA `json:\"field_one\" database:\"CyclicalBfield_one\"`\n\tFieldTwo   *CyclicalA `json:\"field_two\" database:\"CyclicalBfield_two\"`\n\tFieldThree *CyclicalA `json:\"field_three\" database:\"CyclicalBfield_three\"`\n\tFieldFour  *CyclicalA `json:\"field_four\" database:\"CyclicalBfield_four\"`\n\tFieldFive  string     `json:\"field_five\" database:\"CyclicalBfield_five\"`\n}\n\ntype ExtraFieldsTest struct {\n\tSchemaField string `json:\"SchemaField\" database:\"ExtraFieldsTestSchemaField\"`\n}\n\ntype FieldMutationHook struct {\n\tName     *string           `json:\"name\" anotherTag:\"tag\" database:\"FieldMutationHookname\"`\n\tEnum     *out.ExistingEnum `json:\"enum\" yetAnotherTag:\"12\" database:\"FieldMutationHookenum\"`\n\tNoVal    *string           `json:\"noVal\" yaml:\"noVal\" repeated:\"true\" database:\"FieldMutationHooknoVal\"`\n\tRepeated *string           `json:\"repeated\" someTag:\"value\" repeated:\"true\" database:\"FieldMutationHookrepeated\"`\n}\n\ntype ImplArrayOfA struct {\n\tTrickyField        []*CDImplemented `json:\"trickyField\" database:\"ImplArrayOfAtrickyField\"`\n\tTrickyFieldPointer []*CDImplemented `json:\"trickyFieldPointer\" database:\"ImplArrayOfAtrickyFieldPointer\"`\n}\n\nfunc (ImplArrayOfA) IsArrayOfA() {}\nfunc (this ImplArrayOfA) GetTrickyField() []A {\n\tif this.TrickyField == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]A, 0, len(this.TrickyField))\n\tfor _, concrete := range this.TrickyField {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\nfunc (this ImplArrayOfA) GetTrickyFieldPointer() []A {\n\tif this.TrickyFieldPointer == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]A, 0, len(this.TrickyFieldPointer))\n\tfor _, concrete := range this.TrickyFieldPointer {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\n\ntype MissingInput struct {\n\tName          *string                               `json:\"name\" database:\"MissingInputname\"`\n\tEnum          *MissingEnum                          `json:\"enum\" database:\"MissingInputenum\"`\n\tNonNullString string                                `json:\"nonNullString\" database:\"MissingInputnonNullString\"`\n\tNullString    graphql.Omittable[*string]            `json:\"nullString\" database:\"MissingInputnullString\"`\n\tNullEnum      graphql.Omittable[*MissingEnum]       `json:\"nullEnum\" database:\"MissingInputnullEnum\"`\n\tNullObject    graphql.Omittable[*out.ExistingInput] `json:\"nullObject\" database:\"MissingInputnullObject\"`\n}\n\ntype MissingTypeNotNull struct {\n\tName     string               `json:\"name\" database:\"MissingTypeNotNullname\"`\n\tEnum     MissingEnum          `json:\"enum\" database:\"MissingTypeNotNullenum\"`\n\tInt      MissingInterface     `json:\"int\" database:\"MissingTypeNotNullint\"`\n\tExisting *out.ExistingType    `json:\"existing\" database:\"MissingTypeNotNullexisting\"`\n\tMissing2 *MissingTypeNullable `json:\"missing2\" database:\"MissingTypeNotNullmissing2\"`\n}\n\nfunc (MissingTypeNotNull) IsMissingInterface()   {}\nfunc (this MissingTypeNotNull) GetName() *string { return &this.Name }\n\nfunc (MissingTypeNotNull) IsExistingInterface() {}\n\nfunc (MissingTypeNotNull) IsMissingUnion() {}\n\nfunc (MissingTypeNotNull) IsExistingUnion() {}\n\ntype MissingTypeNullable struct {\n\tName     *string             `json:\"name\" database:\"MissingTypeNullablename\"`\n\tEnum     *MissingEnum        `json:\"enum\" database:\"MissingTypeNullableenum\"`\n\tInt      MissingInterface    `json:\"int\" database:\"MissingTypeNullableint\"`\n\tExisting *out.ExistingType   `json:\"existing\" database:\"MissingTypeNullableexisting\"`\n\tMissing2 *MissingTypeNotNull `json:\"missing2\" database:\"MissingTypeNullablemissing2\"`\n}\n\nfunc (MissingTypeNullable) IsMissingInterface()   {}\nfunc (this MissingTypeNullable) GetName() *string { return this.Name }\n\nfunc (MissingTypeNullable) IsExistingInterface() {}\n\nfunc (MissingTypeNullable) IsMissingUnion() {}\n\nfunc (MissingTypeNullable) IsExistingUnion() {}\n\ntype Mutation struct {\n}\n\ntype NotCyclicalA struct {\n\tFieldOne string `json:\"FieldOne\" database:\"NotCyclicalAFieldOne\"`\n\tFieldTwo int    `json:\"FieldTwo\" database:\"NotCyclicalAFieldTwo\"`\n}\n\ntype NotCyclicalB struct {\n\tFieldOne string        `json:\"FieldOne\" database:\"NotCyclicalBFieldOne\"`\n\tFieldTwo *NotCyclicalA `json:\"FieldTwo\" database:\"NotCyclicalBFieldTwo\"`\n}\n\ntype OmitEmptyJSONTagTest struct {\n\tValueNonNil string  `json:\"ValueNonNil\" database:\"OmitEmptyJsonTagTestValueNonNil\"`\n\tValue       *string `json:\"Value\" database:\"OmitEmptyJsonTagTestValue\"`\n}\n\ntype OmitZeroJSONTagTest struct {\n\tValueNonNil string  `json:\"ValueNonNil\" database:\"OmitZeroJSONTagTestValueNonNil\"`\n\tValue       *string `json:\"Value\" database:\"OmitZeroJSONTagTestValue\"`\n}\n\ntype Query struct {\n}\n\ntype Recursive struct {\n\tFieldOne   *Recursive `json:\"FieldOne\" database:\"RecursiveFieldOne\"`\n\tFieldTwo   *Recursive `json:\"FieldTwo\" database:\"RecursiveFieldTwo\"`\n\tFieldThree *Recursive `json:\"FieldThree\" database:\"RecursiveFieldThree\"`\n\tFieldFour  string     `json:\"FieldFour\" database:\"RecursiveFieldFour\"`\n}\n\ntype RenameFieldTest struct {\n\tBadName    string `json:\"badName\" database:\"RenameFieldTestbadName\"`\n\tOtherField string `json:\"otherField\" database:\"RenameFieldTestotherField\"`\n}\n\ntype Subscription struct {\n}\n\n// TypeWithDescription is a type with a description\ntype TypeWithDescription struct {\n\tName *string `json:\"name\" database:\"TypeWithDescriptionname\"`\n}\n\nfunc (TypeWithDescription) IsUnionWithDescription() {}\n\ntype Xer struct {\n\tId   string `json:\"Id\" database:\"XerId\"`\n\tName string `json:\"Name\" database:\"XerName\"`\n}\n\nfunc (Xer) IsX()               {}\nfunc (this Xer) GetId() string { return this.Id }\n\ntype FooBarr struct {\n\tName string `json:\"name\" database:\"_Foo_Barrname\"`\n}\n\nfunc (FooBarr) IsFooBarer()          {}\nfunc (this FooBarr) GetName() string { return this.Name }\n\n// EnumWithDescription is an enum with a description\ntype EnumWithDescription string\n\nconst (\n\tEnumWithDescriptionCat EnumWithDescription = \"CAT\"\n\tEnumWithDescriptionDog EnumWithDescription = \"DOG\"\n)\n\nvar AllEnumWithDescription = []EnumWithDescription{\n\tEnumWithDescriptionCat,\n\tEnumWithDescriptionDog,\n}\n\nfunc (e EnumWithDescription) IsValid() bool {\n\tswitch e {\n\tcase EnumWithDescriptionCat, EnumWithDescriptionDog:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e EnumWithDescription) String() string {\n\treturn string(e)\n}\n\nfunc (e *EnumWithDescription) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = EnumWithDescription(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid EnumWithDescription\", str)\n\t}\n\treturn nil\n}\n\nfunc (e EnumWithDescription) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *EnumWithDescription) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e EnumWithDescription) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n\ntype MissingEnum string\n\nconst (\n\tMissingEnumHello   MissingEnum = \"Hello\"\n\tMissingEnumGoodbye MissingEnum = \"Goodbye\"\n)\n\nvar AllMissingEnum = []MissingEnum{\n\tMissingEnumHello,\n\tMissingEnumGoodbye,\n}\n\nfunc (e MissingEnum) IsValid() bool {\n\tswitch e {\n\tcase MissingEnumHello, MissingEnumGoodbye:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e MissingEnum) String() string {\n\treturn string(e)\n}\n\nfunc (e *MissingEnum) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = MissingEnum(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid MissingEnum\", str)\n\t}\n\treturn nil\n}\n\nfunc (e MissingEnum) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *MissingEnum) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e MissingEnum) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n"
  },
  {
    "path": "plugin/modelgen/out_enable_model_json_omitempty_tag_false_omitempty_tag_false_omitzero_tag_nil/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage out_enable_model_json_omitempty_tag_false_omitempty_tag_false_omitzero_tag_nil\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/plugin/modelgen/out\"\n)\n\ntype A interface {\n\tIsA()\n\tGetA() string\n}\n\ntype ArrayOfA interface {\n\tIsArrayOfA()\n\tGetTrickyField() []A\n\tGetTrickyFieldPointer() []A\n}\n\ntype B interface {\n\tIsB()\n\tGetB() int\n}\n\ntype C interface {\n\tIsA()\n\tIsC()\n\tGetA() string\n\tGetC() bool\n}\n\ntype D interface {\n\tIsA()\n\tIsB()\n\tIsD()\n\tGetA() string\n\tGetB() int\n\tGetD() *string\n}\n\ntype FooBarer interface {\n\tIsFooBarer()\n\tGetName() string\n}\n\n// InterfaceWithDescription is an interface with a description\ntype InterfaceWithDescription interface {\n\tIsInterfaceWithDescription()\n\tGetName() *string\n}\n\ntype MissingInterface interface {\n\tIsMissingInterface()\n\tGetName() *string\n}\n\ntype MissingUnion interface {\n\tIsMissingUnion()\n}\n\n// UnionWithDescription is an union with a description\ntype UnionWithDescription interface {\n\tIsUnionWithDescription()\n}\n\ntype X interface {\n\tIsX()\n\tGetId() string\n}\n\ntype CDImplemented struct {\n\tA string  `json:\"a\" database:\"CDImplementeda\"`\n\tB int     `json:\"b\" database:\"CDImplementedb\"`\n\tC bool    `json:\"c\" database:\"CDImplementedc\"`\n\tD *string `json:\"d\" database:\"CDImplementedd\"`\n}\n\nfunc (CDImplemented) IsC()              {}\nfunc (this CDImplemented) GetA() string { return this.A }\nfunc (this CDImplemented) GetC() bool   { return this.C }\n\nfunc (CDImplemented) IsA() {}\n\nfunc (CDImplemented) IsD() {}\n\nfunc (this CDImplemented) GetB() int     { return this.B }\nfunc (this CDImplemented) GetD() *string { return this.D }\n\nfunc (CDImplemented) IsB() {}\n\ntype CyclicalA struct {\n\tFieldOne   *CyclicalB `json:\"field_one\" database:\"CyclicalAfield_one\"`\n\tFieldTwo   *CyclicalB `json:\"field_two\" database:\"CyclicalAfield_two\"`\n\tFieldThree *CyclicalB `json:\"field_three\" database:\"CyclicalAfield_three\"`\n\tFieldFour  string     `json:\"field_four\" database:\"CyclicalAfield_four\"`\n}\n\ntype CyclicalB struct {\n\tFieldOne   *CyclicalA `json:\"field_one\" database:\"CyclicalBfield_one\"`\n\tFieldTwo   *CyclicalA `json:\"field_two\" database:\"CyclicalBfield_two\"`\n\tFieldThree *CyclicalA `json:\"field_three\" database:\"CyclicalBfield_three\"`\n\tFieldFour  *CyclicalA `json:\"field_four\" database:\"CyclicalBfield_four\"`\n\tFieldFive  string     `json:\"field_five\" database:\"CyclicalBfield_five\"`\n}\n\ntype ExtraFieldsTest struct {\n\tSchemaField string `json:\"SchemaField\" database:\"ExtraFieldsTestSchemaField\"`\n}\n\ntype FieldMutationHook struct {\n\tName     *string           `json:\"name\" anotherTag:\"tag\" database:\"FieldMutationHookname\"`\n\tEnum     *out.ExistingEnum `json:\"enum\" yetAnotherTag:\"12\" database:\"FieldMutationHookenum\"`\n\tNoVal    *string           `json:\"noVal\" yaml:\"noVal\" repeated:\"true\" database:\"FieldMutationHooknoVal\"`\n\tRepeated *string           `json:\"repeated\" someTag:\"value\" repeated:\"true\" database:\"FieldMutationHookrepeated\"`\n}\n\ntype ImplArrayOfA struct {\n\tTrickyField        []*CDImplemented `json:\"trickyField\" database:\"ImplArrayOfAtrickyField\"`\n\tTrickyFieldPointer []*CDImplemented `json:\"trickyFieldPointer\" database:\"ImplArrayOfAtrickyFieldPointer\"`\n}\n\nfunc (ImplArrayOfA) IsArrayOfA() {}\nfunc (this ImplArrayOfA) GetTrickyField() []A {\n\tif this.TrickyField == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]A, 0, len(this.TrickyField))\n\tfor _, concrete := range this.TrickyField {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\nfunc (this ImplArrayOfA) GetTrickyFieldPointer() []A {\n\tif this.TrickyFieldPointer == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]A, 0, len(this.TrickyFieldPointer))\n\tfor _, concrete := range this.TrickyFieldPointer {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\n\ntype MissingInput struct {\n\tName          *string                               `json:\"name\" database:\"MissingInputname\"`\n\tEnum          *MissingEnum                          `json:\"enum\" database:\"MissingInputenum\"`\n\tNonNullString string                                `json:\"nonNullString\" database:\"MissingInputnonNullString\"`\n\tNullString    graphql.Omittable[*string]            `json:\"nullString\" database:\"MissingInputnullString\"`\n\tNullEnum      graphql.Omittable[*MissingEnum]       `json:\"nullEnum\" database:\"MissingInputnullEnum\"`\n\tNullObject    graphql.Omittable[*out.ExistingInput] `json:\"nullObject\" database:\"MissingInputnullObject\"`\n}\n\ntype MissingTypeNotNull struct {\n\tName     string               `json:\"name\" database:\"MissingTypeNotNullname\"`\n\tEnum     MissingEnum          `json:\"enum\" database:\"MissingTypeNotNullenum\"`\n\tInt      MissingInterface     `json:\"int\" database:\"MissingTypeNotNullint\"`\n\tExisting *out.ExistingType    `json:\"existing\" database:\"MissingTypeNotNullexisting\"`\n\tMissing2 *MissingTypeNullable `json:\"missing2\" database:\"MissingTypeNotNullmissing2\"`\n}\n\nfunc (MissingTypeNotNull) IsMissingInterface()   {}\nfunc (this MissingTypeNotNull) GetName() *string { return &this.Name }\n\nfunc (MissingTypeNotNull) IsExistingInterface() {}\n\nfunc (MissingTypeNotNull) IsMissingUnion() {}\n\nfunc (MissingTypeNotNull) IsExistingUnion() {}\n\ntype MissingTypeNullable struct {\n\tName     *string             `json:\"name\" database:\"MissingTypeNullablename\"`\n\tEnum     *MissingEnum        `json:\"enum\" database:\"MissingTypeNullableenum\"`\n\tInt      MissingInterface    `json:\"int\" database:\"MissingTypeNullableint\"`\n\tExisting *out.ExistingType   `json:\"existing\" database:\"MissingTypeNullableexisting\"`\n\tMissing2 *MissingTypeNotNull `json:\"missing2\" database:\"MissingTypeNullablemissing2\"`\n}\n\nfunc (MissingTypeNullable) IsMissingInterface()   {}\nfunc (this MissingTypeNullable) GetName() *string { return this.Name }\n\nfunc (MissingTypeNullable) IsExistingInterface() {}\n\nfunc (MissingTypeNullable) IsMissingUnion() {}\n\nfunc (MissingTypeNullable) IsExistingUnion() {}\n\ntype Mutation struct {\n}\n\ntype NotCyclicalA struct {\n\tFieldOne string `json:\"FieldOne\" database:\"NotCyclicalAFieldOne\"`\n\tFieldTwo int    `json:\"FieldTwo\" database:\"NotCyclicalAFieldTwo\"`\n}\n\ntype NotCyclicalB struct {\n\tFieldOne string        `json:\"FieldOne\" database:\"NotCyclicalBFieldOne\"`\n\tFieldTwo *NotCyclicalA `json:\"FieldTwo\" database:\"NotCyclicalBFieldTwo\"`\n}\n\ntype OmitEmptyJSONTagTest struct {\n\tValueNonNil string  `json:\"ValueNonNil\" database:\"OmitEmptyJsonTagTestValueNonNil\"`\n\tValue       *string `json:\"Value\" database:\"OmitEmptyJsonTagTestValue\"`\n}\n\ntype OmitZeroJSONTagTest struct {\n\tValueNonNil string  `json:\"ValueNonNil\" database:\"OmitZeroJSONTagTestValueNonNil\"`\n\tValue       *string `json:\"Value\" database:\"OmitZeroJSONTagTestValue\"`\n}\n\ntype Query struct {\n}\n\ntype Recursive struct {\n\tFieldOne   *Recursive `json:\"FieldOne\" database:\"RecursiveFieldOne\"`\n\tFieldTwo   *Recursive `json:\"FieldTwo\" database:\"RecursiveFieldTwo\"`\n\tFieldThree *Recursive `json:\"FieldThree\" database:\"RecursiveFieldThree\"`\n\tFieldFour  string     `json:\"FieldFour\" database:\"RecursiveFieldFour\"`\n}\n\ntype RenameFieldTest struct {\n\tBadName    string `json:\"badName\" database:\"RenameFieldTestbadName\"`\n\tOtherField string `json:\"otherField\" database:\"RenameFieldTestotherField\"`\n}\n\ntype Subscription struct {\n}\n\n// TypeWithDescription is a type with a description\ntype TypeWithDescription struct {\n\tName *string `json:\"name\" database:\"TypeWithDescriptionname\"`\n}\n\nfunc (TypeWithDescription) IsUnionWithDescription() {}\n\ntype Xer struct {\n\tId   string `json:\"Id\" database:\"XerId\"`\n\tName string `json:\"Name\" database:\"XerName\"`\n}\n\nfunc (Xer) IsX()               {}\nfunc (this Xer) GetId() string { return this.Id }\n\ntype FooBarr struct {\n\tName string `json:\"name\" database:\"_Foo_Barrname\"`\n}\n\nfunc (FooBarr) IsFooBarer()          {}\nfunc (this FooBarr) GetName() string { return this.Name }\n\n// EnumWithDescription is an enum with a description\ntype EnumWithDescription string\n\nconst (\n\tEnumWithDescriptionCat EnumWithDescription = \"CAT\"\n\tEnumWithDescriptionDog EnumWithDescription = \"DOG\"\n)\n\nvar AllEnumWithDescription = []EnumWithDescription{\n\tEnumWithDescriptionCat,\n\tEnumWithDescriptionDog,\n}\n\nfunc (e EnumWithDescription) IsValid() bool {\n\tswitch e {\n\tcase EnumWithDescriptionCat, EnumWithDescriptionDog:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e EnumWithDescription) String() string {\n\treturn string(e)\n}\n\nfunc (e *EnumWithDescription) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = EnumWithDescription(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid EnumWithDescription\", str)\n\t}\n\treturn nil\n}\n\nfunc (e EnumWithDescription) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\ntype MissingEnum string\n\nconst (\n\tMissingEnumHello   MissingEnum = \"Hello\"\n\tMissingEnumGoodbye MissingEnum = \"Goodbye\"\n)\n\nvar AllMissingEnum = []MissingEnum{\n\tMissingEnumHello,\n\tMissingEnumGoodbye,\n}\n\nfunc (e MissingEnum) IsValid() bool {\n\tswitch e {\n\tcase MissingEnumHello, MissingEnumGoodbye:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e MissingEnum) String() string {\n\treturn string(e)\n}\n\nfunc (e *MissingEnum) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = MissingEnum(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid MissingEnum\", str)\n\t}\n\treturn nil\n}\n\nfunc (e MissingEnum) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n"
  },
  {
    "path": "plugin/modelgen/out_enable_model_json_omitempty_tag_false_omitempty_tag_false_omitzero_tag_true/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage out_enable_model_json_omitempty_tag_false_omitempty_tag_false_omitzero_tag_true\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/plugin/modelgen/out\"\n)\n\ntype A interface {\n\tIsA()\n\tGetA() string\n}\n\ntype ArrayOfA interface {\n\tIsArrayOfA()\n\tGetTrickyField() []A\n\tGetTrickyFieldPointer() []A\n}\n\ntype B interface {\n\tIsB()\n\tGetB() int\n}\n\ntype C interface {\n\tIsA()\n\tIsC()\n\tGetA() string\n\tGetC() bool\n}\n\ntype D interface {\n\tIsA()\n\tIsB()\n\tIsD()\n\tGetA() string\n\tGetB() int\n\tGetD() *string\n}\n\ntype FooBarer interface {\n\tIsFooBarer()\n\tGetName() string\n}\n\n// InterfaceWithDescription is an interface with a description\ntype InterfaceWithDescription interface {\n\tIsInterfaceWithDescription()\n\tGetName() *string\n}\n\ntype MissingInterface interface {\n\tIsMissingInterface()\n\tGetName() *string\n}\n\ntype MissingUnion interface {\n\tIsMissingUnion()\n}\n\n// UnionWithDescription is an union with a description\ntype UnionWithDescription interface {\n\tIsUnionWithDescription()\n}\n\ntype X interface {\n\tIsX()\n\tGetId() string\n}\n\ntype CDImplemented struct {\n\tA string  `json:\"a\" database:\"CDImplementeda\"`\n\tB int     `json:\"b\" database:\"CDImplementedb\"`\n\tC bool    `json:\"c\" database:\"CDImplementedc\"`\n\tD *string `json:\"d,omitzero\" database:\"CDImplementedd\"`\n}\n\nfunc (CDImplemented) IsC()              {}\nfunc (this CDImplemented) GetA() string { return this.A }\nfunc (this CDImplemented) GetC() bool   { return this.C }\n\nfunc (CDImplemented) IsA() {}\n\nfunc (CDImplemented) IsD() {}\n\nfunc (this CDImplemented) GetB() int     { return this.B }\nfunc (this CDImplemented) GetD() *string { return this.D }\n\nfunc (CDImplemented) IsB() {}\n\ntype CyclicalA struct {\n\tFieldOne   *CyclicalB `json:\"field_one,omitzero\" database:\"CyclicalAfield_one\"`\n\tFieldTwo   *CyclicalB `json:\"field_two,omitzero\" database:\"CyclicalAfield_two\"`\n\tFieldThree *CyclicalB `json:\"field_three,omitzero\" database:\"CyclicalAfield_three\"`\n\tFieldFour  string     `json:\"field_four\" database:\"CyclicalAfield_four\"`\n}\n\ntype CyclicalB struct {\n\tFieldOne   *CyclicalA `json:\"field_one,omitzero\" database:\"CyclicalBfield_one\"`\n\tFieldTwo   *CyclicalA `json:\"field_two,omitzero\" database:\"CyclicalBfield_two\"`\n\tFieldThree *CyclicalA `json:\"field_three,omitzero\" database:\"CyclicalBfield_three\"`\n\tFieldFour  *CyclicalA `json:\"field_four,omitzero\" database:\"CyclicalBfield_four\"`\n\tFieldFive  string     `json:\"field_five\" database:\"CyclicalBfield_five\"`\n}\n\ntype ExtraFieldsTest struct {\n\tSchemaField string `json:\"SchemaField\" database:\"ExtraFieldsTestSchemaField\"`\n}\n\ntype FieldMutationHook struct {\n\tName     *string           `json:\"name,omitzero\" anotherTag:\"tag\" database:\"FieldMutationHookname\"`\n\tEnum     *out.ExistingEnum `json:\"enum,omitzero\" yetAnotherTag:\"12\" database:\"FieldMutationHookenum\"`\n\tNoVal    *string           `json:\"noVal,omitzero\" yaml:\"noVal\" repeated:\"true\" database:\"FieldMutationHooknoVal\"`\n\tRepeated *string           `json:\"repeated,omitzero\" someTag:\"value\" repeated:\"true\" database:\"FieldMutationHookrepeated\"`\n}\n\ntype ImplArrayOfA struct {\n\tTrickyField        []*CDImplemented `json:\"trickyField\" database:\"ImplArrayOfAtrickyField\"`\n\tTrickyFieldPointer []*CDImplemented `json:\"trickyFieldPointer,omitzero\" database:\"ImplArrayOfAtrickyFieldPointer\"`\n}\n\nfunc (ImplArrayOfA) IsArrayOfA() {}\nfunc (this ImplArrayOfA) GetTrickyField() []A {\n\tif this.TrickyField == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]A, 0, len(this.TrickyField))\n\tfor _, concrete := range this.TrickyField {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\nfunc (this ImplArrayOfA) GetTrickyFieldPointer() []A {\n\tif this.TrickyFieldPointer == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]A, 0, len(this.TrickyFieldPointer))\n\tfor _, concrete := range this.TrickyFieldPointer {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\n\ntype MissingInput struct {\n\tName          *string                               `json:\"name,omitzero\" database:\"MissingInputname\"`\n\tEnum          *MissingEnum                          `json:\"enum,omitzero\" database:\"MissingInputenum\"`\n\tNonNullString string                                `json:\"nonNullString\" database:\"MissingInputnonNullString\"`\n\tNullString    graphql.Omittable[*string]            `json:\"nullString,omitzero\" database:\"MissingInputnullString\"`\n\tNullEnum      graphql.Omittable[*MissingEnum]       `json:\"nullEnum,omitzero\" database:\"MissingInputnullEnum\"`\n\tNullObject    graphql.Omittable[*out.ExistingInput] `json:\"nullObject,omitzero\" database:\"MissingInputnullObject\"`\n}\n\ntype MissingTypeNotNull struct {\n\tName     string               `json:\"name\" database:\"MissingTypeNotNullname\"`\n\tEnum     MissingEnum          `json:\"enum\" database:\"MissingTypeNotNullenum\"`\n\tInt      MissingInterface     `json:\"int\" database:\"MissingTypeNotNullint\"`\n\tExisting *out.ExistingType    `json:\"existing\" database:\"MissingTypeNotNullexisting\"`\n\tMissing2 *MissingTypeNullable `json:\"missing2\" database:\"MissingTypeNotNullmissing2\"`\n}\n\nfunc (MissingTypeNotNull) IsMissingInterface()   {}\nfunc (this MissingTypeNotNull) GetName() *string { return &this.Name }\n\nfunc (MissingTypeNotNull) IsExistingInterface() {}\n\nfunc (MissingTypeNotNull) IsMissingUnion() {}\n\nfunc (MissingTypeNotNull) IsExistingUnion() {}\n\ntype MissingTypeNullable struct {\n\tName     *string             `json:\"name,omitzero\" database:\"MissingTypeNullablename\"`\n\tEnum     *MissingEnum        `json:\"enum,omitzero\" database:\"MissingTypeNullableenum\"`\n\tInt      MissingInterface    `json:\"int,omitzero\" database:\"MissingTypeNullableint\"`\n\tExisting *out.ExistingType   `json:\"existing,omitzero\" database:\"MissingTypeNullableexisting\"`\n\tMissing2 *MissingTypeNotNull `json:\"missing2,omitzero\" database:\"MissingTypeNullablemissing2\"`\n}\n\nfunc (MissingTypeNullable) IsMissingInterface()   {}\nfunc (this MissingTypeNullable) GetName() *string { return this.Name }\n\nfunc (MissingTypeNullable) IsExistingInterface() {}\n\nfunc (MissingTypeNullable) IsMissingUnion() {}\n\nfunc (MissingTypeNullable) IsExistingUnion() {}\n\ntype Mutation struct {\n}\n\ntype NotCyclicalA struct {\n\tFieldOne string `json:\"FieldOne\" database:\"NotCyclicalAFieldOne\"`\n\tFieldTwo int    `json:\"FieldTwo\" database:\"NotCyclicalAFieldTwo\"`\n}\n\ntype NotCyclicalB struct {\n\tFieldOne string        `json:\"FieldOne\" database:\"NotCyclicalBFieldOne\"`\n\tFieldTwo *NotCyclicalA `json:\"FieldTwo\" database:\"NotCyclicalBFieldTwo\"`\n}\n\ntype OmitEmptyJSONTagTest struct {\n\tValueNonNil string  `json:\"ValueNonNil\" database:\"OmitEmptyJsonTagTestValueNonNil\"`\n\tValue       *string `json:\"Value,omitzero\" database:\"OmitEmptyJsonTagTestValue\"`\n}\n\ntype OmitZeroJSONTagTest struct {\n\tValueNonNil string  `json:\"ValueNonNil\" database:\"OmitZeroJSONTagTestValueNonNil\"`\n\tValue       *string `json:\"Value,omitzero\" database:\"OmitZeroJSONTagTestValue\"`\n}\n\ntype Query struct {\n}\n\ntype Recursive struct {\n\tFieldOne   *Recursive `json:\"FieldOne\" database:\"RecursiveFieldOne\"`\n\tFieldTwo   *Recursive `json:\"FieldTwo\" database:\"RecursiveFieldTwo\"`\n\tFieldThree *Recursive `json:\"FieldThree\" database:\"RecursiveFieldThree\"`\n\tFieldFour  string     `json:\"FieldFour\" database:\"RecursiveFieldFour\"`\n}\n\ntype RenameFieldTest struct {\n\tBadName    string `json:\"badName\" database:\"RenameFieldTestbadName\"`\n\tOtherField string `json:\"otherField\" database:\"RenameFieldTestotherField\"`\n}\n\ntype Subscription struct {\n}\n\n// TypeWithDescription is a type with a description\ntype TypeWithDescription struct {\n\tName *string `json:\"name,omitzero\" database:\"TypeWithDescriptionname\"`\n}\n\nfunc (TypeWithDescription) IsUnionWithDescription() {}\n\ntype Xer struct {\n\tId   string `json:\"Id\" database:\"XerId\"`\n\tName string `json:\"Name\" database:\"XerName\"`\n}\n\nfunc (Xer) IsX()               {}\nfunc (this Xer) GetId() string { return this.Id }\n\ntype FooBarr struct {\n\tName string `json:\"name\" database:\"_Foo_Barrname\"`\n}\n\nfunc (FooBarr) IsFooBarer()          {}\nfunc (this FooBarr) GetName() string { return this.Name }\n\n// EnumWithDescription is an enum with a description\ntype EnumWithDescription string\n\nconst (\n\tEnumWithDescriptionCat EnumWithDescription = \"CAT\"\n\tEnumWithDescriptionDog EnumWithDescription = \"DOG\"\n)\n\nvar AllEnumWithDescription = []EnumWithDescription{\n\tEnumWithDescriptionCat,\n\tEnumWithDescriptionDog,\n}\n\nfunc (e EnumWithDescription) IsValid() bool {\n\tswitch e {\n\tcase EnumWithDescriptionCat, EnumWithDescriptionDog:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e EnumWithDescription) String() string {\n\treturn string(e)\n}\n\nfunc (e *EnumWithDescription) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = EnumWithDescription(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid EnumWithDescription\", str)\n\t}\n\treturn nil\n}\n\nfunc (e EnumWithDescription) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\ntype MissingEnum string\n\nconst (\n\tMissingEnumHello   MissingEnum = \"Hello\"\n\tMissingEnumGoodbye MissingEnum = \"Goodbye\"\n)\n\nvar AllMissingEnum = []MissingEnum{\n\tMissingEnumHello,\n\tMissingEnumGoodbye,\n}\n\nfunc (e MissingEnum) IsValid() bool {\n\tswitch e {\n\tcase MissingEnumHello, MissingEnumGoodbye:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e MissingEnum) String() string {\n\treturn string(e)\n}\n\nfunc (e *MissingEnum) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = MissingEnum(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid MissingEnum\", str)\n\t}\n\treturn nil\n}\n\nfunc (e MissingEnum) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n"
  },
  {
    "path": "plugin/modelgen/out_enable_model_json_omitempty_tag_false_omitzero_tag_false/existing.go",
    "content": "package out_enable_model_json_omitempty_tag_false_omitzero_tag_false\n\ntype ExistingType struct {\n\tName     *string              `json:\"name\"`\n\tEnum     *ExistingEnum        `json:\"enum\"`\n\tInt      ExistingInterface    `json:\"int\"`\n\tExisting *MissingTypeNullable `json:\"existing\"`\n}\n\ntype ExistingModel struct {\n\tName string\n\tEnum ExistingEnum\n\tInt  ExistingInterface\n}\n\ntype ExistingInput struct {\n\tName string\n\tEnum ExistingEnum\n\tInt  ExistingInterface\n}\n\ntype ExistingEnum string\n\ntype ExistingInterface interface {\n\tIsExistingInterface()\n}\n\ntype ExistingUnion interface {\n\tIsExistingUnion()\n}\n"
  },
  {
    "path": "plugin/modelgen/out_enable_model_json_omitempty_tag_false_omitzero_tag_false/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage out_enable_model_json_omitempty_tag_false_omitzero_tag_false\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/plugin/modelgen/out\"\n)\n\ntype A interface {\n\tIsA()\n\tGetA() string\n}\n\ntype ArrayOfA interface {\n\tIsArrayOfA()\n\tGetTrickyField() []A\n\tGetTrickyFieldPointer() []A\n}\n\ntype B interface {\n\tIsB()\n\tGetB() int\n}\n\ntype C interface {\n\tIsA()\n\tIsC()\n\tGetA() string\n\tGetC() bool\n}\n\ntype D interface {\n\tIsA()\n\tIsB()\n\tIsD()\n\tGetA() string\n\tGetB() int\n\tGetD() *string\n}\n\ntype FooBarer interface {\n\tIsFooBarer()\n\tGetName() string\n}\n\n// InterfaceWithDescription is an interface with a description\ntype InterfaceWithDescription interface {\n\tIsInterfaceWithDescription()\n\tGetName() *string\n}\n\ntype MissingInterface interface {\n\tIsMissingInterface()\n\tGetName() *string\n}\n\ntype MissingUnion interface {\n\tIsMissingUnion()\n}\n\n// UnionWithDescription is an union with a description\ntype UnionWithDescription interface {\n\tIsUnionWithDescription()\n}\n\ntype X interface {\n\tIsX()\n\tGetId() string\n}\n\ntype CDImplemented struct {\n\tA string  `json:\"a\" database:\"CDImplementeda\"`\n\tB int     `json:\"b\" database:\"CDImplementedb\"`\n\tC bool    `json:\"c\" database:\"CDImplementedc\"`\n\tD *string `json:\"d\" database:\"CDImplementedd\"`\n}\n\nfunc (CDImplemented) IsC()              {}\nfunc (this CDImplemented) GetA() string { return this.A }\nfunc (this CDImplemented) GetC() bool   { return this.C }\n\nfunc (CDImplemented) IsA() {}\n\nfunc (CDImplemented) IsD() {}\n\nfunc (this CDImplemented) GetB() int     { return this.B }\nfunc (this CDImplemented) GetD() *string { return this.D }\n\nfunc (CDImplemented) IsB() {}\n\ntype CyclicalA struct {\n\tFieldOne   *CyclicalB `json:\"field_one\" database:\"CyclicalAfield_one\"`\n\tFieldTwo   *CyclicalB `json:\"field_two\" database:\"CyclicalAfield_two\"`\n\tFieldThree *CyclicalB `json:\"field_three\" database:\"CyclicalAfield_three\"`\n\tFieldFour  string     `json:\"field_four\" database:\"CyclicalAfield_four\"`\n}\n\ntype CyclicalB struct {\n\tFieldOne   *CyclicalA `json:\"field_one\" database:\"CyclicalBfield_one\"`\n\tFieldTwo   *CyclicalA `json:\"field_two\" database:\"CyclicalBfield_two\"`\n\tFieldThree *CyclicalA `json:\"field_three\" database:\"CyclicalBfield_three\"`\n\tFieldFour  *CyclicalA `json:\"field_four\" database:\"CyclicalBfield_four\"`\n\tFieldFive  string     `json:\"field_five\" database:\"CyclicalBfield_five\"`\n}\n\ntype ExtraFieldsTest struct {\n\tSchemaField string `json:\"SchemaField\" database:\"ExtraFieldsTestSchemaField\"`\n}\n\ntype FieldMutationHook struct {\n\tName     *string           `json:\"name\" anotherTag:\"tag\" database:\"FieldMutationHookname\"`\n\tEnum     *out.ExistingEnum `json:\"enum\" yetAnotherTag:\"12\" database:\"FieldMutationHookenum\"`\n\tNoVal    *string           `json:\"noVal\" yaml:\"noVal\" repeated:\"true\" database:\"FieldMutationHooknoVal\"`\n\tRepeated *string           `json:\"repeated\" someTag:\"value\" repeated:\"true\" database:\"FieldMutationHookrepeated\"`\n}\n\ntype ImplArrayOfA struct {\n\tTrickyField        []*CDImplemented `json:\"trickyField\" database:\"ImplArrayOfAtrickyField\"`\n\tTrickyFieldPointer []*CDImplemented `json:\"trickyFieldPointer\" database:\"ImplArrayOfAtrickyFieldPointer\"`\n}\n\nfunc (ImplArrayOfA) IsArrayOfA() {}\nfunc (this ImplArrayOfA) GetTrickyField() []A {\n\tif this.TrickyField == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]A, 0, len(this.TrickyField))\n\tfor _, concrete := range this.TrickyField {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\nfunc (this ImplArrayOfA) GetTrickyFieldPointer() []A {\n\tif this.TrickyFieldPointer == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]A, 0, len(this.TrickyFieldPointer))\n\tfor _, concrete := range this.TrickyFieldPointer {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\n\ntype MissingInput struct {\n\tName          *string                               `json:\"name\" database:\"MissingInputname\"`\n\tEnum          *MissingEnum                          `json:\"enum\" database:\"MissingInputenum\"`\n\tNonNullString string                                `json:\"nonNullString\" database:\"MissingInputnonNullString\"`\n\tNullString    graphql.Omittable[*string]            `json:\"nullString\" database:\"MissingInputnullString\"`\n\tNullEnum      graphql.Omittable[*MissingEnum]       `json:\"nullEnum\" database:\"MissingInputnullEnum\"`\n\tNullObject    graphql.Omittable[*out.ExistingInput] `json:\"nullObject\" database:\"MissingInputnullObject\"`\n}\n\ntype MissingTypeNotNull struct {\n\tName     string               `json:\"name\" database:\"MissingTypeNotNullname\"`\n\tEnum     MissingEnum          `json:\"enum\" database:\"MissingTypeNotNullenum\"`\n\tInt      MissingInterface     `json:\"int\" database:\"MissingTypeNotNullint\"`\n\tExisting *out.ExistingType    `json:\"existing\" database:\"MissingTypeNotNullexisting\"`\n\tMissing2 *MissingTypeNullable `json:\"missing2\" database:\"MissingTypeNotNullmissing2\"`\n}\n\nfunc (MissingTypeNotNull) IsMissingInterface()   {}\nfunc (this MissingTypeNotNull) GetName() *string { return &this.Name }\n\nfunc (MissingTypeNotNull) IsExistingInterface() {}\n\nfunc (MissingTypeNotNull) IsMissingUnion() {}\n\nfunc (MissingTypeNotNull) IsExistingUnion() {}\n\ntype MissingTypeNullable struct {\n\tName     *string             `json:\"name\" database:\"MissingTypeNullablename\"`\n\tEnum     *MissingEnum        `json:\"enum\" database:\"MissingTypeNullableenum\"`\n\tInt      MissingInterface    `json:\"int\" database:\"MissingTypeNullableint\"`\n\tExisting *out.ExistingType   `json:\"existing\" database:\"MissingTypeNullableexisting\"`\n\tMissing2 *MissingTypeNotNull `json:\"missing2\" database:\"MissingTypeNullablemissing2\"`\n}\n\nfunc (MissingTypeNullable) IsMissingInterface()   {}\nfunc (this MissingTypeNullable) GetName() *string { return this.Name }\n\nfunc (MissingTypeNullable) IsExistingInterface() {}\n\nfunc (MissingTypeNullable) IsMissingUnion() {}\n\nfunc (MissingTypeNullable) IsExistingUnion() {}\n\ntype Mutation struct {\n}\n\ntype NotCyclicalA struct {\n\tFieldOne string `json:\"FieldOne\" database:\"NotCyclicalAFieldOne\"`\n\tFieldTwo int    `json:\"FieldTwo\" database:\"NotCyclicalAFieldTwo\"`\n}\n\ntype NotCyclicalB struct {\n\tFieldOne string        `json:\"FieldOne\" database:\"NotCyclicalBFieldOne\"`\n\tFieldTwo *NotCyclicalA `json:\"FieldTwo\" database:\"NotCyclicalBFieldTwo\"`\n}\n\ntype OmitEmptyJSONTagTest struct {\n\tValueNonNil string  `json:\"ValueNonNil\" database:\"OmitEmptyJsonTagTestValueNonNil\"`\n\tValue       *string `json:\"Value\" database:\"OmitEmptyJsonTagTestValue\"`\n}\n\ntype OmitZeroJSONTagTest struct {\n\tValueNonNil string  `json:\"ValueNonNil\" database:\"OmitZeroJSONTagTestValueNonNil\"`\n\tValue       *string `json:\"Value\" database:\"OmitZeroJSONTagTestValue\"`\n}\n\ntype Query struct {\n}\n\ntype Recursive struct {\n\tFieldOne   *Recursive `json:\"FieldOne\" database:\"RecursiveFieldOne\"`\n\tFieldTwo   *Recursive `json:\"FieldTwo\" database:\"RecursiveFieldTwo\"`\n\tFieldThree *Recursive `json:\"FieldThree\" database:\"RecursiveFieldThree\"`\n\tFieldFour  string     `json:\"FieldFour\" database:\"RecursiveFieldFour\"`\n}\n\ntype RenameFieldTest struct {\n\tBadName    string `json:\"badName\" database:\"RenameFieldTestbadName\"`\n\tOtherField string `json:\"otherField\" database:\"RenameFieldTestotherField\"`\n}\n\ntype Subscription struct {\n}\n\n// TypeWithDescription is a type with a description\ntype TypeWithDescription struct {\n\tName *string `json:\"name\" database:\"TypeWithDescriptionname\"`\n}\n\nfunc (TypeWithDescription) IsUnionWithDescription() {}\n\ntype Xer struct {\n\tId   string `json:\"Id\" database:\"XerId\"`\n\tName string `json:\"Name\" database:\"XerName\"`\n}\n\nfunc (Xer) IsX()               {}\nfunc (this Xer) GetId() string { return this.Id }\n\ntype FooBarr struct {\n\tName string `json:\"name\" database:\"_Foo_Barrname\"`\n}\n\nfunc (FooBarr) IsFooBarer()          {}\nfunc (this FooBarr) GetName() string { return this.Name }\n\n// EnumWithDescription is an enum with a description\ntype EnumWithDescription string\n\nconst (\n\tEnumWithDescriptionCat EnumWithDescription = \"CAT\"\n\tEnumWithDescriptionDog EnumWithDescription = \"DOG\"\n)\n\nvar AllEnumWithDescription = []EnumWithDescription{\n\tEnumWithDescriptionCat,\n\tEnumWithDescriptionDog,\n}\n\nfunc (e EnumWithDescription) IsValid() bool {\n\tswitch e {\n\tcase EnumWithDescriptionCat, EnumWithDescriptionDog:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e EnumWithDescription) String() string {\n\treturn string(e)\n}\n\nfunc (e *EnumWithDescription) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = EnumWithDescription(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid EnumWithDescription\", str)\n\t}\n\treturn nil\n}\n\nfunc (e EnumWithDescription) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *EnumWithDescription) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e EnumWithDescription) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n\ntype MissingEnum string\n\nconst (\n\tMissingEnumHello   MissingEnum = \"Hello\"\n\tMissingEnumGoodbye MissingEnum = \"Goodbye\"\n)\n\nvar AllMissingEnum = []MissingEnum{\n\tMissingEnumHello,\n\tMissingEnumGoodbye,\n}\n\nfunc (e MissingEnum) IsValid() bool {\n\tswitch e {\n\tcase MissingEnumHello, MissingEnumGoodbye:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e MissingEnum) String() string {\n\treturn string(e)\n}\n\nfunc (e *MissingEnum) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = MissingEnum(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid MissingEnum\", str)\n\t}\n\treturn nil\n}\n\nfunc (e MissingEnum) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *MissingEnum) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e MissingEnum) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n"
  },
  {
    "path": "plugin/modelgen/out_enable_model_json_omitempty_tag_false_omitzero_tag_nil/existing.go",
    "content": "package out_enable_model_json_omitempty_tag_false_omitzero_tag_nil\n\ntype ExistingType struct {\n\tName     *string              `json:\"name\"`\n\tEnum     *ExistingEnum        `json:\"enum\"`\n\tInt      ExistingInterface    `json:\"int\"`\n\tExisting *MissingTypeNullable `json:\"existing\"`\n}\n\ntype ExistingModel struct {\n\tName string\n\tEnum ExistingEnum\n\tInt  ExistingInterface\n}\n\ntype ExistingInput struct {\n\tName string\n\tEnum ExistingEnum\n\tInt  ExistingInterface\n}\n\ntype ExistingEnum string\n\ntype ExistingInterface interface {\n\tIsExistingInterface()\n}\n\ntype ExistingUnion interface {\n\tIsExistingUnion()\n}\n"
  },
  {
    "path": "plugin/modelgen/out_enable_model_json_omitempty_tag_false_omitzero_tag_nil/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage out_enable_model_json_omitempty_tag_false_omitzero_tag_nil\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/plugin/modelgen/out\"\n)\n\ntype A interface {\n\tIsA()\n\tGetA() string\n}\n\ntype ArrayOfA interface {\n\tIsArrayOfA()\n\tGetTrickyField() []A\n\tGetTrickyFieldPointer() []A\n}\n\ntype B interface {\n\tIsB()\n\tGetB() int\n}\n\ntype C interface {\n\tIsA()\n\tIsC()\n\tGetA() string\n\tGetC() bool\n}\n\ntype D interface {\n\tIsA()\n\tIsB()\n\tIsD()\n\tGetA() string\n\tGetB() int\n\tGetD() *string\n}\n\ntype FooBarer interface {\n\tIsFooBarer()\n\tGetName() string\n}\n\n// InterfaceWithDescription is an interface with a description\ntype InterfaceWithDescription interface {\n\tIsInterfaceWithDescription()\n\tGetName() *string\n}\n\ntype MissingInterface interface {\n\tIsMissingInterface()\n\tGetName() *string\n}\n\ntype MissingUnion interface {\n\tIsMissingUnion()\n}\n\n// UnionWithDescription is an union with a description\ntype UnionWithDescription interface {\n\tIsUnionWithDescription()\n}\n\ntype X interface {\n\tIsX()\n\tGetId() string\n}\n\ntype CDImplemented struct {\n\tA string  `json:\"a\" database:\"CDImplementeda\"`\n\tB int     `json:\"b\" database:\"CDImplementedb\"`\n\tC bool    `json:\"c\" database:\"CDImplementedc\"`\n\tD *string `json:\"d\" database:\"CDImplementedd\"`\n}\n\nfunc (CDImplemented) IsC()              {}\nfunc (this CDImplemented) GetA() string { return this.A }\nfunc (this CDImplemented) GetC() bool   { return this.C }\n\nfunc (CDImplemented) IsA() {}\n\nfunc (CDImplemented) IsD() {}\n\nfunc (this CDImplemented) GetB() int     { return this.B }\nfunc (this CDImplemented) GetD() *string { return this.D }\n\nfunc (CDImplemented) IsB() {}\n\ntype CyclicalA struct {\n\tFieldOne   *CyclicalB `json:\"field_one\" database:\"CyclicalAfield_one\"`\n\tFieldTwo   *CyclicalB `json:\"field_two\" database:\"CyclicalAfield_two\"`\n\tFieldThree *CyclicalB `json:\"field_three\" database:\"CyclicalAfield_three\"`\n\tFieldFour  string     `json:\"field_four\" database:\"CyclicalAfield_four\"`\n}\n\ntype CyclicalB struct {\n\tFieldOne   *CyclicalA `json:\"field_one\" database:\"CyclicalBfield_one\"`\n\tFieldTwo   *CyclicalA `json:\"field_two\" database:\"CyclicalBfield_two\"`\n\tFieldThree *CyclicalA `json:\"field_three\" database:\"CyclicalBfield_three\"`\n\tFieldFour  *CyclicalA `json:\"field_four\" database:\"CyclicalBfield_four\"`\n\tFieldFive  string     `json:\"field_five\" database:\"CyclicalBfield_five\"`\n}\n\ntype ExtraFieldsTest struct {\n\tSchemaField string `json:\"SchemaField\" database:\"ExtraFieldsTestSchemaField\"`\n}\n\ntype FieldMutationHook struct {\n\tName     *string           `json:\"name\" anotherTag:\"tag\" database:\"FieldMutationHookname\"`\n\tEnum     *out.ExistingEnum `json:\"enum\" yetAnotherTag:\"12\" database:\"FieldMutationHookenum\"`\n\tNoVal    *string           `json:\"noVal\" yaml:\"noVal\" repeated:\"true\" database:\"FieldMutationHooknoVal\"`\n\tRepeated *string           `json:\"repeated\" someTag:\"value\" repeated:\"true\" database:\"FieldMutationHookrepeated\"`\n}\n\ntype ImplArrayOfA struct {\n\tTrickyField        []*CDImplemented `json:\"trickyField\" database:\"ImplArrayOfAtrickyField\"`\n\tTrickyFieldPointer []*CDImplemented `json:\"trickyFieldPointer\" database:\"ImplArrayOfAtrickyFieldPointer\"`\n}\n\nfunc (ImplArrayOfA) IsArrayOfA() {}\nfunc (this ImplArrayOfA) GetTrickyField() []A {\n\tif this.TrickyField == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]A, 0, len(this.TrickyField))\n\tfor _, concrete := range this.TrickyField {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\nfunc (this ImplArrayOfA) GetTrickyFieldPointer() []A {\n\tif this.TrickyFieldPointer == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]A, 0, len(this.TrickyFieldPointer))\n\tfor _, concrete := range this.TrickyFieldPointer {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\n\ntype MissingInput struct {\n\tName          *string                               `json:\"name\" database:\"MissingInputname\"`\n\tEnum          *MissingEnum                          `json:\"enum\" database:\"MissingInputenum\"`\n\tNonNullString string                                `json:\"nonNullString\" database:\"MissingInputnonNullString\"`\n\tNullString    graphql.Omittable[*string]            `json:\"nullString\" database:\"MissingInputnullString\"`\n\tNullEnum      graphql.Omittable[*MissingEnum]       `json:\"nullEnum\" database:\"MissingInputnullEnum\"`\n\tNullObject    graphql.Omittable[*out.ExistingInput] `json:\"nullObject\" database:\"MissingInputnullObject\"`\n}\n\ntype MissingTypeNotNull struct {\n\tName     string               `json:\"name\" database:\"MissingTypeNotNullname\"`\n\tEnum     MissingEnum          `json:\"enum\" database:\"MissingTypeNotNullenum\"`\n\tInt      MissingInterface     `json:\"int\" database:\"MissingTypeNotNullint\"`\n\tExisting *out.ExistingType    `json:\"existing\" database:\"MissingTypeNotNullexisting\"`\n\tMissing2 *MissingTypeNullable `json:\"missing2\" database:\"MissingTypeNotNullmissing2\"`\n}\n\nfunc (MissingTypeNotNull) IsMissingInterface()   {}\nfunc (this MissingTypeNotNull) GetName() *string { return &this.Name }\n\nfunc (MissingTypeNotNull) IsExistingInterface() {}\n\nfunc (MissingTypeNotNull) IsMissingUnion() {}\n\nfunc (MissingTypeNotNull) IsExistingUnion() {}\n\ntype MissingTypeNullable struct {\n\tName     *string             `json:\"name\" database:\"MissingTypeNullablename\"`\n\tEnum     *MissingEnum        `json:\"enum\" database:\"MissingTypeNullableenum\"`\n\tInt      MissingInterface    `json:\"int\" database:\"MissingTypeNullableint\"`\n\tExisting *out.ExistingType   `json:\"existing\" database:\"MissingTypeNullableexisting\"`\n\tMissing2 *MissingTypeNotNull `json:\"missing2\" database:\"MissingTypeNullablemissing2\"`\n}\n\nfunc (MissingTypeNullable) IsMissingInterface()   {}\nfunc (this MissingTypeNullable) GetName() *string { return this.Name }\n\nfunc (MissingTypeNullable) IsExistingInterface() {}\n\nfunc (MissingTypeNullable) IsMissingUnion() {}\n\nfunc (MissingTypeNullable) IsExistingUnion() {}\n\ntype Mutation struct {\n}\n\ntype NotCyclicalA struct {\n\tFieldOne string `json:\"FieldOne\" database:\"NotCyclicalAFieldOne\"`\n\tFieldTwo int    `json:\"FieldTwo\" database:\"NotCyclicalAFieldTwo\"`\n}\n\ntype NotCyclicalB struct {\n\tFieldOne string        `json:\"FieldOne\" database:\"NotCyclicalBFieldOne\"`\n\tFieldTwo *NotCyclicalA `json:\"FieldTwo\" database:\"NotCyclicalBFieldTwo\"`\n}\n\ntype OmitEmptyJSONTagTest struct {\n\tValueNonNil string  `json:\"ValueNonNil\" database:\"OmitEmptyJsonTagTestValueNonNil\"`\n\tValue       *string `json:\"Value\" database:\"OmitEmptyJsonTagTestValue\"`\n}\n\ntype OmitZeroJSONTagTest struct {\n\tValueNonNil string  `json:\"ValueNonNil\" database:\"OmitZeroJSONTagTestValueNonNil\"`\n\tValue       *string `json:\"Value\" database:\"OmitZeroJSONTagTestValue\"`\n}\n\ntype Query struct {\n}\n\ntype Recursive struct {\n\tFieldOne   *Recursive `json:\"FieldOne\" database:\"RecursiveFieldOne\"`\n\tFieldTwo   *Recursive `json:\"FieldTwo\" database:\"RecursiveFieldTwo\"`\n\tFieldThree *Recursive `json:\"FieldThree\" database:\"RecursiveFieldThree\"`\n\tFieldFour  string     `json:\"FieldFour\" database:\"RecursiveFieldFour\"`\n}\n\ntype RenameFieldTest struct {\n\tBadName    string `json:\"badName\" database:\"RenameFieldTestbadName\"`\n\tOtherField string `json:\"otherField\" database:\"RenameFieldTestotherField\"`\n}\n\ntype Subscription struct {\n}\n\n// TypeWithDescription is a type with a description\ntype TypeWithDescription struct {\n\tName *string `json:\"name\" database:\"TypeWithDescriptionname\"`\n}\n\nfunc (TypeWithDescription) IsUnionWithDescription() {}\n\ntype Xer struct {\n\tId   string `json:\"Id\" database:\"XerId\"`\n\tName string `json:\"Name\" database:\"XerName\"`\n}\n\nfunc (Xer) IsX()               {}\nfunc (this Xer) GetId() string { return this.Id }\n\ntype FooBarr struct {\n\tName string `json:\"name\" database:\"_Foo_Barrname\"`\n}\n\nfunc (FooBarr) IsFooBarer()          {}\nfunc (this FooBarr) GetName() string { return this.Name }\n\n// EnumWithDescription is an enum with a description\ntype EnumWithDescription string\n\nconst (\n\tEnumWithDescriptionCat EnumWithDescription = \"CAT\"\n\tEnumWithDescriptionDog EnumWithDescription = \"DOG\"\n)\n\nvar AllEnumWithDescription = []EnumWithDescription{\n\tEnumWithDescriptionCat,\n\tEnumWithDescriptionDog,\n}\n\nfunc (e EnumWithDescription) IsValid() bool {\n\tswitch e {\n\tcase EnumWithDescriptionCat, EnumWithDescriptionDog:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e EnumWithDescription) String() string {\n\treturn string(e)\n}\n\nfunc (e *EnumWithDescription) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = EnumWithDescription(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid EnumWithDescription\", str)\n\t}\n\treturn nil\n}\n\nfunc (e EnumWithDescription) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *EnumWithDescription) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e EnumWithDescription) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n\ntype MissingEnum string\n\nconst (\n\tMissingEnumHello   MissingEnum = \"Hello\"\n\tMissingEnumGoodbye MissingEnum = \"Goodbye\"\n)\n\nvar AllMissingEnum = []MissingEnum{\n\tMissingEnumHello,\n\tMissingEnumGoodbye,\n}\n\nfunc (e MissingEnum) IsValid() bool {\n\tswitch e {\n\tcase MissingEnumHello, MissingEnumGoodbye:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e MissingEnum) String() string {\n\treturn string(e)\n}\n\nfunc (e *MissingEnum) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = MissingEnum(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid MissingEnum\", str)\n\t}\n\treturn nil\n}\n\nfunc (e MissingEnum) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *MissingEnum) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e MissingEnum) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n"
  },
  {
    "path": "plugin/modelgen/out_enable_model_json_omitempty_tag_false_omitzero_tag_true/existing.go",
    "content": "package out_enable_model_json_omitempty_tag_false_omitzero_tag_true\n\ntype ExistingType struct {\n\tName     *string              `json:\"name\"`\n\tEnum     *ExistingEnum        `json:\"enum\"`\n\tInt      ExistingInterface    `json:\"int\"`\n\tExisting *MissingTypeNullable `json:\"existing\"`\n}\n\ntype ExistingModel struct {\n\tName string\n\tEnum ExistingEnum\n\tInt  ExistingInterface\n}\n\ntype ExistingInput struct {\n\tName string\n\tEnum ExistingEnum\n\tInt  ExistingInterface\n}\n\ntype ExistingEnum string\n\ntype ExistingInterface interface {\n\tIsExistingInterface()\n}\n\ntype ExistingUnion interface {\n\tIsExistingUnion()\n}\n"
  },
  {
    "path": "plugin/modelgen/out_enable_model_json_omitempty_tag_false_omitzero_tag_true/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage out_enable_model_json_omitempty_tag_false_omitzero_tag_true\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/plugin/modelgen/out\"\n)\n\ntype A interface {\n\tIsA()\n\tGetA() string\n}\n\ntype ArrayOfA interface {\n\tIsArrayOfA()\n\tGetTrickyField() []A\n\tGetTrickyFieldPointer() []A\n}\n\ntype B interface {\n\tIsB()\n\tGetB() int\n}\n\ntype C interface {\n\tIsA()\n\tIsC()\n\tGetA() string\n\tGetC() bool\n}\n\ntype D interface {\n\tIsA()\n\tIsB()\n\tIsD()\n\tGetA() string\n\tGetB() int\n\tGetD() *string\n}\n\ntype FooBarer interface {\n\tIsFooBarer()\n\tGetName() string\n}\n\n// InterfaceWithDescription is an interface with a description\ntype InterfaceWithDescription interface {\n\tIsInterfaceWithDescription()\n\tGetName() *string\n}\n\ntype MissingInterface interface {\n\tIsMissingInterface()\n\tGetName() *string\n}\n\ntype MissingUnion interface {\n\tIsMissingUnion()\n}\n\n// UnionWithDescription is an union with a description\ntype UnionWithDescription interface {\n\tIsUnionWithDescription()\n}\n\ntype X interface {\n\tIsX()\n\tGetId() string\n}\n\ntype CDImplemented struct {\n\tA string  `json:\"a\" database:\"CDImplementeda\"`\n\tB int     `json:\"b\" database:\"CDImplementedb\"`\n\tC bool    `json:\"c\" database:\"CDImplementedc\"`\n\tD *string `json:\"d,omitzero\" database:\"CDImplementedd\"`\n}\n\nfunc (CDImplemented) IsC()              {}\nfunc (this CDImplemented) GetA() string { return this.A }\nfunc (this CDImplemented) GetC() bool   { return this.C }\n\nfunc (CDImplemented) IsA() {}\n\nfunc (CDImplemented) IsD() {}\n\nfunc (this CDImplemented) GetB() int     { return this.B }\nfunc (this CDImplemented) GetD() *string { return this.D }\n\nfunc (CDImplemented) IsB() {}\n\ntype CyclicalA struct {\n\tFieldOne   *CyclicalB `json:\"field_one,omitzero\" database:\"CyclicalAfield_one\"`\n\tFieldTwo   *CyclicalB `json:\"field_two,omitzero\" database:\"CyclicalAfield_two\"`\n\tFieldThree *CyclicalB `json:\"field_three,omitzero\" database:\"CyclicalAfield_three\"`\n\tFieldFour  string     `json:\"field_four\" database:\"CyclicalAfield_four\"`\n}\n\ntype CyclicalB struct {\n\tFieldOne   *CyclicalA `json:\"field_one,omitzero\" database:\"CyclicalBfield_one\"`\n\tFieldTwo   *CyclicalA `json:\"field_two,omitzero\" database:\"CyclicalBfield_two\"`\n\tFieldThree *CyclicalA `json:\"field_three,omitzero\" database:\"CyclicalBfield_three\"`\n\tFieldFour  *CyclicalA `json:\"field_four,omitzero\" database:\"CyclicalBfield_four\"`\n\tFieldFive  string     `json:\"field_five\" database:\"CyclicalBfield_five\"`\n}\n\ntype ExtraFieldsTest struct {\n\tSchemaField string `json:\"SchemaField\" database:\"ExtraFieldsTestSchemaField\"`\n}\n\ntype FieldMutationHook struct {\n\tName     *string           `json:\"name,omitzero\" anotherTag:\"tag\" database:\"FieldMutationHookname\"`\n\tEnum     *out.ExistingEnum `json:\"enum,omitzero\" yetAnotherTag:\"12\" database:\"FieldMutationHookenum\"`\n\tNoVal    *string           `json:\"noVal,omitzero\" yaml:\"noVal\" repeated:\"true\" database:\"FieldMutationHooknoVal\"`\n\tRepeated *string           `json:\"repeated,omitzero\" someTag:\"value\" repeated:\"true\" database:\"FieldMutationHookrepeated\"`\n}\n\ntype ImplArrayOfA struct {\n\tTrickyField        []*CDImplemented `json:\"trickyField\" database:\"ImplArrayOfAtrickyField\"`\n\tTrickyFieldPointer []*CDImplemented `json:\"trickyFieldPointer,omitzero\" database:\"ImplArrayOfAtrickyFieldPointer\"`\n}\n\nfunc (ImplArrayOfA) IsArrayOfA() {}\nfunc (this ImplArrayOfA) GetTrickyField() []A {\n\tif this.TrickyField == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]A, 0, len(this.TrickyField))\n\tfor _, concrete := range this.TrickyField {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\nfunc (this ImplArrayOfA) GetTrickyFieldPointer() []A {\n\tif this.TrickyFieldPointer == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]A, 0, len(this.TrickyFieldPointer))\n\tfor _, concrete := range this.TrickyFieldPointer {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\n\ntype MissingInput struct {\n\tName          *string                               `json:\"name,omitzero\" database:\"MissingInputname\"`\n\tEnum          *MissingEnum                          `json:\"enum,omitzero\" database:\"MissingInputenum\"`\n\tNonNullString string                                `json:\"nonNullString\" database:\"MissingInputnonNullString\"`\n\tNullString    graphql.Omittable[*string]            `json:\"nullString,omitzero\" database:\"MissingInputnullString\"`\n\tNullEnum      graphql.Omittable[*MissingEnum]       `json:\"nullEnum,omitzero\" database:\"MissingInputnullEnum\"`\n\tNullObject    graphql.Omittable[*out.ExistingInput] `json:\"nullObject,omitzero\" database:\"MissingInputnullObject\"`\n}\n\ntype MissingTypeNotNull struct {\n\tName     string               `json:\"name\" database:\"MissingTypeNotNullname\"`\n\tEnum     MissingEnum          `json:\"enum\" database:\"MissingTypeNotNullenum\"`\n\tInt      MissingInterface     `json:\"int\" database:\"MissingTypeNotNullint\"`\n\tExisting *out.ExistingType    `json:\"existing\" database:\"MissingTypeNotNullexisting\"`\n\tMissing2 *MissingTypeNullable `json:\"missing2\" database:\"MissingTypeNotNullmissing2\"`\n}\n\nfunc (MissingTypeNotNull) IsMissingInterface()   {}\nfunc (this MissingTypeNotNull) GetName() *string { return &this.Name }\n\nfunc (MissingTypeNotNull) IsExistingInterface() {}\n\nfunc (MissingTypeNotNull) IsMissingUnion() {}\n\nfunc (MissingTypeNotNull) IsExistingUnion() {}\n\ntype MissingTypeNullable struct {\n\tName     *string             `json:\"name,omitzero\" database:\"MissingTypeNullablename\"`\n\tEnum     *MissingEnum        `json:\"enum,omitzero\" database:\"MissingTypeNullableenum\"`\n\tInt      MissingInterface    `json:\"int,omitzero\" database:\"MissingTypeNullableint\"`\n\tExisting *out.ExistingType   `json:\"existing,omitzero\" database:\"MissingTypeNullableexisting\"`\n\tMissing2 *MissingTypeNotNull `json:\"missing2,omitzero\" database:\"MissingTypeNullablemissing2\"`\n}\n\nfunc (MissingTypeNullable) IsMissingInterface()   {}\nfunc (this MissingTypeNullable) GetName() *string { return this.Name }\n\nfunc (MissingTypeNullable) IsExistingInterface() {}\n\nfunc (MissingTypeNullable) IsMissingUnion() {}\n\nfunc (MissingTypeNullable) IsExistingUnion() {}\n\ntype Mutation struct {\n}\n\ntype NotCyclicalA struct {\n\tFieldOne string `json:\"FieldOne\" database:\"NotCyclicalAFieldOne\"`\n\tFieldTwo int    `json:\"FieldTwo\" database:\"NotCyclicalAFieldTwo\"`\n}\n\ntype NotCyclicalB struct {\n\tFieldOne string        `json:\"FieldOne\" database:\"NotCyclicalBFieldOne\"`\n\tFieldTwo *NotCyclicalA `json:\"FieldTwo\" database:\"NotCyclicalBFieldTwo\"`\n}\n\ntype OmitEmptyJSONTagTest struct {\n\tValueNonNil string  `json:\"ValueNonNil\" database:\"OmitEmptyJsonTagTestValueNonNil\"`\n\tValue       *string `json:\"Value,omitzero\" database:\"OmitEmptyJsonTagTestValue\"`\n}\n\ntype OmitZeroJSONTagTest struct {\n\tValueNonNil string  `json:\"ValueNonNil\" database:\"OmitZeroJSONTagTestValueNonNil\"`\n\tValue       *string `json:\"Value,omitzero\" database:\"OmitZeroJSONTagTestValue\"`\n}\n\ntype Query struct {\n}\n\ntype Recursive struct {\n\tFieldOne   *Recursive `json:\"FieldOne\" database:\"RecursiveFieldOne\"`\n\tFieldTwo   *Recursive `json:\"FieldTwo\" database:\"RecursiveFieldTwo\"`\n\tFieldThree *Recursive `json:\"FieldThree\" database:\"RecursiveFieldThree\"`\n\tFieldFour  string     `json:\"FieldFour\" database:\"RecursiveFieldFour\"`\n}\n\ntype RenameFieldTest struct {\n\tBadName    string `json:\"badName\" database:\"RenameFieldTestbadName\"`\n\tOtherField string `json:\"otherField\" database:\"RenameFieldTestotherField\"`\n}\n\ntype Subscription struct {\n}\n\n// TypeWithDescription is a type with a description\ntype TypeWithDescription struct {\n\tName *string `json:\"name,omitzero\" database:\"TypeWithDescriptionname\"`\n}\n\nfunc (TypeWithDescription) IsUnionWithDescription() {}\n\ntype Xer struct {\n\tId   string `json:\"Id\" database:\"XerId\"`\n\tName string `json:\"Name\" database:\"XerName\"`\n}\n\nfunc (Xer) IsX()               {}\nfunc (this Xer) GetId() string { return this.Id }\n\ntype FooBarr struct {\n\tName string `json:\"name\" database:\"_Foo_Barrname\"`\n}\n\nfunc (FooBarr) IsFooBarer()          {}\nfunc (this FooBarr) GetName() string { return this.Name }\n\n// EnumWithDescription is an enum with a description\ntype EnumWithDescription string\n\nconst (\n\tEnumWithDescriptionCat EnumWithDescription = \"CAT\"\n\tEnumWithDescriptionDog EnumWithDescription = \"DOG\"\n)\n\nvar AllEnumWithDescription = []EnumWithDescription{\n\tEnumWithDescriptionCat,\n\tEnumWithDescriptionDog,\n}\n\nfunc (e EnumWithDescription) IsValid() bool {\n\tswitch e {\n\tcase EnumWithDescriptionCat, EnumWithDescriptionDog:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e EnumWithDescription) String() string {\n\treturn string(e)\n}\n\nfunc (e *EnumWithDescription) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = EnumWithDescription(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid EnumWithDescription\", str)\n\t}\n\treturn nil\n}\n\nfunc (e EnumWithDescription) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *EnumWithDescription) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e EnumWithDescription) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n\ntype MissingEnum string\n\nconst (\n\tMissingEnumHello   MissingEnum = \"Hello\"\n\tMissingEnumGoodbye MissingEnum = \"Goodbye\"\n)\n\nvar AllMissingEnum = []MissingEnum{\n\tMissingEnumHello,\n\tMissingEnumGoodbye,\n}\n\nfunc (e MissingEnum) IsValid() bool {\n\tswitch e {\n\tcase MissingEnumHello, MissingEnumGoodbye:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e MissingEnum) String() string {\n\treturn string(e)\n}\n\nfunc (e *MissingEnum) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = MissingEnum(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid MissingEnum\", str)\n\t}\n\treturn nil\n}\n\nfunc (e MissingEnum) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *MissingEnum) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e MissingEnum) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n"
  },
  {
    "path": "plugin/modelgen/out_enable_model_json_omitempty_tag_nil/existing.go",
    "content": "package out_enable_model_json_omitempty_tag_nil\n\ntype ExistingType struct {\n\tName     *string              `json:\"name\"`\n\tEnum     *ExistingEnum        `json:\"enum\"`\n\tInt      ExistingInterface    `json:\"int\"`\n\tExisting *MissingTypeNullable `json:\"existing\"`\n}\n\ntype ExistingModel struct {\n\tName string\n\tEnum ExistingEnum\n\tInt  ExistingInterface\n}\n\ntype ExistingInput struct {\n\tName string\n\tEnum ExistingEnum\n\tInt  ExistingInterface\n}\n\ntype ExistingEnum string\n\ntype ExistingInterface interface {\n\tIsExistingInterface()\n}\n\ntype ExistingUnion interface {\n\tIsExistingUnion()\n}\n"
  },
  {
    "path": "plugin/modelgen/out_enable_model_json_omitempty_tag_nil/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage out_enable_model_json_omitempty_tag_nil\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\ntype A interface {\n\tIsA()\n\tGetA() string\n}\n\ntype ArrayOfA interface {\n\tIsArrayOfA()\n\tGetTrickyField() []A\n\tGetTrickyFieldPointer() []A\n}\n\ntype B interface {\n\tIsB()\n\tGetB() int\n}\n\ntype C interface {\n\tIsA()\n\tIsC()\n\tGetA() string\n\tGetC() bool\n}\n\ntype D interface {\n\tIsA()\n\tIsB()\n\tIsD()\n\tGetA() string\n\tGetB() int\n\tGetD() *string\n}\n\ntype FooBarer interface {\n\tIsFooBarer()\n\tGetName() string\n}\n\n// InterfaceWithDescription is an interface with a description\ntype InterfaceWithDescription interface {\n\tIsInterfaceWithDescription()\n\tGetName() *string\n}\n\ntype MissingInterface interface {\n\tIsMissingInterface()\n\tGetName() *string\n}\n\ntype MissingUnion interface {\n\tIsMissingUnion()\n}\n\n// UnionWithDescription is an union with a description\ntype UnionWithDescription interface {\n\tIsUnionWithDescription()\n}\n\ntype X interface {\n\tIsX()\n\tGetId() string\n}\n\ntype CDImplemented struct {\n\tA string  `json:\"a\" database:\"CDImplementeda\"`\n\tB int     `json:\"b\" database:\"CDImplementedb\"`\n\tC bool    `json:\"c\" database:\"CDImplementedc\"`\n\tD *string `json:\"d,omitempty\" database:\"CDImplementedd\"`\n}\n\nfunc (CDImplemented) IsC()              {}\nfunc (this CDImplemented) GetA() string { return this.A }\nfunc (this CDImplemented) GetC() bool   { return this.C }\n\nfunc (CDImplemented) IsA() {}\n\nfunc (CDImplemented) IsD() {}\n\nfunc (this CDImplemented) GetB() int     { return this.B }\nfunc (this CDImplemented) GetD() *string { return this.D }\n\nfunc (CDImplemented) IsB() {}\n\ntype CyclicalA struct {\n\tFieldOne   *CyclicalB `json:\"field_one,omitempty\" database:\"CyclicalAfield_one\"`\n\tFieldTwo   *CyclicalB `json:\"field_two,omitempty\" database:\"CyclicalAfield_two\"`\n\tFieldThree *CyclicalB `json:\"field_three,omitempty\" database:\"CyclicalAfield_three\"`\n\tFieldFour  string     `json:\"field_four\" database:\"CyclicalAfield_four\"`\n}\n\ntype CyclicalB struct {\n\tFieldOne   *CyclicalA `json:\"field_one,omitempty\" database:\"CyclicalBfield_one\"`\n\tFieldTwo   *CyclicalA `json:\"field_two,omitempty\" database:\"CyclicalBfield_two\"`\n\tFieldThree *CyclicalA `json:\"field_three,omitempty\" database:\"CyclicalBfield_three\"`\n\tFieldFour  *CyclicalA `json:\"field_four,omitempty\" database:\"CyclicalBfield_four\"`\n\tFieldFive  string     `json:\"field_five\" database:\"CyclicalBfield_five\"`\n}\n\ntype ExtraFieldsTest struct {\n\tSchemaField string `json:\"SchemaField\" database:\"ExtraFieldsTestSchemaField\"`\n}\n\ntype FieldMutationHook struct {\n\tName     *string       `json:\"name,omitempty\" anotherTag:\"tag\" database:\"FieldMutationHookname\"`\n\tEnum     *ExistingEnum `json:\"enum,omitempty\" yetAnotherTag:\"12\" database:\"FieldMutationHookenum\"`\n\tNoVal    *string       `json:\"noVal,omitempty\" yaml:\"noVal\" repeated:\"true\" database:\"FieldMutationHooknoVal\"`\n\tRepeated *string       `json:\"repeated,omitempty\" someTag:\"value\" repeated:\"true\" database:\"FieldMutationHookrepeated\"`\n}\n\ntype ImplArrayOfA struct {\n\tTrickyField        []*CDImplemented `json:\"trickyField\" database:\"ImplArrayOfAtrickyField\"`\n\tTrickyFieldPointer []*CDImplemented `json:\"trickyFieldPointer,omitempty\" database:\"ImplArrayOfAtrickyFieldPointer\"`\n}\n\nfunc (ImplArrayOfA) IsArrayOfA() {}\nfunc (this ImplArrayOfA) GetTrickyField() []A {\n\tif this.TrickyField == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]A, 0, len(this.TrickyField))\n\tfor _, concrete := range this.TrickyField {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\nfunc (this ImplArrayOfA) GetTrickyFieldPointer() []A {\n\tif this.TrickyFieldPointer == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]A, 0, len(this.TrickyFieldPointer))\n\tfor _, concrete := range this.TrickyFieldPointer {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\n\ntype MissingInput struct {\n\tName          *string                           `json:\"name,omitempty\" database:\"MissingInputname\"`\n\tEnum          *MissingEnum                      `json:\"enum,omitempty\" database:\"MissingInputenum\"`\n\tNonNullString string                            `json:\"nonNullString\" database:\"MissingInputnonNullString\"`\n\tNullString    graphql.Omittable[*string]        `json:\"nullString,omitempty\" database:\"MissingInputnullString\"`\n\tNullEnum      graphql.Omittable[*MissingEnum]   `json:\"nullEnum,omitempty\" database:\"MissingInputnullEnum\"`\n\tNullObject    graphql.Omittable[*ExistingInput] `json:\"nullObject,omitempty\" database:\"MissingInputnullObject\"`\n}\n\ntype MissingTypeNotNull struct {\n\tName     string               `json:\"name\" database:\"MissingTypeNotNullname\"`\n\tEnum     MissingEnum          `json:\"enum\" database:\"MissingTypeNotNullenum\"`\n\tInt      MissingInterface     `json:\"int\" database:\"MissingTypeNotNullint\"`\n\tExisting *ExistingType        `json:\"existing\" database:\"MissingTypeNotNullexisting\"`\n\tMissing2 *MissingTypeNullable `json:\"missing2\" database:\"MissingTypeNotNullmissing2\"`\n}\n\nfunc (MissingTypeNotNull) IsMissingInterface()   {}\nfunc (this MissingTypeNotNull) GetName() *string { return &this.Name }\n\nfunc (MissingTypeNotNull) IsExistingInterface() {}\n\nfunc (MissingTypeNotNull) IsMissingUnion() {}\n\nfunc (MissingTypeNotNull) IsExistingUnion() {}\n\ntype MissingTypeNullable struct {\n\tName     *string             `json:\"name,omitempty\" database:\"MissingTypeNullablename\"`\n\tEnum     *MissingEnum        `json:\"enum,omitempty\" database:\"MissingTypeNullableenum\"`\n\tInt      MissingInterface    `json:\"int,omitempty\" database:\"MissingTypeNullableint\"`\n\tExisting *ExistingType       `json:\"existing,omitempty\" database:\"MissingTypeNullableexisting\"`\n\tMissing2 *MissingTypeNotNull `json:\"missing2,omitempty\" database:\"MissingTypeNullablemissing2\"`\n}\n\nfunc (MissingTypeNullable) IsMissingInterface()   {}\nfunc (this MissingTypeNullable) GetName() *string { return this.Name }\n\nfunc (MissingTypeNullable) IsExistingInterface() {}\n\nfunc (MissingTypeNullable) IsMissingUnion() {}\n\nfunc (MissingTypeNullable) IsExistingUnion() {}\n\ntype Mutation struct {\n}\n\ntype NotCyclicalA struct {\n\tFieldOne string `json:\"FieldOne\" database:\"NotCyclicalAFieldOne\"`\n\tFieldTwo int    `json:\"FieldTwo\" database:\"NotCyclicalAFieldTwo\"`\n}\n\ntype NotCyclicalB struct {\n\tFieldOne string        `json:\"FieldOne\" database:\"NotCyclicalBFieldOne\"`\n\tFieldTwo *NotCyclicalA `json:\"FieldTwo\" database:\"NotCyclicalBFieldTwo\"`\n}\n\ntype OmitEmptyJSONTagTest struct {\n\tValueNonNil string  `json:\"ValueNonNil\" database:\"OmitEmptyJsonTagTestValueNonNil\"`\n\tValue       *string `json:\"Value,omitempty\" database:\"OmitEmptyJsonTagTestValue\"`\n}\n\ntype OmitZeroJSONTagTest struct {\n\tValueNonNil string  `json:\"ValueNonNil\" database:\"OmitZeroJSONTagTestValueNonNil\"`\n\tValue       *string `json:\"Value,omitempty\" database:\"OmitZeroJSONTagTestValue\"`\n}\n\ntype Query struct {\n}\n\ntype Recursive struct {\n\tFieldOne   *Recursive `json:\"FieldOne\" database:\"RecursiveFieldOne\"`\n\tFieldTwo   *Recursive `json:\"FieldTwo\" database:\"RecursiveFieldTwo\"`\n\tFieldThree *Recursive `json:\"FieldThree\" database:\"RecursiveFieldThree\"`\n\tFieldFour  string     `json:\"FieldFour\" database:\"RecursiveFieldFour\"`\n}\n\ntype RenameFieldTest struct {\n\tBadName    string `json:\"badName\" database:\"RenameFieldTestbadName\"`\n\tOtherField string `json:\"otherField\" database:\"RenameFieldTestotherField\"`\n}\n\ntype Subscription struct {\n}\n\n// TypeWithDescription is a type with a description\ntype TypeWithDescription struct {\n\tName *string `json:\"name,omitempty\" database:\"TypeWithDescriptionname\"`\n}\n\nfunc (TypeWithDescription) IsUnionWithDescription() {}\n\ntype Xer struct {\n\tId   string `json:\"Id\" database:\"XerId\"`\n\tName string `json:\"Name\" database:\"XerName\"`\n}\n\nfunc (Xer) IsX()               {}\nfunc (this Xer) GetId() string { return this.Id }\n\ntype FooBarr struct {\n\tName string `json:\"name\" database:\"_Foo_Barrname\"`\n}\n\nfunc (FooBarr) IsFooBarer()          {}\nfunc (this FooBarr) GetName() string { return this.Name }\n\n// EnumWithDescription is an enum with a description\ntype EnumWithDescription string\n\nconst (\n\tEnumWithDescriptionCat EnumWithDescription = \"CAT\"\n\tEnumWithDescriptionDog EnumWithDescription = \"DOG\"\n)\n\nvar AllEnumWithDescription = []EnumWithDescription{\n\tEnumWithDescriptionCat,\n\tEnumWithDescriptionDog,\n}\n\nfunc (e EnumWithDescription) IsValid() bool {\n\tswitch e {\n\tcase EnumWithDescriptionCat, EnumWithDescriptionDog:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e EnumWithDescription) String() string {\n\treturn string(e)\n}\n\nfunc (e *EnumWithDescription) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = EnumWithDescription(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid EnumWithDescription\", str)\n\t}\n\treturn nil\n}\n\nfunc (e EnumWithDescription) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *EnumWithDescription) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e EnumWithDescription) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n\ntype MissingEnum string\n\nconst (\n\tMissingEnumHello   MissingEnum = \"Hello\"\n\tMissingEnumGoodbye MissingEnum = \"Goodbye\"\n)\n\nvar AllMissingEnum = []MissingEnum{\n\tMissingEnumHello,\n\tMissingEnumGoodbye,\n}\n\nfunc (e MissingEnum) IsValid() bool {\n\tswitch e {\n\tcase MissingEnumHello, MissingEnumGoodbye:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e MissingEnum) String() string {\n\treturn string(e)\n}\n\nfunc (e *MissingEnum) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = MissingEnum(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid MissingEnum\", str)\n\t}\n\treturn nil\n}\n\nfunc (e MissingEnum) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *MissingEnum) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e MissingEnum) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n"
  },
  {
    "path": "plugin/modelgen/out_enable_model_json_omitempty_tag_true/existing.go",
    "content": "package out_enable_model_json_omitempty_tag_true\n\ntype ExistingType struct {\n\tName     *string              `json:\"name\"`\n\tEnum     *ExistingEnum        `json:\"enum\"`\n\tInt      ExistingInterface    `json:\"int\"`\n\tExisting *MissingTypeNullable `json:\"existing\"`\n}\n\ntype ExistingModel struct {\n\tName string\n\tEnum ExistingEnum\n\tInt  ExistingInterface\n}\n\ntype ExistingInput struct {\n\tName string\n\tEnum ExistingEnum\n\tInt  ExistingInterface\n}\n\ntype ExistingEnum string\n\ntype ExistingInterface interface {\n\tIsExistingInterface()\n}\n\ntype ExistingUnion interface {\n\tIsExistingUnion()\n}\n"
  },
  {
    "path": "plugin/modelgen/out_enable_model_json_omitempty_tag_true/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage out_enable_model_json_omitempty_tag_true\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/plugin/modelgen/out\"\n)\n\ntype A interface {\n\tIsA()\n\tGetA() string\n}\n\ntype ArrayOfA interface {\n\tIsArrayOfA()\n\tGetTrickyField() []A\n\tGetTrickyFieldPointer() []A\n}\n\ntype B interface {\n\tIsB()\n\tGetB() int\n}\n\ntype C interface {\n\tIsA()\n\tIsC()\n\tGetA() string\n\tGetC() bool\n}\n\ntype D interface {\n\tIsA()\n\tIsB()\n\tIsD()\n\tGetA() string\n\tGetB() int\n\tGetD() *string\n}\n\ntype FooBarer interface {\n\tIsFooBarer()\n\tGetName() string\n}\n\n// InterfaceWithDescription is an interface with a description\ntype InterfaceWithDescription interface {\n\tIsInterfaceWithDescription()\n\tGetName() *string\n}\n\ntype MissingInterface interface {\n\tIsMissingInterface()\n\tGetName() *string\n}\n\ntype MissingUnion interface {\n\tIsMissingUnion()\n}\n\n// UnionWithDescription is an union with a description\ntype UnionWithDescription interface {\n\tIsUnionWithDescription()\n}\n\ntype X interface {\n\tIsX()\n\tGetId() string\n}\n\ntype CDImplemented struct {\n\tA string  `json:\"a\" database:\"CDImplementeda\"`\n\tB int     `json:\"b\" database:\"CDImplementedb\"`\n\tC bool    `json:\"c\" database:\"CDImplementedc\"`\n\tD *string `json:\"d,omitempty\" database:\"CDImplementedd\"`\n}\n\nfunc (CDImplemented) IsC()              {}\nfunc (this CDImplemented) GetA() string { return this.A }\nfunc (this CDImplemented) GetC() bool   { return this.C }\n\nfunc (CDImplemented) IsA() {}\n\nfunc (CDImplemented) IsD() {}\n\nfunc (this CDImplemented) GetB() int     { return this.B }\nfunc (this CDImplemented) GetD() *string { return this.D }\n\nfunc (CDImplemented) IsB() {}\n\ntype CyclicalA struct {\n\tFieldOne   *CyclicalB `json:\"field_one,omitempty\" database:\"CyclicalAfield_one\"`\n\tFieldTwo   *CyclicalB `json:\"field_two,omitempty\" database:\"CyclicalAfield_two\"`\n\tFieldThree *CyclicalB `json:\"field_three,omitempty\" database:\"CyclicalAfield_three\"`\n\tFieldFour  string     `json:\"field_four\" database:\"CyclicalAfield_four\"`\n}\n\ntype CyclicalB struct {\n\tFieldOne   *CyclicalA `json:\"field_one,omitempty\" database:\"CyclicalBfield_one\"`\n\tFieldTwo   *CyclicalA `json:\"field_two,omitempty\" database:\"CyclicalBfield_two\"`\n\tFieldThree *CyclicalA `json:\"field_three,omitempty\" database:\"CyclicalBfield_three\"`\n\tFieldFour  *CyclicalA `json:\"field_four,omitempty\" database:\"CyclicalBfield_four\"`\n\tFieldFive  string     `json:\"field_five\" database:\"CyclicalBfield_five\"`\n}\n\ntype ExtraFieldsTest struct {\n\tSchemaField string `json:\"SchemaField\" database:\"ExtraFieldsTestSchemaField\"`\n}\n\ntype FieldMutationHook struct {\n\tName     *string           `json:\"name,omitempty\" anotherTag:\"tag\" database:\"FieldMutationHookname\"`\n\tEnum     *out.ExistingEnum `json:\"enum,omitempty\" yetAnotherTag:\"12\" database:\"FieldMutationHookenum\"`\n\tNoVal    *string           `json:\"noVal,omitempty\" yaml:\"noVal\" repeated:\"true\" database:\"FieldMutationHooknoVal\"`\n\tRepeated *string           `json:\"repeated,omitempty\" someTag:\"value\" repeated:\"true\" database:\"FieldMutationHookrepeated\"`\n}\n\ntype ImplArrayOfA struct {\n\tTrickyField        []*CDImplemented `json:\"trickyField\" database:\"ImplArrayOfAtrickyField\"`\n\tTrickyFieldPointer []*CDImplemented `json:\"trickyFieldPointer,omitempty\" database:\"ImplArrayOfAtrickyFieldPointer\"`\n}\n\nfunc (ImplArrayOfA) IsArrayOfA() {}\nfunc (this ImplArrayOfA) GetTrickyField() []A {\n\tif this.TrickyField == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]A, 0, len(this.TrickyField))\n\tfor _, concrete := range this.TrickyField {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\nfunc (this ImplArrayOfA) GetTrickyFieldPointer() []A {\n\tif this.TrickyFieldPointer == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]A, 0, len(this.TrickyFieldPointer))\n\tfor _, concrete := range this.TrickyFieldPointer {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\n\ntype MissingInput struct {\n\tName          *string                               `json:\"name,omitempty\" database:\"MissingInputname\"`\n\tEnum          *MissingEnum                          `json:\"enum,omitempty\" database:\"MissingInputenum\"`\n\tNonNullString string                                `json:\"nonNullString\" database:\"MissingInputnonNullString\"`\n\tNullString    graphql.Omittable[*string]            `json:\"nullString,omitempty\" database:\"MissingInputnullString\"`\n\tNullEnum      graphql.Omittable[*MissingEnum]       `json:\"nullEnum,omitempty\" database:\"MissingInputnullEnum\"`\n\tNullObject    graphql.Omittable[*out.ExistingInput] `json:\"nullObject,omitempty\" database:\"MissingInputnullObject\"`\n}\n\ntype MissingTypeNotNull struct {\n\tName     string               `json:\"name\" database:\"MissingTypeNotNullname\"`\n\tEnum     MissingEnum          `json:\"enum\" database:\"MissingTypeNotNullenum\"`\n\tInt      MissingInterface     `json:\"int\" database:\"MissingTypeNotNullint\"`\n\tExisting *out.ExistingType    `json:\"existing\" database:\"MissingTypeNotNullexisting\"`\n\tMissing2 *MissingTypeNullable `json:\"missing2\" database:\"MissingTypeNotNullmissing2\"`\n}\n\nfunc (MissingTypeNotNull) IsMissingInterface()   {}\nfunc (this MissingTypeNotNull) GetName() *string { return &this.Name }\n\nfunc (MissingTypeNotNull) IsExistingInterface() {}\n\nfunc (MissingTypeNotNull) IsMissingUnion() {}\n\nfunc (MissingTypeNotNull) IsExistingUnion() {}\n\ntype MissingTypeNullable struct {\n\tName     *string             `json:\"name,omitempty\" database:\"MissingTypeNullablename\"`\n\tEnum     *MissingEnum        `json:\"enum,omitempty\" database:\"MissingTypeNullableenum\"`\n\tInt      MissingInterface    `json:\"int,omitempty\" database:\"MissingTypeNullableint\"`\n\tExisting *out.ExistingType   `json:\"existing,omitempty\" database:\"MissingTypeNullableexisting\"`\n\tMissing2 *MissingTypeNotNull `json:\"missing2,omitempty\" database:\"MissingTypeNullablemissing2\"`\n}\n\nfunc (MissingTypeNullable) IsMissingInterface()   {}\nfunc (this MissingTypeNullable) GetName() *string { return this.Name }\n\nfunc (MissingTypeNullable) IsExistingInterface() {}\n\nfunc (MissingTypeNullable) IsMissingUnion() {}\n\nfunc (MissingTypeNullable) IsExistingUnion() {}\n\ntype Mutation struct {\n}\n\ntype NotCyclicalA struct {\n\tFieldOne string `json:\"FieldOne\" database:\"NotCyclicalAFieldOne\"`\n\tFieldTwo int    `json:\"FieldTwo\" database:\"NotCyclicalAFieldTwo\"`\n}\n\ntype NotCyclicalB struct {\n\tFieldOne string        `json:\"FieldOne\" database:\"NotCyclicalBFieldOne\"`\n\tFieldTwo *NotCyclicalA `json:\"FieldTwo\" database:\"NotCyclicalBFieldTwo\"`\n}\n\ntype OmitEmptyJSONTagTest struct {\n\tValueNonNil string  `json:\"ValueNonNil\" database:\"OmitEmptyJsonTagTestValueNonNil\"`\n\tValue       *string `json:\"Value,omitempty\" database:\"OmitEmptyJsonTagTestValue\"`\n}\n\ntype OmitZeroJSONTagTest struct {\n\tValueNonNil string  `json:\"ValueNonNil\" database:\"OmitZeroJSONTagTestValueNonNil\"`\n\tValue       *string `json:\"Value,omitempty\" database:\"OmitZeroJSONTagTestValue\"`\n}\n\ntype Query struct {\n}\n\ntype Recursive struct {\n\tFieldOne   *Recursive `json:\"FieldOne\" database:\"RecursiveFieldOne\"`\n\tFieldTwo   *Recursive `json:\"FieldTwo\" database:\"RecursiveFieldTwo\"`\n\tFieldThree *Recursive `json:\"FieldThree\" database:\"RecursiveFieldThree\"`\n\tFieldFour  string     `json:\"FieldFour\" database:\"RecursiveFieldFour\"`\n}\n\ntype RenameFieldTest struct {\n\tBadName    string `json:\"badName\" database:\"RenameFieldTestbadName\"`\n\tOtherField string `json:\"otherField\" database:\"RenameFieldTestotherField\"`\n}\n\ntype Subscription struct {\n}\n\n// TypeWithDescription is a type with a description\ntype TypeWithDescription struct {\n\tName *string `json:\"name,omitempty\" database:\"TypeWithDescriptionname\"`\n}\n\nfunc (TypeWithDescription) IsUnionWithDescription() {}\n\ntype Xer struct {\n\tId   string `json:\"Id\" database:\"XerId\"`\n\tName string `json:\"Name\" database:\"XerName\"`\n}\n\nfunc (Xer) IsX()               {}\nfunc (this Xer) GetId() string { return this.Id }\n\ntype FooBarr struct {\n\tName string `json:\"name\" database:\"_Foo_Barrname\"`\n}\n\nfunc (FooBarr) IsFooBarer()          {}\nfunc (this FooBarr) GetName() string { return this.Name }\n\n// EnumWithDescription is an enum with a description\ntype EnumWithDescription string\n\nconst (\n\tEnumWithDescriptionCat EnumWithDescription = \"CAT\"\n\tEnumWithDescriptionDog EnumWithDescription = \"DOG\"\n)\n\nvar AllEnumWithDescription = []EnumWithDescription{\n\tEnumWithDescriptionCat,\n\tEnumWithDescriptionDog,\n}\n\nfunc (e EnumWithDescription) IsValid() bool {\n\tswitch e {\n\tcase EnumWithDescriptionCat, EnumWithDescriptionDog:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e EnumWithDescription) String() string {\n\treturn string(e)\n}\n\nfunc (e *EnumWithDescription) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = EnumWithDescription(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid EnumWithDescription\", str)\n\t}\n\treturn nil\n}\n\nfunc (e EnumWithDescription) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *EnumWithDescription) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e EnumWithDescription) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n\ntype MissingEnum string\n\nconst (\n\tMissingEnumHello   MissingEnum = \"Hello\"\n\tMissingEnumGoodbye MissingEnum = \"Goodbye\"\n)\n\nvar AllMissingEnum = []MissingEnum{\n\tMissingEnumHello,\n\tMissingEnumGoodbye,\n}\n\nfunc (e MissingEnum) IsValid() bool {\n\tswitch e {\n\tcase MissingEnumHello, MissingEnumGoodbye:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e MissingEnum) String() string {\n\treturn string(e)\n}\n\nfunc (e *MissingEnum) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = MissingEnum(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid MissingEnum\", str)\n\t}\n\treturn nil\n}\n\nfunc (e MissingEnum) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *MissingEnum) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e MissingEnum) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n"
  },
  {
    "path": "plugin/modelgen/out_enable_model_json_omitzero_tag_false/existing.go",
    "content": "package out_enable_model_json_omitzero_tag_false\n\ntype ExistingType struct {\n\tName     *string              `json:\"name\"`\n\tEnum     *ExistingEnum        `json:\"enum\"`\n\tInt      ExistingInterface    `json:\"int\"`\n\tExisting *MissingTypeNullable `json:\"existing\"`\n}\n\ntype ExistingModel struct {\n\tName string\n\tEnum ExistingEnum\n\tInt  ExistingInterface\n}\n\ntype ExistingInput struct {\n\tName string\n\tEnum ExistingEnum\n\tInt  ExistingInterface\n}\n\ntype ExistingEnum string\n\ntype ExistingInterface interface {\n\tIsExistingInterface()\n}\n\ntype ExistingUnion interface {\n\tIsExistingUnion()\n}\n"
  },
  {
    "path": "plugin/modelgen/out_enable_model_json_omitzero_tag_false/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage out_enable_model_json_omitzero_tag_false\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/plugin/modelgen/out\"\n)\n\ntype A interface {\n\tIsA()\n\tGetA() string\n}\n\ntype ArrayOfA interface {\n\tIsArrayOfA()\n\tGetTrickyField() []A\n\tGetTrickyFieldPointer() []A\n}\n\ntype B interface {\n\tIsB()\n\tGetB() int\n}\n\ntype C interface {\n\tIsA()\n\tIsC()\n\tGetA() string\n\tGetC() bool\n}\n\ntype D interface {\n\tIsA()\n\tIsB()\n\tIsD()\n\tGetA() string\n\tGetB() int\n\tGetD() *string\n}\n\ntype FooBarer interface {\n\tIsFooBarer()\n\tGetName() string\n}\n\n// InterfaceWithDescription is an interface with a description\ntype InterfaceWithDescription interface {\n\tIsInterfaceWithDescription()\n\tGetName() *string\n}\n\ntype MissingInterface interface {\n\tIsMissingInterface()\n\tGetName() *string\n}\n\ntype MissingUnion interface {\n\tIsMissingUnion()\n}\n\n// UnionWithDescription is an union with a description\ntype UnionWithDescription interface {\n\tIsUnionWithDescription()\n}\n\ntype X interface {\n\tIsX()\n\tGetId() string\n}\n\ntype CDImplemented struct {\n\tA string  `json:\"a\" database:\"CDImplementeda\"`\n\tB int     `json:\"b\" database:\"CDImplementedb\"`\n\tC bool    `json:\"c\" database:\"CDImplementedc\"`\n\tD *string `json:\"d,omitempty\" database:\"CDImplementedd\"`\n}\n\nfunc (CDImplemented) IsC()              {}\nfunc (this CDImplemented) GetA() string { return this.A }\nfunc (this CDImplemented) GetC() bool   { return this.C }\n\nfunc (CDImplemented) IsA() {}\n\nfunc (CDImplemented) IsD() {}\n\nfunc (this CDImplemented) GetB() int     { return this.B }\nfunc (this CDImplemented) GetD() *string { return this.D }\n\nfunc (CDImplemented) IsB() {}\n\ntype CyclicalA struct {\n\tFieldOne   *CyclicalB `json:\"field_one,omitempty\" database:\"CyclicalAfield_one\"`\n\tFieldTwo   *CyclicalB `json:\"field_two,omitempty\" database:\"CyclicalAfield_two\"`\n\tFieldThree *CyclicalB `json:\"field_three,omitempty\" database:\"CyclicalAfield_three\"`\n\tFieldFour  string     `json:\"field_four\" database:\"CyclicalAfield_four\"`\n}\n\ntype CyclicalB struct {\n\tFieldOne   *CyclicalA `json:\"field_one,omitempty\" database:\"CyclicalBfield_one\"`\n\tFieldTwo   *CyclicalA `json:\"field_two,omitempty\" database:\"CyclicalBfield_two\"`\n\tFieldThree *CyclicalA `json:\"field_three,omitempty\" database:\"CyclicalBfield_three\"`\n\tFieldFour  *CyclicalA `json:\"field_four,omitempty\" database:\"CyclicalBfield_four\"`\n\tFieldFive  string     `json:\"field_five\" database:\"CyclicalBfield_five\"`\n}\n\ntype ExtraFieldsTest struct {\n\tSchemaField string `json:\"SchemaField\" database:\"ExtraFieldsTestSchemaField\"`\n}\n\ntype FieldMutationHook struct {\n\tName     *string           `json:\"name,omitempty\" anotherTag:\"tag\" database:\"FieldMutationHookname\"`\n\tEnum     *out.ExistingEnum `json:\"enum,omitempty\" yetAnotherTag:\"12\" database:\"FieldMutationHookenum\"`\n\tNoVal    *string           `json:\"noVal,omitempty\" yaml:\"noVal\" repeated:\"true\" database:\"FieldMutationHooknoVal\"`\n\tRepeated *string           `json:\"repeated,omitempty\" someTag:\"value\" repeated:\"true\" database:\"FieldMutationHookrepeated\"`\n}\n\ntype ImplArrayOfA struct {\n\tTrickyField        []*CDImplemented `json:\"trickyField\" database:\"ImplArrayOfAtrickyField\"`\n\tTrickyFieldPointer []*CDImplemented `json:\"trickyFieldPointer,omitempty\" database:\"ImplArrayOfAtrickyFieldPointer\"`\n}\n\nfunc (ImplArrayOfA) IsArrayOfA() {}\nfunc (this ImplArrayOfA) GetTrickyField() []A {\n\tif this.TrickyField == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]A, 0, len(this.TrickyField))\n\tfor _, concrete := range this.TrickyField {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\nfunc (this ImplArrayOfA) GetTrickyFieldPointer() []A {\n\tif this.TrickyFieldPointer == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]A, 0, len(this.TrickyFieldPointer))\n\tfor _, concrete := range this.TrickyFieldPointer {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\n\ntype MissingInput struct {\n\tName          *string                               `json:\"name,omitempty\" database:\"MissingInputname\"`\n\tEnum          *MissingEnum                          `json:\"enum,omitempty\" database:\"MissingInputenum\"`\n\tNonNullString string                                `json:\"nonNullString\" database:\"MissingInputnonNullString\"`\n\tNullString    graphql.Omittable[*string]            `json:\"nullString,omitempty\" database:\"MissingInputnullString\"`\n\tNullEnum      graphql.Omittable[*MissingEnum]       `json:\"nullEnum,omitempty\" database:\"MissingInputnullEnum\"`\n\tNullObject    graphql.Omittable[*out.ExistingInput] `json:\"nullObject,omitempty\" database:\"MissingInputnullObject\"`\n}\n\ntype MissingTypeNotNull struct {\n\tName     string               `json:\"name\" database:\"MissingTypeNotNullname\"`\n\tEnum     MissingEnum          `json:\"enum\" database:\"MissingTypeNotNullenum\"`\n\tInt      MissingInterface     `json:\"int\" database:\"MissingTypeNotNullint\"`\n\tExisting *out.ExistingType    `json:\"existing\" database:\"MissingTypeNotNullexisting\"`\n\tMissing2 *MissingTypeNullable `json:\"missing2\" database:\"MissingTypeNotNullmissing2\"`\n}\n\nfunc (MissingTypeNotNull) IsMissingInterface()   {}\nfunc (this MissingTypeNotNull) GetName() *string { return &this.Name }\n\nfunc (MissingTypeNotNull) IsExistingInterface() {}\n\nfunc (MissingTypeNotNull) IsMissingUnion() {}\n\nfunc (MissingTypeNotNull) IsExistingUnion() {}\n\ntype MissingTypeNullable struct {\n\tName     *string             `json:\"name,omitempty\" database:\"MissingTypeNullablename\"`\n\tEnum     *MissingEnum        `json:\"enum,omitempty\" database:\"MissingTypeNullableenum\"`\n\tInt      MissingInterface    `json:\"int,omitempty\" database:\"MissingTypeNullableint\"`\n\tExisting *out.ExistingType   `json:\"existing,omitempty\" database:\"MissingTypeNullableexisting\"`\n\tMissing2 *MissingTypeNotNull `json:\"missing2,omitempty\" database:\"MissingTypeNullablemissing2\"`\n}\n\nfunc (MissingTypeNullable) IsMissingInterface()   {}\nfunc (this MissingTypeNullable) GetName() *string { return this.Name }\n\nfunc (MissingTypeNullable) IsExistingInterface() {}\n\nfunc (MissingTypeNullable) IsMissingUnion() {}\n\nfunc (MissingTypeNullable) IsExistingUnion() {}\n\ntype Mutation struct {\n}\n\ntype NotCyclicalA struct {\n\tFieldOne string `json:\"FieldOne\" database:\"NotCyclicalAFieldOne\"`\n\tFieldTwo int    `json:\"FieldTwo\" database:\"NotCyclicalAFieldTwo\"`\n}\n\ntype NotCyclicalB struct {\n\tFieldOne string        `json:\"FieldOne\" database:\"NotCyclicalBFieldOne\"`\n\tFieldTwo *NotCyclicalA `json:\"FieldTwo\" database:\"NotCyclicalBFieldTwo\"`\n}\n\ntype OmitEmptyJSONTagTest struct {\n\tValueNonNil string  `json:\"ValueNonNil\" database:\"OmitEmptyJsonTagTestValueNonNil\"`\n\tValue       *string `json:\"Value,omitempty\" database:\"OmitEmptyJsonTagTestValue\"`\n}\n\ntype OmitZeroJSONTagTest struct {\n\tValueNonNil string  `json:\"ValueNonNil\" database:\"OmitZeroJSONTagTestValueNonNil\"`\n\tValue       *string `json:\"Value,omitempty\" database:\"OmitZeroJSONTagTestValue\"`\n}\n\ntype Query struct {\n}\n\ntype Recursive struct {\n\tFieldOne   *Recursive `json:\"FieldOne\" database:\"RecursiveFieldOne\"`\n\tFieldTwo   *Recursive `json:\"FieldTwo\" database:\"RecursiveFieldTwo\"`\n\tFieldThree *Recursive `json:\"FieldThree\" database:\"RecursiveFieldThree\"`\n\tFieldFour  string     `json:\"FieldFour\" database:\"RecursiveFieldFour\"`\n}\n\ntype RenameFieldTest struct {\n\tBadName    string `json:\"badName\" database:\"RenameFieldTestbadName\"`\n\tOtherField string `json:\"otherField\" database:\"RenameFieldTestotherField\"`\n}\n\ntype Subscription struct {\n}\n\n// TypeWithDescription is a type with a description\ntype TypeWithDescription struct {\n\tName *string `json:\"name,omitempty\" database:\"TypeWithDescriptionname\"`\n}\n\nfunc (TypeWithDescription) IsUnionWithDescription() {}\n\ntype Xer struct {\n\tId   string `json:\"Id\" database:\"XerId\"`\n\tName string `json:\"Name\" database:\"XerName\"`\n}\n\nfunc (Xer) IsX()               {}\nfunc (this Xer) GetId() string { return this.Id }\n\ntype FooBarr struct {\n\tName string `json:\"name\" database:\"_Foo_Barrname\"`\n}\n\nfunc (FooBarr) IsFooBarer()          {}\nfunc (this FooBarr) GetName() string { return this.Name }\n\n// EnumWithDescription is an enum with a description\ntype EnumWithDescription string\n\nconst (\n\tEnumWithDescriptionCat EnumWithDescription = \"CAT\"\n\tEnumWithDescriptionDog EnumWithDescription = \"DOG\"\n)\n\nvar AllEnumWithDescription = []EnumWithDescription{\n\tEnumWithDescriptionCat,\n\tEnumWithDescriptionDog,\n}\n\nfunc (e EnumWithDescription) IsValid() bool {\n\tswitch e {\n\tcase EnumWithDescriptionCat, EnumWithDescriptionDog:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e EnumWithDescription) String() string {\n\treturn string(e)\n}\n\nfunc (e *EnumWithDescription) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = EnumWithDescription(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid EnumWithDescription\", str)\n\t}\n\treturn nil\n}\n\nfunc (e EnumWithDescription) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *EnumWithDescription) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e EnumWithDescription) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n\ntype MissingEnum string\n\nconst (\n\tMissingEnumHello   MissingEnum = \"Hello\"\n\tMissingEnumGoodbye MissingEnum = \"Goodbye\"\n)\n\nvar AllMissingEnum = []MissingEnum{\n\tMissingEnumHello,\n\tMissingEnumGoodbye,\n}\n\nfunc (e MissingEnum) IsValid() bool {\n\tswitch e {\n\tcase MissingEnumHello, MissingEnumGoodbye:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e MissingEnum) String() string {\n\treturn string(e)\n}\n\nfunc (e *MissingEnum) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = MissingEnum(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid MissingEnum\", str)\n\t}\n\treturn nil\n}\n\nfunc (e MissingEnum) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *MissingEnum) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e MissingEnum) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n"
  },
  {
    "path": "plugin/modelgen/out_enable_model_json_omitzero_tag_nil/existing.go",
    "content": "package out_enable_model_json_omitzero_tag_nil\n\ntype ExistingType struct {\n\tName     *string              `json:\"name\"`\n\tEnum     *ExistingEnum        `json:\"enum\"`\n\tInt      ExistingInterface    `json:\"int\"`\n\tExisting *MissingTypeNullable `json:\"existing\"`\n}\n\ntype ExistingModel struct {\n\tName string\n\tEnum ExistingEnum\n\tInt  ExistingInterface\n}\n\ntype ExistingInput struct {\n\tName string\n\tEnum ExistingEnum\n\tInt  ExistingInterface\n}\n\ntype ExistingEnum string\n\ntype ExistingInterface interface {\n\tIsExistingInterface()\n}\n\ntype ExistingUnion interface {\n\tIsExistingUnion()\n}\n"
  },
  {
    "path": "plugin/modelgen/out_enable_model_json_omitzero_tag_nil/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage out_enable_model_json_omitzero_tag_nil\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/plugin/modelgen/out\"\n)\n\ntype A interface {\n\tIsA()\n\tGetA() string\n}\n\ntype ArrayOfA interface {\n\tIsArrayOfA()\n\tGetTrickyField() []A\n\tGetTrickyFieldPointer() []A\n}\n\ntype B interface {\n\tIsB()\n\tGetB() int\n}\n\ntype C interface {\n\tIsA()\n\tIsC()\n\tGetA() string\n\tGetC() bool\n}\n\ntype D interface {\n\tIsA()\n\tIsB()\n\tIsD()\n\tGetA() string\n\tGetB() int\n\tGetD() *string\n}\n\ntype FooBarer interface {\n\tIsFooBarer()\n\tGetName() string\n}\n\n// InterfaceWithDescription is an interface with a description\ntype InterfaceWithDescription interface {\n\tIsInterfaceWithDescription()\n\tGetName() *string\n}\n\ntype MissingInterface interface {\n\tIsMissingInterface()\n\tGetName() *string\n}\n\ntype MissingUnion interface {\n\tIsMissingUnion()\n}\n\n// UnionWithDescription is an union with a description\ntype UnionWithDescription interface {\n\tIsUnionWithDescription()\n}\n\ntype X interface {\n\tIsX()\n\tGetId() string\n}\n\ntype CDImplemented struct {\n\tA string  `json:\"a\" database:\"CDImplementeda\"`\n\tB int     `json:\"b\" database:\"CDImplementedb\"`\n\tC bool    `json:\"c\" database:\"CDImplementedc\"`\n\tD *string `json:\"d,omitempty\" database:\"CDImplementedd\"`\n}\n\nfunc (CDImplemented) IsC()              {}\nfunc (this CDImplemented) GetA() string { return this.A }\nfunc (this CDImplemented) GetC() bool   { return this.C }\n\nfunc (CDImplemented) IsA() {}\n\nfunc (CDImplemented) IsD() {}\n\nfunc (this CDImplemented) GetB() int     { return this.B }\nfunc (this CDImplemented) GetD() *string { return this.D }\n\nfunc (CDImplemented) IsB() {}\n\ntype CyclicalA struct {\n\tFieldOne   *CyclicalB `json:\"field_one,omitempty\" database:\"CyclicalAfield_one\"`\n\tFieldTwo   *CyclicalB `json:\"field_two,omitempty\" database:\"CyclicalAfield_two\"`\n\tFieldThree *CyclicalB `json:\"field_three,omitempty\" database:\"CyclicalAfield_three\"`\n\tFieldFour  string     `json:\"field_four\" database:\"CyclicalAfield_four\"`\n}\n\ntype CyclicalB struct {\n\tFieldOne   *CyclicalA `json:\"field_one,omitempty\" database:\"CyclicalBfield_one\"`\n\tFieldTwo   *CyclicalA `json:\"field_two,omitempty\" database:\"CyclicalBfield_two\"`\n\tFieldThree *CyclicalA `json:\"field_three,omitempty\" database:\"CyclicalBfield_three\"`\n\tFieldFour  *CyclicalA `json:\"field_four,omitempty\" database:\"CyclicalBfield_four\"`\n\tFieldFive  string     `json:\"field_five\" database:\"CyclicalBfield_five\"`\n}\n\ntype ExtraFieldsTest struct {\n\tSchemaField string `json:\"SchemaField\" database:\"ExtraFieldsTestSchemaField\"`\n}\n\ntype FieldMutationHook struct {\n\tName     *string           `json:\"name,omitempty\" anotherTag:\"tag\" database:\"FieldMutationHookname\"`\n\tEnum     *out.ExistingEnum `json:\"enum,omitempty\" yetAnotherTag:\"12\" database:\"FieldMutationHookenum\"`\n\tNoVal    *string           `json:\"noVal,omitempty\" yaml:\"noVal\" repeated:\"true\" database:\"FieldMutationHooknoVal\"`\n\tRepeated *string           `json:\"repeated,omitempty\" someTag:\"value\" repeated:\"true\" database:\"FieldMutationHookrepeated\"`\n}\n\ntype ImplArrayOfA struct {\n\tTrickyField        []*CDImplemented `json:\"trickyField\" database:\"ImplArrayOfAtrickyField\"`\n\tTrickyFieldPointer []*CDImplemented `json:\"trickyFieldPointer,omitempty\" database:\"ImplArrayOfAtrickyFieldPointer\"`\n}\n\nfunc (ImplArrayOfA) IsArrayOfA() {}\nfunc (this ImplArrayOfA) GetTrickyField() []A {\n\tif this.TrickyField == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]A, 0, len(this.TrickyField))\n\tfor _, concrete := range this.TrickyField {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\nfunc (this ImplArrayOfA) GetTrickyFieldPointer() []A {\n\tif this.TrickyFieldPointer == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]A, 0, len(this.TrickyFieldPointer))\n\tfor _, concrete := range this.TrickyFieldPointer {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\n\ntype MissingInput struct {\n\tName          *string                               `json:\"name,omitempty\" database:\"MissingInputname\"`\n\tEnum          *MissingEnum                          `json:\"enum,omitempty\" database:\"MissingInputenum\"`\n\tNonNullString string                                `json:\"nonNullString\" database:\"MissingInputnonNullString\"`\n\tNullString    graphql.Omittable[*string]            `json:\"nullString,omitempty\" database:\"MissingInputnullString\"`\n\tNullEnum      graphql.Omittable[*MissingEnum]       `json:\"nullEnum,omitempty\" database:\"MissingInputnullEnum\"`\n\tNullObject    graphql.Omittable[*out.ExistingInput] `json:\"nullObject,omitempty\" database:\"MissingInputnullObject\"`\n}\n\ntype MissingTypeNotNull struct {\n\tName     string               `json:\"name\" database:\"MissingTypeNotNullname\"`\n\tEnum     MissingEnum          `json:\"enum\" database:\"MissingTypeNotNullenum\"`\n\tInt      MissingInterface     `json:\"int\" database:\"MissingTypeNotNullint\"`\n\tExisting *out.ExistingType    `json:\"existing\" database:\"MissingTypeNotNullexisting\"`\n\tMissing2 *MissingTypeNullable `json:\"missing2\" database:\"MissingTypeNotNullmissing2\"`\n}\n\nfunc (MissingTypeNotNull) IsMissingInterface()   {}\nfunc (this MissingTypeNotNull) GetName() *string { return &this.Name }\n\nfunc (MissingTypeNotNull) IsExistingInterface() {}\n\nfunc (MissingTypeNotNull) IsMissingUnion() {}\n\nfunc (MissingTypeNotNull) IsExistingUnion() {}\n\ntype MissingTypeNullable struct {\n\tName     *string             `json:\"name,omitempty\" database:\"MissingTypeNullablename\"`\n\tEnum     *MissingEnum        `json:\"enum,omitempty\" database:\"MissingTypeNullableenum\"`\n\tInt      MissingInterface    `json:\"int,omitempty\" database:\"MissingTypeNullableint\"`\n\tExisting *out.ExistingType   `json:\"existing,omitempty\" database:\"MissingTypeNullableexisting\"`\n\tMissing2 *MissingTypeNotNull `json:\"missing2,omitempty\" database:\"MissingTypeNullablemissing2\"`\n}\n\nfunc (MissingTypeNullable) IsMissingInterface()   {}\nfunc (this MissingTypeNullable) GetName() *string { return this.Name }\n\nfunc (MissingTypeNullable) IsExistingInterface() {}\n\nfunc (MissingTypeNullable) IsMissingUnion() {}\n\nfunc (MissingTypeNullable) IsExistingUnion() {}\n\ntype Mutation struct {\n}\n\ntype NotCyclicalA struct {\n\tFieldOne string `json:\"FieldOne\" database:\"NotCyclicalAFieldOne\"`\n\tFieldTwo int    `json:\"FieldTwo\" database:\"NotCyclicalAFieldTwo\"`\n}\n\ntype NotCyclicalB struct {\n\tFieldOne string        `json:\"FieldOne\" database:\"NotCyclicalBFieldOne\"`\n\tFieldTwo *NotCyclicalA `json:\"FieldTwo\" database:\"NotCyclicalBFieldTwo\"`\n}\n\ntype OmitEmptyJSONTagTest struct {\n\tValueNonNil string  `json:\"ValueNonNil\" database:\"OmitEmptyJsonTagTestValueNonNil\"`\n\tValue       *string `json:\"Value,omitempty\" database:\"OmitEmptyJsonTagTestValue\"`\n}\n\ntype OmitZeroJSONTagTest struct {\n\tValueNonNil string  `json:\"ValueNonNil\" database:\"OmitZeroJSONTagTestValueNonNil\"`\n\tValue       *string `json:\"Value,omitempty\" database:\"OmitZeroJSONTagTestValue\"`\n}\n\ntype Query struct {\n}\n\ntype Recursive struct {\n\tFieldOne   *Recursive `json:\"FieldOne\" database:\"RecursiveFieldOne\"`\n\tFieldTwo   *Recursive `json:\"FieldTwo\" database:\"RecursiveFieldTwo\"`\n\tFieldThree *Recursive `json:\"FieldThree\" database:\"RecursiveFieldThree\"`\n\tFieldFour  string     `json:\"FieldFour\" database:\"RecursiveFieldFour\"`\n}\n\ntype RenameFieldTest struct {\n\tBadName    string `json:\"badName\" database:\"RenameFieldTestbadName\"`\n\tOtherField string `json:\"otherField\" database:\"RenameFieldTestotherField\"`\n}\n\ntype Subscription struct {\n}\n\n// TypeWithDescription is a type with a description\ntype TypeWithDescription struct {\n\tName *string `json:\"name,omitempty\" database:\"TypeWithDescriptionname\"`\n}\n\nfunc (TypeWithDescription) IsUnionWithDescription() {}\n\ntype Xer struct {\n\tId   string `json:\"Id\" database:\"XerId\"`\n\tName string `json:\"Name\" database:\"XerName\"`\n}\n\nfunc (Xer) IsX()               {}\nfunc (this Xer) GetId() string { return this.Id }\n\ntype FooBarr struct {\n\tName string `json:\"name\" database:\"_Foo_Barrname\"`\n}\n\nfunc (FooBarr) IsFooBarer()          {}\nfunc (this FooBarr) GetName() string { return this.Name }\n\n// EnumWithDescription is an enum with a description\ntype EnumWithDescription string\n\nconst (\n\tEnumWithDescriptionCat EnumWithDescription = \"CAT\"\n\tEnumWithDescriptionDog EnumWithDescription = \"DOG\"\n)\n\nvar AllEnumWithDescription = []EnumWithDescription{\n\tEnumWithDescriptionCat,\n\tEnumWithDescriptionDog,\n}\n\nfunc (e EnumWithDescription) IsValid() bool {\n\tswitch e {\n\tcase EnumWithDescriptionCat, EnumWithDescriptionDog:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e EnumWithDescription) String() string {\n\treturn string(e)\n}\n\nfunc (e *EnumWithDescription) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = EnumWithDescription(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid EnumWithDescription\", str)\n\t}\n\treturn nil\n}\n\nfunc (e EnumWithDescription) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *EnumWithDescription) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e EnumWithDescription) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n\ntype MissingEnum string\n\nconst (\n\tMissingEnumHello   MissingEnum = \"Hello\"\n\tMissingEnumGoodbye MissingEnum = \"Goodbye\"\n)\n\nvar AllMissingEnum = []MissingEnum{\n\tMissingEnumHello,\n\tMissingEnumGoodbye,\n}\n\nfunc (e MissingEnum) IsValid() bool {\n\tswitch e {\n\tcase MissingEnumHello, MissingEnumGoodbye:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e MissingEnum) String() string {\n\treturn string(e)\n}\n\nfunc (e *MissingEnum) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = MissingEnum(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid MissingEnum\", str)\n\t}\n\treturn nil\n}\n\nfunc (e MissingEnum) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *MissingEnum) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e MissingEnum) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n"
  },
  {
    "path": "plugin/modelgen/out_enable_model_json_omitzero_tag_true/existing.go",
    "content": "package out_enable_model_json_omitzero_tag_true\n\ntype ExistingType struct {\n\tName     *string              `json:\"name\"`\n\tEnum     *ExistingEnum        `json:\"enum\"`\n\tInt      ExistingInterface    `json:\"int\"`\n\tExisting *MissingTypeNullable `json:\"existing\"`\n}\n\ntype ExistingModel struct {\n\tName string\n\tEnum ExistingEnum\n\tInt  ExistingInterface\n}\n\ntype ExistingInput struct {\n\tName string\n\tEnum ExistingEnum\n\tInt  ExistingInterface\n}\n\ntype ExistingEnum string\n\ntype ExistingInterface interface {\n\tIsExistingInterface()\n}\n\ntype ExistingUnion interface {\n\tIsExistingUnion()\n}\n"
  },
  {
    "path": "plugin/modelgen/out_enable_model_json_omitzero_tag_true/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage out_enable_model_json_omitzero_tag_true\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/plugin/modelgen/out\"\n)\n\ntype A interface {\n\tIsA()\n\tGetA() string\n}\n\ntype ArrayOfA interface {\n\tIsArrayOfA()\n\tGetTrickyField() []A\n\tGetTrickyFieldPointer() []A\n}\n\ntype B interface {\n\tIsB()\n\tGetB() int\n}\n\ntype C interface {\n\tIsA()\n\tIsC()\n\tGetA() string\n\tGetC() bool\n}\n\ntype D interface {\n\tIsA()\n\tIsB()\n\tIsD()\n\tGetA() string\n\tGetB() int\n\tGetD() *string\n}\n\ntype FooBarer interface {\n\tIsFooBarer()\n\tGetName() string\n}\n\n// InterfaceWithDescription is an interface with a description\ntype InterfaceWithDescription interface {\n\tIsInterfaceWithDescription()\n\tGetName() *string\n}\n\ntype MissingInterface interface {\n\tIsMissingInterface()\n\tGetName() *string\n}\n\ntype MissingUnion interface {\n\tIsMissingUnion()\n}\n\n// UnionWithDescription is an union with a description\ntype UnionWithDescription interface {\n\tIsUnionWithDescription()\n}\n\ntype X interface {\n\tIsX()\n\tGetId() string\n}\n\ntype CDImplemented struct {\n\tA string  `json:\"a\" database:\"CDImplementeda\"`\n\tB int     `json:\"b\" database:\"CDImplementedb\"`\n\tC bool    `json:\"c\" database:\"CDImplementedc\"`\n\tD *string `json:\"d,omitempty,omitzero\" database:\"CDImplementedd\"`\n}\n\nfunc (CDImplemented) IsC()              {}\nfunc (this CDImplemented) GetA() string { return this.A }\nfunc (this CDImplemented) GetC() bool   { return this.C }\n\nfunc (CDImplemented) IsA() {}\n\nfunc (CDImplemented) IsD() {}\n\nfunc (this CDImplemented) GetB() int     { return this.B }\nfunc (this CDImplemented) GetD() *string { return this.D }\n\nfunc (CDImplemented) IsB() {}\n\ntype CyclicalA struct {\n\tFieldOne   *CyclicalB `json:\"field_one,omitempty,omitzero\" database:\"CyclicalAfield_one\"`\n\tFieldTwo   *CyclicalB `json:\"field_two,omitempty,omitzero\" database:\"CyclicalAfield_two\"`\n\tFieldThree *CyclicalB `json:\"field_three,omitempty,omitzero\" database:\"CyclicalAfield_three\"`\n\tFieldFour  string     `json:\"field_four\" database:\"CyclicalAfield_four\"`\n}\n\ntype CyclicalB struct {\n\tFieldOne   *CyclicalA `json:\"field_one,omitempty,omitzero\" database:\"CyclicalBfield_one\"`\n\tFieldTwo   *CyclicalA `json:\"field_two,omitempty,omitzero\" database:\"CyclicalBfield_two\"`\n\tFieldThree *CyclicalA `json:\"field_three,omitempty,omitzero\" database:\"CyclicalBfield_three\"`\n\tFieldFour  *CyclicalA `json:\"field_four,omitempty,omitzero\" database:\"CyclicalBfield_four\"`\n\tFieldFive  string     `json:\"field_five\" database:\"CyclicalBfield_five\"`\n}\n\ntype ExtraFieldsTest struct {\n\tSchemaField string `json:\"SchemaField\" database:\"ExtraFieldsTestSchemaField\"`\n}\n\ntype FieldMutationHook struct {\n\tName     *string           `json:\"name,omitempty,omitzero\" anotherTag:\"tag\" database:\"FieldMutationHookname\"`\n\tEnum     *out.ExistingEnum `json:\"enum,omitempty,omitzero\" yetAnotherTag:\"12\" database:\"FieldMutationHookenum\"`\n\tNoVal    *string           `json:\"noVal,omitempty,omitzero\" yaml:\"noVal\" repeated:\"true\" database:\"FieldMutationHooknoVal\"`\n\tRepeated *string           `json:\"repeated,omitempty,omitzero\" someTag:\"value\" repeated:\"true\" database:\"FieldMutationHookrepeated\"`\n}\n\ntype ImplArrayOfA struct {\n\tTrickyField        []*CDImplemented `json:\"trickyField\" database:\"ImplArrayOfAtrickyField\"`\n\tTrickyFieldPointer []*CDImplemented `json:\"trickyFieldPointer,omitempty,omitzero\" database:\"ImplArrayOfAtrickyFieldPointer\"`\n}\n\nfunc (ImplArrayOfA) IsArrayOfA() {}\nfunc (this ImplArrayOfA) GetTrickyField() []A {\n\tif this.TrickyField == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]A, 0, len(this.TrickyField))\n\tfor _, concrete := range this.TrickyField {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\nfunc (this ImplArrayOfA) GetTrickyFieldPointer() []A {\n\tif this.TrickyFieldPointer == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]A, 0, len(this.TrickyFieldPointer))\n\tfor _, concrete := range this.TrickyFieldPointer {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\n\ntype MissingInput struct {\n\tName          *string                               `json:\"name,omitempty,omitzero\" database:\"MissingInputname\"`\n\tEnum          *MissingEnum                          `json:\"enum,omitempty,omitzero\" database:\"MissingInputenum\"`\n\tNonNullString string                                `json:\"nonNullString\" database:\"MissingInputnonNullString\"`\n\tNullString    graphql.Omittable[*string]            `json:\"nullString,omitempty,omitzero\" database:\"MissingInputnullString\"`\n\tNullEnum      graphql.Omittable[*MissingEnum]       `json:\"nullEnum,omitempty,omitzero\" database:\"MissingInputnullEnum\"`\n\tNullObject    graphql.Omittable[*out.ExistingInput] `json:\"nullObject,omitempty,omitzero\" database:\"MissingInputnullObject\"`\n}\n\ntype MissingTypeNotNull struct {\n\tName     string               `json:\"name\" database:\"MissingTypeNotNullname\"`\n\tEnum     MissingEnum          `json:\"enum\" database:\"MissingTypeNotNullenum\"`\n\tInt      MissingInterface     `json:\"int\" database:\"MissingTypeNotNullint\"`\n\tExisting *out.ExistingType    `json:\"existing\" database:\"MissingTypeNotNullexisting\"`\n\tMissing2 *MissingTypeNullable `json:\"missing2\" database:\"MissingTypeNotNullmissing2\"`\n}\n\nfunc (MissingTypeNotNull) IsMissingInterface()   {}\nfunc (this MissingTypeNotNull) GetName() *string { return &this.Name }\n\nfunc (MissingTypeNotNull) IsExistingInterface() {}\n\nfunc (MissingTypeNotNull) IsMissingUnion() {}\n\nfunc (MissingTypeNotNull) IsExistingUnion() {}\n\ntype MissingTypeNullable struct {\n\tName     *string             `json:\"name,omitempty,omitzero\" database:\"MissingTypeNullablename\"`\n\tEnum     *MissingEnum        `json:\"enum,omitempty,omitzero\" database:\"MissingTypeNullableenum\"`\n\tInt      MissingInterface    `json:\"int,omitempty,omitzero\" database:\"MissingTypeNullableint\"`\n\tExisting *out.ExistingType   `json:\"existing,omitempty,omitzero\" database:\"MissingTypeNullableexisting\"`\n\tMissing2 *MissingTypeNotNull `json:\"missing2,omitempty,omitzero\" database:\"MissingTypeNullablemissing2\"`\n}\n\nfunc (MissingTypeNullable) IsMissingInterface()   {}\nfunc (this MissingTypeNullable) GetName() *string { return this.Name }\n\nfunc (MissingTypeNullable) IsExistingInterface() {}\n\nfunc (MissingTypeNullable) IsMissingUnion() {}\n\nfunc (MissingTypeNullable) IsExistingUnion() {}\n\ntype Mutation struct {\n}\n\ntype NotCyclicalA struct {\n\tFieldOne string `json:\"FieldOne\" database:\"NotCyclicalAFieldOne\"`\n\tFieldTwo int    `json:\"FieldTwo\" database:\"NotCyclicalAFieldTwo\"`\n}\n\ntype NotCyclicalB struct {\n\tFieldOne string        `json:\"FieldOne\" database:\"NotCyclicalBFieldOne\"`\n\tFieldTwo *NotCyclicalA `json:\"FieldTwo\" database:\"NotCyclicalBFieldTwo\"`\n}\n\ntype OmitEmptyJSONTagTest struct {\n\tValueNonNil string  `json:\"ValueNonNil\" database:\"OmitEmptyJsonTagTestValueNonNil\"`\n\tValue       *string `json:\"Value,omitempty,omitzero\" database:\"OmitEmptyJsonTagTestValue\"`\n}\n\ntype OmitZeroJSONTagTest struct {\n\tValueNonNil string  `json:\"ValueNonNil\" database:\"OmitZeroJSONTagTestValueNonNil\"`\n\tValue       *string `json:\"Value,omitempty,omitzero\" database:\"OmitZeroJSONTagTestValue\"`\n}\n\ntype Query struct {\n}\n\ntype Recursive struct {\n\tFieldOne   *Recursive `json:\"FieldOne\" database:\"RecursiveFieldOne\"`\n\tFieldTwo   *Recursive `json:\"FieldTwo\" database:\"RecursiveFieldTwo\"`\n\tFieldThree *Recursive `json:\"FieldThree\" database:\"RecursiveFieldThree\"`\n\tFieldFour  string     `json:\"FieldFour\" database:\"RecursiveFieldFour\"`\n}\n\ntype RenameFieldTest struct {\n\tBadName    string `json:\"badName\" database:\"RenameFieldTestbadName\"`\n\tOtherField string `json:\"otherField\" database:\"RenameFieldTestotherField\"`\n}\n\ntype Subscription struct {\n}\n\n// TypeWithDescription is a type with a description\ntype TypeWithDescription struct {\n\tName *string `json:\"name,omitempty,omitzero\" database:\"TypeWithDescriptionname\"`\n}\n\nfunc (TypeWithDescription) IsUnionWithDescription() {}\n\ntype Xer struct {\n\tId   string `json:\"Id\" database:\"XerId\"`\n\tName string `json:\"Name\" database:\"XerName\"`\n}\n\nfunc (Xer) IsX()               {}\nfunc (this Xer) GetId() string { return this.Id }\n\ntype FooBarr struct {\n\tName string `json:\"name\" database:\"_Foo_Barrname\"`\n}\n\nfunc (FooBarr) IsFooBarer()          {}\nfunc (this FooBarr) GetName() string { return this.Name }\n\n// EnumWithDescription is an enum with a description\ntype EnumWithDescription string\n\nconst (\n\tEnumWithDescriptionCat EnumWithDescription = \"CAT\"\n\tEnumWithDescriptionDog EnumWithDescription = \"DOG\"\n)\n\nvar AllEnumWithDescription = []EnumWithDescription{\n\tEnumWithDescriptionCat,\n\tEnumWithDescriptionDog,\n}\n\nfunc (e EnumWithDescription) IsValid() bool {\n\tswitch e {\n\tcase EnumWithDescriptionCat, EnumWithDescriptionDog:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e EnumWithDescription) String() string {\n\treturn string(e)\n}\n\nfunc (e *EnumWithDescription) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = EnumWithDescription(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid EnumWithDescription\", str)\n\t}\n\treturn nil\n}\n\nfunc (e EnumWithDescription) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *EnumWithDescription) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e EnumWithDescription) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n\ntype MissingEnum string\n\nconst (\n\tMissingEnumHello   MissingEnum = \"Hello\"\n\tMissingEnumGoodbye MissingEnum = \"Goodbye\"\n)\n\nvar AllMissingEnum = []MissingEnum{\n\tMissingEnumHello,\n\tMissingEnumGoodbye,\n}\n\nfunc (e MissingEnum) IsValid() bool {\n\tswitch e {\n\tcase MissingEnumHello, MissingEnumGoodbye:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e MissingEnum) String() string {\n\treturn string(e)\n}\n\nfunc (e *MissingEnum) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = MissingEnum(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid MissingEnum\", str)\n\t}\n\treturn nil\n}\n\nfunc (e MissingEnum) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *MissingEnum) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e MissingEnum) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n"
  },
  {
    "path": "plugin/modelgen/out_no_directive_models/generated_no_directive_models.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage out_no_directive_models\n\ntype Element interface {\n\tIsNode()\n\tIsElement()\n\tGetID() string\n\tGetName() string\n}\n\ntype Node interface {\n\tIsNode()\n\tGetID() string\n}\n\ntype Carbon struct {\n\tID        string `json:\"id\"`\n\tName      string `json:\"name\"`\n\tFootprint string `json:\"footprint\"`\n}\n\nfunc (Carbon) IsElement()           {}\nfunc (this Carbon) GetID() string   { return this.ID }\nfunc (this Carbon) GetName() string { return this.Name }\n\nfunc (Carbon) IsNode() {}\n\ntype Magnesium struct {\n\tID    string `json:\"id\"`\n\tName  string `json:\"name\"`\n\tTypes int    `json:\"types\"`\n}\n\nfunc (Magnesium) IsElement()           {}\nfunc (this Magnesium) GetID() string   { return this.ID }\nfunc (this Magnesium) GetName() string { return this.Name }\n\nfunc (Magnesium) IsNode() {}\n\ntype Potassium struct {\n\tID    string  `json:\"id\"`\n\tName  string  `json:\"name\"`\n\tPrice float64 `json:\"price\"`\n}\n\nfunc (Potassium) IsElement()           {}\nfunc (this Potassium) GetID() string   { return this.ID }\nfunc (this Potassium) GetName() string { return this.Name }\n\nfunc (Potassium) IsNode() {}\n\ntype Query struct {\n}\n"
  },
  {
    "path": "plugin/modelgen/out_nullable_input_omittable/existing.go",
    "content": "package out_nullable_input_omittable\n\nimport (\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\ntype ExistingType struct {\n\tName     *string              `json:\"name\"`\n\tEnum     *ExistingEnum        `json:\"enum\"`\n\tInt      ExistingInterface    `json:\"int\"`\n\tExisting *MissingTypeNullable `json:\"existing\"`\n}\n\ntype ExistingModel struct {\n\tName string\n\tEnum ExistingEnum\n\tInt  ExistingInterface\n}\n\ntype ExistingInput struct {\n\tName graphql.Omittable[string]\n\tEnum graphql.Omittable[ExistingEnum]\n\tInt  graphql.Omittable[ExistingInterface]\n}\n\ntype ExistingEnum string\n\ntype ExistingInterface interface {\n\tIsExistingInterface()\n}\n\ntype ExistingUnion interface {\n\tIsExistingUnion()\n}\n"
  },
  {
    "path": "plugin/modelgen/out_nullable_input_omittable/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage out_nullable_input_omittable\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\ntype A interface {\n\tIsA()\n\tGetA() string\n}\n\ntype ArrayOfA interface {\n\tIsArrayOfA()\n\tGetTrickyField() []A\n\tGetTrickyFieldPointer() []A\n}\n\ntype B interface {\n\tIsB()\n\tGetB() int\n}\n\ntype C interface {\n\tIsA()\n\tIsC()\n\tGetA() string\n\tGetC() bool\n}\n\ntype D interface {\n\tIsA()\n\tIsB()\n\tIsD()\n\tGetA() string\n\tGetB() int\n\tGetD() *string\n}\n\ntype FooBarer interface {\n\tIsFooBarer()\n\tGetName() string\n}\n\n// InterfaceWithDescription is an interface with a description\ntype InterfaceWithDescription interface {\n\tIsInterfaceWithDescription()\n\tGetName() *string\n}\n\ntype MissingInterface interface {\n\tIsMissingInterface()\n\tGetName() *string\n}\n\ntype MissingUnion interface {\n\tIsMissingUnion()\n}\n\n// UnionWithDescription is an union with a description\ntype UnionWithDescription interface {\n\tIsUnionWithDescription()\n}\n\ntype X interface {\n\tIsX()\n\tGetId() string\n}\n\ntype CDImplemented struct {\n\tA string  `json:\"a\" database:\"CDImplementeda\"`\n\tB int     `json:\"b\" database:\"CDImplementedb\"`\n\tC bool    `json:\"c\" database:\"CDImplementedc\"`\n\tD *string `json:\"d,omitempty\" database:\"CDImplementedd\"`\n}\n\nfunc (CDImplemented) IsC()              {}\nfunc (this CDImplemented) GetA() string { return this.A }\nfunc (this CDImplemented) GetC() bool   { return this.C }\n\nfunc (CDImplemented) IsA() {}\n\nfunc (CDImplemented) IsD() {}\n\nfunc (this CDImplemented) GetB() int     { return this.B }\nfunc (this CDImplemented) GetD() *string { return this.D }\n\nfunc (CDImplemented) IsB() {}\n\ntype CyclicalA struct {\n\tFieldOne   *CyclicalB `json:\"field_one,omitempty\" database:\"CyclicalAfield_one\"`\n\tFieldTwo   *CyclicalB `json:\"field_two,omitempty\" database:\"CyclicalAfield_two\"`\n\tFieldThree *CyclicalB `json:\"field_three,omitempty\" database:\"CyclicalAfield_three\"`\n\tFieldFour  string     `json:\"field_four\" database:\"CyclicalAfield_four\"`\n}\n\ntype CyclicalB struct {\n\tFieldOne   *CyclicalA `json:\"field_one,omitempty\" database:\"CyclicalBfield_one\"`\n\tFieldTwo   *CyclicalA `json:\"field_two,omitempty\" database:\"CyclicalBfield_two\"`\n\tFieldThree *CyclicalA `json:\"field_three,omitempty\" database:\"CyclicalBfield_three\"`\n\tFieldFour  *CyclicalA `json:\"field_four,omitempty\" database:\"CyclicalBfield_four\"`\n\tFieldFive  string     `json:\"field_five\" database:\"CyclicalBfield_five\"`\n}\n\ntype ExtraFieldsTest struct {\n\tSchemaField string `json:\"SchemaField\" database:\"ExtraFieldsTestSchemaField\"`\n}\n\ntype FieldMutationHook struct {\n\tName     *string       `json:\"name,omitempty\" anotherTag:\"tag\" database:\"FieldMutationHookname\"`\n\tEnum     *ExistingEnum `json:\"enum,omitempty\" yetAnotherTag:\"12\" database:\"FieldMutationHookenum\"`\n\tNoVal    *string       `json:\"noVal,omitempty\" yaml:\"noVal\" repeated:\"true\" database:\"FieldMutationHooknoVal\"`\n\tRepeated *string       `json:\"repeated,omitempty\" someTag:\"value\" repeated:\"true\" database:\"FieldMutationHookrepeated\"`\n}\n\ntype ImplArrayOfA struct {\n\tTrickyField        []*CDImplemented `json:\"trickyField\" database:\"ImplArrayOfAtrickyField\"`\n\tTrickyFieldPointer []*CDImplemented `json:\"trickyFieldPointer,omitempty\" database:\"ImplArrayOfAtrickyFieldPointer\"`\n}\n\nfunc (ImplArrayOfA) IsArrayOfA() {}\nfunc (this ImplArrayOfA) GetTrickyField() []A {\n\tif this.TrickyField == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]A, 0, len(this.TrickyField))\n\tfor _, concrete := range this.TrickyField {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\nfunc (this ImplArrayOfA) GetTrickyFieldPointer() []A {\n\tif this.TrickyFieldPointer == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]A, 0, len(this.TrickyFieldPointer))\n\tfor _, concrete := range this.TrickyFieldPointer {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\n\ntype MissingInput struct {\n\tName          graphql.Omittable[*string]        `json:\"name,omitempty\" database:\"MissingInputname\"`\n\tEnum          graphql.Omittable[*MissingEnum]   `json:\"enum,omitempty\" database:\"MissingInputenum\"`\n\tNonNullString string                            `json:\"nonNullString\" database:\"MissingInputnonNullString\"`\n\tNullString    graphql.Omittable[*string]        `json:\"nullString,omitempty\" database:\"MissingInputnullString\"`\n\tNullEnum      graphql.Omittable[*MissingEnum]   `json:\"nullEnum,omitempty\" database:\"MissingInputnullEnum\"`\n\tNullObject    graphql.Omittable[*ExistingInput] `json:\"nullObject,omitempty\" database:\"MissingInputnullObject\"`\n}\n\ntype MissingTypeNotNull struct {\n\tName     string               `json:\"name\" database:\"MissingTypeNotNullname\"`\n\tEnum     MissingEnum          `json:\"enum\" database:\"MissingTypeNotNullenum\"`\n\tInt      MissingInterface     `json:\"int\" database:\"MissingTypeNotNullint\"`\n\tExisting *ExistingType        `json:\"existing\" database:\"MissingTypeNotNullexisting\"`\n\tMissing2 *MissingTypeNullable `json:\"missing2\" database:\"MissingTypeNotNullmissing2\"`\n}\n\nfunc (MissingTypeNotNull) IsMissingInterface()   {}\nfunc (this MissingTypeNotNull) GetName() *string { return &this.Name }\n\nfunc (MissingTypeNotNull) IsExistingInterface() {}\n\nfunc (MissingTypeNotNull) IsMissingUnion() {}\n\nfunc (MissingTypeNotNull) IsExistingUnion() {}\n\ntype MissingTypeNullable struct {\n\tName     *string             `json:\"name,omitempty\" database:\"MissingTypeNullablename\"`\n\tEnum     *MissingEnum        `json:\"enum,omitempty\" database:\"MissingTypeNullableenum\"`\n\tInt      MissingInterface    `json:\"int,omitempty\" database:\"MissingTypeNullableint\"`\n\tExisting *ExistingType       `json:\"existing,omitempty\" database:\"MissingTypeNullableexisting\"`\n\tMissing2 *MissingTypeNotNull `json:\"missing2,omitempty\" database:\"MissingTypeNullablemissing2\"`\n}\n\nfunc (MissingTypeNullable) IsMissingInterface()   {}\nfunc (this MissingTypeNullable) GetName() *string { return this.Name }\n\nfunc (MissingTypeNullable) IsExistingInterface() {}\n\nfunc (MissingTypeNullable) IsMissingUnion() {}\n\nfunc (MissingTypeNullable) IsExistingUnion() {}\n\ntype Mutation struct {\n}\n\ntype NotCyclicalA struct {\n\tFieldOne string `json:\"FieldOne\" database:\"NotCyclicalAFieldOne\"`\n\tFieldTwo int    `json:\"FieldTwo\" database:\"NotCyclicalAFieldTwo\"`\n}\n\ntype NotCyclicalB struct {\n\tFieldOne string        `json:\"FieldOne\" database:\"NotCyclicalBFieldOne\"`\n\tFieldTwo *NotCyclicalA `json:\"FieldTwo\" database:\"NotCyclicalBFieldTwo\"`\n}\n\ntype OmitEmptyJSONTagTest struct {\n\tValueNonNil string  `json:\"ValueNonNil\" database:\"OmitEmptyJsonTagTestValueNonNil\"`\n\tValue       *string `json:\"Value,omitempty\" database:\"OmitEmptyJsonTagTestValue\"`\n}\n\ntype OmitZeroJSONTagTest struct {\n\tValueNonNil string  `json:\"ValueNonNil\" database:\"OmitZeroJSONTagTestValueNonNil\"`\n\tValue       *string `json:\"Value,omitempty\" database:\"OmitZeroJSONTagTestValue\"`\n}\n\ntype Query struct {\n}\n\ntype Recursive struct {\n\tFieldOne   *Recursive `json:\"FieldOne\" database:\"RecursiveFieldOne\"`\n\tFieldTwo   *Recursive `json:\"FieldTwo\" database:\"RecursiveFieldTwo\"`\n\tFieldThree *Recursive `json:\"FieldThree\" database:\"RecursiveFieldThree\"`\n\tFieldFour  string     `json:\"FieldFour\" database:\"RecursiveFieldFour\"`\n}\n\ntype RenameFieldTest struct {\n\tBadName    string `json:\"badName\" database:\"RenameFieldTestbadName\"`\n\tOtherField string `json:\"otherField\" database:\"RenameFieldTestotherField\"`\n}\n\ntype Subscription struct {\n}\n\n// TypeWithDescription is a type with a description\ntype TypeWithDescription struct {\n\tName *string `json:\"name,omitempty\" database:\"TypeWithDescriptionname\"`\n}\n\nfunc (TypeWithDescription) IsUnionWithDescription() {}\n\ntype Xer struct {\n\tId   string `json:\"Id\" database:\"XerId\"`\n\tName string `json:\"Name\" database:\"XerName\"`\n}\n\nfunc (Xer) IsX()               {}\nfunc (this Xer) GetId() string { return this.Id }\n\ntype FooBarr struct {\n\tName string `json:\"name\" database:\"_Foo_Barrname\"`\n}\n\nfunc (FooBarr) IsFooBarer()          {}\nfunc (this FooBarr) GetName() string { return this.Name }\n\n// EnumWithDescription is an enum with a description\ntype EnumWithDescription string\n\nconst (\n\tEnumWithDescriptionCat EnumWithDescription = \"CAT\"\n\tEnumWithDescriptionDog EnumWithDescription = \"DOG\"\n)\n\nvar AllEnumWithDescription = []EnumWithDescription{\n\tEnumWithDescriptionCat,\n\tEnumWithDescriptionDog,\n}\n\nfunc (e EnumWithDescription) IsValid() bool {\n\tswitch e {\n\tcase EnumWithDescriptionCat, EnumWithDescriptionDog:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e EnumWithDescription) String() string {\n\treturn string(e)\n}\n\nfunc (e *EnumWithDescription) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = EnumWithDescription(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid EnumWithDescription\", str)\n\t}\n\treturn nil\n}\n\nfunc (e EnumWithDescription) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *EnumWithDescription) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e EnumWithDescription) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n\ntype MissingEnum string\n\nconst (\n\tMissingEnumHello   MissingEnum = \"Hello\"\n\tMissingEnumGoodbye MissingEnum = \"Goodbye\"\n)\n\nvar AllMissingEnum = []MissingEnum{\n\tMissingEnumHello,\n\tMissingEnumGoodbye,\n}\n\nfunc (e MissingEnum) IsValid() bool {\n\tswitch e {\n\tcase MissingEnumHello, MissingEnumGoodbye:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e MissingEnum) String() string {\n\treturn string(e)\n}\n\nfunc (e *MissingEnum) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = MissingEnum(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid MissingEnum\", str)\n\t}\n\treturn nil\n}\n\nfunc (e MissingEnum) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *MissingEnum) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e MissingEnum) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n"
  },
  {
    "path": "plugin/modelgen/out_omit_embedded_structs_models/generated_omit_embedded_structs_models.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage out_omit_embedded_structs_models\n\ntype Element interface {\n\tIsNode()\n\tIsElement()\n\tGetID() string\n\tGetName() string\n}\n\ntype Node interface {\n\tIsNode()\n\tGetID() string\n}\n\ntype Carbon struct {\n\tID        string `json:\"id\"`\n\tName      string `json:\"name\"`\n\tFootprint string `json:\"footprint\"`\n}\n\nfunc (Carbon) IsElement()           {}\nfunc (this Carbon) GetID() string   { return this.ID }\nfunc (this Carbon) GetName() string { return this.Name }\n\nfunc (Carbon) IsNode() {}\n\ntype Magnesium struct {\n\tID    string `json:\"id\"`\n\tName  string `json:\"name\"`\n\tTypes int    `json:\"types\"`\n}\n\nfunc (Magnesium) IsElement()           {}\nfunc (this Magnesium) GetID() string   { return this.ID }\nfunc (this Magnesium) GetName() string { return this.Name }\n\nfunc (Magnesium) IsNode() {}\n\ntype Potassium struct {\n\tID    string  `json:\"id\"`\n\tName  string  `json:\"name\"`\n\tPrice float64 `json:\"price\"`\n}\n\nfunc (Potassium) IsElement()           {}\nfunc (this Potassium) GetID() string   { return this.ID }\nfunc (this Potassium) GetName() string { return this.Name }\n\nfunc (Potassium) IsNode() {}\n\ntype Query struct {\n}\n"
  },
  {
    "path": "plugin/modelgen/out_omit_json_enum_marshalers/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage out_omit_json_enum_marshalers\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\ntype A interface {\n\tIsA()\n\tGetA() string\n}\n\ntype ArrayOfA interface {\n\tIsArrayOfA()\n\tGetTrickyField() []A\n\tGetTrickyFieldPointer() []A\n}\n\ntype B interface {\n\tIsB()\n\tGetB() int\n}\n\ntype C interface {\n\tIsA()\n\tIsC()\n\tGetA() string\n\tGetC() bool\n}\n\ntype D interface {\n\tIsA()\n\tIsB()\n\tIsD()\n\tGetA() string\n\tGetB() int\n\tGetD() *string\n}\n\ntype ExistingInterface interface {\n\tIsExistingInterface()\n\tGetName() *string\n}\n\ntype ExistingUnion interface {\n\tIsExistingUnion()\n}\n\ntype FooBarer interface {\n\tIsFooBarer()\n\tGetName() string\n}\n\n// InterfaceWithDescription is an interface with a description\ntype InterfaceWithDescription interface {\n\tIsInterfaceWithDescription()\n\tGetName() *string\n}\n\ntype MissingInterface interface {\n\tIsMissingInterface()\n\tGetName() *string\n}\n\ntype MissingUnion interface {\n\tIsMissingUnion()\n}\n\n// UnionWithDescription is an union with a description\ntype UnionWithDescription interface {\n\tIsUnionWithDescription()\n}\n\ntype X interface {\n\tIsX()\n\tGetId() string\n}\n\ntype CDImplemented struct {\n\tA string  `json:\"a\" database:\"CDImplementeda\"`\n\tB int     `json:\"b\" database:\"CDImplementedb\"`\n\tC bool    `json:\"c\" database:\"CDImplementedc\"`\n\tD *string `json:\"d,omitempty\" database:\"CDImplementedd\"`\n}\n\nfunc (CDImplemented) IsC()              {}\nfunc (this CDImplemented) GetA() string { return this.A }\nfunc (this CDImplemented) GetC() bool   { return this.C }\n\nfunc (CDImplemented) IsA() {}\n\nfunc (CDImplemented) IsD() {}\n\nfunc (this CDImplemented) GetB() int     { return this.B }\nfunc (this CDImplemented) GetD() *string { return this.D }\n\nfunc (CDImplemented) IsB() {}\n\ntype CyclicalA struct {\n\tFieldOne   *CyclicalB `json:\"field_one,omitempty\" database:\"CyclicalAfield_one\"`\n\tFieldTwo   *CyclicalB `json:\"field_two,omitempty\" database:\"CyclicalAfield_two\"`\n\tFieldThree *CyclicalB `json:\"field_three,omitempty\" database:\"CyclicalAfield_three\"`\n\tFieldFour  string     `json:\"field_four\" database:\"CyclicalAfield_four\"`\n}\n\ntype CyclicalB struct {\n\tFieldOne   *CyclicalA `json:\"field_one,omitempty\" database:\"CyclicalBfield_one\"`\n\tFieldTwo   *CyclicalA `json:\"field_two,omitempty\" database:\"CyclicalBfield_two\"`\n\tFieldThree *CyclicalA `json:\"field_three,omitempty\" database:\"CyclicalBfield_three\"`\n\tFieldFour  *CyclicalA `json:\"field_four,omitempty\" database:\"CyclicalBfield_four\"`\n\tFieldFive  string     `json:\"field_five\" database:\"CyclicalBfield_five\"`\n}\n\ntype ExistingInput struct {\n\tName *string       `json:\"name,omitempty\" database:\"ExistingInputname\"`\n\tEnum *ExistingEnum `json:\"enum,omitempty\" database:\"ExistingInputenum\"`\n}\n\ntype ExistingType struct {\n\tName     *string              `json:\"name,omitempty\" database:\"ExistingTypename\"`\n\tEnum     *ExistingEnum        `json:\"enum,omitempty\" database:\"ExistingTypeenum\"`\n\tInt      ExistingInterface    `json:\"int,omitempty\" database:\"ExistingTypeint\"`\n\tExisting *MissingTypeNullable `json:\"existing,omitempty\" database:\"ExistingTypeexisting\"`\n}\n\nfunc (ExistingType) IsMissingUnion() {}\n\nfunc (ExistingType) IsMissingInterface()   {}\nfunc (this ExistingType) GetName() *string { return this.Name }\n\nfunc (ExistingType) IsExistingInterface() {}\n\nfunc (ExistingType) IsExistingUnion() {}\n\nfunc (ExistingType) IsUnionWithDescription() {}\n\ntype ExtraFieldsTest struct {\n\tSchemaField string `json:\"SchemaField\" database:\"ExtraFieldsTestSchemaField\"`\n}\n\ntype FieldMutationHook struct {\n\tName     *string       `json:\"name,omitempty\" anotherTag:\"tag\" database:\"FieldMutationHookname\"`\n\tEnum     *ExistingEnum `json:\"enum,omitempty\" yetAnotherTag:\"12\" database:\"FieldMutationHookenum\"`\n\tNoVal    *string       `json:\"noVal,omitempty\" yaml:\"noVal\" repeated:\"true\" database:\"FieldMutationHooknoVal\"`\n\tRepeated *string       `json:\"repeated,omitempty\" someTag:\"value\" repeated:\"true\" database:\"FieldMutationHookrepeated\"`\n}\n\ntype ImplArrayOfA struct {\n\tTrickyField        []*CDImplemented `json:\"trickyField\" database:\"ImplArrayOfAtrickyField\"`\n\tTrickyFieldPointer []*CDImplemented `json:\"trickyFieldPointer,omitempty\" database:\"ImplArrayOfAtrickyFieldPointer\"`\n}\n\nfunc (ImplArrayOfA) IsArrayOfA() {}\nfunc (this ImplArrayOfA) GetTrickyField() []A {\n\tif this.TrickyField == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]A, 0, len(this.TrickyField))\n\tfor _, concrete := range this.TrickyField {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\nfunc (this ImplArrayOfA) GetTrickyFieldPointer() []A {\n\tif this.TrickyFieldPointer == nil {\n\t\treturn nil\n\t}\n\tinterfaceSlice := make([]A, 0, len(this.TrickyFieldPointer))\n\tfor _, concrete := range this.TrickyFieldPointer {\n\t\tinterfaceSlice = append(interfaceSlice, concrete)\n\t}\n\treturn interfaceSlice\n}\n\ntype MissingInput struct {\n\tName          *string                           `json:\"name,omitempty\" database:\"MissingInputname\"`\n\tEnum          *MissingEnum                      `json:\"enum,omitempty\" database:\"MissingInputenum\"`\n\tNonNullString string                            `json:\"nonNullString\" database:\"MissingInputnonNullString\"`\n\tNullString    graphql.Omittable[*string]        `json:\"nullString,omitempty\" database:\"MissingInputnullString\"`\n\tNullEnum      graphql.Omittable[*MissingEnum]   `json:\"nullEnum,omitempty\" database:\"MissingInputnullEnum\"`\n\tNullObject    graphql.Omittable[*ExistingInput] `json:\"nullObject,omitempty\" database:\"MissingInputnullObject\"`\n}\n\ntype MissingTypeNotNull struct {\n\tName     string               `json:\"name\" database:\"MissingTypeNotNullname\"`\n\tEnum     MissingEnum          `json:\"enum\" database:\"MissingTypeNotNullenum\"`\n\tInt      MissingInterface     `json:\"int\" database:\"MissingTypeNotNullint\"`\n\tExisting *ExistingType        `json:\"existing\" database:\"MissingTypeNotNullexisting\"`\n\tMissing2 *MissingTypeNullable `json:\"missing2\" database:\"MissingTypeNotNullmissing2\"`\n}\n\nfunc (MissingTypeNotNull) IsMissingInterface()   {}\nfunc (this MissingTypeNotNull) GetName() *string { return &this.Name }\n\nfunc (MissingTypeNotNull) IsExistingInterface() {}\n\nfunc (MissingTypeNotNull) IsMissingUnion() {}\n\nfunc (MissingTypeNotNull) IsExistingUnion() {}\n\ntype MissingTypeNullable struct {\n\tName     *string             `json:\"name,omitempty\" database:\"MissingTypeNullablename\"`\n\tEnum     *MissingEnum        `json:\"enum,omitempty\" database:\"MissingTypeNullableenum\"`\n\tInt      MissingInterface    `json:\"int,omitempty\" database:\"MissingTypeNullableint\"`\n\tExisting *ExistingType       `json:\"existing,omitempty\" database:\"MissingTypeNullableexisting\"`\n\tMissing2 *MissingTypeNotNull `json:\"missing2,omitempty\" database:\"MissingTypeNullablemissing2\"`\n}\n\nfunc (MissingTypeNullable) IsMissingInterface()   {}\nfunc (this MissingTypeNullable) GetName() *string { return this.Name }\n\nfunc (MissingTypeNullable) IsExistingInterface() {}\n\nfunc (MissingTypeNullable) IsMissingUnion() {}\n\nfunc (MissingTypeNullable) IsExistingUnion() {}\n\ntype Mutation struct {\n}\n\ntype NotCyclicalA struct {\n\tFieldOne string `json:\"FieldOne\" database:\"NotCyclicalAFieldOne\"`\n\tFieldTwo int    `json:\"FieldTwo\" database:\"NotCyclicalAFieldTwo\"`\n}\n\ntype NotCyclicalB struct {\n\tFieldOne string        `json:\"FieldOne\" database:\"NotCyclicalBFieldOne\"`\n\tFieldTwo *NotCyclicalA `json:\"FieldTwo\" database:\"NotCyclicalBFieldTwo\"`\n}\n\ntype OmitEmptyJSONTagTest struct {\n\tValueNonNil string  `json:\"ValueNonNil\" database:\"OmitEmptyJsonTagTestValueNonNil\"`\n\tValue       *string `json:\"Value,omitempty\" database:\"OmitEmptyJsonTagTestValue\"`\n}\n\ntype OmitZeroJSONTagTest struct {\n\tValueNonNil string  `json:\"ValueNonNil\" database:\"OmitZeroJSONTagTestValueNonNil\"`\n\tValue       *string `json:\"Value,omitempty\" database:\"OmitZeroJSONTagTestValue\"`\n}\n\ntype Query struct {\n}\n\ntype Recursive struct {\n\tFieldOne   *Recursive `json:\"FieldOne\" database:\"RecursiveFieldOne\"`\n\tFieldTwo   *Recursive `json:\"FieldTwo\" database:\"RecursiveFieldTwo\"`\n\tFieldThree *Recursive `json:\"FieldThree\" database:\"RecursiveFieldThree\"`\n\tFieldFour  string     `json:\"FieldFour\" database:\"RecursiveFieldFour\"`\n}\n\ntype RenameFieldTest struct {\n\tBadName    string `json:\"badName\" database:\"RenameFieldTestbadName\"`\n\tOtherField string `json:\"otherField\" database:\"RenameFieldTestotherField\"`\n}\n\ntype Subscription struct {\n}\n\n// TypeWithDescription is a type with a description\ntype TypeWithDescription struct {\n\tName *string `json:\"name,omitempty\" database:\"TypeWithDescriptionname\"`\n}\n\nfunc (TypeWithDescription) IsUnionWithDescription() {}\n\ntype Xer struct {\n\tId   string `json:\"Id\" database:\"XerId\"`\n\tName string `json:\"Name\" database:\"XerName\"`\n}\n\nfunc (Xer) IsX()               {}\nfunc (this Xer) GetId() string { return this.Id }\n\ntype FooBarr struct {\n\tName string `json:\"name\" database:\"_Foo_Barrname\"`\n}\n\nfunc (FooBarr) IsFooBarer()          {}\nfunc (this FooBarr) GetName() string { return this.Name }\n\n// EnumWithDescription is an enum with a description\ntype EnumWithDescription string\n\nconst (\n\tEnumWithDescriptionCat EnumWithDescription = \"CAT\"\n\tEnumWithDescriptionDog EnumWithDescription = \"DOG\"\n)\n\nvar AllEnumWithDescription = []EnumWithDescription{\n\tEnumWithDescriptionCat,\n\tEnumWithDescriptionDog,\n}\n\nfunc (e EnumWithDescription) IsValid() bool {\n\tswitch e {\n\tcase EnumWithDescriptionCat, EnumWithDescriptionDog:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e EnumWithDescription) String() string {\n\treturn string(e)\n}\n\nfunc (e *EnumWithDescription) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = EnumWithDescription(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid EnumWithDescription\", str)\n\t}\n\treturn nil\n}\n\nfunc (e EnumWithDescription) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\ntype ExistingEnum string\n\nconst (\n\tExistingEnumHello   ExistingEnum = \"Hello\"\n\tExistingEnumGoodbye ExistingEnum = \"Goodbye\"\n)\n\nvar AllExistingEnum = []ExistingEnum{\n\tExistingEnumHello,\n\tExistingEnumGoodbye,\n}\n\nfunc (e ExistingEnum) IsValid() bool {\n\tswitch e {\n\tcase ExistingEnumHello, ExistingEnumGoodbye:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e ExistingEnum) String() string {\n\treturn string(e)\n}\n\nfunc (e *ExistingEnum) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = ExistingEnum(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid ExistingEnum\", str)\n\t}\n\treturn nil\n}\n\nfunc (e ExistingEnum) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\ntype MissingEnum string\n\nconst (\n\tMissingEnumHello   MissingEnum = \"Hello\"\n\tMissingEnumGoodbye MissingEnum = \"Goodbye\"\n)\n\nvar AllMissingEnum = []MissingEnum{\n\tMissingEnumHello,\n\tMissingEnumGoodbye,\n}\n\nfunc (e MissingEnum) IsValid() bool {\n\tswitch e {\n\tcase MissingEnumHello, MissingEnumGoodbye:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e MissingEnum) String() string {\n\treturn string(e)\n}\n\nfunc (e *MissingEnum) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = MissingEnum(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid MissingEnum\", str)\n\t}\n\treturn nil\n}\n\nfunc (e MissingEnum) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n"
  },
  {
    "path": "plugin/modelgen/out_omit_resolver_fields/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage out_omit_resolver_fields\n\ntype Base struct {\n\tStandardField       string `json:\"StandardField\" database:\"BaseStandardField\"`\n\tForceGeneratedField string `json:\"ForceGeneratedField\" database:\"BaseForceGeneratedField\"`\n}\n\ntype Query struct {\n}\n"
  },
  {
    "path": "plugin/modelgen/out_struct_pointers/existing.go",
    "content": "package out_struct_pointers\n\ntype ExistingType struct {\n\tName     *string              `json:\"name\"`\n\tEnum     *ExistingEnum        `json:\"enum\"`\n\tInt      ExistingInterface    `json:\"int\"`\n\tExisting *MissingTypeNullable `json:\"existing\"`\n}\n\ntype ExistingModel struct {\n\tName string\n\tEnum ExistingEnum\n\tInt  ExistingInterface\n}\n\ntype ExistingInput struct {\n\tName string\n\tEnum ExistingEnum\n\tInt  ExistingInterface\n}\n\ntype ExistingEnum string\n\ntype ExistingInterface interface {\n\tIsExistingInterface()\n}\n\ntype ExistingUnion interface {\n\tIsExistingUnion()\n}\n"
  },
  {
    "path": "plugin/modelgen/out_struct_pointers/generated.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage out_struct_pointers\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n)\n\ntype A interface {\n\tIsA()\n}\n\ntype ArrayOfA interface {\n\tIsArrayOfA()\n}\n\ntype B interface {\n\tIsB()\n}\n\ntype C interface {\n\tIsA()\n\tIsC()\n}\n\ntype D interface {\n\tIsA()\n\tIsB()\n\tIsD()\n}\n\ntype FooBarer interface {\n\tIsFooBarer()\n}\n\n// InterfaceWithDescription is an interface with a description\ntype InterfaceWithDescription interface {\n\tIsInterfaceWithDescription()\n}\n\ntype MissingInterface interface {\n\tIsMissingInterface()\n}\n\ntype MissingUnion interface {\n\tIsMissingUnion()\n}\n\n// UnionWithDescription is an union with a description\ntype UnionWithDescription interface {\n\tIsUnionWithDescription()\n}\n\ntype X interface {\n\tIsX()\n}\n\ntype CDImplemented struct {\n\tA string  `json:\"a\" database:\"CDImplementeda\"`\n\tB int     `json:\"b\" database:\"CDImplementedb\"`\n\tC bool    `json:\"c\" database:\"CDImplementedc\"`\n\tD *string `json:\"d,omitempty\" database:\"CDImplementedd\"`\n}\n\nfunc (CDImplemented) IsC() {}\n\nfunc (CDImplemented) IsA() {}\n\nfunc (CDImplemented) IsD() {}\n\nfunc (CDImplemented) IsB() {}\n\ntype CyclicalA struct {\n\tFieldOne   *CyclicalB `json:\"field_one,omitempty\" database:\"CyclicalAfield_one\"`\n\tFieldTwo   *CyclicalB `json:\"field_two,omitempty\" database:\"CyclicalAfield_two\"`\n\tFieldThree *CyclicalB `json:\"field_three,omitempty\" database:\"CyclicalAfield_three\"`\n\tFieldFour  string     `json:\"field_four\" database:\"CyclicalAfield_four\"`\n}\n\ntype CyclicalB struct {\n\tFieldOne   *CyclicalA `json:\"field_one,omitempty\" database:\"CyclicalBfield_one\"`\n\tFieldTwo   *CyclicalA `json:\"field_two,omitempty\" database:\"CyclicalBfield_two\"`\n\tFieldThree *CyclicalA `json:\"field_three,omitempty\" database:\"CyclicalBfield_three\"`\n\tFieldFour  *CyclicalA `json:\"field_four,omitempty\" database:\"CyclicalBfield_four\"`\n\tFieldFive  string     `json:\"field_five\" database:\"CyclicalBfield_five\"`\n}\n\ntype ExtraFieldsTest struct {\n\tSchemaField string `json:\"SchemaField\" database:\"ExtraFieldsTestSchemaField\"`\n}\n\ntype FieldMutationHook struct {\n\tName     *string       `json:\"name,omitempty\" anotherTag:\"tag\" database:\"FieldMutationHookname\"`\n\tEnum     *ExistingEnum `json:\"enum,omitempty\" yetAnotherTag:\"12\" database:\"FieldMutationHookenum\"`\n\tNoVal    *string       `json:\"noVal,omitempty\" yaml:\"noVal\" repeated:\"true\" database:\"FieldMutationHooknoVal\"`\n\tRepeated *string       `json:\"repeated,omitempty\" someTag:\"value\" repeated:\"true\" database:\"FieldMutationHookrepeated\"`\n}\n\ntype ImplArrayOfA struct {\n\tTrickyField        []*CDImplemented `json:\"trickyField\" database:\"ImplArrayOfAtrickyField\"`\n\tTrickyFieldPointer []*CDImplemented `json:\"trickyFieldPointer,omitempty\" database:\"ImplArrayOfAtrickyFieldPointer\"`\n}\n\nfunc (ImplArrayOfA) IsArrayOfA() {}\n\ntype MissingInput struct {\n\tName          *string                           `json:\"name,omitempty\" database:\"MissingInputname\"`\n\tEnum          *MissingEnum                      `json:\"enum,omitempty\" database:\"MissingInputenum\"`\n\tNonNullString string                            `json:\"nonNullString\" database:\"MissingInputnonNullString\"`\n\tNullString    graphql.Omittable[*string]        `json:\"nullString,omitempty\" database:\"MissingInputnullString\"`\n\tNullEnum      graphql.Omittable[*MissingEnum]   `json:\"nullEnum,omitempty\" database:\"MissingInputnullEnum\"`\n\tNullObject    graphql.Omittable[*ExistingInput] `json:\"nullObject,omitempty\" database:\"MissingInputnullObject\"`\n}\n\ntype MissingTypeNotNull struct {\n\tName     string              `json:\"name\" database:\"MissingTypeNotNullname\"`\n\tEnum     MissingEnum         `json:\"enum\" database:\"MissingTypeNotNullenum\"`\n\tInt      MissingInterface    `json:\"int\" database:\"MissingTypeNotNullint\"`\n\tExisting ExistingType        `json:\"existing\" database:\"MissingTypeNotNullexisting\"`\n\tMissing2 MissingTypeNullable `json:\"missing2\" database:\"MissingTypeNotNullmissing2\"`\n}\n\nfunc (MissingTypeNotNull) IsMissingInterface() {}\n\nfunc (MissingTypeNotNull) IsExistingInterface() {}\n\nfunc (MissingTypeNotNull) IsMissingUnion() {}\n\nfunc (MissingTypeNotNull) IsExistingUnion() {}\n\ntype MissingTypeNullable struct {\n\tName     *string             `json:\"name,omitempty\" database:\"MissingTypeNullablename\"`\n\tEnum     *MissingEnum        `json:\"enum,omitempty\" database:\"MissingTypeNullableenum\"`\n\tInt      MissingInterface    `json:\"int,omitempty\" database:\"MissingTypeNullableint\"`\n\tExisting *ExistingType       `json:\"existing,omitempty\" database:\"MissingTypeNullableexisting\"`\n\tMissing2 *MissingTypeNotNull `json:\"missing2,omitempty\" database:\"MissingTypeNullablemissing2\"`\n}\n\nfunc (MissingTypeNullable) IsMissingInterface() {}\n\nfunc (MissingTypeNullable) IsExistingInterface() {}\n\nfunc (MissingTypeNullable) IsMissingUnion() {}\n\nfunc (MissingTypeNullable) IsExistingUnion() {}\n\ntype Mutation struct {\n}\n\ntype NotCyclicalA struct {\n\tFieldOne string `json:\"FieldOne\" database:\"NotCyclicalAFieldOne\"`\n\tFieldTwo int    `json:\"FieldTwo\" database:\"NotCyclicalAFieldTwo\"`\n}\n\ntype NotCyclicalB struct {\n\tFieldOne string       `json:\"FieldOne\" database:\"NotCyclicalBFieldOne\"`\n\tFieldTwo NotCyclicalA `json:\"FieldTwo\" database:\"NotCyclicalBFieldTwo\"`\n}\n\ntype OmitEmptyJSONTagTest struct {\n\tValueNonNil string  `json:\"ValueNonNil\" database:\"OmitEmptyJsonTagTestValueNonNil\"`\n\tValue       *string `json:\"Value,omitempty\" database:\"OmitEmptyJsonTagTestValue\"`\n}\n\ntype OmitZeroJSONTagTest struct {\n\tValueNonNil string  `json:\"ValueNonNil\" database:\"OmitZeroJSONTagTestValueNonNil\"`\n\tValue       *string `json:\"Value,omitempty\" database:\"OmitZeroJSONTagTestValue\"`\n}\n\ntype Query struct {\n}\n\ntype Recursive struct {\n\tFieldOne   *Recursive `json:\"FieldOne\" database:\"RecursiveFieldOne\"`\n\tFieldTwo   *Recursive `json:\"FieldTwo\" database:\"RecursiveFieldTwo\"`\n\tFieldThree *Recursive `json:\"FieldThree\" database:\"RecursiveFieldThree\"`\n\tFieldFour  string     `json:\"FieldFour\" database:\"RecursiveFieldFour\"`\n}\n\ntype RenameFieldTest struct {\n\tBadName    string `json:\"badName\" database:\"RenameFieldTestbadName\"`\n\tOtherField string `json:\"otherField\" database:\"RenameFieldTestotherField\"`\n}\n\ntype Subscription struct {\n}\n\n// TypeWithDescription is a type with a description\ntype TypeWithDescription struct {\n\tName *string `json:\"name,omitempty\" database:\"TypeWithDescriptionname\"`\n}\n\nfunc (TypeWithDescription) IsUnionWithDescription() {}\n\ntype Xer struct {\n\tId   string `json:\"Id\" database:\"XerId\"`\n\tName string `json:\"Name\" database:\"XerName\"`\n}\n\nfunc (Xer) IsX() {}\n\ntype FooBarr struct {\n\tName string `json:\"name\" database:\"_Foo_Barrname\"`\n}\n\nfunc (FooBarr) IsFooBarer() {}\n\n// EnumWithDescription is an enum with a description\ntype EnumWithDescription string\n\nconst (\n\tEnumWithDescriptionCat EnumWithDescription = \"CAT\"\n\tEnumWithDescriptionDog EnumWithDescription = \"DOG\"\n)\n\nvar AllEnumWithDescription = []EnumWithDescription{\n\tEnumWithDescriptionCat,\n\tEnumWithDescriptionDog,\n}\n\nfunc (e EnumWithDescription) IsValid() bool {\n\tswitch e {\n\tcase EnumWithDescriptionCat, EnumWithDescriptionDog:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e EnumWithDescription) String() string {\n\treturn string(e)\n}\n\nfunc (e *EnumWithDescription) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = EnumWithDescription(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid EnumWithDescription\", str)\n\t}\n\treturn nil\n}\n\nfunc (e EnumWithDescription) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *EnumWithDescription) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e EnumWithDescription) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n\ntype MissingEnum string\n\nconst (\n\tMissingEnumHello   MissingEnum = \"Hello\"\n\tMissingEnumGoodbye MissingEnum = \"Goodbye\"\n)\n\nvar AllMissingEnum = []MissingEnum{\n\tMissingEnumHello,\n\tMissingEnumGoodbye,\n}\n\nfunc (e MissingEnum) IsValid() bool {\n\tswitch e {\n\tcase MissingEnumHello, MissingEnumGoodbye:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e MissingEnum) String() string {\n\treturn string(e)\n}\n\nfunc (e *MissingEnum) UnmarshalGQL(v any) error {\n\tstr, ok := v.(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"enums must be strings\")\n\t}\n\n\t*e = MissingEnum(str)\n\tif !e.IsValid() {\n\t\treturn fmt.Errorf(\"%s is not a valid MissingEnum\", str)\n\t}\n\treturn nil\n}\n\nfunc (e MissingEnum) MarshalGQL(w io.Writer) {\n\tfmt.Fprint(w, strconv.Quote(e.String()))\n}\n\nfunc (e *MissingEnum) UnmarshalJSON(b []byte) error {\n\ts, err := strconv.Unquote(string(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn e.UnmarshalGQL(s)\n}\n\nfunc (e MissingEnum) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\te.MarshalGQL(&buf)\n\treturn buf.Bytes(), nil\n}\n"
  },
  {
    "path": "plugin/modelgen/testdata/customModelTemplate.gotpl",
    "content": "{{ reserveImport \"context\"  }}\n{{ reserveImport \"fmt\"  }}\n{{ reserveImport \"io\"  }}\n{{ reserveImport \"strconv\"  }}\n{{ reserveImport \"time\"  }}\n{{ reserveImport \"sync\"  }}\n{{ reserveImport \"errors\"  }}\n{{ reserveImport \"bytes\"  }}\n\n{{ reserveImport \"github.com/vektah/gqlparser/v2\" }}\n{{ reserveImport \"github.com/vektah/gqlparser/v2/ast\" }}\n{{ reserveImport \"github.com/99designs/gqlgen/graphql\" }}\n{{ reserveImport \"github.com/99designs/gqlgen/graphql/introspection\" }}\n\n// Add any new functions or any additional code/template functionality here\n\n{{- range $model := .Interfaces }}\n\t{{ with .Description }} {{.|prefixLines \"// \"}} {{ end }}\n\ttype {{ goModelName .Name }} interface {\n\t\t{{- if not .OmitCheck }}\n\t\t\t{{- range $impl := .Implements }}\n\t\t\t\tIs{{ goModelName $impl }}()\n\t\t\t{{- end }}\n\t\t\tIs{{ goModelName .Name }}()\n\t\t{{- end }}\n\t\t{{- range $field := .Fields }}\n\t\t\t{{- with .Description }}\n\t\t\t\t{{.|prefixLines \"// \"}}\n\t\t\t{{- end}}\n\t\t\tGet{{ $field.GoName }}() {{ $field.Type | ref }}\n\t\t{{- end }}\n\t}\n{{- end }}\n\n{{ range $model := .Models }}\n\t{{with .Description }} {{.|prefixLines \"// \"}} {{end}}\n\ttype {{ goModelName .Name }} struct {\n\t\t{{- range $field := .Fields }}\n\t\t\t{{- with .Description }}\n\t\t\t\t{{.|prefixLines \"// \"}}\n\t\t\t{{- end}}\n\t\t\t{{ $field.GoName }} {{$field.Type | ref}} `{{$field.Tag}}`\n\t\t{{- end }}\n\t}\n\n\t{{ range .Implements }}\n\t\tfunc ({{ goModelName $model.Name }}) Is{{ goModelName . }}() {}\n\t\t{{- with getInterfaceByName . }}\n\t\t\t{{- range .Fields }}\n\t\t\t\t{{- with .Description }}\n\t\t\t\t\t{{.|prefixLines \"// \"}}\n\t\t\t\t{{- end}}\n\t\t\t\t{{ generateGetter $model . }}\n\t\t\t{{- end }}\n\t\t{{- end }}\n\t{{ end }}\n{{- end}}\n\n{{ range $enum := .Enums }}\n\t{{ with .Description }} {{.|prefixLines \"// \"}} {{end}}\n\ttype {{ goModelName .Name }} string\n\tconst (\n\t{{- range $value := .Values}}\n\t\t{{- with .Description}}\n\t\t\t{{.|prefixLines \"// \"}}\n\t\t{{- end}}\n\t\t{{ goModelName $enum.Name .Name }} {{ goModelName $enum.Name }} = {{ .Name|quote }}\n\t{{- end }}\n\t)\n\n\tvar All{{ goModelName .Name }} = []{{ goModelName .Name }}{\n\t{{- range $value := .Values}}\n\t\t{{ goModelName $enum.Name .Name }},\n\t{{- end }}\n\t}\n\n\tfunc (e {{ goModelName .Name }}) IsValid() bool {\n\t\tswitch e {\n\t\tcase {{ range $index, $element := .Values}}{{if $index}},{{end}}{{ goModelName $enum.Name $element.Name }}{{end}}:\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tfunc (e {{ goModelName .Name }}) String() string {\n\t\treturn string(e)\n\t}\n\n\tfunc (e *{{ goModelName .Name }}) UnmarshalGQL(v any) error {\n\t\tstr, ok := v.(string)\n\t\tif !ok {\n\t\t\treturn fmt.Errorf(\"enums must be strings\")\n\t\t}\n\n\t\t*e = {{ goModelName .Name }}(str)\n\t\tif !e.IsValid() {\n\t\t\treturn fmt.Errorf(\"%s is not a valid {{ .Name }}\", str)\n\t\t}\n\t\treturn nil\n\t}\n\n\tfunc (e {{ goModelName .Name }}) MarshalGQL(w io.Writer) {\n\t\tfmt.Fprint(w, strconv.Quote(e.String()))\n\t}\n\n{{- end }}\n"
  },
  {
    "path": "plugin/modelgen/testdata/gqlgen.yml",
    "content": "schema:\n  - \"testdata/schema.graphql\"\n\nexec:\n  filename: out/ignored.go\nmodel:\n  filename: out/generated.go\n\nmodels:\n  ExistingModel:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingModel\n  ExistingInput:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingInput\n  ExistingEnum:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingEnum\n  ExistingInterface:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingInterface\n  ExistingUnion:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingUnion\n  ExistingType:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingType\n  RenameFieldTest:\n    fields:\n      badName:\n        fieldName: GOODnaME\n  ExtraFieldsTest:\n    extraFields:\n      FieldInternalType:\n        description: \"Internal field\"\n        type: github.com/99designs/gqlgen/plugin/modelgen/internal/extrafields.Type\n      FieldStringPtr:\n        type: \"*string\"\n      FieldInt:\n        type: \"int64\"\n        overrideTags: 'json:\"field_int_tag\"'\n      FieldIntSlice:\n        type: \"[]int64\"\n"
  },
  {
    "path": "plugin/modelgen/testdata/gqlgen_conflicting_types.yml",
    "content": "schema:\n  - \"testdata/schema_conflicting_types.graphql\"\n\nexec:\n  filename: out_conflicting_types/ignored.go\nmodel:\n  filename: out_conflicting_types/generated.go\n"
  },
  {
    "path": "plugin/modelgen/testdata/gqlgen_custom_model_template.yml",
    "content": "schema:\n  - \"testdata/schema.graphql\"\n\nexec:\n  filename: out/ignored.go\nmodel:\n  filename: out/generated.go\n  model_template: \"testdata/customModelTemplate.gotpl\"\n\nmodels:\n  ExistingModel:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingModel\n  ExistingInput:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingInput\n  ExistingEnum:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingEnum\n  ExistingInterface:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingInterface\n  ExistingUnion:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingUnion\n  ExistingType:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingType\n  RenameFieldTest:\n    fields:\n      badName:\n        fieldName: GOODnaME\n  ExtraFieldsTest:\n    extraFields:\n      FieldInternalType:\n        description: \"Internal field\"\n        type: github.com/99designs/gqlgen/plugin/modelgen/internal/extrafields.Type\n      FieldStringPtr:\n        type: \"*string\"\n      FieldInt:\n        type: \"int64\"\n        overrideTags: 'json:\"field_int_tag\"'\n      FieldIntSlice:\n        type: \"[]int64\"\n"
  },
  {
    "path": "plugin/modelgen/testdata/gqlgen_enable_model_json_omitempty_tag_false.yml",
    "content": "schema:\n  - \"testdata/schema.graphql\"\n\nenable_model_json_omitempty_tag: false\n\nexec:\n  filename: out_enable_model_json_omitempty_tag_false/ignored.go\nmodel:\n  filename: out_enable_model_json_omitempty_tag_false/generated.go\n\nmodels:\n  ExistingModel:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out_enable_model_json_omitempty_tag_false.ExistingModel\n  ExistingInput:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingInput\n  ExistingEnum:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingEnum\n  ExistingInterface:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingInterface\n  ExistingUnion:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingUnion\n  ExistingType:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingType\n"
  },
  {
    "path": "plugin/modelgen/testdata/gqlgen_enable_model_json_omitempty_tag_false_omitzero_tag_false.yml",
    "content": "schema:\n  - \"testdata/schema.graphql\"\n\nenable_model_json_omitempty_tag: false\nenable_model_json_omitzero_tag: false\n\nexec:\n  filename: out_enable_model_json_omitempty_tag_false_omitzero_tag_false/ignored.go\nmodel:\n  filename: out_enable_model_json_omitempty_tag_false_omitzero_tag_false/generated.go\n\nmodels:\n  ExistingModel:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out_enable_model_json_omitempty_tag_false_omitzero_tag_false.ExistingModel\n  ExistingInput:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingInput\n  ExistingEnum:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingEnum\n  ExistingInterface:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingInterface\n  ExistingUnion:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingUnion\n  ExistingType:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingType\n"
  },
  {
    "path": "plugin/modelgen/testdata/gqlgen_enable_model_json_omitempty_tag_false_omitzero_tag_nil.yml",
    "content": "schema:\n  - \"testdata/schema.graphql\"\n\nenable_model_json_omitempty_tag: false\n\nexec:\n  filename: out_enable_model_json_omitempty_tag_false_omitzero_tag_nil/ignored.go\nmodel:\n  filename: out_enable_model_json_omitempty_tag_false_omitzero_tag_nil/generated.go\n\nmodels:\n  ExistingModel:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out_enable_model_json_omitempty_tag_false_omitzero_tag_nil.ExistingModel\n  ExistingInput:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingInput\n  ExistingEnum:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingEnum\n  ExistingInterface:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingInterface\n  ExistingUnion:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingUnion\n  ExistingType:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingType\n"
  },
  {
    "path": "plugin/modelgen/testdata/gqlgen_enable_model_json_omitempty_tag_false_omitzero_tag_true.yml",
    "content": "schema:\n  - \"testdata/schema.graphql\"\n\nenable_model_json_omitempty_tag: false\nenable_model_json_omitzero_tag: true\n\nexec:\n  filename: out_enable_model_json_omitempty_tag_false_omitzero_tag_true/ignored.go\nmodel:\n  filename: out_enable_model_json_omitempty_tag_false_omitzero_tag_true/generated.go\n\nmodels:\n  ExistingModel:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out_enable_model_json_omitempty_tag_false_omitzero_tag_true.ExistingModel\n  ExistingInput:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingInput\n  ExistingEnum:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingEnum\n  ExistingInterface:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingInterface\n  ExistingUnion:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingUnion\n  ExistingType:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingType\n"
  },
  {
    "path": "plugin/modelgen/testdata/gqlgen_enable_model_json_omitempty_tag_nil.yml",
    "content": "schema:\n  - \"testdata/schema.graphql\"\n\nexec:\n  filename: out_enable_model_json_omitempty_tag_nil/ignored.go\nmodel:\n  filename: out_enable_model_json_omitempty_tag_nil/generated.go\n\nmodels:\n  ExistingModel:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out_enable_model_json_omitempty_tag_nil.ExistingModel\n  ExistingInput:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out_enable_model_json_omitempty_tag_nil.ExistingInput\n  ExistingEnum:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out_enable_model_json_omitempty_tag_nil.ExistingEnum\n  ExistingInterface:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out_enable_model_json_omitempty_tag_nil.ExistingInterface\n  ExistingUnion:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out_enable_model_json_omitempty_tag_nil.ExistingUnion\n  ExistingType:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out_enable_model_json_omitempty_tag_nil.ExistingType\n"
  },
  {
    "path": "plugin/modelgen/testdata/gqlgen_enable_model_json_omitempty_tag_true.yml",
    "content": "schema:\n  - \"testdata/schema.graphql\"\n\nenable_model_json_omitempty_tag: true\n\nexec:\n  filename: out_enable_model_json_omitempty_tag_true/ignored.go\nmodel:\n  filename: out_enable_model_json_omitempty_tag_true/generated.go\n\nmodels:\n  ExistingModel:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out_enable_model_json_omitempty_tag_true.ExistingModel\n  ExistingInput:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingInput\n  ExistingEnum:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingEnum\n  ExistingInterface:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingInterface\n  ExistingUnion:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingUnion\n  ExistingType:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingType\n"
  },
  {
    "path": "plugin/modelgen/testdata/gqlgen_enable_model_json_omitzero_tag_false.yml",
    "content": "schema:\n  - \"testdata/schema.graphql\"\n\nenable_model_json_omitzero_tag: false\n\nexec:\n  filename: out_enable_model_json_omitzero_tag_false/ignored.go\nmodel:\n  filename: out_enable_model_json_omitzero_tag_false/generated.go\n\nmodels:\n  ExistingModel:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out_enable_model_json_omitzero_tag_false.ExistingModel\n  ExistingInput:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingInput\n  ExistingEnum:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingEnum\n  ExistingInterface:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingInterface\n  ExistingUnion:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingUnion\n  ExistingType:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingType\n"
  },
  {
    "path": "plugin/modelgen/testdata/gqlgen_enable_model_json_omitzero_tag_nil.yml",
    "content": "schema:\n  - \"testdata/schema.graphql\"\n\nexec:\n  filename: out_enable_model_json_omitzero_tag_nil/ignored.go\nmodel:\n  filename: out_enable_model_json_omitzero_tag_nil/generated.go\n\nmodels:\n  ExistingModel:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out_enable_model_json_omitzero_tag_nil.ExistingModel\n  ExistingInput:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingInput\n  ExistingEnum:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingEnum\n  ExistingInterface:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingInterface\n  ExistingUnion:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingUnion\n  ExistingType:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingType\n"
  },
  {
    "path": "plugin/modelgen/testdata/gqlgen_enable_model_json_omitzero_tag_true.yml",
    "content": "schema:\n  - \"testdata/schema.graphql\"\n\nenable_model_json_omitzero_tag: true\n\nexec:\n  filename: out_enable_model_json_omitzero_tag_true/ignored.go\nmodel:\n  filename: out_enable_model_json_omitzero_tag_true/generated.go\n\nmodels:\n  ExistingModel:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out_enable_model_json_omitzero_tag_true.ExistingModel\n  ExistingInput:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingInput\n  ExistingEnum:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingEnum\n  ExistingInterface:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingInterface\n  ExistingUnion:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingUnion\n  ExistingType:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out.ExistingType\n"
  },
  {
    "path": "plugin/modelgen/testdata/gqlgen_nullable_input_omittable.yml",
    "content": "schema:\n  - \"testdata/schema.graphql\"\n\nexec:\n  filename: out_nullable_input_omittable/ignored.go\nmodel:\n  filename: out_nullable_input_omittable/generated.go\n\nnullable_input_omittable: true\n\nmodels:\n  ExistingModel:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out_nullable_input_omittable.ExistingModel\n  ExistingInput:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out_nullable_input_omittable.ExistingInput\n  ExistingEnum:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out_nullable_input_omittable.ExistingEnum\n  ExistingInterface:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out_nullable_input_omittable.ExistingInterface\n  ExistingUnion:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out_nullable_input_omittable.ExistingUnion\n  ExistingType:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out_nullable_input_omittable.ExistingType\n"
  },
  {
    "path": "plugin/modelgen/testdata/gqlgen_omit_json_marshalers.yml",
    "content": "schema:\n    - \"testdata/schema.graphql\"\n\nomit_enum_json_marshalers: true\n\nmodel:\n    filename: out_omit_json_enum_marshalers/generated.go\n"
  },
  {
    "path": "plugin/modelgen/testdata/gqlgen_omit_resolver_fields.yml",
    "content": "schema:\n  - \"testdata/schema_omit_resolver_fields.graphql\"\n\nexec:\n  filename: out_omit_resolver_fields/ignored.go\nmodel:\n  filename: out_omit_resolver_fields/generated.go\n\nomit_resolver_fields: true\n"
  },
  {
    "path": "plugin/modelgen/testdata/gqlgen_omit_root_models.yml",
    "content": "schema:\n  - \"testdata/schema_omit_root_models.graphql\"\n\nexec:\n  filename: out/ignored.go\nmodel:\n  filename: out/generated_omit_root_models.go\n\nomit_root_models: true\n"
  },
  {
    "path": "plugin/modelgen/testdata/gqlgen_struct_field_pointers.yml",
    "content": "schema:\n  - \"testdata/schema.graphql\"\n\nexec:\n  filename: out_struct_pointers/ignored.go\nmodel:\n  filename: out_struct_pointers/generated.go\n\nstruct_fields_always_pointers: false\nomit_getters: true\n\nmodels:\n  ExistingModel:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out_struct_pointers.ExistingModel\n  ExistingInput:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out_struct_pointers.ExistingInput\n  ExistingEnum:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out_struct_pointers.ExistingEnum\n  ExistingInterface:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out_struct_pointers.ExistingInterface\n  ExistingUnion:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out_struct_pointers.ExistingUnion\n  ExistingType:\n    model: github.com/99designs/gqlgen/plugin/modelgen/out_struct_pointers.ExistingType\n\n"
  },
  {
    "path": "plugin/modelgen/testdata/interface_embedding/gqlgen_directive_binding_models.yml",
    "content": "schema:\n    - \"testdata/interface_embedding/schema_directive_basic.graphql\"\n    - \"testdata/interface_embedding/schema_directive_binding.graphql\"\n\nmodel:\n    filename: out_directive_binding_models/generated_directive_binding_models.go\n\nautobind:\n    - \"github.com/99designs/gqlgen/plugin/modelgen/out_directive_embedding_models\"\n"
  },
  {
    "path": "plugin/modelgen/testdata/interface_embedding/gqlgen_directive_covariant_types.yml",
    "content": "schema:\n  - \"testdata/interface_embedding/schema_covariant_types.graphql\"\n\nmodel:\n  filename: out_covariant_types/generated_covariant_types.go\n\n"
  },
  {
    "path": "plugin/modelgen/testdata/interface_embedding/gqlgen_directive_diamond.yml",
    "content": "schema:\n  - \"testdata/interface_embedding/schema_directive_diamond.graphql\"\n\nmodel:\n  filename: out_directive_diamond/generated_directive_diamond.go\n\n"
  },
  {
    "path": "plugin/modelgen/testdata/interface_embedding/gqlgen_directive_embedding_models.yml",
    "content": "schema:\n  - \"testdata/interface_embedding/schema_directive_basic.graphql\"\n\nmodel:\n  filename: out_directive_embedding_models/generated_directive_embedding_models.go\n"
  },
  {
    "path": "plugin/modelgen/testdata/interface_embedding/gqlgen_directive_partial.yml",
    "content": "schema:\n  - \"testdata/interface_embedding/schema_directive_partial.graphql\"\n\nmodel:\n  filename: out_directive_partial/generated_directive_partial.go\n\n"
  },
  {
    "path": "plugin/modelgen/testdata/interface_embedding/gqlgen_directive_skipped_parents.yml",
    "content": "schema:\n  - \"testdata/interface_embedding/schema_directive_skipped_parents.graphql\"\n\nmodel:\n  filename: out_directive_skipped_parents/generated_directive_skipped_parents.go\n\n"
  },
  {
    "path": "plugin/modelgen/testdata/interface_embedding/gqlgen_no_directive_models.yml",
    "content": "schema:\n    - \"testdata/interface_embedding/schema_no_directive.graphql\"\n\nmodel:\n    filename: out_no_directive_models/generated_no_directive_models.go\n"
  },
  {
    "path": "plugin/modelgen/testdata/interface_embedding/schema_covariant_types.graphql",
    "content": "# Test schema for covariant return types in interface implementations\n# GraphQL allows implementations to use more specific types than the interface declares\ndirective @goEmbedInterface on INTERFACE\n\ninterface Identifiable @goEmbedInterface {\n    id: ID!\n}\n\ninterface Typeable @goEmbedInterface {\n    type: String!\n}\n\ninterface NodeData @goEmbedInterface {\n    name: String!\n    childrenIds: [String!]!\n}\n\n# Interface implementing multiple interfaces (diamond problem test)\ninterface Node implements Identifiable & Typeable @goEmbedInterface {\n    id: ID!\n    type: String!\n    data: NodeData!\n}\n\n# Specific implementation of NodeData\ntype ProductNodeData implements NodeData {\n    name: String!\n    childrenIds: [String!]!\n    productSpecificField: String!\n}\n\n# Implementation with covariant return type for 'data' field\ntype ProductNode implements Node & Identifiable & Typeable {\n    id: ID!\n    type: String!\n    # This is a covariant override - using ProductNodeData instead of NodeData\n    data: ProductNodeData!\n    productTitle: String!\n}\n\n# Another interface for tags\ninterface Tags @goEmbedInterface {\n    data: [String!]\n}\n\ntype ProductTags implements Tags {\n    data: [String!]\n    productSpecific: Boolean\n}\n\n# Type with multiple covariant overrides\ntype ExtendedProductNode implements Node & Identifiable & Typeable {\n    id: ID!\n    type: String!\n    # Covariant override\n    data: ProductNodeData!\n    tags: ProductTags\n}\n\n"
  },
  {
    "path": "plugin/modelgen/testdata/interface_embedding/schema_directive_basic.graphql",
    "content": "directive @goEmbedInterface on INTERFACE\n\ninterface Node @goEmbedInterface {\n    id: ID!\n}\n\ninterface Element implements Node @goEmbedInterface {\n    id: ID!\n    name: String!\n}\n\ntype Magnesium implements Element & Node {\n    id: ID!\n    name: String!\n    types: Int!\n}\n\ntype Potassium implements Element & Node {\n    id: ID!\n    name: String!\n    price: Float!\n}\n\ntype Carbon implements Element & Node {\n    id: ID!\n    name: String!\n    footprint: String!\n}\n"
  },
  {
    "path": "plugin/modelgen/testdata/interface_embedding/schema_directive_binding.graphql",
    "content": "type Molecule implements Node {\n    id: ID!\n    elements: [Element!]\n}\n\ntype Oxygen implements Element & Node {\n    id: ID!\n    name: String!\n    purity: Float!\n}\n"
  },
  {
    "path": "plugin/modelgen/testdata/interface_embedding/schema_directive_diamond.graphql",
    "content": "directive @goEmbedInterface on INTERFACE\n\ninterface HasID @goEmbedInterface {\n    id: ID!\n}\n\ninterface HasIdentifier @goEmbedInterface {\n    identifier: ID!\n}\n\ninterface Conflicting implements HasID & HasIdentifier @goEmbedInterface {\n    id: ID!\n    identifier: ID!\n    name: String!\n}\n\ninterface HasName {\n    name: String!\n}\n\ninterface HasTitle {\n    title: String!\n}\n\ninterface NoConflict implements HasName & HasTitle @goEmbedInterface {\n    name: String!\n    title: String!\n}\n\ntype ConcreteConflicting implements Conflicting & HasID & HasIdentifier {\n    id: ID!\n    identifier: ID!\n    name: String!\n    extra: String!\n}\n\ntype ConcreteNoConflict implements NoConflict & HasName & HasTitle {\n    name: String!\n    title: String!\n    extra: String!\n}\n\n"
  },
  {
    "path": "plugin/modelgen/testdata/interface_embedding/schema_directive_partial.graphql",
    "content": "directive @goEmbedInterface on INTERFACE\n\ninterface Node @goEmbedInterface {\n    id: ID!\n}\n\ninterface Element implements Node {\n    id: ID!\n    name: String!\n}\n\ninterface Metal implements Element & Node @goEmbedInterface {\n    id: ID!\n    name: String!\n    atomicNumber: Int!\n}\n\ntype Gold implements Metal & Element & Node {\n    id: ID!\n    name: String!\n    atomicNumber: Int!\n    karat: Int!\n}\n\ntype Silver implements Metal & Element & Node {\n    id: ID!\n    name: String!\n    atomicNumber: Int!\n    purity: Float!\n}\n\n"
  },
  {
    "path": "plugin/modelgen/testdata/interface_embedding/schema_directive_skipped_parents.graphql",
    "content": "directive @goEmbedInterface on INTERFACE\n\ninterface A @goEmbedInterface {\n    id: ID!\n    fieldA: String!\n}\n\ninterface B implements A {\n    id: ID!\n    fieldA: String!\n    fieldB: String!\n}\n\ninterface C implements B & A @goEmbedInterface {\n    id: ID!\n    fieldA: String!\n    fieldB: String!\n    fieldC: String!\n}\n\ntype ConcreteC implements C & B & A {\n    id: ID!\n    fieldA: String!\n    fieldB: String!\n    fieldC: String!\n    concreteField: String!\n}\n\n"
  },
  {
    "path": "plugin/modelgen/testdata/interface_embedding/schema_no_directive.graphql",
    "content": "interface Node {\n    id: ID!\n}\n\ninterface Element implements Node {\n    id: ID!\n    name: String!\n}\n\ntype Magnesium implements Element & Node {\n    id: ID!\n    name: String!\n    types: Int!\n}\n\ntype Potassium implements Element & Node {\n    id: ID!\n    name: String!\n    price: Float!\n}\n\ntype Carbon implements Element & Node {\n    id: ID!\n    name: String!\n    footprint: String!\n}\n"
  },
  {
    "path": "plugin/modelgen/testdata/schema.graphql",
    "content": "directive @goTag(\n    key: String!\n    value: String\n) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION\n\ndirective @goField(\n    forceResolver: Boolean\n    name: String\n    omittable: Boolean\n    type: String\n) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION | INTERFACE\n\ntype Query {\n    thisShouldntGetGenerated: Boolean\n}\n\ntype Mutation {\n    thisShouldntGetGenerated: Boolean\n}\n\ntype Subscription {\n    thisShouldntGetGenerated: Boolean\n}\n\ntype MissingTypeNotNull implements MissingInterface & ExistingInterface {\n    name: String!\n    enum: MissingEnum!\n    int: MissingInterface!\n    existing: ExistingType!\n    missing2: MissingTypeNullable!\n}\n\ntype MissingTypeNullable implements MissingInterface & ExistingInterface {\n    name: String\n    enum: MissingEnum\n    int: MissingInterface\n    existing: ExistingType\n    missing2: MissingTypeNotNull\n}\n\ninput MissingInput {\n    name: String\n    enum: MissingEnum\n    nonNullString: String!\n    nullString: String @goField(omittable: true)\n    nullEnum: MissingEnum @goField(omittable: true)\n    nullObject: ExistingInput @goField(omittable: true)\n}\n\nenum MissingEnum {\n    Hello\n    Goodbye\n}\n\ninterface MissingInterface {\n    name: String\n}\n\nunion MissingUnion = MissingTypeNotNull | MissingTypeNullable | ExistingType\n\ntype ExistingType implements MissingInterface & ExistingInterface {\n    name: String\n    enum: ExistingEnum\n    int: ExistingInterface\n    existing: MissingTypeNullable\n}\n\ninput ExistingInput {\n    name: String\n    enum: ExistingEnum\n}\n\ntype FieldMutationHook {\n    name: String @goTag(key: \"anotherTag\", value: \"tag\")\n    enum: ExistingEnum @goTag(key: \"yetAnotherTag\", value: \"12\")\n    noVal: String @goTag(key: \"yaml\") @goTag(key: \"repeated\", value: \"true\")\n    repeated: String\n        @goTag(key: \"someTag\", value: \"value\")\n        @goTag(key: \"repeated\", value: \"true\")\n}\n\nenum ExistingEnum {\n    Hello\n    Goodbye\n}\n\ninterface ExistingInterface {\n    name: String\n}\n\nunion ExistingUnion = MissingTypeNotNull | MissingTypeNullable | ExistingType\n\n\"TypeWithDescription is a type with a description\"\ntype TypeWithDescription {\n    name: String\n}\n\n\"EnumWithDescription is an enum with a description\"\nenum EnumWithDescription {\n    CAT\n    DOG\n}\n\n\"InterfaceWithDescription is an interface with a description\"\ninterface InterfaceWithDescription {\n    name: String\n}\n\n\"UnionWithDescription is an union with a description\"\nunion UnionWithDescription = TypeWithDescription | ExistingType\n\ninterface Foo_Barer {\n    name: String!\n}\n\ntype _Foo_Barr implements Foo_Barer {\n    name: String!\n}\n\n# https://spec.graphql.org/October2021/#sec-Interfaces\ninterface A {\n    a: String!\n}\n\ninterface B {\n    b: Int!\n}\n\ninterface C implements A {\n    a: String!\n    c: Boolean!\n}\n\ninterface D implements A & B {\n    a: String!\n    b: Int!\n    d: String\n}\n\ntype CDImplemented implements C & D & A & B {\n    a: String!\n    b: Int!\n    c: Boolean!\n    d: String\n}\n\ntype CyclicalA {\n    field_one: CyclicalB\n    field_two: CyclicalB\n    field_three: CyclicalB\n    field_four: String!\n}\n\ntype CyclicalB {\n    field_one: CyclicalA\n    field_two: CyclicalA\n    field_three: CyclicalA\n    field_four: CyclicalA\n    field_five: String!\n}\n\ntype NotCyclicalA {\n    FieldOne: String!\n    FieldTwo: Int!\n}\n\ntype NotCyclicalB {\n    FieldOne: String!\n    FieldTwo: NotCyclicalA!\n}\n\ntype Recursive {\n    FieldOne: Recursive!\n    FieldTwo: Recursive!\n    FieldThree: Recursive!\n    FieldFour: String!\n}\n\ntype RenameFieldTest {\n    badName: String!\n    otherField: String!\n}\n\ninterface ArrayOfA {\n    trickyField: [A!]!\n    trickyFieldPointer: [A]\n}\n\ntype ImplArrayOfA implements ArrayOfA {\n    trickyField: [CDImplemented!]!\n    trickyFieldPointer: [CDImplemented]\n}\n\ninterface X {\n    Id: String! @goField(name: \"Id\")\n}\n\ntype Xer implements X {\n    Id: String! @goField(name: \"Id\")\n    Name: String!\n}\n\ntype ExtraFieldsTest {\n    SchemaField: String!\n}\n\ntype OmitEmptyJsonTagTest {\n    ValueNonNil: String!\n    Value: String\n}\n\ntype OmitZeroJSONTagTest {\n    ValueNonNil: String!\n    Value: String\n}\n"
  },
  {
    "path": "plugin/modelgen/testdata/schema_conflicting_types.graphql",
    "content": "directive @goField(\n    forceResolver: Boolean\n    name: String\n    omittable: Boolean\n    type: String\n) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION | INTERFACE\n\ntype FooBar {\n    without_underscore: Boolean\n}\n\ntype Foo_Bar {\n    with_underscore: Boolean\n}\n\ntype Baz {\n    want_without_underscore: FooBar!\n}\n\ntype Bees {\n    want_with_underscore: Foo_Bar!\n}"
  },
  {
    "path": "plugin/modelgen/testdata/schema_embedded_structs_models_no_embedding.graphql",
    "content": "directive @goEmbedInterface on INTERFACE\n\ninterface Node @goEmbedInterface {\n    id: ID!\n}\n\ninterface Element implements Node @goEmbedInterface {\n    id: ID!\n    name: String!\n}\n\ntype Magnesium implements Element & Node {\n    id: ID!\n    name: String!\n    types: Int!\n}\n\ntype Potassium implements Element & Node {\n    id: ID!\n    name: String!\n    price: Float!\n}\n\ntype Carbon implements Element & Node {\n    id: ID!\n    name: String!\n    footprint: String!\n}\n"
  },
  {
    "path": "plugin/modelgen/testdata/schema_omit_resolver_fields.graphql",
    "content": "directive @goTag(\n    key: String!\n    value: String\n) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION\n\ndirective @goField(\n    forceResolver: Boolean\n    name: String\n    omittable: Boolean\n    type: String\n    forceGenerate: Boolean\n) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION | INTERFACE\n\ntype Base {\n    StandardField: String!\n    ResolverField: String! @goField(forceResolver: true)\n    ForceGeneratedField: String!\n        @goField(forceResolver: true, forceGenerate: true)\n}\n"
  },
  {
    "path": "plugin/modelgen/testdata/schema_omit_root_models.graphql",
    "content": "type Query {\n    thisShoudlntGetGenerated: Boolean\n}\n\ntype Mutation {\n    thisShoudlntGetGenerated: Boolean\n}\n\ntype Subscription {\n    thisShoudlntGetGenerated: Boolean\n}\n\nenum SomeContent {\n    This\n    Is\n    A\n    Test\n}\n"
  },
  {
    "path": "plugin/modelgen/types.go",
    "content": "package modelgen\n\nimport (\n\t\"go/types\"\n\t\"strings\"\n)\n\n// buildType constructs a types.Type for the given string (using the syntax\n// from the extra field config Type field).\nfunc buildType(typeString string) types.Type {\n\tswitch {\n\tcase typeString[0] == '*':\n\t\treturn types.NewPointer(buildType(typeString[1:]))\n\tcase strings.HasPrefix(typeString, \"[]\"):\n\t\treturn types.NewSlice(buildType(typeString[2:]))\n\tdefault:\n\t\treturn buildNamedType(typeString)\n\t}\n}\n\n// buildNamedType returns the specified named or builtin type.\n//\n// Note that we don't look up the full types.Type object from the appropriate\n// package -- gqlgen doesn't give us the package-map we'd need to do so.\n// Instead we construct a placeholder type that has all the fields gqlgen\n// wants. This is roughly what gqlgen itself does, anyway:\n// https://github.com/99designs/gqlgen/blob/master/plugin/modelgen/models.go#L119\nfunc buildNamedType(fullName string) types.Type {\n\tdotIndex := strings.LastIndex(fullName, \".\")\n\tif dotIndex == -1 { // builtinType\n\t\treturn types.Universe.Lookup(fullName).Type()\n\t}\n\n\t// type is pkg.Name\n\tpkgPath := fullName[:dotIndex]\n\ttypeName := fullName[dotIndex+1:]\n\n\tpkgName := pkgPath\n\tslashIndex := strings.LastIndex(pkgPath, \"/\")\n\tif slashIndex != -1 {\n\t\tpkgName = pkgPath[slashIndex+1:]\n\t}\n\n\tpkg := types.NewPackage(pkgPath, pkgName)\n\t// gqlgen doesn't use some of the fields, so we leave them 0/nil\n\treturn types.NewNamed(types.NewTypeName(0, pkg, typeName, nil), nil, nil)\n}\n"
  },
  {
    "path": "plugin/plugin.go",
    "content": "// plugin package interfaces are EXPERIMENTAL.\n\npackage plugin\n\nimport (\n\t\"github.com/vektah/gqlparser/v2/ast\"\n\n\t\"github.com/99designs/gqlgen/codegen\"\n\t\"github.com/99designs/gqlgen/codegen/config\"\n)\n\ntype Plugin interface {\n\tName() string\n}\n\n// SchemaMutator is used to modify the schema before it is used to generate code\n// Similarly to [ConfigMutator] that is also triggered before code generation, SchemaMutator\n// can be used to modify the schema even before the models are generated.\ntype SchemaMutator interface {\n\tMutateSchema(schema *ast.Schema) error\n}\n\ntype ConfigMutator interface {\n\tMutateConfig(cfg *config.Config) error\n}\n\ntype CodeGenerator interface {\n\tGenerateCode(cfg *codegen.Data) error\n}\n\n// EarlySourceInjector is used to inject things that are required for user schema files to compile.\n//\n// Deprecated: Use EarlySourcesInjector instead\ntype EarlySourceInjector interface {\n\tInjectSourceEarly() *ast.Source\n}\n\n// EarlySourcesInjector is used to inject things that are required for user schema files to compile.\ntype EarlySourcesInjector interface {\n\tInjectSourcesEarly() ([]*ast.Source, error)\n}\n\n// LateSourceInjector is used to inject more sources, after we have loaded the users schema.\n// // Deprecated: Use LateSourcesInjector instead\ntype LateSourceInjector interface {\n\tInjectSourceLate(schema *ast.Schema) *ast.Source\n}\n\n// ResolverImplementer is used to generate code inside resolvers\ntype ResolverImplementer interface {\n\tImplement(prevImplementation string, field *codegen.Field) string\n}\n\n// LateSourcesInjector is used to inject more sources, after we have loaded the users schema.\ntype LateSourcesInjector interface {\n\tInjectSourcesLate(schema *ast.Schema) ([]*ast.Source, error)\n}\n"
  },
  {
    "path": "plugin/resolvergen/resolver.go",
    "content": "package resolvergen\n\nimport (\n\t_ \"embed\"\n\t\"errors\"\n\t\"fmt\"\n\t\"go/ast\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"strings\"\n\n\t\"golang.org/x/text/cases\"\n\t\"golang.org/x/text/language\"\n\n\t\"github.com/99designs/gqlgen/codegen\"\n\t\"github.com/99designs/gqlgen/codegen/config\"\n\t\"github.com/99designs/gqlgen/codegen/templates\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/internal/rewrite\"\n\t\"github.com/99designs/gqlgen/plugin\"\n)\n\n//go:embed resolver.gotpl\nvar resolverTemplate string\n\nfunc New() plugin.Plugin {\n\treturn &Plugin{}\n}\n\ntype Plugin struct{}\n\nvar _ plugin.CodeGenerator = &Plugin{}\n\nfunc (m *Plugin) Name() string {\n\treturn \"resolvergen\"\n}\n\nfunc (m *Plugin) GenerateCode(data *codegen.Data) error {\n\tif !data.Config.Resolver.IsDefined() {\n\t\treturn nil\n\t}\n\n\tswitch data.Config.Resolver.Layout {\n\tcase config.LayoutSingleFile:\n\t\treturn m.generateSingleFile(data)\n\tcase config.LayoutFollowSchema:\n\n\t\treturn m.generatePerSchema(data)\n\t}\n\n\treturn nil\n}\n\nfunc (m *Plugin) generateSingleFile(data *codegen.Data) error {\n\tfile := File{}\n\n\tif fileExists(data.Config.Resolver.Filename) &&\n\t\tdata.Config.Resolver.PreserveResolver {\n\t\t// file already exists and config says not to update resolver\n\t\t// so just return\n\t\treturn nil\n\t}\n\n\trewriter, err := rewrite.New(data.Config.Resolver.Dir())\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor _, o := range data.Objects {\n\t\tif o.HasResolvers() {\n\t\t\tcaser := cases.Title(language.English, cases.NoLower)\n\t\t\trewriter.MarkStructCopied(\n\t\t\t\ttemplates.LcFirst(o.Name) + templates.UcFirst(data.Config.Resolver.Type),\n\t\t\t)\n\t\t\trewriter.GetMethodBody(data.Config.Resolver.Type, caser.String(o.Name))\n\n\t\t\tfile.Objects = append(file.Objects, o)\n\t\t}\n\n\t\tfor _, f := range o.Fields {\n\t\t\tif !f.IsResolver {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tstructName := templates.LcFirst(o.Name) + templates.UcFirst(data.Config.Resolver.Type)\n\t\t\tcomment := strings.TrimSpace(\n\t\t\t\tstrings.TrimLeft(rewriter.GetMethodComment(structName, f.GoFieldName), `\\`),\n\t\t\t)\n\t\t\timplementation := strings.TrimSpace(rewriter.GetMethodBody(structName, f.GoFieldName))\n\t\t\tif implementation != \"\" {\n\t\t\t\tresolver := Resolver{\n\t\t\t\t\to,\n\t\t\t\t\tf,\n\t\t\t\t\trewriter.GetPrevDecl(structName, f.GoFieldName),\n\t\t\t\t\tcomment,\n\t\t\t\t\timplementation,\n\t\t\t\t\tnil,\n\t\t\t\t}\n\t\t\t\tfile.Resolvers = append(file.Resolvers, &resolver)\n\t\t\t} else {\n\t\t\t\tresolver := Resolver{o, f, nil, \"\", `panic(\"not implemented\")`, nil}\n\t\t\t\tfile.Resolvers = append(file.Resolvers, &resolver)\n\t\t\t}\n\t\t}\n\t}\n\n\tif fileExists(data.Config.Resolver.Filename) {\n\t\tfile.name = data.Config.Resolver.Filename\n\t\tfile.imports = rewriter.ExistingImports(file.name)\n\t\tfile.RemainingSource = rewriter.RemainingSource(file.name)\n\t}\n\n\tresolverBuild := &ResolverBuild{\n\t\tFile:                &file,\n\t\tPackageName:         data.Config.Resolver.Package,\n\t\tResolverType:        data.Config.Resolver.Type,\n\t\tHasRoot:             true,\n\t\tOmitTemplateComment: data.Config.Resolver.OmitTemplateComment,\n\t}\n\n\tnewResolverTemplate := resolverTemplate\n\tif data.Config.Resolver.ResolverTemplate != \"\" {\n\t\tnewResolverTemplate = readResolverTemplate(data.Config.Resolver.ResolverTemplate)\n\t}\n\n\tfileNotice := `// THIS CODE WILL BE UPDATED WITH SCHEMA CHANGES. PREVIOUS IMPLEMENTATION FOR SCHEMA CHANGES WILL BE KEPT IN THE COMMENT SECTION. IMPLEMENTATION FOR UNCHANGED SCHEMA WILL BE KEPT.`\n\tif data.Config.Resolver.PreserveResolver {\n\t\tfileNotice = `// THIS CODE IS A STARTING POINT ONLY. IT WILL NOT BE UPDATED WITH SCHEMA CHANGES.`\n\t}\n\n\treturn templates.Render(templates.Options{\n\t\tPackageName:  data.Config.Resolver.Package,\n\t\tFileNotice:   fileNotice,\n\t\tFilename:     data.Config.Resolver.Filename,\n\t\tData:         resolverBuild,\n\t\tPackages:     data.Config.Packages,\n\t\tTemplate:     newResolverTemplate,\n\t\tPruneOptions: data.Config.GetPruneOptions(),\n\t})\n}\n\nfunc (m *Plugin) generatePerSchema(data *codegen.Data) error {\n\trewriter, err := rewrite.New(data.Config.Resolver.Dir())\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfiles := map[string]*File{}\n\n\tobjects := make(codegen.Objects, len(data.Objects)+len(data.Inputs))\n\tcopy(objects, data.Objects)\n\tcopy(objects[len(data.Objects):], data.Inputs)\n\n\tfor _, o := range objects {\n\t\tif o.HasResolvers() {\n\t\t\tfnCase := gqlToResolverName(\n\t\t\t\tdata.Config.Resolver.Dir(),\n\t\t\t\to.Position.Src.Name,\n\t\t\t\tdata.Config.Resolver.FilenameTemplate,\n\t\t\t)\n\t\t\tfn := strings.ToLower(fnCase)\n\t\t\tif files[fn] == nil {\n\t\t\t\tfiles[fn] = &File{\n\t\t\t\t\tname: fnCase,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcaser := cases.Title(language.English, cases.NoLower)\n\t\t\trewriter.MarkStructCopied(\n\t\t\t\ttemplates.LcFirst(o.Name) + templates.UcFirst(data.Config.Resolver.Type),\n\t\t\t)\n\t\t\trewriter.GetMethodBody(data.Config.Resolver.Type, caser.String(o.Name))\n\t\t\tfiles[fn].Objects = append(files[fn].Objects, o)\n\t\t}\n\t\tfor _, f := range o.Fields {\n\t\t\tif !f.IsResolver {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tstructName := templates.LcFirst(o.Name) + templates.UcFirst(data.Config.Resolver.Type)\n\t\t\t// TODO(steve): Why do we need to trimLeft \"\\\" here? Some bazel thing?\n\t\t\tcomment := strings.TrimSpace(\n\t\t\t\tstrings.TrimLeft(rewriter.GetMethodComment(structName, f.GoFieldName), `\\`),\n\t\t\t)\n\t\t\timplementation := strings.TrimSpace(rewriter.GetMethodBody(structName, f.GoFieldName))\n\t\t\tresolver := Resolver{\n\t\t\t\to,\n\t\t\t\tf,\n\t\t\t\trewriter.GetPrevDecl(structName, f.GoFieldName),\n\t\t\t\tcomment,\n\t\t\t\timplementation,\n\t\t\t\tnil,\n\t\t\t}\n\t\t\tvar implExists bool\n\t\t\tfor _, p := range data.Plugins {\n\t\t\t\trImpl, ok := p.(plugin.ResolverImplementer)\n\t\t\t\tif !ok {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif implExists {\n\t\t\t\t\treturn errors.New(\"multiple plugins implement ResolverImplementer\")\n\t\t\t\t}\n\t\t\t\timplExists = true\n\t\t\t\tresolver.ImplementationRender = rImpl.Implement\n\t\t\t}\n\t\t\tfnCase := gqlToResolverName(\n\t\t\t\tdata.Config.Resolver.Dir(),\n\t\t\t\tf.Position.Src.Name,\n\t\t\t\tdata.Config.Resolver.FilenameTemplate,\n\t\t\t)\n\t\t\tfn := strings.ToLower(fnCase)\n\t\t\tif files[fn] == nil {\n\t\t\t\tfiles[fn] = &File{\n\t\t\t\t\tname: fnCase,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfiles[fn].Resolvers = append(files[fn].Resolvers, &resolver)\n\t\t}\n\t}\n\n\tvar allImports []string\n\tfor _, file := range files {\n\t\tfile.imports = rewriter.ExistingImports(file.name)\n\t\tfile.RemainingSource = rewriter.RemainingSource(file.name)\n\n\t\tfor _, i := range file.imports {\n\t\t\tallImports = append(allImports, i.ImportPath)\n\t\t}\n\t}\n\tdata.Config.Packages.LoadAllNames(\n\t\tallImports...) // Preload all names in one Load call for performance reasons\n\n\tnewResolverTemplate := resolverTemplate\n\tif data.Config.Resolver.ResolverTemplate != \"\" {\n\t\tnewResolverTemplate = readResolverTemplate(data.Config.Resolver.ResolverTemplate)\n\t}\n\n\tfor _, file := range files {\n\t\tif fileExists(file.name) &&\n\t\t\tdata.Config.Resolver.PreserveResolver {\n\t\t\t// file already exists and config says not to update resolver\n\t\t\tcontinue\n\t\t}\n\t\tresolverBuild := &ResolverBuild{\n\t\t\tFile:                file,\n\t\t\tPackageName:         data.Config.Resolver.Package,\n\t\t\tResolverType:        data.Config.Resolver.Type,\n\t\t\tOmitTemplateComment: data.Config.Resolver.OmitTemplateComment,\n\t\t}\n\n\t\tvar fileNotice strings.Builder\n\t\tif !data.Config.OmitGQLGenFileNotice {\n\t\t\tfileNotice.WriteString(`\n\t\t\t// This file will be automatically regenerated based on the schema, any resolver\n\t\t\t// implementations\n\t\t\t// will be copied through when generating and any unknown code will be moved to the end.\n\t\t\t// Code generated by github.com/99designs/gqlgen`,\n\t\t\t)\n\t\t\tif !data.Config.OmitGQLGenVersionInFileNotice {\n\t\t\t\tfileNotice.WriteString(` version `)\n\t\t\t\tfileNotice.WriteString(graphql.Version)\n\t\t\t}\n\t\t}\n\n\t\terr := templates.Render(templates.Options{\n\t\t\tPackageName:  data.Config.Resolver.Package,\n\t\t\tFileNotice:   fileNotice.String(),\n\t\t\tFilename:     file.name,\n\t\t\tData:         resolverBuild,\n\t\t\tPackages:     data.Config.Packages,\n\t\t\tTemplate:     newResolverTemplate,\n\t\t\tPruneOptions: data.Config.GetPruneOptions(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tif !fileExists(data.Config.Resolver.Filename) {\n\t\terr := templates.Render(templates.Options{\n\t\t\tPackageName: data.Config.Resolver.Package,\n\t\t\tFileNotice: `\n\t\t\t\t// This file will not be regenerated automatically.\n\t\t\t\t//\n\t\t\t\t// It serves as dependency injection for your app, add any dependencies you require\n\t\t\t\t// here.`,\n\t\t\tTemplate:     `type {{.}} struct {}`,\n\t\t\tFilename:     data.Config.Resolver.Filename,\n\t\t\tData:         data.Config.Resolver.Type,\n\t\t\tPackages:     data.Config.Packages,\n\t\t\tPruneOptions: data.Config.GetPruneOptions(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\ntype ResolverBuild struct {\n\t*File\n\tHasRoot             bool\n\tPackageName         string\n\tResolverType        string\n\tOmitTemplateComment bool\n}\n\ntype File struct {\n\tname string\n\t// These are separated because the type definition of the resolver object may live in a\n\t// different file from the resolver method implementations, for example when extending a type in\n\t// a different graphql schema file\n\tObjects         []*codegen.Object\n\tResolvers       []*Resolver\n\timports         []rewrite.Import\n\tRemainingSource string\n}\n\nfunc (f *File) Imports() string {\n\tfor _, imp := range f.imports {\n\t\tif imp.Alias == \"\" {\n\t\t\t_, _ = templates.CurrentImports.Reserve(imp.ImportPath)\n\t\t} else {\n\t\t\t_, _ = templates.CurrentImports.Reserve(imp.ImportPath, imp.Alias)\n\t\t}\n\t}\n\treturn \"\"\n}\n\ntype Resolver struct {\n\tObject               *codegen.Object\n\tField                *codegen.Field\n\tPrevDecl             *ast.FuncDecl\n\tComment              string\n\tImplementationStr    string\n\tImplementationRender func(prevImplementation string, r *codegen.Field) string\n}\n\nfunc (r *Resolver) Implementation() string {\n\tif r.ImplementationRender != nil {\n\t\t// use custom implementation\n\t\treturn r.ImplementationRender(r.ImplementationStr, r.Field)\n\t}\n\t// if not implementation was previously used, use default implementation\n\tif r.ImplementationStr == \"\" {\n\t\t// use default implementation, if no implementation was previously used\n\t\treturn fmt.Sprintf(\n\t\t\t\"panic(fmt.Errorf(\\\"not implemented: %v - %v\\\"))\",\n\t\t\tr.Field.GoFieldName,\n\t\t\tr.Field.Name,\n\t\t)\n\t}\n\t// use previously used implementation\n\treturn r.ImplementationStr\n}\n\nfunc gqlToResolverName(base, gqlname, filenameTmpl string) string {\n\tgqlname = filepath.Base(gqlname)\n\text := filepath.Ext(gqlname)\n\tif filenameTmpl == \"\" {\n\t\tfilenameTmpl = \"{name}.resolvers.go\"\n\t}\n\tfilename := strings.ReplaceAll(filenameTmpl, \"{name}\", strings.TrimSuffix(gqlname, ext))\n\treturn filepath.Join(base, filename)\n}\n\nfunc readResolverTemplate(customResolverTemplate string) string {\n\tcontentBytes, err := os.ReadFile(customResolverTemplate)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn string(contentBytes)\n}\n\nfunc fileExists(fileName string) bool {\n\tif _, err := os.Stat(fileName); err == nil {\n\t\treturn true\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "plugin/resolvergen/resolver.gotpl",
    "content": "{{ reserveImport \"context\"  }}\n{{ reserveImport \"fmt\"  }}\n{{ reserveImport \"io\"  }}\n{{ reserveImport \"strconv\"  }}\n{{ reserveImport \"time\"  }}\n{{ reserveImport \"sync\"  }}\n{{ reserveImport \"errors\"  }}\n{{ reserveImport \"bytes\"  }}\n\n{{ reserveImport \"github.com/vektah/gqlparser/v2\" }}\n{{ reserveImport \"github.com/vektah/gqlparser/v2/ast\" }}\n{{ reserveImport \"github.com/99designs/gqlgen/graphql\" }}\n{{ reserveImport \"github.com/99designs/gqlgen/graphql/introspection\" }}\n\n{{ .Imports }}\n\n{{ if .HasRoot }}\n\ttype {{.ResolverType}} struct {}\n{{ end }}\n\n{{ range $resolver := .Resolvers -}}\n\t{{- if $resolver.Field.IsBatch }}\n\t{{ if not $.OmitTemplateComment -}}\n\t// {{ $resolver.Field.GoFieldName }} is the batch resolver for the {{ $resolver.Field.Name }} field.\n\t{{- end }}\n\tfunc (r *{{lcFirst $resolver.Object.Name}}{{ucFirst $.ResolverType}}) {{$resolver.Field.GoFieldName}}{{ $resolver.Field.ShortBatchResolverDeclaration }}{\n\t\t{{ $resolver.Implementation }}\n\t}\n\t{{- else }}\n\t\t{{ if $resolver.Comment -}}\n\t\t\t{{with $resolver.Comment}}{{.|prefixLines \"//\"}}{{end}}\n\t\t{{- else if not $.OmitTemplateComment -}}\n\t\t\t// {{ $resolver.Field.GoFieldName }} is the resolver for the {{ $resolver.Field.Name }} field.\n\t\t{{- end }}\n\t\tfunc (r *{{lcFirst $resolver.Object.Name}}{{ucFirst $.ResolverType}}) {{$resolver.Field.GoFieldName}}{{ with $resolver.PrevDecl }}{{ $resolver.Field.ShortResolverSignature .Type }}{{ else }}{{ $resolver.Field.ShortResolverDeclaration }}{{ end }}{\n\t\t\t{{ $resolver.Implementation }}\n\t\t}\n\t{{- end }}\n{{ end }}\n\n{{ range $object := .Objects -}}\n\t{{ if not $.OmitTemplateComment -}}\n\t\t// {{ucFirst $object.Name}} returns {{ $object.ResolverInterface | ref }} implementation.\n\t{{- end }}\n\tfunc (r *{{$.ResolverType}}) {{ucFirst $object.Name}}() {{ $object.ResolverInterface | ref }} { return &{{lcFirst $object.Name}}{{ucFirst $.ResolverType}}{r} }\n{{ end }}\n\n{{ range $object := .Objects -}}\n\ttype {{lcFirst $object.Name}}{{ucFirst $.ResolverType}} struct { *{{$.ResolverType}} }\n{{ end }}\n\n{{ if (ne .RemainingSource \"\") }}\n    // !!! WARNING !!!\n    // The code below was going to be deleted when updating resolvers. It has been copied here so you have\n    // one last chance to move it out of harms way if you want. There are two reasons this happens:\n\t//  - When renaming or deleting a resolver the old code will be put in here. You can safely delete\n\t//    it when you're done.\n\t//  - You have helper methods in this file. Move them out to keep these resolver files clean.\n\t/*\n\t{{ .RemainingSource }}\n\t*/\n{{ end }}\n"
  },
  {
    "path": "plugin/resolvergen/resolver_test.go",
    "content": "package resolvergen\n\nimport (\n\t\"os\"\n\t\"strings\"\n\t\"syscall\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\t\"golang.org/x/tools/go/packages\"\n\n\t\"github.com/99designs/gqlgen/codegen\"\n\t\"github.com/99designs/gqlgen/codegen/config\"\n)\n\nfunc TestLayoutSingleFile(t *testing.T) {\n\t_ = syscall.Unlink(\"testdata/singlefile/out/resolver.go\")\n\n\tcfg, err := config.LoadConfig(\"testdata/singlefile/gqlgen.yml\")\n\trequire.NoError(t, err)\n\tp := Plugin{}\n\n\trequire.NoError(t, cfg.Init())\n\n\tdata, err := codegen.BuildData(cfg)\n\trequire.NoError(t, err)\n\n\trequire.NoError(t, p.GenerateCode(data))\n\tassertNoErrors(t, \"github.com/99designs/gqlgen/plugin/resolvergen/testdata/singlefile/out\")\n}\n\nfunc TestLayoutSingleFileWithEnableRewrite(t *testing.T) {\n\t// Ensure the resolver file exists before running the test\n\tresolverFilePath := \"testdata/singlefile_preserve/out/resolver.go\"\n\t_, err := os.Stat(resolverFilePath)\n\tif os.IsNotExist(err) {\n\t\tt.Fatalf(\"Expected resolver file does not exist: %s\", resolverFilePath)\n\t}\n\trequire.NoError(t, err)\n\n\tcfg, err := config.LoadConfig(\"testdata/singlefile_preserve/gqlgen.yml\")\n\trequire.NoError(t, err)\n\tp := Plugin{}\n\n\trequire.NoError(t, cfg.Init())\n\n\tdata, err := codegen.BuildData(cfg)\n\trequire.NoError(t, err)\n\n\trequire.NoError(t, p.GenerateCode(data))\n\tassertNoErrors(\n\t\tt,\n\t\t\"github.com/99designs/gqlgen/plugin/resolvergen/testdata/singlefile_preserve/out\",\n\t)\n}\n\nfunc TestLayoutFollowSchema(t *testing.T) {\n\ttestFollowSchemaPersistence(t, \"testdata/followschema\")\n\n\tresolverFilePath := \"testdata/followschema/out/schema.resolvers.go\"\n\toverWriteFile(t, resolverFilePath+\".txt\", resolverFilePath)\n\n\tb, err := os.ReadFile(resolverFilePath)\n\trequire.NoError(t, err)\n\tsource := string(b)\n\n\trequire.Contains(t, source, \"(_ *customresolver.Resolver, err error)\")\n\trequire.Contains(t, source, \"// Named return values are supported.\")\n\trequire.Contains(t, source, \"// CustomerResolverType.Name implementation\")\n\trequire.Contains(t, source, \"// AUserHelperFunction implementation\")\n}\n\nfunc TestLayoutFollowSchemaWithCustomFilename(t *testing.T) {\n\ttestFollowSchemaPersistence(t, \"testdata/filetemplate\")\n\n\tresolverFilePath := \"testdata/filetemplate/out/schema.custom.go\"\n\toverWriteFile(t, resolverFilePath+\".txt\", resolverFilePath)\n\tb, err := os.ReadFile(resolverFilePath)\n\trequire.NoError(t, err)\n\tsource := string(b)\n\n\trequire.Contains(t, source, \"// CustomerResolverType.Resolver implementation\")\n\trequire.Contains(t, source, \"// CustomerResolverType.Name implementation\")\n\trequire.Contains(t, source, \"// AUserHelperFunction implementation\")\n}\n\nfunc TestLayoutInvalidModelPath(t *testing.T) {\n\tcfg, err := config.LoadConfig(\"testdata/invalid_model_path/gqlgen.yml\")\n\trequire.NoError(t, err)\n\n\trequire.NoError(t, cfg.Init())\n\n\t_, err = codegen.BuildData(cfg)\n\trequire.Error(t, err)\n}\n\nfunc TestOmitTemplateComment(t *testing.T) {\n\t_ = syscall.Unlink(\"testdata/omit_template_comment/resolver.go\")\n\n\tcfg, err := config.LoadConfig(\"testdata/omit_template_comment/gqlgen.yml\")\n\trequire.NoError(t, err)\n\tp := Plugin{}\n\n\trequire.NoError(t, cfg.Init())\n\n\tdata, err := codegen.BuildData(cfg)\n\trequire.NoError(t, err)\n\n\trequire.NoError(t, p.GenerateCode(data))\n\tassertNoErrors(\n\t\tt,\n\t\t\"github.com/99designs/gqlgen/plugin/resolvergen/testdata/omit_template_comment/out\",\n\t)\n}\n\nfunc TestResolver_Implementation(t *testing.T) {\n\t_ = syscall.Unlink(\"testdata/resolver_implementor/resolver.go\")\n\n\tcfg, err := config.LoadConfig(\"testdata/resolver_implementor/gqlgen.yml\")\n\trequire.NoError(t, err)\n\tp := Plugin{}\n\n\trequire.NoError(t, cfg.Init())\n\n\tdata, err := codegen.BuildData(cfg, &implementorTest{})\n\trequire.NoError(t, err)\n\n\trequire.NoError(t, p.GenerateCode(data))\n\tassertNoErrors(\n\t\tt,\n\t\t\"github.com/99designs/gqlgen/plugin/resolvergen/testdata/resolver_implementor/out\",\n\t)\n}\n\nfunc TestCustomResolverTemplate(t *testing.T) {\n\t_ = syscall.Unlink(\"testdata/resolvertemplate/out/resolver.go\")\n\tcfg, err := config.LoadConfig(\"testdata/resolvertemplate/gqlgen.yml\")\n\trequire.NoError(t, err)\n\tp := Plugin{}\n\n\trequire.NoError(t, cfg.Init())\n\n\tdata, err := codegen.BuildData(cfg)\n\trequire.NoError(t, err)\n\n\trequire.NoError(t, p.GenerateCode(data))\n}\n\nfunc TestCommentDirective(t *testing.T) {\n\t_ = syscall.Unlink(\"testdata/comment_directive/resolver.go\")\n\n\tcfg, err := config.LoadConfig(\"testdata/comment_directive/gqlgen.yml\")\n\trequire.NoError(t, err)\n\tp := Plugin{}\n\n\trequire.NoError(t, cfg.Init())\n\n\tdata, err := codegen.BuildData(cfg)\n\trequire.NoError(t, err)\n\n\trequire.NoError(t, p.GenerateCode(data))\n\tassertNoErrors(\n\t\tt,\n\t\t\"github.com/99designs/gqlgen/plugin/resolvergen/testdata/comment_directive/out\",\n\t)\n\n\tb, err := os.ReadFile(\"testdata/comment_directive/out/schema.resolvers.go\")\n\trequire.NoError(t, err)\n\tsource := string(b)\n\n\trequire.Contains(t, source, \"//nolint:test // test\")\n}\n\nfunc testFollowSchemaPersistence(t *testing.T, dir string) {\n\t_ = syscall.Unlink(dir + \"/out/resolver.go\")\n\n\tcfg, err := config.LoadConfig(dir + \"/gqlgen.yml\")\n\trequire.NoError(t, err)\n\tp := Plugin{}\n\n\trequire.NoError(t, cfg.Init())\n\n\tdata, err := codegen.BuildData(cfg)\n\trequire.NoError(t, err)\n\n\trequire.NoError(t, p.GenerateCode(data))\n\tassertNoErrors(t, \"github.com/99designs/gqlgen/plugin/resolvergen/\"+dir+\"/out\")\n}\n\nfunc overWriteFile(t *testing.T, sourceFile, destinationFile string) {\n\tinput, err := os.ReadFile(sourceFile)\n\trequire.NoError(t, err)\n\n\terr = os.WriteFile(destinationFile, input, 0o644)\n\trequire.NoError(t, err)\n}\n\nfunc assertNoErrors(t *testing.T, pkg string) {\n\tt.Helper()\n\tpkgs, err := packages.Load(&packages.Config{\n\t\tMode: packages.NeedName |\n\t\t\tpackages.NeedFiles |\n\t\t\tpackages.NeedCompiledGoFiles |\n\t\t\tpackages.NeedImports |\n\t\t\tpackages.NeedTypes |\n\t\t\tpackages.NeedTypesSizes,\n\t}, pkg)\n\trequire.NoError(t, err)\n\n\tvar errFilePos []string\n\tvar errors []packages.Error\n\tfor _, pkg := range pkgs {\n\t\terrors = append(errors, pkg.Errors...)\n\t\tfor _, err := range pkg.Errors {\n\t\t\terrFilePos = append(errFilePos, err.Pos+\":\"+err.Msg)\n\t\t}\n\t}\n\trequire.Emptyf(t, errors, \"There are compilation errors:\\n\"+\n\t\tstrings.Join(errFilePos, \"\\n\"))\n}\n\ntype implementorTest struct{}\n\nfunc (i *implementorTest) Implement(_ string, _ *codegen.Field) string {\n\treturn \"panic(\\\"implementor implemented me\\\")\"\n}\n"
  },
  {
    "path": "plugin/resolvergen/testdata/comment_directive/gqlgen.yml",
    "content": "schema:\n  - \"testdata/schema.graphql\"\n\nexec:\n  filename: testdata/singlefile/out/ignored.go\nmodel:\n  filename: testdata/singlefile/out/generated.go\nresolver:\n  type: CustomResolverType\n  layout: follow-schema\n  dir: testdata/comment_directive/out\n\nmodels:\n  Resolver:\n    model: github.com/99designs/gqlgen/plugin/resolvergen/testdata/singlefile/out.Resolver\n\nomit_gqlgen_version_in_file_notice: true\n"
  },
  {
    "path": "plugin/resolvergen/testdata/comment_directive/out/resolver.go",
    "content": "package out\n\n// This file will not be regenerated automatically.\n//\n// It serves as dependency injection for your app, add any dependencies you require here.\n\ntype CustomResolverType struct{}\n"
  },
  {
    "path": "plugin/resolvergen/testdata/comment_directive/out/schema.resolvers.go",
    "content": "package out\n\n// This file will be automatically regenerated based on the schema, any resolver\n// implementations\n// will be copied through when generating and any unknown code will be moved to the end.\n// Code generated by github.com/99designs/gqlgen\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\tcustomresolver \"github.com/99designs/gqlgen/plugin/resolvergen/testdata/singlefile/out\"\n)\n\n// Resolver is the resolver for the resolver field.\nfunc (r *queryCustomResolverType) Resolver(ctx context.Context) (*customresolver.Resolver, error) {\n\tpanic(fmt.Errorf(\"not implemented: Resolver - resolver\"))\n}\n\n// This comment was added manually after code generation. It will remain after re-generation.\n//\n//nolint:test // test\nfunc (r *resolverCustomResolverType) Name(ctx context.Context, obj *customresolver.Resolver) (string, error) {\n\tpanic(fmt.Errorf(\"not implemented: Name - name\"))\n}\n\n// Query returns customresolver.QueryResolver implementation.\nfunc (r *CustomResolverType) Query() customresolver.QueryResolver { return &queryCustomResolverType{r} }\n\n// Resolver returns customresolver.ResolverResolver implementation.\nfunc (r *CustomResolverType) Resolver() customresolver.ResolverResolver {\n\treturn &resolverCustomResolverType{r}\n}\n\ntype queryCustomResolverType struct{ *CustomResolverType }\ntype resolverCustomResolverType struct{ *CustomResolverType }\n"
  },
  {
    "path": "plugin/resolvergen/testdata/filetemplate/gqlgen.yml",
    "content": "schema:\n  - \"testdata/schema.graphql\"\n\nexec:\n  filename: testdata/singlefile/out/ignored.go\nmodel:\n  filename: testdata/singlefile/out/generated.go\nresolver:\n  type: CustomResolverType\n  layout: follow-schema\n  dir: testdata/filetemplate/out\n  filename_template: \"{name}.custom.go\"\n\nmodels:\n  Resolver:\n    model: github.com/99designs/gqlgen/plugin/resolvergen/testdata/singlefile/out.Resolver\n\nomit_gqlgen_version_in_file_notice: true\n"
  },
  {
    "path": "plugin/resolvergen/testdata/filetemplate/out/model.go",
    "content": "package customresolver\n\nimport \"context\"\n\ntype Resolver struct{}\n\ntype QueryResolver interface {\n\tResolver(ctx context.Context) (*Resolver, error)\n}\n\ntype ResolverResolver interface {\n\tName(ctx context.Context, obj *Resolver) (string, error)\n}\n"
  },
  {
    "path": "plugin/resolvergen/testdata/filetemplate/out/resolver.go",
    "content": "package customresolver\n\n// This file will not be regenerated automatically.\n//\n// It serves as dependency injection for your app, add any dependencies you require\n// here.\n\ntype CustomResolverType struct{}\n"
  },
  {
    "path": "plugin/resolvergen/testdata/filetemplate/out/schema.custom.go",
    "content": "package customresolver\n\n// This file will be automatically regenerated based on the schema, any resolver implementations\n// will be copied through when generating and any unknown code will be moved to the end.\n// Code generated by github.com/99designs/gqlgen\n\nimport (\n\t\"context\"\n\n\tcustomresolver \"github.com/99designs/gqlgen/plugin/resolvergen/testdata/singlefile/out\"\n)\n\n// Resolver is the resolver for the resolver field.\nfunc (r *queryCustomResolverType) Resolver(ctx context.Context) (*customresolver.Resolver, error) {\n\t// CustomerResolverType.Resolver implementation\n\treturn nil, nil\n}\n\n// Name is the resolver for the name field.\nfunc (r *resolverCustomResolverType) Name(ctx context.Context, obj *customresolver.Resolver) (string, error) {\n\t// CustomerResolverType.Name implementation\n\treturn \"\", nil\n}\n\n// Query returns customresolver.QueryResolver implementation.\nfunc (r *CustomResolverType) Query() customresolver.QueryResolver { return &queryCustomResolverType{r} }\n\n// Resolver returns customresolver.ResolverResolver implementation.\nfunc (r *CustomResolverType) Resolver() customresolver.ResolverResolver {\n\treturn &resolverCustomResolverType{r}\n}\n\ntype queryCustomResolverType struct{ *CustomResolverType }\ntype resolverCustomResolverType struct{ *CustomResolverType }\n\nfunc AUserHelperFunction() {\n\t// AUserHelperFunction implementation\n}\n"
  },
  {
    "path": "plugin/resolvergen/testdata/filetemplate/out/schema.custom.go.txt",
    "content": "package customresolver\n\n// This file will be automatically regenerated based on the schema, any resolver implementations\n// will be copied through when generating and any unknown code will be moved to the end.\n// Code generated by github.com/99designs/gqlgen\n\nimport (\n\t\"context\"\n\n\tcustomresolver \"github.com/99designs/gqlgen/plugin/resolvergen/testdata/singlefile/out\"\n)\n\n// Resolver is the resolver for the resolver field.\nfunc (r *queryCustomResolverType) Resolver(ctx context.Context) (*customresolver.Resolver, error) {\n\t// CustomerResolverType.Resolver implementation\n\treturn nil, nil\n}\n\n// Name is the resolver for the name field.\nfunc (r *resolverCustomResolverType) Name(ctx context.Context, obj *customresolver.Resolver) (string, error) {\n\t// CustomerResolverType.Name implementation\n\treturn \"\", nil\n}\n\n// Query returns customresolver.QueryResolver implementation.\nfunc (r *CustomResolverType) Query() customresolver.QueryResolver { return &queryCustomResolverType{r} }\n\n// Resolver returns customresolver.ResolverResolver implementation.\nfunc (r *CustomResolverType) Resolver() customresolver.ResolverResolver {\n\treturn &resolverCustomResolverType{r}\n}\n\ntype queryCustomResolverType struct{ *CustomResolverType }\ntype resolverCustomResolverType struct{ *CustomResolverType }\n\nfunc AUserHelperFunction() {\n\t// AUserHelperFunction implementation\n}\n"
  },
  {
    "path": "plugin/resolvergen/testdata/followschema/gqlgen.yml",
    "content": "schema:\n  - \"testdata/schema.graphql\"\n\nexec:\n  filename: testdata/singlefile/out/ignored.go\nmodel:\n  filename: testdata/singlefile/out/generated.go\nresolver:\n  type: CustomResolverType\n  layout: follow-schema\n  dir: testdata/followschema/out\n\nmodels:\n  Resolver:\n    model: github.com/99designs/gqlgen/plugin/resolvergen/testdata/singlefile/out.Resolver\n\nomit_gqlgen_version_in_file_notice: true\n"
  },
  {
    "path": "plugin/resolvergen/testdata/followschema/out/model.go",
    "content": "package customresolver\n\nimport \"context\"\n\ntype Resolver struct{}\n\ntype QueryResolver interface {\n\tResolver(ctx context.Context) (*Resolver, error)\n}\n\ntype ResolverResolver interface {\n\tName(ctx context.Context, obj *Resolver) (string, error)\n}\n"
  },
  {
    "path": "plugin/resolvergen/testdata/followschema/out/resolver.go",
    "content": "package customresolver\n\n// This file will not be regenerated automatically.\n//\n// It serves as dependency injection for your app, add any dependencies you require\n// here.\n\ntype CustomResolverType struct{}\n"
  },
  {
    "path": "plugin/resolvergen/testdata/followschema/out/schema.resolvers.go",
    "content": "package customresolver\n\n// This file will be automatically regenerated based on the schema, any resolver implementations\n// will be copied through when generating and any unknown code will be moved to the end.\n// Code generated by github.com/99designs/gqlgen\n\nimport (\n\t\"context\"\n\n\tcustomresolver \"github.com/99designs/gqlgen/plugin/resolvergen/testdata/singlefile/out\"\n)\n\n// Resolver is the resolver for the resolver field.\nfunc (r *queryCustomResolverType) Resolver(ctx context.Context) (_ *customresolver.Resolver, err error) {\n\t// Named return values are supported.\n\treturn\n}\n\n// Name is the resolver for the name field.\n// This comment is multiline method doc\nfunc (r *resolverCustomResolverType) Name(ctx context.Context, obj *customresolver.Resolver) (string, error) {\n\t// CustomerResolverType.Name implementation\n\treturn \"\", nil\n}\n\n// Query returns customresolver.QueryResolver implementation.\nfunc (r *CustomResolverType) Query() customresolver.QueryResolver { return &queryCustomResolverType{r} }\n\n// Resolver returns customresolver.ResolverResolver implementation.\n// This comment is multiline method doc\nfunc (r *CustomResolverType) Resolver() customresolver.ResolverResolver {\n\treturn &resolverCustomResolverType{r}\n}\n\ntype queryCustomResolverType struct{ *CustomResolverType }\ntype resolverCustomResolverType struct{ *CustomResolverType }\n\nfunc AUserHelperFunction() {\n\t// AUserHelperFunction implementation\n}\n"
  },
  {
    "path": "plugin/resolvergen/testdata/followschema/out/schema.resolvers.go.txt",
    "content": "package customresolver\n\n// This file will be automatically regenerated based on the schema, any resolver implementations\n// will be copied through when generating and any unknown code will be moved to the end.\n// Code generated by github.com/99designs/gqlgen\n\nimport (\n\t\"context\"\n\n\tcustomresolver \"github.com/99designs/gqlgen/plugin/resolvergen/testdata/singlefile/out\"\n)\n\n// Resolver is the resolver for the resolver field.\nfunc (r *queryCustomResolverType) Resolver(ctx context.Context) (_ *customresolver.Resolver, err error) {\n\t// Named return values are supported.\n\treturn\n}\n\n// Name is the resolver for the name field.\n// This comment is multiline method doc\nfunc (r *resolverCustomResolverType) Name(ctx context.Context, obj *customresolver.Resolver) (string, error) {\n\t// CustomerResolverType.Name implementation\n\treturn \"\", nil\n}\n\n// Query returns customresolver.QueryResolver implementation.\nfunc (r *CustomResolverType) Query() customresolver.QueryResolver { return &queryCustomResolverType{r} }\n\n// Resolver returns customresolver.ResolverResolver implementation.\n// This comment is multiline method doc\nfunc (r *CustomResolverType) Resolver() customresolver.ResolverResolver {\n\treturn &resolverCustomResolverType{r}\n}\n\ntype queryCustomResolverType struct{ *CustomResolverType }\ntype resolverCustomResolverType struct{ *CustomResolverType }\n\nfunc AUserHelperFunction() {\n\t// AUserHelperFunction implementation\n}\n"
  },
  {
    "path": "plugin/resolvergen/testdata/invalid_model_path/gqlgen.yml",
    "content": "schema:\n  - \"testdata/schema.graphql\"\n\nmodels:\n  Resolver:\n    model: github.com/99designs/invalid/invalid/invalid/nope.Resolver\n"
  },
  {
    "path": "plugin/resolvergen/testdata/omit_template_comment/gqlgen.yml",
    "content": "schema:\n  - \"testdata/schema.graphql\"\n\nexec:\n  filename: testdata/singlefile/out/ignored.go\nmodel:\n  filename: testdata/singlefile/out/generated.go\nresolver:\n  type: CustomResolverType\n  layout: follow-schema\n  dir: testdata/omit_template_comment/out\n  omit_template_comment: true\n\nmodels:\n  Resolver:\n    model: github.com/99designs/gqlgen/plugin/resolvergen/testdata/singlefile/out.Resolver\n\nomit_gqlgen_version_in_file_notice: true\n"
  },
  {
    "path": "plugin/resolvergen/testdata/omit_template_comment/out/resolver.go",
    "content": "package out\n\n// This file will not be regenerated automatically.\n//\n// It serves as dependency injection for your app, add any dependencies you require here.\n\ntype CustomResolverType struct{}\n"
  },
  {
    "path": "plugin/resolvergen/testdata/omit_template_comment/out/schema.resolvers.go",
    "content": "package out\n\n// This file will be automatically regenerated based on the schema, any resolver\n// implementations\n// will be copied through when generating and any unknown code will be moved to the end.\n// Code generated by github.com/99designs/gqlgen\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\tcustomresolver \"github.com/99designs/gqlgen/plugin/resolvergen/testdata/singlefile/out\"\n)\n\nfunc (r *queryCustomResolverType) Resolver(ctx context.Context) (*customresolver.Resolver, error) {\n\tpanic(fmt.Errorf(\"not implemented: Resolver - resolver\"))\n}\n\n// This comment was added manually after code generation. It will remain after re-generation.\nfunc (r *resolverCustomResolverType) Name(ctx context.Context, obj *customresolver.Resolver) (string, error) {\n\tpanic(fmt.Errorf(\"not implemented: Name - name\"))\n}\n\nfunc (r *CustomResolverType) Query() customresolver.QueryResolver { return &queryCustomResolverType{r} }\n\nfunc (r *CustomResolverType) Resolver() customresolver.ResolverResolver {\n\treturn &resolverCustomResolverType{r}\n}\n\ntype queryCustomResolverType struct{ *CustomResolverType }\ntype resolverCustomResolverType struct{ *CustomResolverType }\n"
  },
  {
    "path": "plugin/resolvergen/testdata/resolver_implementor/gqlgen.yml",
    "content": "schema:\n  - \"testdata/schema.graphql\"\n\nexec:\n  filename: testdata/resolver_implementor/out/ignored.go\nmodel:\n  filename: testdata/resolver_implementor/out/generated.go\nresolver:\n  type: CustomResolverType\n  layout: follow-schema\n  dir: testdata/resolver_implementor/out\n\nmodels:\n  Resolver:\n    model: github.com/99designs/gqlgen/plugin/resolvergen/testdata/resolver_implementor/out.Resolver\n\nomit_gqlgen_version_in_file_notice: true\n"
  },
  {
    "path": "plugin/resolvergen/testdata/resolver_implementor/out/model.go",
    "content": "package customresolver\n\nimport \"context\"\n\ntype Resolver struct{}\n\ntype QueryResolver interface {\n\tResolver(ctx context.Context) (*Resolver, error)\n}\n\ntype ResolverResolver interface {\n\tName(ctx context.Context, obj *Resolver) (string, error)\n}\n"
  },
  {
    "path": "plugin/resolvergen/testdata/resolver_implementor/out/resolver.go",
    "content": "package customresolver\n\n// This file will not be regenerated automatically.\n//\n// It serves as dependency injection for your app, add any dependencies you require here.\n\ntype CustomResolverType struct{}\n"
  },
  {
    "path": "plugin/resolvergen/testdata/resolver_implementor/out/schema.resolvers.go",
    "content": "package customresolver\n\n// This file will be automatically regenerated based on the schema, any resolver\n// implementations\n// will be copied through when generating and any unknown code will be moved to the end.\n// Code generated by github.com/99designs/gqlgen\n\nimport (\n\t\"context\"\n)\n\n// Resolver is the resolver for the resolver field.\nfunc (r *queryCustomResolverType) Resolver(ctx context.Context) (*Resolver, error) {\n\tpanic(\"implementor implemented me\")\n}\n\n// Name is the resolver for the name field.\nfunc (r *resolverCustomResolverType) Name(ctx context.Context, obj *Resolver) (string, error) {\n\tpanic(\"implementor implemented me\")\n}\n\n// Query returns QueryResolver implementation.\nfunc (r *CustomResolverType) Query() QueryResolver { return &queryCustomResolverType{r} }\n\n// Resolver returns ResolverResolver implementation.\nfunc (r *CustomResolverType) Resolver() ResolverResolver { return &resolverCustomResolverType{r} }\n\ntype queryCustomResolverType struct{ *CustomResolverType }\ntype resolverCustomResolverType struct{ *CustomResolverType }\n"
  },
  {
    "path": "plugin/resolvergen/testdata/resolvertemplate/customResolverTemplate.gotpl",
    "content": "{{ reserveImport \"context\"  }}\n{{ reserveImport \"fmt\"  }}\n{{ reserveImport \"io\"  }}\n{{ reserveImport \"strconv\"  }}\n{{ reserveImport \"time\"  }}\n{{ reserveImport \"sync\"  }}\n{{ reserveImport \"errors\"  }}\n{{ reserveImport \"bytes\"  }}\n{{ reserveImport \"encoding/json\"  }}\n\n{{ reserveImport \"github.com/vektah/gqlparser/v2\" }}\n{{ reserveImport \"github.com/vektah/gqlparser/v2/ast\" }}\n{{ reserveImport \"github.com/99designs/gqlgen/graphql\" }}\n{{ reserveImport \"github.com/99designs/gqlgen/graphql/introspection\" }}\n\n{{ .Imports }}\n\n{{ if .HasRoot }}\n\ttype {{.ResolverType}} struct {}\n{{ end }}\n\n{{ range $resolver := .Resolvers -}}\n\t{{ if $resolver.Comment -}}\n\t\t{{with $resolver.Comment}}{{.|prefixLines \"// \"}}{{end}}\n\t{{- else if not $.OmitTemplateComment -}}\n\t\t// {{ $resolver.Field.GoFieldName }} is the resolver for the {{ $resolver.Field.Name }} field.\n\t{{- end }}\n\tfunc (r *{{lcFirst $resolver.Object.Name}}{{ucFirst $.ResolverType}}) {{$resolver.Field.GoFieldName}}{{ with $resolver.PrevDecl }}{{ $resolver.Field.ShortResolverSignature .Type }}{{ else }}{{ $resolver.Field.ShortResolverDeclaration }}{{ end }}{\n\t\t// Custom Resolver implementation\n\t\tpanic(fmt.Errorf(\"custom Resolver not implemented: {{ $resolver.Field.GoFieldName }} - {{lcFirst $resolver.Field.GoFieldName }}\"))\n\t}\n\n{{ end }}\n\n{{ range $object := .Objects -}}\n\t{{ if not $.OmitTemplateComment -}}\n\t\t// {{ucFirst $object.Name}} returns {{ $object.ResolverInterface | ref }} implementation.\n\t{{- end }}\n\tfunc (r *{{$.ResolverType}}) {{ucFirst $object.Name}}() {{ $object.ResolverInterface | ref }} { return &{{lcFirst $object.Name}}{{ucFirst $.ResolverType}}{r} }\n{{ end }}\n\n{{ range $object := .Objects -}}\n\ttype {{lcFirst $object.Name}}{{ucFirst $.ResolverType}} struct { *{{$.ResolverType}} }\n{{ end }}\n\n{{ if (ne .RemainingSource \"\") }}\n    // !!! WARNING !!!\n    // The code below was going to be deleted when updating resolvers. It has been copied here so you have\n    // one last chance to move it out of harms way if you want. There are two reasons this happens:\n\t//  - When renaming or deleting a resolver the old code will be put in here. You can safely delete\n\t//    it when you're done.\n\t//  - You have helper methods in this file. Move them out to keep these resolver files clean.\n\t{{ .RemainingSource }}\n{{ end }}\n"
  },
  {
    "path": "plugin/resolvergen/testdata/resolvertemplate/gqlgen.yml",
    "content": "schema:\n  - \"testdata/schema.graphql\"\n\nexec:\n  filename: testdata/singlefile/out/ignored.go\nmodel:\n  filename: testdata/singlefile/out/generated.go\nresolver:\n  type: CustomResolverType\n  layout: follow-schema\n  dir: testdata/resolvertemplate/out\n  filename_template: \"{name}.resolvers.go\"\n  resolver_template: \"testdata/resolvertemplate/customResolverTemplate.gotpl\"\n\nmodels:\n  Resolver:\n    model: github.com/99designs/gqlgen/plugin/resolvergen/testdata/singlefile/out.Resolver\n\nomit_gqlgen_version_in_file_notice: true\n"
  },
  {
    "path": "plugin/resolvergen/testdata/resolvertemplate/out/resolver.go",
    "content": "package out\n\n// This file will not be regenerated automatically.\n//\n// It serves as dependency injection for your app, add any dependencies you require\n// here.\n\ntype CustomResolverType struct{}\n"
  },
  {
    "path": "plugin/resolvergen/testdata/resolvertemplate/out/schema.resolvers.go",
    "content": "package out\n\n// This file will be automatically regenerated based on the schema, any resolver\n// implementations\n// will be copied through when generating and any unknown code will be moved to the end.\n// Code generated by github.com/99designs/gqlgen\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\tcustomresolver \"github.com/99designs/gqlgen/plugin/resolvergen/testdata/singlefile/out\"\n)\n\n// Resolver is the resolver for the resolver field.\nfunc (r *queryCustomResolverType) Resolver(ctx context.Context) (*customresolver.Resolver, error) {\n\t// Custom Resolver implementation\n\tpanic(fmt.Errorf(\"custom Resolver not implemented: Resolver - resolver\"))\n}\n\n// Name is the resolver for the name field.\nfunc (r *resolverCustomResolverType) Name(ctx context.Context, obj *customresolver.Resolver) (string, error) {\n\t// Custom Resolver implementation\n\tpanic(fmt.Errorf(\"custom Resolver not implemented: Name - name\"))\n}\n\n// Query returns customresolver.QueryResolver implementation.\nfunc (r *CustomResolverType) Query() customresolver.QueryResolver { return &queryCustomResolverType{r} }\n\n// Resolver returns customresolver.ResolverResolver implementation.\nfunc (r *CustomResolverType) Resolver() customresolver.ResolverResolver {\n\treturn &resolverCustomResolverType{r}\n}\n\ntype queryCustomResolverType struct{ *CustomResolverType }\ntype resolverCustomResolverType struct{ *CustomResolverType }\n"
  },
  {
    "path": "plugin/resolvergen/testdata/return_values/gqlgen.yml",
    "content": "schema:\n  - schema.graphqls\n\nexec:\n  filename: ignored.go\nmodel:\n  filename: model.go\nresolver:\n  filename: resolvers.go\n\nresolvers_always_return_pointers: false\n"
  },
  {
    "path": "plugin/resolvergen/testdata/return_values/ignored.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage return_values\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"embed\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{\n\t\tresolvers:  cfg.Resolvers,\n\t\tdirectives: cfg.Directives,\n\t\tcomplexity: cfg.Complexity,\n\t}\n}\n\ntype Config struct {\n\tResolvers  ResolverRoot\n\tDirectives DirectiveRoot\n\tComplexity ComplexityRoot\n}\n\ntype ResolverRoot interface {\n\tQuery() QueryResolver\n}\n\ntype DirectiveRoot struct {\n}\n\ntype ComplexityRoot struct {\n\tQuery struct {\n\t\tUser        func(childComplexity int) int\n\t\tUserPointer func(childComplexity int) int\n\t}\n\n\tUser struct {\n\t\tID   func(childComplexity int) int\n\t\tName func(childComplexity int) int\n\t}\n}\n\ntype QueryResolver interface {\n\tUser(ctx context.Context) (User, error)\n\tUserPointer(ctx context.Context) (*User, error)\n}\n\ntype executableSchema struct {\n\tresolvers  ResolverRoot\n\tdirectives DirectiveRoot\n\tcomplexity ComplexityRoot\n}\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := executionContext{nil, e}\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"Query.user\":\n\t\tif e.complexity.Query.User == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Query.User(childComplexity), true\n\n\tcase \"Query.userPointer\":\n\t\tif e.complexity.Query.UserPointer == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Query.UserPointer(childComplexity), true\n\n\tcase \"User.id\":\n\t\tif e.complexity.User.ID == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.User.ID(childComplexity), true\n\n\tcase \"User.name\":\n\t\tif e.complexity.User.Name == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.User.Name(childComplexity), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := executionContext{opCtx, e}\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap()\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tif !first {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tfirst = false\n\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\tdata := ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\n\t\t\treturn &graphql.Response{\n\t\t\t\tData: buf.Bytes(),\n\t\t\t}\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.OperationContext\n\t*executableSchema\n}\n\nfunc (ec *executionContext) introspectSchema() (*introspection.Schema, error) {\n\tif ec.DisableIntrospection {\n\t\treturn nil, errors.New(\"introspection disabled\")\n\t}\n\treturn introspection.WrapSchema(parsedSchema), nil\n}\n\nfunc (ec *executionContext) introspectType(name string) (*introspection.Type, error) {\n\tif ec.DisableIntrospection {\n\t\treturn nil, errors.New(\"introspection disabled\")\n\t}\n\treturn introspection.WrapTypeFromDef(parsedSchema, parsedSchema.Types[name]), nil\n}\n\n//go:embed \"schema.graphqls\"\nvar sourcesFS embed.FS\n\nfunc sourceData(filename string) string {\n\tdata, err := sourcesFS.ReadFile(filename)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"codegen problem: %s not available\", filename))\n\t}\n\treturn string(data)\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"schema.graphqls\", Input: sourceData(\"schema.graphqls\"), BuiltIn: false},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\tvar arg0 string\n\tif tmp, ok := rawArgs[\"name\"]; ok {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"name\"))\n\t\targ0, err = ec.unmarshalNString2string(ctx, tmp)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\tvar arg0 bool\n\tif tmp, ok := rawArgs[\"includeDeprecated\"]; ok {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"includeDeprecated\"))\n\t\targ0, err = ec.unmarshalOBoolean2bool(ctx, tmp)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\tvar arg0 bool\n\tif tmp, ok := rawArgs[\"includeDeprecated\"]; ok {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithField(\"includeDeprecated\"))\n\t\targ0, err = ec.unmarshalOBoolean2bool(ctx, tmp)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Query_user(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Query_user(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.resolvers.Query().User(rctx)\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(User)\n\tfc.Result = res\n\treturn ec.marshalNUser2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋresolvergenᚋtestdataᚋreturn_valuesᚐUser(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Query_user(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_User_id(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_User_name(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type User\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query_userPointer(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Query_userPointer(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.resolvers.Query().UserPointer(rctx)\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*User)\n\tfc.Result = res\n\treturn ec.marshalOUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋresolvergenᚋtestdataᚋreturn_valuesᚐUser(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Query_userPointer(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: true,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"id\":\n\t\t\t\treturn ec.fieldContext_User_id(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext_User_name(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type User\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Query___type(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.introspectType(fc.Args[\"name\"].(string))\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_Query___schema(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn ec.introspectSchema()\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Schema)\n\tfc.Result = res\n\treturn ec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_id(ctx context.Context, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_User_id(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.ID, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNID2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_User_id(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type ID does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _User_name(ctx context.Context, field graphql.CollectedField, obj *User) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext_User_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext_User_name(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"User\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_locations(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Locations, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]string)\n\tfc.Result = res\n\treturn ec.marshalN__DirectiveLocation2ᚕstringᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_args(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Args, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.InputValue)\n\tfc.Result = res\n\treturn ec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Directive_isRepeatable(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.IsRepeatable, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalNBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___EnumValue_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___EnumValue_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.IsDeprecated(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalNBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.DeprecationReason(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_args(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Args, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.InputValue)\n\tfc.Result = res\n\treturn ec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_type(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Type, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_isDeprecated(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.IsDeprecated(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(bool)\n\tfc.Result = res\n\treturn ec.marshalNBoolean2bool(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Field_deprecationReason(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.DeprecationReason(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalNString2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_type(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Type, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___InputValue_defaultValue(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.DefaultValue, nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_types(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Types(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_queryType(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.QueryType(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_mutationType(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.MutationType(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_subscriptionType(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.SubscriptionType(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Schema_directives(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Directives(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Directive)\n\tfc.Result = res\n\treturn ec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_kind(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Kind(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\tif !graphql.HasFieldError(ctx, fc) {\n\t\t\tec.Errorf(ctx, \"must not be null\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(string)\n\tfc.Result = res\n\treturn ec.marshalN__TypeKind2string(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_name(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Name(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_description(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Description(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_fields(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Field)\n\tfc.Result = res\n\treturn ec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_interfaces(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.Interfaces(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_possibleTypes(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.PossibleTypes(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_enumValues(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.EnumValue)\n\tfc.Result = res\n\treturn ec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_inputFields(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.InputFields(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.([]introspection.InputValue)\n\tfc.Result = res\n\treturn ec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_ofType(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.OfType(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*introspection.Type)\n\tfc.Result = res\n\treturn ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\tfc, err := ec.fieldContext___Type_specifiedByURL(ctx, field)\n\tif err != nil {\n\t\treturn graphql.Null\n\t}\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\tret = graphql.Null\n\t\t}\n\t}()\n\tresTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {\n\t\tctx = rctx // use context from middleware stack in children\n\t\treturn obj.SpecifiedByURL(), nil\n\t})\n\tif err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn graphql.Null\n\t}\n\tif resTmp == nil {\n\t\treturn graphql.Null\n\t}\n\tres := resTmp.(*string)\n\tfc.Result = res\n\treturn ec.marshalOString2ᚖstring(ctx, field.Selections, res)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tvar invalids uint32\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"user\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_user(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx, innerFunc)\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func() graphql.Marshaler {\n\t\t\t\treturn rrm(innerCtx)\n\t\t\t})\n\t\tcase \"userPointer\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query_userPointer(ctx, field)\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx, innerFunc)\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func() graphql.Marshaler {\n\t\t\t\treturn rrm(innerCtx)\n\t\t\t})\n\t\tcase \"__type\":\n\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\n\t\tcase \"__schema\":\n\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch()\n\tif invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\treturn out\n}\n\nvar userImplementors = []string{\"User\"}\n\nfunc (ec *executionContext) _User(ctx context.Context, sel ast.SelectionSet, obj *User) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, userImplementors)\n\tout := graphql.NewFieldSet(fields)\n\tvar invalids uint32\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"User\")\n\t\tcase \"id\":\n\n\t\t\tout.Values[i] = ec._User_id(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tcase \"name\":\n\n\t\t\tout.Values[i] = ec._User_name(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch()\n\tif invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\treturn out\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\tout := graphql.NewFieldSet(fields)\n\tvar invalids uint32\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tcase \"description\":\n\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\n\t\tcase \"locations\":\n\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tcase \"args\":\n\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tcase \"isRepeatable\":\n\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch()\n\tif invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\tout := graphql.NewFieldSet(fields)\n\tvar invalids uint32\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tcase \"description\":\n\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\n\t\tcase \"isDeprecated\":\n\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch()\n\tif invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\tout := graphql.NewFieldSet(fields)\n\tvar invalids uint32\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tcase \"description\":\n\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\n\t\tcase \"args\":\n\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tcase \"type\":\n\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch()\n\tif invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\tout := graphql.NewFieldSet(fields)\n\tvar invalids uint32\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tcase \"description\":\n\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\n\t\tcase \"type\":\n\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch()\n\tif invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\tout := graphql.NewFieldSet(fields)\n\tvar invalids uint32\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\n\t\tcase \"types\":\n\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\n\t\tcase \"subscriptionType\":\n\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\n\t\tcase \"directives\":\n\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch()\n\tif invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\tout := graphql.NewFieldSet(fields)\n\tvar invalids uint32\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tinvalids++\n\t\t\t}\n\t\tcase \"name\":\n\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\n\t\tcase \"description\":\n\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\n\t\tcase \"fields\":\n\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\n\t\tcase \"interfaces\":\n\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\n\t\tcase \"possibleTypes\":\n\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\n\t\tcase \"enumValues\":\n\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\n\t\tcase \"inputFields\":\n\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\n\t\tcase \"ofType\":\n\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\n\t\tcase \"specifiedByURL\":\n\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch()\n\tif invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNID2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalID(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNID2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\tres := graphql.MarshalID(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalNUser2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋresolvergenᚋtestdataᚋreturn_valuesᚐUser(ctx context.Context, sel ast.SelectionSet, v User) graphql.Marshaler {\n\treturn ec._User(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tif v != nil {\n\t\tvSlice = graphql.CoerceList(v)\n\t}\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tec.Errorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalOUser2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋresolvergenᚋtestdataᚋreturn_valuesᚐUser(ctx context.Context, sel ast.SelectionSet, v *User) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec._User(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "plugin/resolvergen/testdata/return_values/model.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage return_values\n\ntype User struct {\n\tID   string `json:\"id\"`\n\tName string `json:\"name\"`\n}\n"
  },
  {
    "path": "plugin/resolvergen/testdata/return_values/resolvers.go",
    "content": "package return_values\n\n// THIS CODE IS A STARTING POINT ONLY. IT WILL NOT BE UPDATED WITH SCHEMA CHANGES.\n\nimport (\n\t\"context\"\n)\n\ntype Resolver struct{}\n\n// // foo\nfunc (r *queryResolver) User(ctx context.Context) (User, error) {\n\tpanic(\"not implemented\")\n}\n\n// // foo\nfunc (r *queryResolver) UserPointer(ctx context.Context) (*User, error) {\n\tpanic(\"not implemented\")\n}\n\n// Query returns QueryResolver implementation.\nfunc (r *Resolver) Query() QueryResolver { return &queryResolver{r} }\n\ntype queryResolver struct{ *Resolver }\n"
  },
  {
    "path": "plugin/resolvergen/testdata/return_values/return_values_test.go",
    "content": "package return_values\n\nimport (\n\t\"reflect\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\n//go:generate rm -f resolvers.go\n//go:generate go run ../../../../testdata/gqlgen.go -config gqlgen.yml\n\nfunc TestResolverReturnTypes(t *testing.T) {\n\t// verify that the return value of the User resolver is a struct, not a pointer\n\trequire.Equal(t, \"struct\", reflect.TypeOf((&queryResolver{}).User).Out(0).Kind().String())\n\t// the UserPointer resolver should return a pointer\n\trequire.Equal(t, \"ptr\", reflect.TypeOf((&queryResolver{}).UserPointer).Out(0).Kind().String())\n}\n"
  },
  {
    "path": "plugin/resolvergen/testdata/return_values/schema.graphqls",
    "content": "type User {\n  id: ID!\n  name: String!\n}\n\ntype Query {\n  user: User!\n  userPointer: User\n}\n"
  },
  {
    "path": "plugin/resolvergen/testdata/schema.graphql",
    "content": "type Query {\n    resolver: Resolver!\n}\n\ntype Resolver {\n    name: String!\n}\n"
  },
  {
    "path": "plugin/resolvergen/testdata/singlefile/gqlgen.yml",
    "content": "schema:\n  - \"testdata/schema.graphql\"\n\nexec:\n  filename: testdata/singlefile/out/ignored.go\nmodel:\n  filename: testdata/singlefile/out/generated.go\nresolver:\n  filename: testdata/singlefile/out/resolver.go\n  type: CustomResolverType\n  preserve_resolver: false\n\nmodels:\n  Resolver:\n    model: github.com/99designs/gqlgen/plugin/resolvergen/testdata/singlefile/out.Resolver\n\nomit_gqlgen_version_in_file_notice: true\n"
  },
  {
    "path": "plugin/resolvergen/testdata/singlefile/out/model.go",
    "content": "package customresolver\n\nimport \"context\"\n\ntype Resolver struct{}\n\ntype QueryResolver interface {\n\tResolver(ctx context.Context) (*Resolver, error)\n}\n\ntype ResolverResolver interface {\n\tName(ctx context.Context, obj *Resolver) (string, error)\n}\n"
  },
  {
    "path": "plugin/resolvergen/testdata/singlefile/out/resolver.go",
    "content": "package customresolver\n\n// THIS CODE WILL BE UPDATED WITH SCHEMA CHANGES. PREVIOUS IMPLEMENTATION FOR SCHEMA CHANGES WILL BE KEPT IN THE COMMENT SECTION. IMPLEMENTATION FOR UNCHANGED SCHEMA WILL BE KEPT.\n\nimport (\n\t\"context\"\n)\n\ntype CustomResolverType struct{}\n\n// Resolver is the resolver for the resolver field.\nfunc (r *queryCustomResolverType) Resolver(ctx context.Context) (*Resolver, error) {\n\tpanic(\"not implemented\")\n}\n\n// Name is the resolver for the name field.\nfunc (r *resolverCustomResolverType) Name(ctx context.Context, obj *Resolver) (string, error) {\n\tpanic(\"not implemented\")\n}\n\n// Query returns QueryResolver implementation.\nfunc (r *CustomResolverType) Query() QueryResolver { return &queryCustomResolverType{r} }\n\n// Resolver returns ResolverResolver implementation.\nfunc (r *CustomResolverType) Resolver() ResolverResolver { return &resolverCustomResolverType{r} }\n\ntype queryCustomResolverType struct{ *CustomResolverType }\ntype resolverCustomResolverType struct{ *CustomResolverType }\n"
  },
  {
    "path": "plugin/resolvergen/testdata/singlefile_preserve/gqlgen.yml",
    "content": "schema:\n  - \"testdata/schema.graphql\"\n\nexec:\n  filename: testdata/singlefile_preserve/out/ignored.go\nmodel:\n  filename: testdata/singlefile_preserve/out/generated.go\nresolver:\n  filename: testdata/singlefile_preserve/out/resolver.go\n  type: CustomResolverType\n  preserve_resolver: true\n\nmodels:\n  Resolver:\n    model: github.com/99designs/gqlgen/plugin/resolvergen/testdata/singlefile_preserve/out.Resolver\n\nomit_gqlgen_version_in_file_notice: true\n"
  },
  {
    "path": "plugin/resolvergen/testdata/singlefile_preserve/out/model.go",
    "content": "package customresolver\n\nimport \"context\"\n\ntype Resolver struct{}\n\ntype QueryResolver interface {\n\tResolver(ctx context.Context) (*Resolver, error)\n}\n\ntype ResolverResolver interface {\n\tName(ctx context.Context, obj *Resolver) (string, error)\n}\n"
  },
  {
    "path": "plugin/resolvergen/testdata/singlefile_preserve/out/resolver.go",
    "content": "package customresolver\n\n// THIS CODE IS A STARTING POINT ONLY. IT WILL NOT BE UPDATED WITH SCHEMA CHANGES.\n\nimport (\n\t\"context\"\n)\n\ntype CustomResolverType struct{}\n\n// Resolver is the resolver for the resolver field.\nfunc (r *queryCustomResolverType) Resolver(ctx context.Context) (*Resolver, error) {\n\tpanic(\"not implemented\")\n}\n\n// Name is the resolver for the name field.\nfunc (r *resolverCustomResolverType) Name(ctx context.Context, obj *Resolver) (string, error) {\n\tpanic(\"not implemented\")\n}\n\n// Query returns QueryResolver implementation.\nfunc (r *CustomResolverType) Query() QueryResolver { return &queryCustomResolverType{r} }\n\n// Resolver returns ResolverResolver implementation.\nfunc (r *CustomResolverType) Resolver() ResolverResolver { return &resolverCustomResolverType{r} }\n\ntype queryCustomResolverType struct{ *CustomResolverType }\ntype resolverCustomResolverType struct{ *CustomResolverType }\n"
  },
  {
    "path": "plugin/servergen/server.go",
    "content": "package servergen\n\nimport (\n\t_ \"embed\"\n\t\"errors\"\n\t\"io/fs\"\n\t\"log\"\n\t\"os\"\n\n\t\"github.com/99designs/gqlgen/codegen\"\n\t\"github.com/99designs/gqlgen/codegen/templates\"\n\t\"github.com/99designs/gqlgen/plugin\"\n)\n\n//go:embed server.gotpl\nvar serverTemplate string\n\nfunc New(filename string) plugin.Plugin {\n\treturn &Plugin{filename}\n}\n\ntype Plugin struct {\n\tfilename string\n}\n\nvar _ plugin.CodeGenerator = &Plugin{}\n\nfunc (m *Plugin) Name() string {\n\treturn \"servergen\"\n}\n\nfunc (m *Plugin) GenerateCode(data *codegen.Data) error {\n\tserverBuild := &ServerBuild{\n\t\tExecPackageName:     data.Config.Exec.ImportPath(),\n\t\tResolverPackageName: data.Config.Resolver.ImportPath(),\n\t}\n\n\tif _, err := os.Stat(m.filename); errors.Is(err, fs.ErrNotExist) {\n\t\treturn templates.Render(templates.Options{\n\t\t\tPackageName:  \"main\",\n\t\t\tFilename:     m.filename,\n\t\t\tData:         serverBuild,\n\t\t\tPackages:     data.Config.Packages,\n\t\t\tTemplate:     serverTemplate,\n\t\t\tPruneOptions: data.Config.GetPruneOptions(),\n\t\t})\n\t}\n\n\tlog.Printf(\"Skipped server: %s already exists\\n\", m.filename)\n\treturn nil\n}\n\ntype ServerBuild struct {\n\tcodegen.Data\n\n\tExecPackageName     string\n\tResolverPackageName string\n}\n"
  },
  {
    "path": "plugin/servergen/server.gotpl",
    "content": "{{ reserveImport \"context\" }}\n{{ reserveImport \"log\" }}\n{{ reserveImport \"net/http\" }}\n{{ reserveImport \"os\" }}\n{{ reserveImport \"github.com/vektah/gqlparser/v2/ast\" }}\n{{ reserveImport \"github.com/99designs/gqlgen/graphql/playground\" }}\n{{ reserveImport \"github.com/99designs/gqlgen/graphql/handler\" }}\n{{ reserveImport \"github.com/99designs/gqlgen/graphql/handler/extension\" }}\n{{ reserveImport \"github.com/99designs/gqlgen/graphql/handler/lru\" }}\n{{ reserveImport \"github.com/99designs/gqlgen/graphql/handler/transport\" }}\n\nconst defaultPort = \"8080\"\n\nfunc main() {\n\tport := os.Getenv(\"PORT\")\n\tif port == \"\" {\n\t\tport = defaultPort\n\t}\n\n\tsrv := handler.New({{ lookupImport .ExecPackageName }}.NewExecutableSchema({{ lookupImport .ExecPackageName}}.Config{Resolvers: &{{ lookupImport .ResolverPackageName}}.Resolver{}}))\n\n\tsrv.AddTransport(transport.Options{})\n\tsrv.AddTransport(transport.GET{})\n\tsrv.AddTransport(transport.POST{})\n\n\tsrv.SetQueryCache(lru.New[*ast.QueryDocument](1000))\n\n\tsrv.Use(extension.Introspection{})\n\tsrv.Use(extension.AutomaticPersistedQuery{\n\t\tCache: lru.New[string](100),\n\t})\n\n\thttp.Handle(\"/\", playground.Handler(\"GraphQL playground\", \"/query\"))\n\thttp.Handle(\"/query\", srv)\n\n\tlog.Printf(\"connect to http://localhost:%s/ for GraphQL playground\", port)\n\tlog.Fatal(http.ListenAndServe(\":\" + port, nil))\n}\n"
  },
  {
    "path": "plugin/stubgen/stubs.go",
    "content": "package stubgen\n\nimport (\n\t_ \"embed\"\n\t\"path/filepath\"\n\t\"syscall\"\n\n\t\"github.com/99designs/gqlgen/codegen\"\n\t\"github.com/99designs/gqlgen/codegen/config\"\n\t\"github.com/99designs/gqlgen/codegen/templates\"\n\t\"github.com/99designs/gqlgen/internal/code\"\n\t\"github.com/99designs/gqlgen/plugin\"\n)\n\n//go:embed stubs.gotpl\nvar stubsTemplate string\n\nfunc New(filename, typename string) plugin.Plugin {\n\treturn &Plugin{filename: filename, typeName: typename}\n}\n\ntype Plugin struct {\n\tfilename string\n\ttypeName string\n}\n\nvar (\n\t_ plugin.CodeGenerator = &Plugin{}\n\t_ plugin.ConfigMutator = &Plugin{}\n)\n\nfunc (m *Plugin) Name() string {\n\treturn \"stubgen\"\n}\n\nfunc (m *Plugin) MutateConfig(cfg *config.Config) error {\n\t_ = syscall.Unlink(m.filename)\n\treturn nil\n}\n\nfunc (m *Plugin) GenerateCode(data *codegen.Data) error {\n\tabs, err := filepath.Abs(m.filename)\n\tif err != nil {\n\t\treturn err\n\t}\n\tpkgName := code.NameForDir(filepath.Dir(abs))\n\n\treturn templates.Render(templates.Options{\n\t\tPackageName: pkgName,\n\t\tFilename:    m.filename,\n\t\tData: &ResolverBuild{\n\t\t\tData:     data,\n\t\t\tTypeName: m.typeName,\n\t\t},\n\t\tGeneratedHeader: true,\n\t\tPackages:        data.Config.Packages,\n\t\tTemplate:        stubsTemplate,\n\t\tPruneOptions:    data.Config.GetPruneOptions(),\n\t})\n}\n\ntype ResolverBuild struct {\n\t*codegen.Data\n\n\tTypeName string\n}\n"
  },
  {
    "path": "plugin/stubgen/stubs.gotpl",
    "content": "{{ reserveImport \"context\"  }}\n{{ reserveImport \"fmt\"  }}\n{{ reserveImport \"io\"  }}\n{{ reserveImport \"strconv\"  }}\n{{ reserveImport \"time\"  }}\n{{ reserveImport \"sync\"  }}\n{{ reserveImport \"errors\"  }}\n{{ reserveImport \"bytes\"  }}\n\n{{ reserveImport \"github.com/vektah/gqlparser/v2\" }}\n{{ reserveImport \"github.com/vektah/gqlparser/v2/ast\" }}\n{{ reserveImport \"github.com/99designs/gqlgen/graphql\" }}\n{{ reserveImport \"github.com/99designs/gqlgen/graphql/introspection\" }}\n\n{{ $root := . }}\n\ntype {{$root.TypeName}} struct {\n\t{{ range $object := .Objects }}\n\t\t{{- if $object.HasResolvers }}\n\t\t\t{{$object.Name}}Resolver struct {\n\t\t\t\t{{- range $field := $object.Fields }}\n\t\t\t\t\t{{- if $field.IsResolver }}\n\t\t\t\t\t\t{{- $field.GoFieldName}} func{{ $field.ShortResolverDeclaration }}\n\t\t\t\t\t{{ end }}\n\t\t\t\t{{- end }}\n\t\t\t}\n\t\t{{- end }}\n\t{{- end }}\n\t{{range $object := .Inputs -}}\n\t\t{{- if $object.HasResolvers }}\n\t\t\t{{$object.Name}}Resolver struct {\n\t\t\t\t{{- range $field := $object.Fields }}\n\t\t\t\t\t{{- if $field.IsResolver }}\n\t\t\t\t\t\t{{- $field.GoFieldName}} func{{ $field.ShortResolverDeclaration }}\n\t\t\t\t\t{{ end }}\n\t\t\t\t{{- end }}\n\t\t\t}\n\t\t{{- end }}\n\t{{- end }}\n}\n\n{{ range $object := .Objects -}}\n\t{{- if $object.HasResolvers -}}\n\t\tfunc (r *{{$.TypeName}}) {{$object.Name}}() {{ $object.ResolverInterface | ref }} {\n\t\t\treturn &{{lcFirst $root.TypeName}}{{$object.Name}}{r}\n\t\t}\n\t{{ end -}}\n{{ end }}\n{{ range $object := .Inputs -}}\n\t{{- if $object.HasResolvers -}}\n\t\tfunc (r *{{$.TypeName}}) {{$object.Name}}() {{ $object.ResolverInterface | ref }} {\n\t\t\treturn &{{lcFirst $root.TypeName}}{{$object.Name}}{r}\n\t\t}\n\t{{ end -}}\n{{ end }}\n\n{{ range $object := .Objects -}}\n\t{{- if $object.HasResolvers -}}\n\t\ttype {{lcFirst $root.TypeName}}{{$object.Name}} struct { *{{$root.TypeName}}  }\n\n\t\t{{ range $field := $object.Fields -}}\n\t\t\t{{- if $field.IsResolver -}}\n\t\t\t\tfunc (r *{{lcFirst $root.TypeName}}{{$object.Name}}) {{$field.GoFieldName}}{{ $field.ShortResolverDeclaration }} {\n\t\t\t\t\treturn r.{{$object.Name}}Resolver.{{$field.GoFieldName}}(ctx,{{if not $object.Root}} obj,{{end}}{{ if $field.Args }} {{$field.StubCallArgs}}{{end}})\n\t\t\t\t}\n\t\t\t{{ end -}}\n\t\t{{ end -}}\n\t{{ end -}}\n{{ end }}\n{{ range $object := .Inputs -}}\n\t{{- if $object.HasResolvers -}}\n\t\ttype {{lcFirst $root.TypeName}}{{$object.Name}} struct { *{{$root.TypeName}}  }\n\n\t\t{{ range $field := $object.Fields -}}\n\t\t\t{{- if $field.IsResolver -}}\n\t\t\t\tfunc (r *{{lcFirst $root.TypeName}}{{$object.Name}}) {{$field.GoFieldName}}{{ $field.ShortResolverDeclaration }} {\n\t\t\t\t\treturn r.{{$object.Name}}Resolver.{{$field.GoFieldName}}(ctx, obj, data)\n\t\t\t\t}\n\t\t\t{{ end -}}\n\t\t{{ end -}}\n\t{{ end -}}\n{{ end }}\n"
  },
  {
    "path": "testdata/entitydirectives/generated/exec.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage generated\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync\"\n\t\"sync/atomic\"\n\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/graphql/introspection\"\n\t\"github.com/99designs/gqlgen/plugin/federation/fedruntime\"\n\tgqlparser \"github.com/vektah/gqlparser/v2\"\n\t\"github.com/vektah/gqlparser/v2/ast\"\n)\n\n// region    ************************** generated!.gotpl **************************\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(cfg Config) graphql.ExecutableSchema {\n\treturn &executableSchema{\n\t\tschema:     cfg.Schema,\n\t\tresolvers:  cfg.Resolvers,\n\t\tdirectives: cfg.Directives,\n\t\tcomplexity: cfg.Complexity,\n\t}\n}\n\ntype Config struct {\n\tSchema     *ast.Schema\n\tResolvers  ResolverRoot\n\tDirectives DirectiveRoot\n\tComplexity ComplexityRoot\n}\n\ntype ResolverRoot interface {\n}\n\ntype DirectiveRoot struct {\n}\n\ntype ComplexityRoot struct {\n\tQuery struct {\n\t\t__resolve__service func(childComplexity int) int\n\t}\n\n\t_Service struct {\n\t\tSDL func(childComplexity int) int\n\t}\n}\n\ntype executableSchema struct {\n\tschema     *ast.Schema\n\tresolvers  ResolverRoot\n\tdirectives DirectiveRoot\n\tcomplexity ComplexityRoot\n}\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\tif e.schema != nil {\n\t\treturn e.schema\n\t}\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Complexity(ctx context.Context, typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) {\n\tec := executionContext{nil, e, 0, 0, nil}\n\t_ = ec\n\tswitch typeName + \".\" + field {\n\n\tcase \"Query._service\":\n\t\tif e.complexity.Query.__resolve__service == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity.Query.__resolve__service(childComplexity), true\n\n\tcase \"_Service.sdl\":\n\t\tif e.complexity._Service.SDL == nil {\n\t\t\tbreak\n\t\t}\n\n\t\treturn e.complexity._Service.SDL(childComplexity), true\n\n\t}\n\treturn 0, false\n}\n\nfunc (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {\n\topCtx := graphql.GetOperationContext(ctx)\n\tec := executionContext{opCtx, e, 0, 0, make(chan graphql.DeferredResult)}\n\tinputUnmarshalMap := graphql.BuildUnmarshalerMap()\n\tfirst := true\n\n\tswitch opCtx.Operation.Operation {\n\tcase ast.Query:\n\t\treturn func(ctx context.Context) *graphql.Response {\n\t\t\tvar response graphql.Response\n\t\t\tvar data graphql.Marshaler\n\t\t\tif first {\n\t\t\t\tfirst = false\n\t\t\t\tctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap)\n\t\t\t\tdata = ec._Query(ctx, opCtx.Operation.SelectionSet)\n\t\t\t} else {\n\t\t\t\tif atomic.LoadInt32(&ec.pendingDeferred) > 0 {\n\t\t\t\t\tresult := <-ec.deferredResults\n\t\t\t\t\tatomic.AddInt32(&ec.pendingDeferred, -1)\n\t\t\t\t\tdata = result.Result\n\t\t\t\t\tresponse.Path = result.Path\n\t\t\t\t\tresponse.Label = result.Label\n\t\t\t\t\tresponse.Errors = result.Errors\n\t\t\t\t} else {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\tresponse.Data = buf.Bytes()\n\t\t\tif atomic.LoadInt32(&ec.deferred) > 0 {\n\t\t\t\thasNext := atomic.LoadInt32(&ec.pendingDeferred) > 0\n\t\t\t\tresponse.HasNext = &hasNext\n\t\t\t}\n\n\t\t\treturn &response\n\t\t}\n\n\tdefault:\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"unsupported GraphQL operation\"))\n\t}\n}\n\ntype executionContext struct {\n\t*graphql.OperationContext\n\t*executableSchema\n\tdeferred        int32\n\tpendingDeferred int32\n\tdeferredResults chan graphql.DeferredResult\n}\n\nfunc (ec *executionContext) processDeferredGroup(dg graphql.DeferredGroup) {\n\tatomic.AddInt32(&ec.pendingDeferred, 1)\n\tgo func() {\n\t\tctx := graphql.WithFreshResponseContext(dg.Context)\n\t\tdg.FieldSet.Dispatch(ctx)\n\t\tds := graphql.DeferredResult{\n\t\t\tPath:   dg.Path,\n\t\t\tLabel:  dg.Label,\n\t\t\tResult: dg.FieldSet,\n\t\t\tErrors: graphql.GetErrors(ctx),\n\t\t}\n\t\t// null fields should bubble up\n\t\tif dg.FieldSet.Invalids > 0 {\n\t\t\tds.Result = graphql.Null\n\t\t}\n\t\tec.deferredResults <- ds\n\t}()\n}\n\nfunc (ec *executionContext) introspectSchema() (*introspection.Schema, error) {\n\tif ec.DisableIntrospection {\n\t\treturn nil, errors.New(\"introspection disabled\")\n\t}\n\treturn introspection.WrapSchema(ec.Schema()), nil\n}\n\nfunc (ec *executionContext) introspectType(name string) (*introspection.Type, error) {\n\tif ec.DisableIntrospection {\n\t\treturn nil, errors.New(\"introspection disabled\")\n\t}\n\treturn introspection.WrapTypeFromDef(ec.Schema(), ec.Schema().Types[name]), nil\n}\n\nvar sources = []*ast.Source{\n\t{Name: \"../../../federation/directives.graphql\", Input: `\n\tdirective @key(fields: _FieldSet!) repeatable on OBJECT | INTERFACE\n\tdirective @requires(fields: _FieldSet!) on FIELD_DEFINITION\n\tdirective @provides(fields: _FieldSet!) on FIELD_DEFINITION\n\tdirective @extends on OBJECT | INTERFACE\n\tdirective @external on FIELD_DEFINITION\n\tscalar _Any\n\tscalar _FieldSet\n`, BuiltIn: true},\n\t{Name: \"../../../federation/entity.graphql\", Input: `\ntype _Service {\n  sdl: String\n}\n\nextend type Query {\n  _service: _Service!\n}\n`, BuiltIn: true},\n}\nvar parsedSchema = gqlparser.MustLoadSchema(sources...)\n\n// endregion ************************** generated!.gotpl **************************\n\n// region    ***************************** args.gotpl *****************************\n\nfunc (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"name\", ec.unmarshalNString2string)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"name\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2ᚖbool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\nfunc (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {\n\tvar err error\n\targs := map[string]any{}\n\targ0, err := graphql.ProcessArgField(ctx, rawArgs, \"includeDeprecated\", ec.unmarshalOBoolean2bool)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\targs[\"includeDeprecated\"] = arg0\n\treturn args, nil\n}\n\n// endregion ***************************** args.gotpl *****************************\n\n// region    ************************** directives.gotpl **************************\n\n// endregion ************************** directives.gotpl **************************\n\n// region    **************************** field.gotpl *****************************\n\nfunc (ec *executionContext) _Query__service(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query__service,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.__resolve__service(ctx)\n\t\t},\n\t\tnil,\n\t\tec.marshalN_Service2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐService,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query__service(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"sdl\":\n\t\t\t\treturn ec.fieldContext__Service_sdl(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type _Service\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn ec.introspectType(fc.Args[\"name\"].(string))\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext_Query___schema,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn ec.introspectSchema()\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"Query\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Schema_description(ctx, field)\n\t\t\tcase \"types\":\n\t\t\t\treturn ec.fieldContext___Schema_types(ctx, field)\n\t\t\tcase \"queryType\":\n\t\t\t\treturn ec.fieldContext___Schema_queryType(ctx, field)\n\t\t\tcase \"mutationType\":\n\t\t\t\treturn ec.fieldContext___Schema_mutationType(ctx, field)\n\t\t\tcase \"subscriptionType\":\n\t\t\t\treturn ec.fieldContext___Schema_subscriptionType(ctx, field)\n\t\t\tcase \"directives\":\n\t\t\t\treturn ec.fieldContext___Schema_directives(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Schema\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) __Service_sdl(ctx context.Context, field graphql.CollectedField, obj *fedruntime.Service) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext__Service_sdl,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SDL, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2string,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext__Service_sdl(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"_Service\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_isRepeatable,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsRepeatable, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_locations,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Locations, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__DirectiveLocation2ᚕstringᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __DirectiveLocation does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Directive_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Directive\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Directive_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___EnumValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__EnumValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_args,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Args, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Field_args_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Field_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Field\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNString2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_type,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Type, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_defaultValue,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DefaultValue, nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   false,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_isDeprecated,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsDeprecated(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalNBoolean2bool,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___InputValue_deprecationReason,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.DeprecationReason(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__InputValue\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_types,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Types(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_queryType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.QueryType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_mutationType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.MutationType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_subscriptionType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SubscriptionType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Schema_directives,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Directives(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Schema\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Directive_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Directive_description(ctx, field)\n\t\t\tcase \"isRepeatable\":\n\t\t\t\treturn ec.fieldContext___Directive_isRepeatable(ctx, field)\n\t\t\tcase \"locations\":\n\t\t\t\treturn ec.fieldContext___Directive_locations(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Directive_args(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Directive\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_kind,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Kind(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalN__TypeKind2string,\n\t\ttrue,\n\t\ttrue,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type __TypeKind does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_name,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Name(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_description,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Description(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_specifiedByURL,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.SpecifiedByURL(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOString2ᚖstring,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type String does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_fields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.Fields(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Field_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Field_description(ctx, field)\n\t\t\tcase \"args\":\n\t\t\t\treturn ec.fieldContext___Field_args(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___Field_type(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___Field_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___Field_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Field\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_interfaces,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.Interfaces(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_possibleTypes,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.PossibleTypes(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_enumValues,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\tfc := graphql.GetFieldContext(ctx)\n\t\t\treturn obj.EnumValues(fc.Args[\"includeDeprecated\"].(bool)), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___EnumValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___EnumValue_description(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___EnumValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___EnumValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __EnumValue\", field.Name)\n\t\t},\n\t}\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\terr = ec.Recover(ctx, r)\n\t\t\tec.Error(ctx, err)\n\t\t}\n\t}()\n\tctx = graphql.WithFieldContext(ctx, fc)\n\tif fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil {\n\t\tec.Error(ctx, err)\n\t\treturn fc, err\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_inputFields,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.InputFields(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___InputValue_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___InputValue_description(ctx, field)\n\t\t\tcase \"type\":\n\t\t\t\treturn ec.fieldContext___InputValue_type(ctx, field)\n\t\t\tcase \"defaultValue\":\n\t\t\t\treturn ec.fieldContext___InputValue_defaultValue(ctx, field)\n\t\t\tcase \"isDeprecated\":\n\t\t\t\treturn ec.fieldContext___InputValue_isDeprecated(ctx, field)\n\t\t\tcase \"deprecationReason\":\n\t\t\t\treturn ec.fieldContext___InputValue_deprecationReason(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __InputValue\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_ofType,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.OfType(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\tswitch field.Name {\n\t\t\tcase \"kind\":\n\t\t\t\treturn ec.fieldContext___Type_kind(ctx, field)\n\t\t\tcase \"name\":\n\t\t\t\treturn ec.fieldContext___Type_name(ctx, field)\n\t\t\tcase \"description\":\n\t\t\t\treturn ec.fieldContext___Type_description(ctx, field)\n\t\t\tcase \"specifiedByURL\":\n\t\t\t\treturn ec.fieldContext___Type_specifiedByURL(ctx, field)\n\t\t\tcase \"fields\":\n\t\t\t\treturn ec.fieldContext___Type_fields(ctx, field)\n\t\t\tcase \"interfaces\":\n\t\t\t\treturn ec.fieldContext___Type_interfaces(ctx, field)\n\t\t\tcase \"possibleTypes\":\n\t\t\t\treturn ec.fieldContext___Type_possibleTypes(ctx, field)\n\t\t\tcase \"enumValues\":\n\t\t\t\treturn ec.fieldContext___Type_enumValues(ctx, field)\n\t\t\tcase \"inputFields\":\n\t\t\t\treturn ec.fieldContext___Type_inputFields(ctx, field)\n\t\t\tcase \"ofType\":\n\t\t\t\treturn ec.fieldContext___Type_ofType(ctx, field)\n\t\t\tcase \"isOneOf\":\n\t\t\t\treturn ec.fieldContext___Type_isOneOf(ctx, field)\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"no field named %q was found under type __Type\", field.Name)\n\t\t},\n\t}\n\treturn fc, nil\n}\n\nfunc (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) {\n\treturn graphql.ResolveField(\n\t\tctx,\n\t\tec.OperationContext,\n\t\tfield,\n\t\tec.fieldContext___Type_isOneOf,\n\t\tfunc(ctx context.Context) (any, error) {\n\t\t\treturn obj.IsOneOf(), nil\n\t\t},\n\t\tnil,\n\t\tec.marshalOBoolean2bool,\n\t\ttrue,\n\t\tfalse,\n\t)\n}\n\nfunc (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {\n\tfc = &graphql.FieldContext{\n\t\tObject:     \"__Type\",\n\t\tField:      field,\n\t\tIsMethod:   true,\n\t\tIsResolver: false,\n\t\tChild: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {\n\t\t\treturn nil, errors.New(\"field of type Boolean does not have child fields\")\n\t\t},\n\t}\n\treturn fc, nil\n}\n\n// endregion **************************** field.gotpl *****************************\n\n// region    **************************** input.gotpl *****************************\n\n// endregion **************************** input.gotpl *****************************\n\n// region    ************************** interface.gotpl ***************************\n\n// endregion ************************** interface.gotpl ***************************\n\n// region    **************************** object.gotpl ****************************\n\nvar queryImplementors = []string{\"Query\"}\n\nfunc (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors)\n\tctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{\n\t\tObject: \"Query\",\n\t})\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tinnerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{\n\t\t\tObject: field.Name,\n\t\t\tField:  field,\n\t\t})\n\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"Query\")\n\t\tcase \"_service\":\n\t\t\tfield := field\n\n\t\t\tinnerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\tres = ec._Query__service(ctx, field)\n\t\t\t\tif res == graphql.Null {\n\t\t\t\t\tatomic.AddUint32(&fs.Invalids, 1)\n\t\t\t\t}\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\trrm := func(ctx context.Context) graphql.Marshaler {\n\t\t\t\treturn ec.OperationContext.RootResolverMiddleware(ctx,\n\t\t\t\t\tfunc(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) })\n\t\t\t}\n\n\t\t\tout.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) })\n\t\tcase \"__type\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___type(ctx, field)\n\t\t\t})\n\t\tcase \"__schema\":\n\t\t\tout.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {\n\t\t\t\treturn ec._Query___schema(ctx, field)\n\t\t\t})\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar _ServiceImplementors = []string{\"_Service\"}\n\nfunc (ec *executionContext) __Service(ctx context.Context, sel ast.SelectionSet, obj *fedruntime.Service) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, _ServiceImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"_Service\")\n\t\tcase \"sdl\":\n\t\t\tout.Values[i] = ec.__Service_sdl(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __DirectiveImplementors = []string{\"__Directive\"}\n\nfunc (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Directive\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Directive_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Directive_description(ctx, field, obj)\n\t\tcase \"isRepeatable\":\n\t\t\tout.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"locations\":\n\t\t\tout.Values[i] = ec.___Directive_locations(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Directive_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __EnumValueImplementors = []string{\"__EnumValue\"}\n\nfunc (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__EnumValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___EnumValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___EnumValue_description(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __FieldImplementors = []string{\"__Field\"}\n\nfunc (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Field\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Field_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Field_description(ctx, field, obj)\n\t\tcase \"args\":\n\t\t\tout.Values[i] = ec.___Field_args(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___Field_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __InputValueImplementors = []string{\"__InputValue\"}\n\nfunc (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__InputValue\")\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___InputValue_name(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___InputValue_description(ctx, field, obj)\n\t\tcase \"type\":\n\t\t\tout.Values[i] = ec.___InputValue_type(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"defaultValue\":\n\t\t\tout.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)\n\t\tcase \"isDeprecated\":\n\t\t\tout.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"deprecationReason\":\n\t\t\tout.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __SchemaImplementors = []string{\"__Schema\"}\n\nfunc (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Schema\")\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Schema_description(ctx, field, obj)\n\t\tcase \"types\":\n\t\t\tout.Values[i] = ec.___Schema_types(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"queryType\":\n\t\t\tout.Values[i] = ec.___Schema_queryType(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"mutationType\":\n\t\t\tout.Values[i] = ec.___Schema_mutationType(ctx, field, obj)\n\t\tcase \"subscriptionType\":\n\t\t\tout.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)\n\t\tcase \"directives\":\n\t\t\tout.Values[i] = ec.___Schema_directives(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\nvar __TypeImplementors = []string{\"__Type\"}\n\nfunc (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {\n\tfields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors)\n\n\tout := graphql.NewFieldSet(fields)\n\tdeferred := make(map[string]*graphql.FieldSet)\n\tfor i, field := range fields {\n\t\tswitch field.Name {\n\t\tcase \"__typename\":\n\t\t\tout.Values[i] = graphql.MarshalString(\"__Type\")\n\t\tcase \"kind\":\n\t\t\tout.Values[i] = ec.___Type_kind(ctx, field, obj)\n\t\t\tif out.Values[i] == graphql.Null {\n\t\t\t\tout.Invalids++\n\t\t\t}\n\t\tcase \"name\":\n\t\t\tout.Values[i] = ec.___Type_name(ctx, field, obj)\n\t\tcase \"description\":\n\t\t\tout.Values[i] = ec.___Type_description(ctx, field, obj)\n\t\tcase \"specifiedByURL\":\n\t\t\tout.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)\n\t\tcase \"fields\":\n\t\t\tout.Values[i] = ec.___Type_fields(ctx, field, obj)\n\t\tcase \"interfaces\":\n\t\t\tout.Values[i] = ec.___Type_interfaces(ctx, field, obj)\n\t\tcase \"possibleTypes\":\n\t\t\tout.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)\n\t\tcase \"enumValues\":\n\t\t\tout.Values[i] = ec.___Type_enumValues(ctx, field, obj)\n\t\tcase \"inputFields\":\n\t\t\tout.Values[i] = ec.___Type_inputFields(ctx, field, obj)\n\t\tcase \"ofType\":\n\t\t\tout.Values[i] = ec.___Type_ofType(ctx, field, obj)\n\t\tcase \"isOneOf\":\n\t\t\tout.Values[i] = ec.___Type_isOneOf(ctx, field, obj)\n\t\tdefault:\n\t\t\tpanic(\"unknown field \" + strconv.Quote(field.Name))\n\t\t}\n\t}\n\tout.Dispatch(ctx)\n\tif out.Invalids > 0 {\n\t\treturn graphql.Null\n\t}\n\n\tatomic.AddInt32(&ec.deferred, int32(len(deferred)))\n\n\tfor label, dfs := range deferred {\n\t\tec.processDeferredGroup(graphql.DeferredGroup{\n\t\t\tLabel:    label,\n\t\t\tPath:     graphql.GetPath(ctx),\n\t\t\tFieldSet: dfs,\n\t\t\tContext:  ctx,\n\t\t})\n\t}\n\n\treturn out\n}\n\n// endregion **************************** object.gotpl ****************************\n\n// region    ***************************** type.gotpl *****************************\n\nfunc (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalBoolean(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN_FieldSet2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN_FieldSet2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) marshalN_Service2githubᚗcomᚋ99designsᚋgqlgenᚋpluginᚋfederationᚋfedruntimeᚐService(ctx context.Context, sel ast.SelectionSet, v fedruntime.Service) graphql.Marshaler {\n\treturn ec.__Service(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler {\n\treturn ec.___Directive(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) {\n\tvar vSlice []any\n\tvSlice = graphql.CoerceList(v)\n\tvar err error\n\tres := make([]string, len(vSlice))\n\tfor i := range vSlice {\n\t\tctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i))\n\t\tres[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__DirectiveLocation2string(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler {\n\treturn ec.___EnumValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler {\n\treturn ec.___Field(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler {\n\treturn ec.___InputValue(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler {\n\treturn ec.___Type(ctx, sel, &v)\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\nfunc (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\tres := graphql.MarshalString(v)\n\tif res == graphql.Null {\n\t\tif !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {\n\t\t\tgraphql.AddErrorf(ctx, \"the requested element is null which the schema does not allow\")\n\t\t}\n\t}\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) {\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalBoolean(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalBoolean(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2string(ctx context.Context, v any) (string, error) {\n\tres, err := graphql.UnmarshalString(v)\n\treturn res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler {\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(v)\n\treturn res\n}\n\nfunc (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tres, err := graphql.UnmarshalString(v)\n\treturn &res, graphql.ErrorOnPath(ctx, err)\n}\n\nfunc (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\t_ = sel\n\t_ = ctx\n\tres := graphql.MarshalString(*v)\n\treturn res\n}\n\nfunc (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Schema(ctx, sel, v)\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\tret := make(graphql.Array, len(v))\n\tvar wg sync.WaitGroup\n\tisLen1 := len(v) == 1\n\tif !isLen1 {\n\t\twg.Add(len(v))\n\t}\n\tfor i := range v {\n\t\ti := i\n\t\tfc := &graphql.FieldContext{\n\t\t\tIndex:  &i,\n\t\t\tResult: &v[i],\n\t\t}\n\t\tctx := graphql.WithFieldContext(ctx, fc)\n\t\tf := func(i int) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tec.Error(ctx, ec.Recover(ctx, r))\n\t\t\t\t\tret = nil\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif !isLen1 {\n\t\t\t\tdefer wg.Done()\n\t\t\t}\n\t\t\tret[i] = ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i])\n\t\t}\n\t\tif isLen1 {\n\t\t\tf(i)\n\t\t} else {\n\t\t\tgo f(i)\n\t\t}\n\n\t}\n\twg.Wait()\n\n\tfor _, e := range ret {\n\t\tif e == graphql.Null {\n\t\t\treturn graphql.Null\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler {\n\tif v == nil {\n\t\treturn graphql.Null\n\t}\n\treturn ec.___Type(ctx, sel, v)\n}\n\n// endregion ***************************** type.gotpl *****************************\n"
  },
  {
    "path": "testdata/entitydirectives/generated/federation.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage generated\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"strings\"\n\n\t\"github.com/99designs/gqlgen/plugin/federation/fedruntime\"\n)\n\nvar (\n\tErrUnknownType  = errors.New(\"unknown type\")\n\tErrTypeNotFound = errors.New(\"type not found\")\n)\n\nfunc (ec *executionContext) __resolve__service(ctx context.Context) (fedruntime.Service, error) {\n\tif ec.DisableIntrospection {\n\t\treturn fedruntime.Service{}, errors.New(\"federated introspection disabled\")\n\t}\n\n\tvar sdl []string\n\n\tfor _, src := range sources {\n\t\tif src.BuiltIn {\n\t\t\tcontinue\n\t\t}\n\t\tsdl = append(sdl, src.Input)\n\t}\n\n\treturn fedruntime.Service{\n\t\tSDL: strings.Join(sdl, \"\\n\"),\n\t}, nil\n}\n"
  },
  {
    "path": "testdata/entitydirectives/generated/models_gen.go",
    "content": "// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.\n\npackage generated\n\ntype Query struct {\n}\n"
  },
  {
    "path": "testdata/gomod-with-leading-comments.mod",
    "content": "// main module of gqlgen\n\n   // and another module to test stripping of comment lines\n\nmodule github.com/99designs/gqlgen // replace it for new project\n\ngo 1.18\n"
  },
  {
    "path": "testdata/gqlgen.go",
    "content": "package main\n\nimport (\n\t\"flag\"\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"os\"\n\t\"time\"\n\n\t\"github.com/99designs/gqlgen/api\"\n\t\"github.com/99designs/gqlgen/codegen/config\"\n\t\"github.com/99designs/gqlgen/graphql\"\n\t\"github.com/99designs/gqlgen/plugin/stubgen\"\n)\n\nfunc main() {\n\tstub := flag.String(\"stub\", \"\", \"name of stub file to generate\")\n\tcfgPath := flag.String(\"config\", \"\", \"path to config file (use default if omitted)\")\n\tflag.Parse()\n\n\tlog.SetOutput(io.Discard)\n\n\tstart := graphql.Now()\n\n\tvar cfg *config.Config\n\tvar err error\n\tif cfgPath != nil && *cfgPath != \"\" {\n\t\tcfg, err = config.LoadConfig(*cfgPath)\n\t} else {\n\t\tcfg, err = config.LoadConfigFromDefaultLocations()\n\t}\n\tif err != nil {\n\t\tfmt.Fprintln(os.Stderr, \"failed to load config\", err.Error())\n\t\tos.Exit(2)\n\t}\n\n\tvar options []api.Option\n\tif *stub != \"\" {\n\t\toptions = append(options, api.AddPlugin(stubgen.New(*stub, \"Stub\")))\n\t}\n\n\terr = api.Generate(cfg, options...)\n\tif err != nil {\n\t\tfmt.Fprintln(os.Stderr, err.Error())\n\t\tos.Exit(3)\n\t}\n\n\tfmt.Printf(\"Generated %s in %4.2fs\\n\", cfg.Exec.ImportPath(), time.Since(start).Seconds())\n}\n"
  }
]